From f7a0cde54ca9bdad7927105cdb7205e4afc9b630 Mon Sep 17 00:00:00 2001 From: Noorul Islam K M Date: Tue, 11 Mar 2014 18:52:03 +0530 Subject: [PATCH] Connect assembly commands and Rest API Change-Id: Iff7e75c2d4a869de849a5f009a96a9aa3434490c --- solumclient/solum.py | 29 ++++++++++++++++++----------- solumclient/tests/test_solum.py | 2 +- solumclient/v1/assembly.py | 3 +++ 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/solumclient/solum.py b/solumclient/solum.py index c746e33..28ca57d 100644 --- a/solumclient/solum.py +++ b/solumclient/solum.py @@ -93,28 +93,35 @@ class AssemblyCommands(cli_utils.CommandsBase): def create(self): """Create an assembly.""" - self.parser.add_argument('plan_name', - help="Tenant/project-wide unique plan name") + self.parser.add_argument('plan_uuid', + help="Tenant/project-wide unique plan uuid") self.parser.add_argument('--assembly', help="Assembly name") args = self.parser.parse_args() - #TODO(noorul): Add REST communications - print("assembly create plan_name=%s assembly=%s" % ( - args.plan_name, + print("assembly create plan_uuid=%s assembly=%s" % ( + args.plan_uuid, args.assembly)) + assembly = self.client.assemblies.create(name=args.assembly, + plan_uuid=args.plan_uuid) + fields = ['uuid', 'name', 'description'] + data = dict([(f, getattr(assembly, f, '')) + for f in fields]) + cliutils.print_dict(data, wrap=72) def delete(self): """Delete an assembly.""" - self.parser.add_argument('assembly_name', - help="Assembly name") + self.parser.add_argument('assembly_uuid', + help="Assembly uuid") args = self.parser.parse_args() - #TODO(noorul): Add REST communications - print("assembly delete assembly_name=%s" % ( - args.assembly_name)) + print("assembly delete assembly_uuid=%s" % ( + args.assembly_uuid)) + self.client.assemblies.delete(assembly_id=args.assembly_uuid) def list(self): """List all assemblies.""" - print(self.client.assemblies.list()) + fields = ['uuid', 'name', 'description'] + response = self.client.assemblies.list() + cliutils.print_list(response, fields) def main(): diff --git a/solumclient/tests/test_solum.py b/solumclient/tests/test_solum.py index ecf305c..67b565a 100644 --- a/solumclient/tests/test_solum.py +++ b/solumclient/tests/test_solum.py @@ -106,7 +106,7 @@ class TestSolum(base.TestCase): self.make_env() required = [ '.*?^Solum Python Command Line Client', - '.*?\[\]' + '.*?^.*uuid.*name.*description.*' ] mock_assembly_list.side_effect = ( diff --git a/solumclient/v1/assembly.py b/solumclient/v1/assembly.py index d09ba74..97ff1d4 100644 --- a/solumclient/v1/assembly.py +++ b/solumclient/v1/assembly.py @@ -37,3 +37,6 @@ class AssemblyManager(solum_base.CrudManager): def put(self, **kwargs): return super(AssemblyManager, self).put(base_url="/v1", **kwargs) + + def delete(self, **kwargs): + return super(AssemblyManager, self).delete(base_url="/v1", **kwargs)