Add generic Delete command to delete one resource

Change-Id: I613af0472d3bde1d64a1950e38d48442bda9a512
This commit is contained in:
Lin Yang 2019-09-11 13:04:13 -07:00
parent f8e5ac2e7f
commit 087b31149c
3 changed files with 29 additions and 1 deletions

View File

@ -36,3 +36,27 @@ class GetResource(command.Command):
rsd_client = self.app.client_manager.rsd
resource_detail = rsd_client.root.get(parsed_args.resource)
print("{0}".format(json.dumps(resource_detail, indent=2)))
class DeleteResource(command.Command):
"""Delete a RSD resource."""
_description = "Delete a RSD resource"
def get_parser(self, prog_name):
parser = super(DeleteResource, self).get_parser(prog_name)
parser.add_argument(
"resource",
nargs="+",
metavar="<resource>",
help="ID of the RSD resource(s) to delete.",
)
return parser
def take_action(self, parsed_args):
self.log.debug("take_action(%s)", parsed_args)
rsd_client = self.app.client_manager.rsd
for resource in parsed_args.resource:
rsd_client.root.delete(resource)
print("Resource {0} has been deleted.".format(resource))

View File

@ -23,8 +23,11 @@ class RootManager(base.Manager):
def __init__(self, *args, **kwargs):
super(RootManager, self).__init__(*args, **kwargs)
def show(self, resource_uri):
def get(self, resource_uri):
resource = self.client.get_resource(resource_uri)
resource_dict = utils.extract_attr(resource)
return resource_dict
def delete(self, resource_uri):
self.client._conn.delete(resource_uri)

View File

@ -29,6 +29,7 @@ openstack.cli.extension =
openstack.rsd.v2 =
rsd_get = rsdclient.osc.v2.root:GetResource
rsd_delete = rsdclient.osc.v2.root:DeleteResource
rsd_node_compose = rsdclient.osc.v2.node:ComposeNode
rsd_node_delete = rsdclient.osc.v2.node:DeleteNode