Add --stack to update, upgrade and ffwd-upgrade 'run' CLI.

We need to be able to define the stack name if it
is different than 'overcloud', for the ansible inventory
used with the upgrade playbooks.

(cherry picked from commit 5181d8af5f)
(cherry picked from commit 01f5fd25aa)
Change-Id: I0499eabc5c6f15cb32b2471c86245578c71a2a60
Closes-Bug: 1767379
This commit is contained in:
Carlos Camacho 2018-04-27 16:03:33 +02:00
parent 77b99d617d
commit f307dd7dae
2 changed files with 6 additions and 8 deletions

View File

@ -64,7 +64,7 @@ class TestOvercloudUpdate(fakes.TestOvercloudUpdate):
self.cmd.take_action(parsed_args) self.cmd.take_action(parsed_args)
mock_update.assert_called_once_with( mock_update.assert_called_once_with(
self.app.client_manager, self.app.client_manager,
container='mystack', container='overcloud',
container_registry={'fake_container': 'fake_value'}, container_registry={'fake_container': 'fake_value'},
ceph_ansible_playbook='/usr/share/ceph-ansible' ceph_ansible_playbook='/usr/share/ceph-ansible'
'/site-docker.yml.sample', '/site-docker.yml.sample',

View File

@ -24,7 +24,6 @@ from oslo_concurrency import processutils
from tripleoclient import constants from tripleoclient import constants
from tripleoclient import exceptions from tripleoclient import exceptions
from tripleoclient import utils as oooutils
from tripleoclient.workflows import package_update from tripleoclient.workflows import package_update
@ -88,16 +87,14 @@ class UpdateOvercloud(command.Command):
'use. If not specified, one will be ' 'use. If not specified, one will be '
'generated in ~/tripleo-ansible-inventory') 'generated in ~/tripleo-ansible-inventory')
) )
return parser return parser
def take_action(self, parsed_args): def take_action(self, parsed_args):
self.log.debug("take_action(%s)" % parsed_args) self.log.debug("take_action(%s)" % parsed_args)
clients = self.app.client_manager clients = self.app.client_manager
stack = parsed_args.stack
stack = oooutils.get_stack(clients.orchestration,
parsed_args.stack)
stack_name = stack.stack_name
container_registry = parsed_args.container_registry_file container_registry = parsed_args.container_registry_file
if parsed_args.init_minor_update: if parsed_args.init_minor_update:
@ -115,14 +112,14 @@ class UpdateOvercloud(command.Command):
registry = None registry = None
# Execute minor update # Execute minor update
ceph_ansible_playbook = parsed_args.ceph_ansible_playbook ceph_ansible_playbook = parsed_args.ceph_ansible_playbook
package_update.update(clients, container=stack_name, package_update.update(clients, container=stack,
container_registry=registry, container_registry=registry,
ceph_ansible_playbook=ceph_ansible_playbook, ceph_ansible_playbook=ceph_ansible_playbook,
queue_name=str(uuid.uuid4())) queue_name=str(uuid.uuid4()))
print("Heat stack update init on {0} complete.".format( print("Heat stack update init on {0} complete.".format(
parsed_args.stack)) parsed_args.stack))
package_update.get_config(clients, container=stack_name) package_update.get_config(clients, container=stack)
print("Init minor update on stack {0} complete.".format( print("Init minor update on stack {0} complete.".format(
parsed_args.stack)) parsed_args.stack))
else: else:
@ -135,6 +132,7 @@ class UpdateOvercloud(command.Command):
'tripleo-ansible-inventory') 'tripleo-ansible-inventory')
try: try:
processutils.execute('/bin/tripleo-ansible-inventory', processutils.execute('/bin/tripleo-ansible-inventory',
'--stack', stack,
'--static-inventory', inventory_file) '--static-inventory', inventory_file)
except processutils.ProcessExecutionError as e: except processutils.ProcessExecutionError as e:
message = "Failed to generate inventory: %s" % str(e) message = "Failed to generate inventory: %s" % str(e)