Merge "Flag --force for nodes deploy command"
This commit is contained in:
@@ -544,11 +544,16 @@ class EnvDeployNodes(EnvMixIn, base.BaseCommand):
|
||||
type=int,
|
||||
nargs='+',
|
||||
help='Ids of nodes to deploy.')
|
||||
parser.add_argument('-f',
|
||||
'--force',
|
||||
action='store_true',
|
||||
help='Force deploy nodes.')
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
node_ids = parsed_args.nodes
|
||||
task = self.client.deploy_nodes(parsed_args.env, node_ids)
|
||||
task = self.client.deploy_nodes(parsed_args.env, node_ids,
|
||||
force=parsed_args.force)
|
||||
|
||||
msg = ('Deployment task with id {t} for the nodes {n} within '
|
||||
'the environment {e} has been '
|
||||
|
||||
@@ -266,7 +266,20 @@ class TestEnvCommand(test_engine.BaseCLITest):
|
||||
self.exec_command(args)
|
||||
|
||||
self.m_client.deploy_nodes.return_value = fake_task.get_fake_task()
|
||||
self.m_client.deploy_nodes.assert_called_once_with(env_id, node_ids)
|
||||
self.m_client.deploy_nodes.assert_called_once_with(env_id, node_ids,
|
||||
force=False)
|
||||
|
||||
def test_env_nodes_deploy_force(self):
|
||||
env_id = 42
|
||||
node_ids = [43, 44]
|
||||
args = ('env nodes deploy --force '
|
||||
'--nodes {n[0]} {n[1]} --env {e}').format(e=env_id, n=node_ids)
|
||||
|
||||
self.exec_command(args)
|
||||
|
||||
self.m_client.deploy_nodes.return_value = fake_task.get_fake_task()
|
||||
self.m_client.deploy_nodes.assert_called_once_with(env_id, node_ids,
|
||||
force=True)
|
||||
|
||||
def test_env_nodes_provision(self):
|
||||
env_id = 42
|
||||
|
||||
@@ -334,6 +334,21 @@ class TestEnvFacade(test_api.BaseLibTest):
|
||||
self.assertEqual([','.join(str(i) for i in node_ids)],
|
||||
matcher.last_request.qs['nodes'])
|
||||
|
||||
def test_env_deploy_nodes_force(self):
|
||||
env_id = 42
|
||||
node_ids = [43, 44]
|
||||
force = True
|
||||
|
||||
expected_url = self.get_object_uri(self.res_uri, env_id, '/deploy/')
|
||||
matcher = self.m_request.put(expected_url, json=utils.get_fake_task())
|
||||
|
||||
self.client.deploy_nodes(env_id, node_ids, force=force)
|
||||
|
||||
self.assertTrue(matcher.called)
|
||||
self.assertEqual([','.join(str(i) for i in node_ids)],
|
||||
matcher.last_request.qs['nodes'])
|
||||
self.assertEqual(matcher.last_request.qs['force'][0], str(int(force)))
|
||||
|
||||
def test_env_provision_nodes(self):
|
||||
env_id = 42
|
||||
node_ids = [43, 44]
|
||||
|
||||
@@ -23,7 +23,7 @@ class EnvironmentClient(base_v1.BaseV1Client):
|
||||
_updatable_attributes = ('name',)
|
||||
|
||||
provision_nodes_url = 'clusters/{env_id}/provision/?nodes={nodes}'
|
||||
deploy_nodes_url = 'clusters/{env_id}/deploy/?nodes={nodes}'
|
||||
deploy_nodes_url = 'clusters/{env_id}/deploy/?nodes={nodes}&force={force}'
|
||||
|
||||
def create(self, name, release_id, net_segment_type):
|
||||
|
||||
@@ -96,12 +96,12 @@ class EnvironmentClient(base_v1.BaseV1Client):
|
||||
nodes=nodes)
|
||||
return self.connection.put_request(uri, {})
|
||||
|
||||
def deploy_nodes(self, environment_id, node_ids):
|
||||
def deploy_nodes(self, environment_id, node_ids, force=False):
|
||||
"""Deploy specified nodes for the specified environment."""
|
||||
|
||||
nodes = ','.join(str(i) for i in node_ids)
|
||||
uri = self.deploy_nodes_url.format(env_id=environment_id,
|
||||
nodes=nodes)
|
||||
nodes=nodes, force=int(force))
|
||||
return self.connection.put_request(uri, {})
|
||||
|
||||
def redeploy_changes(self, environment_id, dry_run=False, noop_run=False):
|
||||
|
||||
Reference in New Issue
Block a user