Make assembly name mandatory during assembly creation
Currently it is optional. Submitting a create command without a name makes a call to the API and fails at the Solum API layer. Skipping mandaroty inputs should fail at the CLI itself. The usage docs will be updated using the following bug https://bugs.launchpad.net/solum/+bug/1336348 Change-Id: I3710c0d2fc75337ea7e8c766417612a43810d7e8 Closes-Bug: #1332315
This commit is contained in:
@@ -19,7 +19,7 @@ Initial M1 Solum CLI commands implemented (but not REST communications):
|
||||
* app delete plan_name
|
||||
* app list
|
||||
* app show plan_id
|
||||
* assembly create [--assembly="assembly_name"] plan_name
|
||||
* assembly create assembly_name plan_name
|
||||
* assembly delete assembly_name
|
||||
* assembly list
|
||||
* assembly show assembly_id
|
||||
@@ -111,14 +111,15 @@ class AssemblyCommands(cli_utils.CommandsBase):
|
||||
|
||||
def create(self):
|
||||
"""Create an assembly."""
|
||||
self.parser.add_argument('name',
|
||||
help="Assembly name")
|
||||
self.parser.add_argument('plan_uri',
|
||||
help="Tenant/project-wide unique "
|
||||
"plan (uri/uuid or name)")
|
||||
self.parser.add_argument('--assembly',
|
||||
help="Assembly name")
|
||||
self.parser.add_argument('--description',
|
||||
help="Assembly description")
|
||||
args = self.parser.parse_args()
|
||||
name = args.name
|
||||
plan_uri = args.plan_uri
|
||||
if '/' not in plan_uri:
|
||||
# might be a plan uuid/name
|
||||
@@ -127,7 +128,7 @@ class AssemblyCommands(cli_utils.CommandsBase):
|
||||
plan_uri = plan.uri
|
||||
print('Note: using plan_uri=%s' % plan_uri)
|
||||
|
||||
assembly = self.client.assemblies.create(name=args.assembly,
|
||||
assembly = self.client.assemblies.create(name=name,
|
||||
description=args.description,
|
||||
plan_uri=plan_uri)
|
||||
fields = ['uuid', 'name', 'description', 'status', 'application_uri',
|
||||
|
@@ -129,20 +129,17 @@ class TestSolum(base.TestCase):
|
||||
@mock.patch.object(assembly.AssemblyManager, "create")
|
||||
def test_assembly_create(self, mock_assembly_create):
|
||||
self.make_env()
|
||||
self.shell("assembly create http://example.com/a.yaml --assembly=test")
|
||||
self.shell("assembly create assembly_name http://example.com/a.yaml")
|
||||
mock_assembly_create.assert_called_once_with(
|
||||
name='test',
|
||||
name='assembly_name',
|
||||
description=None,
|
||||
plan_uri='http://example.com/a.yaml')
|
||||
|
||||
@mock.patch.object(assembly.AssemblyManager, "create")
|
||||
def test_assembly_create_without_name(self, mock_assembly_create):
|
||||
self.make_env()
|
||||
self.shell("assembly create http://example.com/a.yaml")
|
||||
mock_assembly_create.assert_called_once_with(
|
||||
name=None,
|
||||
description=None,
|
||||
plan_uri='http://example.com/a.yaml')
|
||||
self.shell("assembly create http://example.com/a.yaml",
|
||||
exit_code=2)
|
||||
|
||||
@mock.patch.object(plan.PlanManager, "find")
|
||||
@mock.patch.object(assembly.AssemblyManager, "create")
|
||||
@@ -153,29 +150,29 @@ class TestSolum(base.TestCase):
|
||||
|
||||
self.make_env()
|
||||
mock_app_find.return_value = FakePlan()
|
||||
self.shell("assembly create the-plan-name --assembly=test")
|
||||
self.shell("assembly create assembly_name the-plan-name")
|
||||
mock_app_find.assert_called_once_with(name_or_id='the-plan-name')
|
||||
mock_assembly_create.assert_called_once_with(
|
||||
name='test',
|
||||
name='assembly_name',
|
||||
description=None,
|
||||
plan_uri='http://example.com/the-plan.yaml')
|
||||
|
||||
@mock.patch.object(assembly.AssemblyManager, "create")
|
||||
def test_assembly_create_with_description(self, mock_assembly_create):
|
||||
self.make_env()
|
||||
self.shell("""assembly create http://example.com/a.yaml --assembly=test
|
||||
self.shell("""assembly create assembly_name http://example.com/a.yaml
|
||||
--description=description""")
|
||||
mock_assembly_create.assert_called_once_with(
|
||||
name='test',
|
||||
name='assembly_name',
|
||||
description='description',
|
||||
plan_uri='http://example.com/a.yaml')
|
||||
|
||||
@mock.patch.object(assembly.AssemblyManager, "create")
|
||||
def test_assembly_create_without_description(self, mock_assembly_create):
|
||||
self.make_env()
|
||||
self.shell("assembly create http://example.com/a.yaml --assembly=test")
|
||||
self.shell("assembly create assembly_name http://example.com/a.yaml")
|
||||
mock_assembly_create.assert_called_once_with(
|
||||
name='test',
|
||||
name='assembly_name',
|
||||
description=None,
|
||||
plan_uri='http://example.com/a.yaml')
|
||||
|
||||
|
Reference in New Issue
Block a user