Support '--tags' for 'overcloud upgrade run'
This will allow more specialized usage of upgrade run command, similar to patterns used with 'external-upgrade run', e.g. during reprovisioning of nodes. Also, validation on '--skip-tags' is removed because we should no longer assume what tags are defined by the upgrade tasks, and we should allow more free-form usage. Change-Id: Icf672cc0db50ea6daa57d3c5abe131c82553fc5a Implements: blueprint upgrades-with-os
This commit is contained in:
parent
500341c835
commit
78bf55c8ef
@ -207,6 +207,39 @@ class TestOvercloudUpgradeRun(fakes.TestOvercloudUpgradeRun):
|
|||||||
verbosity=1
|
verbosity=1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@mock.patch('tripleoclient.workflows.package_update.update_ansible',
|
||||||
|
autospec=True)
|
||||||
|
@mock.patch('os.path.expanduser')
|
||||||
|
@mock.patch('oslo_concurrency.processutils.execute')
|
||||||
|
@mock.patch('six.moves.builtins.open')
|
||||||
|
def test_upgrade_role_all_playbooks_only_validation(
|
||||||
|
self, mock_open, mock_execute, mock_expanduser, upgrade_ansible):
|
||||||
|
mock_expanduser.return_value = '/home/fake/'
|
||||||
|
argslist = ['--roles', 'Compute', '--playbook', 'all',
|
||||||
|
'--tags', 'validation']
|
||||||
|
verifylist = [
|
||||||
|
('roles', 'Compute'),
|
||||||
|
('static_inventory', None),
|
||||||
|
('playbook', 'all'),
|
||||||
|
('tags', 'validation')
|
||||||
|
]
|
||||||
|
|
||||||
|
parsed_args = self.check_parser(self.cmd, argslist, verifylist)
|
||||||
|
with mock.patch('os.path.exists') as mock_exists:
|
||||||
|
mock_exists.return_value = True
|
||||||
|
self.cmd.take_action(parsed_args)
|
||||||
|
for book in constants.MAJOR_UPGRADE_PLAYBOOKS:
|
||||||
|
upgrade_ansible.assert_any_call(
|
||||||
|
self.app.client_manager,
|
||||||
|
nodes='Compute',
|
||||||
|
inventory_file=mock_open().read(),
|
||||||
|
playbook=book,
|
||||||
|
node_user='tripleo-admin',
|
||||||
|
tags='validation',
|
||||||
|
skip_tags='',
|
||||||
|
verbosity=1,
|
||||||
|
)
|
||||||
|
|
||||||
@mock.patch('tripleoclient.workflows.package_update.update_ansible',
|
@mock.patch('tripleoclient.workflows.package_update.update_ansible',
|
||||||
autospec=True)
|
autospec=True)
|
||||||
@mock.patch('os.path.expanduser')
|
@mock.patch('os.path.expanduser')
|
||||||
|
@ -166,6 +166,14 @@ class UpgradeRun(command.Command):
|
|||||||
help=_("DEPRECATED: Only tripleo-admin should be "
|
help=_("DEPRECATED: Only tripleo-admin should be "
|
||||||
"used as ssh user.")
|
"used as ssh user.")
|
||||||
)
|
)
|
||||||
|
parser.add_argument('--tags',
|
||||||
|
dest='tags',
|
||||||
|
action="store",
|
||||||
|
default="",
|
||||||
|
help=_('A string specifying the tag or comma '
|
||||||
|
'separated list of tags to be passed '
|
||||||
|
'as --tags to ansible-playbook.')
|
||||||
|
)
|
||||||
parser.add_argument('--skip-tags',
|
parser.add_argument('--skip-tags',
|
||||||
dest='skip_tags',
|
dest='skip_tags',
|
||||||
action="store",
|
action="store",
|
||||||
@ -221,8 +229,9 @@ class UpgradeRun(command.Command):
|
|||||||
constants.MAJOR_UPGRADE_PLAYBOOKS,
|
constants.MAJOR_UPGRADE_PLAYBOOKS,
|
||||||
package_update,
|
package_update,
|
||||||
parsed_args.ssh_user,
|
parsed_args.ssh_user,
|
||||||
skip_tags=skip_tags,
|
parsed_args.tags,
|
||||||
verbosity=verbosity)
|
skip_tags,
|
||||||
|
verbosity)
|
||||||
|
|
||||||
playbooks = (constants.MAJOR_UPGRADE_PLAYBOOKS
|
playbooks = (constants.MAJOR_UPGRADE_PLAYBOOKS
|
||||||
if playbook == 'all' else playbook)
|
if playbook == 'all' else playbook)
|
||||||
|
Loading…
Reference in New Issue
Block a user