Client : Create BayModel with server type(VM/BM)
Client changes to create baymodel with provided VM/BM server type. In its current state of art, the Baymodel is created with only "VM" server type. This value is hardcoded in the code and a tech debt bug was filed to clean it off. Also this feature can be useful to allow bay model creation with various server type like virtual machines, baremetal etc. For this release will restrict the server_type to vm. Co-Authored By: OTSUKA, Yuanying <yuanying@fraction.jp> Change-Id: I9b5566bf59e300e080937906c23c7ff7dc359e16 Partial-Bug: #1491003
This commit is contained in:
parent
b481937d3e
commit
fec8d9c344
@ -35,7 +35,36 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--labels key=val '
|
'--labels key=val '
|
||||||
'--master-flavor-id test_flavor '
|
'--master-flavor-id test_flavor '
|
||||||
'--docker-volume-size 10 '
|
'--docker-volume-size 10 '
|
||||||
'--public')
|
'--public '
|
||||||
|
'--server-type vm')
|
||||||
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
|
self._test_arg_success('baymodel-create '
|
||||||
|
'--keypair-id test_keypair '
|
||||||
|
'--external-network-id test_net '
|
||||||
|
'--image-id test_image '
|
||||||
|
'--coe kubernetes '
|
||||||
|
'--name test '
|
||||||
|
'--server-type vm')
|
||||||
|
|
||||||
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
|
def test_baymodel_create_success_no_servertype(self, mock_create):
|
||||||
|
self._test_arg_success('baymodel-create '
|
||||||
|
'--name test '
|
||||||
|
'--image-id test_image '
|
||||||
|
'--keypair-id test_keypair '
|
||||||
|
'--external-network-id test_net '
|
||||||
|
'--coe swarm '
|
||||||
|
'--dns-nameserver test_dns '
|
||||||
|
'--flavor-id test_flavor '
|
||||||
|
'--fixed-network public '
|
||||||
|
'--network-driver test_driver '
|
||||||
|
'--labels key=val '
|
||||||
|
'--master-flavor-id test_flavor '
|
||||||
|
'--docker-volume-size 10 '
|
||||||
|
'--public ')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
self._test_arg_success('baymodel-create '
|
self._test_arg_success('baymodel-create '
|
||||||
@ -68,7 +97,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm'
|
'--coe swarm'
|
||||||
'--public')
|
'--public '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -90,8 +120,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--keypair-id test_keypair '
|
'--keypair-id test_keypair '
|
||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm'
|
'--coe swarm '
|
||||||
)
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -101,7 +131,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--keypair-id test_keypair '
|
'--keypair-id test_keypair '
|
||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm')
|
'--coe swarm '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -111,7 +142,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--keypair-id test_keypair '
|
'--keypair-id test_keypair '
|
||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm')
|
'--coe swarm '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -121,7 +153,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--keypair-id test_keypair '
|
'--keypair-id test_keypair '
|
||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm')
|
'--coe swarm '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -132,7 +165,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm '
|
'--coe swarm '
|
||||||
'--http-proxy http_proxy ')
|
'--http-proxy http_proxy '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -143,7 +177,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm '
|
'--coe swarm '
|
||||||
'--https-proxy https_proxy ')
|
'--https-proxy https_proxy '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -154,7 +189,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm '
|
'--coe swarm '
|
||||||
'--no-proxy no_proxy ')
|
'--no-proxy no_proxy '
|
||||||
|
'--server-type vm')
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
def test_baymodel_create_labels_success(self, mock_create):
|
def test_baymodel_create_labels_success(self, mock_create):
|
||||||
@ -164,7 +200,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--keypair-id test_keypair '
|
'--keypair-id test_keypair '
|
||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm')
|
'--coe swarm '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -176,7 +213,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--keypair-id test_keypair '
|
'--keypair-id test_keypair '
|
||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm')
|
'--coe swarm '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -187,7 +225,8 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--keypair-id test_keypair '
|
'--keypair-id test_keypair '
|
||||||
'--external-network-id test_net '
|
'--external-network-id test_net '
|
||||||
'--image-id test_image '
|
'--image-id test_image '
|
||||||
'--coe swarm')
|
'--coe swarm '
|
||||||
|
'--server-type vm')
|
||||||
self.assertTrue(mock_create.called)
|
self.assertTrue(mock_create.called)
|
||||||
|
|
||||||
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
@mock.patch('magnumclient.v1.baymodels.BayModelManager.create')
|
||||||
@ -213,6 +252,10 @@ class ShellTest(shell_test_base.TestCommandLineArgument):
|
|||||||
'--coe test', self._mandatory_arg_error)
|
'--coe test', self._mandatory_arg_error)
|
||||||
self.assertFalse(mock_create.called)
|
self.assertFalse(mock_create.called)
|
||||||
|
|
||||||
|
self._test_arg_failure('baymodel-create '
|
||||||
|
'--server-type test', self._mandatory_arg_error)
|
||||||
|
self.assertFalse(mock_create.called)
|
||||||
|
|
||||||
self._test_arg_failure('baymodel-create', self._mandatory_arg_error)
|
self._test_arg_failure('baymodel-create', self._mandatory_arg_error)
|
||||||
self.assertFalse(mock_create.called)
|
self.assertFalse(mock_create.called)
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@ CREATION_ATTRIBUTES = ['name', 'image_id', 'flavor_id', 'master_flavor_id',
|
|||||||
'dns_nameserver', 'docker_volume_size', 'labels',
|
'dns_nameserver', 'docker_volume_size', 'labels',
|
||||||
'coe', 'http_proxy', 'https_proxy', 'no_proxy',
|
'coe', 'http_proxy', 'https_proxy', 'no_proxy',
|
||||||
'network_driver', 'tls_disabled', 'public',
|
'network_driver', 'tls_disabled', 'public',
|
||||||
'registry_enabled', 'volume_driver']
|
'registry_enabled', 'volume_driver', 'server_type']
|
||||||
|
|
||||||
|
|
||||||
class BayModel(base.Resource):
|
class BayModel(base.Resource):
|
||||||
|
@ -96,6 +96,12 @@ def _show_baymodel(baymodel):
|
|||||||
@utils.arg('--registry-enabled',
|
@utils.arg('--registry-enabled',
|
||||||
action='store_true', default=False,
|
action='store_true', default=False,
|
||||||
help='Enable docker registry in the Bay')
|
help='Enable docker registry in the Bay')
|
||||||
|
@utils.arg('--server-type',
|
||||||
|
metavar='<server-type>',
|
||||||
|
default='vm',
|
||||||
|
help='Specify the server type to be used '
|
||||||
|
'for example vm. For this release '
|
||||||
|
'default server type will be vm.')
|
||||||
def do_baymodel_create(cs, args):
|
def do_baymodel_create(cs, args):
|
||||||
"""Create a baymodel."""
|
"""Create a baymodel."""
|
||||||
opts = {}
|
opts = {}
|
||||||
@ -118,6 +124,7 @@ def do_baymodel_create(cs, args):
|
|||||||
opts['tls_disabled'] = args.tls_disabled
|
opts['tls_disabled'] = args.tls_disabled
|
||||||
opts['public'] = args.public
|
opts['public'] = args.public
|
||||||
opts['registry_enabled'] = args.registry_enabled
|
opts['registry_enabled'] = args.registry_enabled
|
||||||
|
opts['server_type'] = args.server_type
|
||||||
|
|
||||||
baymodel = cs.baymodels.create(**opts)
|
baymodel = cs.baymodels.create(**opts)
|
||||||
_show_baymodel(baymodel)
|
_show_baymodel(baymodel)
|
||||||
|
Loading…
Reference in New Issue
Block a user