Update verbosity so it is consistently set

This change will set the verbosity consistently whenever a playbook is
executed via the client.

All tests have been updated to ensure that the verbosity setting is always
defined when a playbook is executed.

Change-Id: I35b10d48344c8b7f71186bc529a300f75d7b8d63
Signed-off-by: Kevin Carter <kecarter@redhat.com>
This commit is contained in:
Kevin Carter 2020-04-02 14:49:45 -05:00 committed by Emilien Macchi
parent c7ff66854a
commit 624a61f206
39 changed files with 385 additions and 168 deletions

View File

@ -1660,7 +1660,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
inventory='localhost,', inventory='localhost,',
playbook='cli-overcloud-node-provision.yaml', playbook='cli-overcloud-node-provision.yaml',
playbook_dir='/usr/share/ansible/tripleo-playbooks', playbook_dir='/usr/share/ansible/tripleo-playbooks',
verbosity=0, verbosity=3,
workdir=mock.ANY workdir=mock.ANY
), ),
mock.call( mock.call(
@ -1675,7 +1675,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
inventory='localhost,', inventory='localhost,',
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
playbook_dir='/usr/share/ansible/tripleo-playbooks', playbook_dir='/usr/share/ansible/tripleo-playbooks',
verbosity=0, verbosity=3,
workdir=mock.ANY workdir=mock.ANY
) )
]) ])

View File

@ -101,7 +101,8 @@ class TestFFWDUpgradePrepare(fakes.TestFFWDUpgradePrepare):
parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_network,
parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_user,
mock.ANY, mock.ANY,
parsed_args.overcloud_ssh_port_timeout parsed_args.overcloud_ssh_port_timeout,
mock.ANY
) )
mock_overcloud_deploy.assert_called_once_with(parsed_args) mock_overcloud_deploy.assert_called_once_with(parsed_args)

View File

@ -199,7 +199,7 @@ class TestDeleteNode(fakes.TestDeleteNode):
mock.call( mock.call(
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
inventory='localhost,', inventory='localhost,',
verbosity=0, verbosity=mock.ANY,
workdir=mock.ANY, workdir=mock.ANY,
playbook_dir='/usr/share/ansible/tripleo-playbooks', playbook_dir='/usr/share/ansible/tripleo-playbooks',
extra_vars={ extra_vars={
@ -229,6 +229,7 @@ class TestDeleteNode(fakes.TestDeleteNode):
inventory='localhost,', inventory='localhost,',
workdir=mock.ANY, workdir=mock.ANY,
playbook_dir='/usr/share/ansible/tripleo-playbooks', playbook_dir='/usr/share/ansible/tripleo-playbooks',
verbosity=mock.ANY,
extra_vars={ extra_vars={
'access_path': '/var/lib/mistral', 'access_path': '/var/lib/mistral',
'execution_user': mock.ANY}, 'execution_user': mock.ANY},
@ -240,7 +241,7 @@ class TestDeleteNode(fakes.TestDeleteNode):
playbook_dir=mock.ANY, playbook_dir=mock.ANY,
skip_tags='opendev-validation', skip_tags='opendev-validation',
ansible_cfg=None, ansible_cfg=None,
verbosity=1, verbosity=mock.ANY,
ssh_user='tripleo-admin', ssh_user='tripleo-admin',
key=mock.ANY, key=mock.ANY,
limit_hosts='overcast-controller-1:overcast-compute-0', limit_hosts='overcast-controller-1:overcast-compute-0',
@ -253,7 +254,7 @@ class TestDeleteNode(fakes.TestDeleteNode):
mock.call( mock.call(
inventory='localhost,', inventory='localhost,',
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
verbosity=0, verbosity=mock.ANY,
workdir=mock.ANY, workdir=mock.ANY,
playbook_dir='/usr/share/ansible/tripleo-playbooks', playbook_dir='/usr/share/ansible/tripleo-playbooks',
extra_vars={ extra_vars={

View File

@ -106,7 +106,8 @@ class TestOvercloudUpgradePrepare(fakes.TestOvercloudUpgradePrepare):
parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_network,
parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_user,
mock.ANY, mock.ANY,
parsed_args.overcloud_ssh_port_timeout parsed_args.overcloud_ssh_port_timeout,
mock.ANY
) )
@mock.patch('tripleoclient.v1.overcloud_deploy.DeployOvercloud.' @mock.patch('tripleoclient.v1.overcloud_deploy.DeployOvercloud.'

View File

@ -38,5 +38,6 @@ class TestAdminAuthorize(test_plugin.TestPluginV1):
parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_network,
parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_user,
mock.ANY, mock.ANY,
parsed_args.overcloud_ssh_port_timeout parsed_args.overcloud_ssh_port_timeout,
mock.ANY
) )

View File

@ -16,6 +16,7 @@ import tempfile
from osc_lib.tests import utils as test_utils from osc_lib.tests import utils as test_utils
from tripleoclient.tests import fakes as ooofakes
from tripleoclient.tests.v1.baremetal import fakes from tripleoclient.tests.v1.baremetal import fakes
from tripleoclient.v1 import overcloud_bios from tripleoclient.v1 import overcloud_bios
@ -48,7 +49,10 @@ class TestConfigureBIOS(Base):
def setUp(self): def setUp(self):
super(TestConfigureBIOS, self).setUp() super(TestConfigureBIOS, self).setUp()
self.cmd = overcloud_bios.ConfigureBIOS(self.app, None) app_args = mock.Mock()
app_args.verbose_level = 1
self.app.options = ooofakes.FakeOptions()
self.cmd = overcloud_bios.ConfigureBIOS(self.app, app_args)
playbook_runner = mock.patch( playbook_runner = mock.patch(
'tripleoclient.utils.run_ansible_playbook', 'tripleoclient.utils.run_ansible_playbook',
autospec=True autospec=True
@ -144,7 +148,10 @@ class TestResetBIOS(Base):
def setUp(self): def setUp(self):
super(TestResetBIOS, self).setUp() super(TestResetBIOS, self).setUp()
self.cmd = overcloud_bios.ResetBIOS(self.app, None) app_args = mock.Mock()
app_args.verbose_level = 1
self.app.options = ooofakes.FakeOptions()
self.cmd = overcloud_bios.ResetBIOS(self.app, app_args)
playbook_runner = mock.patch( playbook_runner = mock.patch(
'tripleoclient.utils.run_ansible_playbook', 'tripleoclient.utils.run_ansible_playbook',
autospec=True autospec=True

View File

@ -19,6 +19,7 @@ from osc_lib.tests import utils
import yaml import yaml
from tripleoclient import exceptions from tripleoclient import exceptions
from tripleoclient.tests import fakes
from tripleoclient.v1 import overcloud_parameters from tripleoclient.v1 import overcloud_parameters
@ -26,8 +27,10 @@ class TestSetParameters(utils.TestCommand):
def setUp(self): def setUp(self):
super(TestSetParameters, self).setUp() super(TestSetParameters, self).setUp()
app_args = mock.Mock()
self.cmd = overcloud_parameters.SetParameters(self.app, None) app_args.verbose_level = 1
self.app.options = fakes.FakeOptions()
self.cmd = overcloud_parameters.SetParameters(self.app, app_args)
self.app.client_manager.workflow_engine = mock.Mock() self.app.client_manager.workflow_engine = mock.Mock()
self.workflow = self.app.client_manager.workflow_engine self.workflow = self.app.client_manager.workflow_engine

View File

@ -95,7 +95,10 @@ class TestOvercloudCreatePlan(utils.TestCommand):
def setUp(self): def setUp(self):
super(TestOvercloudCreatePlan, self).setUp() super(TestOvercloudCreatePlan, self).setUp()
self.cmd = overcloud_plan.CreatePlan(self.app, None) app_args = mock.Mock()
app_args.verbose_level = 1
self.app.options = fakes.FakeOptions()
self.cmd = overcloud_plan.CreatePlan(self.app, app_args)
self.app.client_manager.workflow_engine = mock.Mock() self.app.client_manager.workflow_engine = mock.Mock()
self.tripleoclient = mock.Mock() self.tripleoclient = mock.Mock()
self.app.client_manager.tripleoclient = self.tripleoclient self.app.client_manager.tripleoclient = self.tripleoclient
@ -172,6 +175,7 @@ class TestOvercloudCreatePlan(utils.TestCommand):
('templates', '/fake/path'), ('templates', '/fake/path'),
('plan_environment_file', 'the_plan_environment.yaml') ('plan_environment_file', 'the_plan_environment.yaml')
] ]
self.app.options = fakes.FakeOptions()
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
mock_open = mock.mock_open() mock_open = mock.mock_open()
@ -211,6 +215,7 @@ class TestOvercloudCreatePlan(utils.TestCommand):
parsed_args = self.check_parser(self.cmd, arglist, verifylist) parsed_args = self.check_parser(self.cmd, arglist, verifylist)
# Run # Run
self.app.options = fakes.FakeOptions()
self.cmd.take_action(parsed_args) self.cmd.take_action(parsed_args)
# Verify # Verify
mock_run_playbook.assert_called_once_with( mock_run_playbook.assert_called_once_with(
@ -233,6 +238,7 @@ class TestOvercloudDeployPlan(utils.TestCommand):
app_args = mock.Mock() app_args = mock.Mock()
app_args.verbose_level = 1 app_args.verbose_level = 1
self.app.options = fakes.FakeOptions()
self.cmd = overcloud_plan.DeployPlan(self.app, app_args) self.cmd = overcloud_plan.DeployPlan(self.app, app_args)
sleep_patch = mock.patch('time.sleep') sleep_patch = mock.patch('time.sleep')
@ -270,7 +276,7 @@ class TestOvercloudDeployPlan(utils.TestCommand):
"container": "overcast", "container": "overcast",
"run_validations": True, "run_validations": True,
"skip_deploy_identifier": False, "skip_deploy_identifier": False,
"timeout_mins": 240 "ansible_timeout": 240
}, },
verbosity=3, verbosity=3,
) )

View File

@ -16,6 +16,7 @@ import tempfile
from osc_lib.tests import utils as test_utils from osc_lib.tests import utils as test_utils
from tripleoclient.tests import fakes as ooofakes
from tripleoclient.tests.v1.baremetal import fakes from tripleoclient.tests.v1.baremetal import fakes
from tripleoclient.v1 import overcloud_raid from tripleoclient.v1 import overcloud_raid
@ -24,8 +25,10 @@ class TestCreateRAID(fakes.TestBaremetal):
def setUp(self): def setUp(self):
super(TestCreateRAID, self).setUp() super(TestCreateRAID, self).setUp()
app_args = mock.Mock()
self.cmd = overcloud_raid.CreateRAID(self.app, None) app_args.verbose_level = 1
self.app.options = ooofakes.FakeOptions()
self.cmd = overcloud_raid.CreateRAID(self.app, app_args)
self.workflow = self.app.client_manager.workflow_engine self.workflow = self.app.client_manager.workflow_engine
self.conf = { self.conf = {

View File

@ -113,6 +113,7 @@ class TestImportNode(fakes.TestOvercloudNode):
playbook=mock.ANY, playbook=mock.ANY,
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=mock.ANY,
extra_vars={ extra_vars={
'node_uuids': ['MOCK_NODE_UUID'], 'node_uuids': ['MOCK_NODE_UUID'],
'run_validations': False, 'run_validations': False,
@ -145,6 +146,7 @@ class TestImportNode(fakes.TestOvercloudNode):
playbook=mock.ANY, playbook=mock.ANY,
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=mock.ANY,
extra_vars={ extra_vars={
'node_uuids': ['MOCK_NODE_UUID'] 'node_uuids': ['MOCK_NODE_UUID']
} }
@ -205,6 +207,7 @@ class TestIntrospectNode(fakes.TestOvercloudNode):
playbook=mock.ANY, playbook=mock.ANY,
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=mock.ANY,
extra_vars={ extra_vars={
'node_uuids': [], 'node_uuids': [],
'run_validations': False, 'run_validations': False,
@ -226,6 +229,7 @@ class TestIntrospectNode(fakes.TestOvercloudNode):
playbook='cli-overcloud-node-provide.yaml', playbook='cli-overcloud-node-provide.yaml',
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=mock.ANY,
extra_vars={ extra_vars={
'node_uuids': [] 'node_uuids': []
} }
@ -244,6 +248,7 @@ class TestIntrospectNode(fakes.TestOvercloudNode):
playbook='cli-baremetal-introspect.yaml', playbook='cli-baremetal-introspect.yaml',
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=mock.ANY,
extra_vars={ extra_vars={
'node_uuids': nodes, 'node_uuids': nodes,
'run_validations': False, 'run_validations': False,
@ -266,6 +271,7 @@ class TestIntrospectNode(fakes.TestOvercloudNode):
playbook='cli-overcloud-node-provide.yaml', playbook='cli-overcloud-node-provide.yaml',
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=mock.ANY,
extra_vars={ extra_vars={
'node_uuids': nodes 'node_uuids': nodes
} }
@ -387,7 +393,7 @@ class TestProvisionNode(fakes.TestOvercloudNode):
inventory='localhost,', inventory='localhost,',
playbook='cli-overcloud-node-provision.yaml', playbook='cli-overcloud-node-provision.yaml',
playbook_dir='/usr/share/ansible/tripleo-playbooks', playbook_dir='/usr/share/ansible/tripleo-playbooks',
verbosity=0, verbosity=mock.ANY,
workdir=mock.ANY workdir=mock.ANY
) )
@ -438,7 +444,7 @@ class TestUnprovisionNode(fakes.TestOvercloudNode):
inventory='localhost,', inventory='localhost,',
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
playbook_dir='/usr/share/ansible/tripleo-playbooks', playbook_dir='/usr/share/ansible/tripleo-playbooks',
verbosity=0, verbosity=mock.ANY,
workdir=tmp workdir=tmp
), ),
mock.call( mock.call(
@ -454,7 +460,7 @@ class TestUnprovisionNode(fakes.TestOvercloudNode):
inventory='localhost,', inventory='localhost,',
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
playbook_dir='/usr/share/ansible/tripleo-playbooks', playbook_dir='/usr/share/ansible/tripleo-playbooks',
verbosity=0, verbosity=mock.ANY,
workdir=tmp workdir=tmp
) )
]) ])

View File

@ -17,6 +17,7 @@ import mock
from osc_lib.tests import utils from osc_lib.tests import utils
from tripleoclient.tests import fakes
from tripleoclient.v2 import overcloud_support from tripleoclient.v2 import overcloud_support
@ -26,7 +27,10 @@ class TestOvercloudSupportReport(utils.TestCommand):
super(TestOvercloudSupportReport, self).setUp() super(TestOvercloudSupportReport, self).setUp()
# Get the command object to test # Get the command object to test
self.cmd = overcloud_support.ReportExecute(self.app, None) app_args = mock.Mock()
app_args.verbose_level = 1
self.app.options = fakes.FakeOptions()
self.cmd = overcloud_support.ReportExecute(self.app, app_args)
@mock.patch('tripleoclient.utils.run_ansible_playbook', @mock.patch('tripleoclient.utils.run_ansible_playbook',
autospec=True) autospec=True)
@ -38,6 +42,7 @@ class TestOvercloudSupportReport(utils.TestCommand):
playbook='cli-support-collect-logs.yaml', playbook='cli-support-collect-logs.yaml',
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=mock.ANY, playbook_dir=mock.ANY,
verbosity=3,
extra_vars={ extra_vars={
'server_name': 'all', 'server_name': 'all',
'sos_destination': '/var/lib/tripleo/support' 'sos_destination': '/var/lib/tripleo/support'
@ -55,6 +60,7 @@ class TestOvercloudSupportReport(utils.TestCommand):
playbook='cli-support-collect-logs.yaml', playbook='cli-support-collect-logs.yaml',
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=mock.ANY, playbook_dir=mock.ANY,
verbosity=3,
extra_vars={ extra_vars={
'server_name': 'server1', 'server_name': 'server1',
'sos_destination': 'test' 'sos_destination': 'test'

View File

@ -18,6 +18,7 @@ import mock
from osc_lib.tests import utils from osc_lib.tests import utils
from tripleoclient import constants from tripleoclient import constants
from tripleoclient.tests import fakes
from tripleoclient.v2 import undercloud_backup from tripleoclient.v2 import undercloud_backup
@ -27,7 +28,10 @@ class TestUndercloudBackup(utils.TestCommand):
super(TestUndercloudBackup, self).setUp() super(TestUndercloudBackup, self).setUp()
# Get the command object to test # Get the command object to test
self.cmd = undercloud_backup.BackupUndercloud(self.app, None) app_args = mock.Mock()
app_args.verbose_level = 1
self.app.options = fakes.FakeOptions()
self.cmd = undercloud_backup.BackupUndercloud(self.app, app_args)
self.app.client_manager.workflow_engine = mock.Mock() self.app.client_manager.workflow_engine = mock.Mock()
self.workflow = self.app.client_manager.workflow_engine self.workflow = self.app.client_manager.workflow_engine
@ -45,6 +49,7 @@ class TestUndercloudBackup(utils.TestCommand):
playbook='cli-undercloud-backup.yaml', playbook='cli-undercloud-backup.yaml',
inventory='localhost,', inventory='localhost,',
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=3,
extra_vars={ extra_vars={
'sources_path': '/home/stack/' 'sources_path': '/home/stack/'
} }
@ -69,6 +74,7 @@ class TestUndercloudBackup(utils.TestCommand):
playbook=mock.ANY, playbook=mock.ANY,
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=3,
extra_vars={'sources_path': extra_vars={'sources_path':
'/home/stack/,/tmp/bar.yaml,/tmp/foo.yaml'}) '/home/stack/,/tmp/bar.yaml,/tmp/foo.yaml'})
@ -94,6 +100,7 @@ class TestUndercloudBackup(utils.TestCommand):
workdir=mock.ANY, workdir=mock.ANY,
playbook=mock.ANY, playbook=mock.ANY,
inventory=mock.ANY, inventory=mock.ANY,
verbosity=3,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
extra_vars={'sources_path': extra_vars={'sources_path':
'/tmp/foo.yaml'}) '/tmp/foo.yaml'})
@ -121,6 +128,7 @@ class TestUndercloudBackup(utils.TestCommand):
playbook=mock.ANY, playbook=mock.ANY,
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=3,
extra_vars={'sources_path': extra_vars={'sources_path':
'/home/stack/,/tmp/bar.yaml'}) '/home/stack/,/tmp/bar.yaml'})
@ -143,5 +151,6 @@ class TestUndercloudBackup(utils.TestCommand):
playbook=mock.ANY, playbook=mock.ANY,
inventory=mock.ANY, inventory=mock.ANY,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=3,
extra_vars={'sources_path': extra_vars={'sources_path':
'/home/stack/,/tmp/foo.yaml'}) '/home/stack/,/tmp/foo.yaml'})

View File

@ -91,7 +91,7 @@ class TestBaremetalWorkflows(fakes.FakePlaybookExecution):
baremetal.configure_manageable_nodes(self.app.client_manager) baremetal.configure_manageable_nodes(self.app.client_manager)
def test_clean_nodes_success(self): def test_clean_nodes_success(self):
baremetal.clean_nodes(self.app.client_manager, node_uuids=[]) baremetal.clean_nodes(node_uuids=[])
def test_clean_manageable_nodes_success(self): def test_clean_manageable_nodes_success(self):
baremetal.clean_manageable_nodes( baremetal.clean_manageable_nodes(

View File

@ -141,6 +141,7 @@ class TestParameterWorkflows(utils.TestCommand):
inventory=mock.ANY, inventory=mock.ANY,
workdir=mock.ANY, workdir=mock.ANY,
playbook_dir=mock.ANY, playbook_dir=mock.ANY,
verbosity=0,
extra_vars={'num_phy_cores_per_numa_node_for_pmd': 2} extra_vars={'num_phy_cores_per_numa_node_for_pmd': 2}
) )
] ]
@ -179,6 +180,7 @@ class TestParameterWorkflows(utils.TestCommand):
inventory=mock.ANY, inventory=mock.ANY,
workdir=mock.ANY, workdir=mock.ANY,
playbook_dir=mock.ANY, playbook_dir=mock.ANY,
verbosity=0,
extra_vars={'num_phy_cores_per_numa_node_for_pmd': 2} extra_vars={'num_phy_cores_per_numa_node_for_pmd': 2}
), ),
mock.call( mock.call(
@ -186,6 +188,7 @@ class TestParameterWorkflows(utils.TestCommand):
inventory=mock.ANY, inventory=mock.ANY,
workdir=mock.ANY, workdir=mock.ANY,
playbook_dir='/playbook/dir-1', playbook_dir='/playbook/dir-1',
verbosity=0,
extra_vars={'some_opt': 0} extra_vars={'some_opt': 0}
) )
] ]

View File

@ -49,7 +49,7 @@ class TestPlanCreationWorkflows(utils.TestCommand):
"generate_passwords": True, "generate_passwords": True,
"validate": False "validate": False
}, },
verbosity=3, verbosity=0,
) )
@mock.patch("tripleoclient.utils.run_ansible_playbook", autospec=True) @mock.patch("tripleoclient.utils.run_ansible_playbook", autospec=True)
@ -77,7 +77,7 @@ class TestPlanCreationWorkflows(utils.TestCommand):
"generate_passwords": True, "generate_passwords": True,
"validate": False "validate": False
}, },
verbosity=3, verbosity=0,
) )
self.assertIn(mock.call('the_roles_file.yaml', '/tht-root/'), self.assertIn(mock.call('the_roles_file.yaml', '/tht-root/'),
@ -110,7 +110,7 @@ class TestPlanCreationWorkflows(utils.TestCommand):
"plan_environment": "the-plan-environment.yaml", "plan_environment": "the-plan-environment.yaml",
"validate": False "validate": False
}, },
verbosity=3, verbosity=0,
) )
mock_open_context.assert_has_calls( mock_open_context.assert_has_calls(
[mock.call('the-plan-environment.yaml', 'rb')]) [mock.call('the-plan-environment.yaml', 'rb')])
@ -141,7 +141,7 @@ class TestPlanCreationWorkflows(utils.TestCommand):
"generate_passwords": True, "generate_passwords": True,
"validate": False "validate": False
}, },
verbosity=3, verbosity=0,
) )
mock_open_context.assert_has_calls( mock_open_context.assert_has_calls(
[mock.call('the-network-data.yaml', 'rb')]) [mock.call('the-network-data.yaml', 'rb')])
@ -170,7 +170,7 @@ class TestPlanCreationWorkflows(utils.TestCommand):
"generate_passwords": False, "generate_passwords": False,
"validate": False "validate": False
}, },
verbosity=3, verbosity=0,
) )
@ -252,7 +252,7 @@ class TestPlanUpdateWorkflows(base.TestCommand):
"generate_passwords": True, "generate_passwords": True,
"validate": False "validate": False
}, },
verbosity=3, verbosity=1,
) )
@mock.patch("tripleoclient.utils.run_ansible_playbook", autospec=True) @mock.patch("tripleoclient.utils.run_ansible_playbook", autospec=True)
@ -288,7 +288,7 @@ class TestPlanUpdateWorkflows(base.TestCommand):
"generate_passwords": True, "generate_passwords": True,
"validate": False "validate": False
}, },
verbosity=3, verbosity=1,
) )
@mock.patch("tripleoclient.utils.run_ansible_playbook", autospec=True) @mock.patch("tripleoclient.utils.run_ansible_playbook", autospec=True)
@ -323,7 +323,7 @@ class TestPlanUpdateWorkflows(base.TestCommand):
"generate_passwords": True, "generate_passwords": True,
"validate": False "validate": False
}, },
verbosity=3, verbosity=1,
) )

View File

@ -204,6 +204,24 @@ def makedirs(dir_path):
return True return True
def playbook_verbosity(self):
"""Return an integer for playbook verbosity levels.
:param self: Class object used to interpret the runtime state.
:type self: Object
:returns: Integer
"""
if self.app.options.debug:
return 3
else:
if self.app_args.verbose_level <= 1:
return 0
else:
return self.app_args.verbose_level
def run_ansible_playbook(playbook, inventory, workdir, playbook_dir=None, def run_ansible_playbook(playbook, inventory, workdir, playbook_dir=None,
connection='smart', output_callback='yaml', connection='smart', output_callback='yaml',
ssh_user='root', key=None, module_path=None, ssh_user='root', key=None, module_path=None,

View File

@ -84,5 +84,6 @@ class Authorize(command.Command):
parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_network,
parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_user,
self.get_key_pair(parsed_args), self.get_key_pair(parsed_args),
parsed_args.overcloud_ssh_port_timeout parsed_args.overcloud_ssh_port_timeout,
verbosity=oooutils.playbook_verbosity(self=self)
) )

View File

@ -20,6 +20,7 @@ from osc_lib.i18n import _
import yaml import yaml
from tripleoclient import command from tripleoclient import command
from tripleoclient import utils
from tripleoclient.workflows import baremetal from tripleoclient.workflows import baremetal
@ -81,11 +82,16 @@ class ConfigureBIOS(command.Command):
clients = self.app.client_manager clients = self.app.client_manager
if parsed_args.node_uuids: if parsed_args.node_uuids:
baremetal.apply_bios_configuration( baremetal.apply_bios_configuration(
clients, node_uuids=parsed_args.node_uuids, node_uuids=parsed_args.node_uuids,
configuration=configuration) configuration=configuration,
verbosity=utils.playbook_verbosity(self=self)
)
else: else:
baremetal.apply_bios_configuration_on_manageable_nodes( baremetal.apply_bios_configuration_on_manageable_nodes(
clients, configuration=configuration) clients,
configuration=configuration,
verbosity=utils.playbook_verbosity(self=self)
)
class ResetBIOS(command.Command): class ResetBIOS(command.Command):
@ -114,6 +120,11 @@ class ResetBIOS(command.Command):
clients = self.app.client_manager clients = self.app.client_manager
if parsed_args.node_uuids: if parsed_args.node_uuids:
baremetal.reset_bios_configuration( baremetal.reset_bios_configuration(
clients, node_uuids=parsed_args.node_uuids) node_uuids=parsed_args.node_uuids,
verbosity=utils.playbook_verbosity(self=self)
)
else: else:
baremetal.reset_bios_configuration_on_manageable_nodes(clients) baremetal.reset_bios_configuration_on_manageable_nodes(
clients=clients,
verbosity=utils.playbook_verbosity(self=self)
)

View File

@ -222,9 +222,12 @@ class DeployOvercloud(command.Command):
# Invokes the workflows specified in plan environment file # Invokes the workflows specified in plan environment file
if plan_env_file: if plan_env_file:
workflow_params.invoke_plan_env_workflows(self.clients, workflow_params.invoke_plan_env_workflows(
stack_name, self.clients,
plan_env_file) stack_name,
plan_env_file,
verbosity=utils.playbook_verbosity(self=self)
)
workflow_params.check_deprecated_parameters(self.clients, stack_name) workflow_params.check_deprecated_parameters(self.clients, stack_name)
@ -232,12 +235,16 @@ class DeployOvercloud(command.Command):
print("Deploying templates in the directory {0}".format( print("Deploying templates in the directory {0}".format(
os.path.abspath(tht_root))) os.path.abspath(tht_root)))
deployment.deploy_and_wait( deployment.deploy_and_wait(
self.log, self.clients, stack, log=self.log,
stack_name, self.app_args.verbose_level, clients=self.clients,
stack=stack,
plan_name=stack_name,
verbose_level=utils.playbook_verbosity(self=self),
timeout=timeout, timeout=timeout,
run_validations=run_validations, run_validations=run_validations,
skip_deploy_identifier=skip_deploy_identifier, skip_deploy_identifier=skip_deploy_identifier,
deployment_options=deployment_options) deployment_options=deployment_options
)
def _process_and_upload_environment(self, container_name, def _process_and_upload_environment(self, container_name,
env, moved_files, tht_root): env, moved_files, tht_root):
@ -299,6 +306,7 @@ class DeployOvercloud(command.Command):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=utils.playbook_verbosity(self=self),
extra_vars={ extra_vars={
"container": container_name, "container": container_name,
"parameters": params "parameters": params
@ -397,14 +405,18 @@ class DeployOvercloud(command.Command):
parsed_args.plan_environment_file, parsed_args.plan_environment_file,
parsed_args.networks_file, parsed_args.networks_file,
type(self)._keep_env_on_update, type(self)._keep_env_on_update,
validate_stack=False) validate_stack=False,
verbosity_level=utils.playbook_verbosity(self=self)
)
else: else:
plan_management.create_plan_from_templates( plan_management.create_plan_from_templates(
self.clients, parsed_args.stack, tht_root, self.clients, parsed_args.stack, tht_root,
parsed_args.roles_file, generate_passwords, parsed_args.roles_file, generate_passwords,
parsed_args.plan_environment_file, parsed_args.plan_environment_file,
parsed_args.networks_file, parsed_args.networks_file,
validate_stack=False) validate_stack=False,
verbosity_level=utils.playbook_verbosity(self=self)
)
# Get any missing (e.g j2 rendered) files from the plan to tht_root # Get any missing (e.g j2 rendered) files from the plan to tht_root
self._download_missing_files_from_plan( self._download_missing_files_from_plan(
@ -646,9 +658,9 @@ class DeployOvercloud(command.Command):
utils.run_ansible_playbook( utils.run_ansible_playbook(
playbook='cli-overcloud-node-provision.yaml', playbook='cli-overcloud-node-provision.yaml',
inventory='localhost,', inventory='localhost,',
verbosity=self.app_args.verbose_level - 1,
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=utils.playbook_verbosity(self=self),
extra_vars=extra_vars, extra_vars=extra_vars,
) )
@ -677,9 +689,9 @@ class DeployOvercloud(command.Command):
utils.run_ansible_playbook( utils.run_ansible_playbook(
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
inventory='localhost,', inventory='localhost,',
verbosity=self.app_args.verbose_level - 1,
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=utils.playbook_verbosity(self=self),
extra_vars={ extra_vars={
"stack_name": parsed_args.stack, "stack_name": parsed_args.stack,
"baremetal_deployment": roles, "baremetal_deployment": roles,
@ -1006,7 +1018,8 @@ class DeployOvercloud(command.Command):
parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_network,
parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_user,
self.get_key_pair(parsed_args), self.get_key_pair(parsed_args),
parsed_args.overcloud_ssh_port_timeout parsed_args.overcloud_ssh_port_timeout,
verbosity=utils.playbook_verbosity(self=self)
) )
if parsed_args.config_download_timeout: if parsed_args.config_download_timeout:
@ -1028,7 +1041,7 @@ class DeployOvercloud(command.Command):
parsed_args.output_dir, parsed_args.output_dir,
parsed_args.override_ansible_cfg, parsed_args.override_ansible_cfg,
timeout, timeout,
verbosity=self.app_args.verbose_level, verbosity=utils.playbook_verbosity(self=self),
deployment_options=deployment_options, deployment_options=deployment_options,
in_flight_validations=parsed_args.inflight in_flight_validations=parsed_args.inflight
) )

View File

@ -109,7 +109,7 @@ class ExternalUpdateRun(command.Command):
parsed_args.stack parsed_args.stack
), ),
output_dir=ansible_dir, output_dir=ansible_dir,
verbosity=self.app_args.verbose_level, verbosity=oooutils.playbook_verbosity(self=self),
ansible_playbook_name=constants.EXTERNAL_UPDATE_PLAYBOOKS, ansible_playbook_name=constants.EXTERNAL_UPDATE_PLAYBOOKS,
extra_vars=oooutils.parse_extra_vars( extra_vars=oooutils.parse_extra_vars(
extra_var_strings=parsed_args.extra_vars extra_var_strings=parsed_args.extra_vars

View File

@ -108,7 +108,7 @@ class ExternalUpgradeRun(command.Command):
parsed_args.stack parsed_args.stack
), ),
output_dir=ansible_dir, output_dir=ansible_dir,
verbosity=self.app_args.verbose_level, verbosity=oooutils.playbook_verbosity(self=self),
ansible_playbook_name=constants.EXTERNAL_UPGRADE_PLAYBOOKS, ansible_playbook_name=constants.EXTERNAL_UPGRADE_PLAYBOOKS,
inventory_path=oooutils.get_tripleo_ansible_inventory( inventory_path=oooutils.get_tripleo_ansible_inventory(
parsed_args.static_inventory, parsed_args.static_inventory,

View File

@ -92,7 +92,8 @@ class FFWDUpgradePrepare(DeployOvercloud):
parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_network,
parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_user,
self.get_key_pair(parsed_args), self.get_key_pair(parsed_args),
parsed_args.overcloud_ssh_port_timeout parsed_args.overcloud_ssh_port_timeout,
verbosity=oooutils.playbook_verbosity(self=self)
) )
self.log.info("FFWD Upgrade Prepare on stack {0} complete.".format( self.log.info("FFWD Upgrade Prepare on stack {0} complete.".format(
@ -161,7 +162,7 @@ class FFWDUpgradeRun(command.Command):
parsed_args.stack parsed_args.stack
), ),
output_dir=ansible_dir, output_dir=ansible_dir,
verbosity=self.app_args.verbose_level, verbosity=oooutils.playbook_verbosity(self=self),
ansible_playbook_name=constants.FFWD_UPGRADE_PLAYBOOK, ansible_playbook_name=constants.FFWD_UPGRADE_PLAYBOOK,
inventory_path=oooutils.get_tripleo_ansible_inventory( inventory_path=oooutils.get_tripleo_ansible_inventory(
parsed_args.static_inventory, parsed_args.static_inventory,

View File

@ -95,9 +95,9 @@ class DeleteNode(command.Command):
oooutils.run_ansible_playbook( oooutils.run_ansible_playbook(
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
inventory='localhost,', inventory='localhost,',
verbosity=self.app_args.verbose_level - 1,
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=oooutils.playbook_verbosity(self=self),
extra_vars={ extra_vars={
"stack_name": parsed_args.stack, "stack_name": parsed_args.stack,
"baremetal_deployment": roles, "baremetal_deployment": roles,
@ -169,7 +169,8 @@ class DeleteNode(command.Command):
clients=clients, clients=clients,
stack=stack, stack=stack,
nodes=nodes, nodes=nodes,
timeout=parsed_args.timeout timeout=parsed_args.timeout,
verbosity=oooutils.playbook_verbosity(self=self)
) )
if parsed_args.baremetal_deployment: if parsed_args.baremetal_deployment:
@ -177,9 +178,9 @@ class DeleteNode(command.Command):
oooutils.run_ansible_playbook( oooutils.run_ansible_playbook(
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
inventory='localhost,', inventory='localhost,',
verbosity=self.app_args.verbose_level - 1,
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=oooutils.playbook_verbosity(self=self),
extra_vars={ extra_vars={
"stack_name": parsed_args.stack, "stack_name": parsed_args.stack,
"baremetal_deployment": roles, "baremetal_deployment": roles,
@ -248,10 +249,15 @@ class CleanNode(command.Command):
nodes = parsed_args.node_uuids nodes = parsed_args.node_uuids
if nodes: if nodes:
baremetal.clean_nodes(self.app.client_manager, baremetal.clean_nodes(
node_uuids=parsed_args.node_uuids) node_uuids=parsed_args.node_uuids,
verbosity=oooutils.playbook_verbosity(self=self)
)
else: else:
baremetal.clean_manageable_nodes(self.app.client_manager) baremetal.clean_manageable_nodes(
clients=self.app.client_manager,
verbosity=oooutils.playbook_verbosity(self=self)
)
if parsed_args.provide: if parsed_args.provide:
if nodes: if nodes:

View File

@ -60,6 +60,7 @@ class SetParameters(command.Command):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=utils.playbook_verbosity(self=self),
extra_vars={ extra_vars={
"container": parsed_args.name, "container": parsed_args.name,
"parameters": params "parameters": params

View File

@ -127,14 +127,18 @@ class CreatePlan(command.Command):
clients, name, parsed_args.templates, clients, name, parsed_args.templates,
generate_passwords=generate_passwords, generate_passwords=generate_passwords,
plan_env_file=parsed_args.plan_environment_file, plan_env_file=parsed_args.plan_environment_file,
validate_stack=False) validate_stack=False,
verbosity_level=utils.playbook_verbosity(self=self)
)
else: else:
plan_management.create_deployment_plan( plan_management.create_deployment_plan(
clients, container=name, container=name,
generate_passwords=generate_passwords, generate_passwords=generate_passwords,
source_url=source_url, source_url=source_url,
use_default_templates=use_default_templates, use_default_templates=use_default_templates,
validate_stack=False) validate_stack=False,
verbosity_level=utils.playbook_verbosity(self=self)
)
class DeployPlan(command.Command): class DeployPlan(command.Command):
@ -163,10 +167,15 @@ class DeployPlan(command.Command):
stack = utils.get_stack(orchestration_client, parsed_args.name) stack = utils.get_stack(orchestration_client, parsed_args.name)
print("Starting to deploy plan: {}".format(parsed_args.name)) print("Starting to deploy plan: {}".format(parsed_args.name))
deployment.deploy_and_wait(self.log, clients, stack, parsed_args.name, deployment.deploy_and_wait(
self.app_args.verbose_level, log=self.log,
timeout=parsed_args.timeout, clients=clients,
run_validations=parsed_args.run_validations) stack=stack,
plan_name=parsed_args.name,
verbose_level=utils.playbook_verbosity(self=self),
timeout=parsed_args.timeout,
run_validations=parsed_args.run_validations,
)
class ExportPlan(command.Command): class ExportPlan(command.Command):

View File

@ -20,6 +20,7 @@ from osc_lib.i18n import _
import yaml import yaml
from tripleoclient import command from tripleoclient import command
from tripleoclient import utils
from tripleoclient.workflows import baremetal from tripleoclient.workflows import baremetal
@ -70,7 +71,9 @@ class CreateRAID(command.Command):
_('Logical disks list is expected to be a list of objects, ' _('Logical disks list is expected to be a list of objects, '
'got %r instead') % disks) 'got %r instead') % disks)
clients = self.app.client_manager baremetal.create_raid_configuration(
baremetal.create_raid_configuration(clients, clients=self.app.client_manager,
node_uuids=parsed_args.node, node_uuids=parsed_args.node,
configuration=configuration) configuration=configuration,
verbosity=utils.playbook_verbosity(self=self)
)

View File

@ -160,7 +160,7 @@ class UpdateRun(command.Command):
parsed_args.stack parsed_args.stack
), ),
output_dir=ansible_dir, output_dir=ansible_dir,
verbosity=self.app_args.verbose_level, verbosity=oooutils.playbook_verbosity(self=self),
ansible_playbook_name=playbook, ansible_playbook_name=playbook,
inventory_path=oooutils.get_tripleo_ansible_inventory( inventory_path=oooutils.get_tripleo_ansible_inventory(
parsed_args.static_inventory, parsed_args.static_inventory,

View File

@ -88,7 +88,8 @@ class UpgradePrepare(DeployOvercloud):
parsed_args.overcloud_ssh_network, parsed_args.overcloud_ssh_network,
parsed_args.overcloud_ssh_user, parsed_args.overcloud_ssh_user,
self.get_key_pair(parsed_args), self.get_key_pair(parsed_args),
parsed_args.overcloud_ssh_port_timeout parsed_args.overcloud_ssh_port_timeout,
verbosity=oooutils.playbook_verbosity(self=self)
) )
self.log.info("Completed Overcloud Upgrade Prepare for stack " self.log.info("Completed Overcloud Upgrade Prepare for stack "
@ -214,7 +215,7 @@ class UpgradeRun(command.Command):
parsed_args.stack parsed_args.stack
), ),
output_dir=ansible_dir, output_dir=ansible_dir,
verbosity=self.app_args.verbose_level, verbosity=oooutils.playbook_verbosity(self=self),
ansible_playbook_name=playbook, ansible_playbook_name=playbook,
inventory_path=oooutils.get_tripleo_ansible_inventory( inventory_path=oooutils.get_tripleo_ansible_inventory(
parsed_args.static_inventory, parsed_args.static_inventory,

View File

@ -1319,6 +1319,7 @@ class Deploy(command.Command):
'inventory.yaml' 'inventory.yaml'
), ),
workdir=self.ansible_dir, workdir=self.ansible_dir,
verbosity=utils.playbook_verbosity(self=self),
extra_env_variables=extra_env_var, extra_env_variables=extra_env_var,
fail_on_rc=False, fail_on_rc=False,
**operation **operation

View File

@ -75,7 +75,7 @@ def _run_live_command(args, env=None, name=None, cwd=None, wait=True):
raise RuntimeError(message) raise RuntimeError(message)
def _check_diskspace(upgrade=False): def _check_diskspace(upgrade=False, verbose_level=0):
"""Check undercloud disk space """Check undercloud disk space
This runs a simple ansible playbook located in tripleo-validations This runs a simple ansible playbook located in tripleo-validations
@ -97,6 +97,7 @@ def _check_diskspace(upgrade=False):
connection='local', connection='local',
output_callback='validation_output', output_callback='validation_output',
playbook_dir=constants.ANSIBLE_VALIDATION_DIR, playbook_dir=constants.ANSIBLE_VALIDATION_DIR,
verbosity=verbose_level,
**playbook_args **playbook_args
) )
@ -492,7 +493,7 @@ def check(verbose_level, upgrade=False):
_checking_status('Memory') _checking_status('Memory')
_check_memory() _check_memory()
_checking_status('Disk space') _checking_status('Disk space')
_check_diskspace(upgrade) _check_diskspace(upgrade, verbose_level)
_checking_status('Sysctl') _checking_status('Sysctl')
_check_sysctl() _check_sysctl()
_checking_status('Password file') _checking_status('Password file')

View File

@ -62,10 +62,11 @@ class DeleteOvercloud(command.Command):
"cli-overcloud-delete.yaml", "cli-overcloud-delete.yaml",
'undercloud,', 'undercloud,',
constants.ANSIBLE_TRIPLEO_PLAYBOOKS, constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=utils.playbook_verbosity(self=self),
extra_vars={ extra_vars={
"stack_name": parsed_args.stack "stack_name": parsed_args.stack
}, }
verbosity=3 if self.app.options.debug else 1
) )
print("Success.") print("Success.")

View File

@ -122,12 +122,13 @@ class ImportNode(command.Command):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=oooutils.playbook_verbosity(self=self),
extra_vars=extra_vars extra_vars=extra_vars
) )
if parsed_args.provide: if parsed_args.provide:
baremetal.provide( baremetal.provide(
self.app.client_manager, verbosity=oooutils.playbook_verbosity(self=self),
node_uuids=nodes_uuids node_uuids=nodes_uuids
) )
@ -172,14 +173,16 @@ class IntrospectNode(command.Command):
baremetal.introspect_manageable_nodes( baremetal.introspect_manageable_nodes(
self.app.client_manager, self.app.client_manager,
run_validations=parsed_args.run_validations, run_validations=parsed_args.run_validations,
concurrency=parsed_args.concurrency concurrency=parsed_args.concurrency,
verbosity=oooutils.playbook_verbosity(self=self)
) )
else: else:
baremetal.introspect( baremetal.introspect(
self.app.client_manager, self.app.client_manager,
node_uuids=parsed_args.node_uuids, node_uuids=parsed_args.node_uuids,
run_validations=parsed_args.run_validations, run_validations=parsed_args.run_validations,
concurrency=parsed_args.concurrency concurrency=parsed_args.concurrency,
verbosity=oooutils.playbook_verbosity(self=self)
) )
# NOTE(cloudnull): This is using the old provide function, in a future # NOTE(cloudnull): This is using the old provide function, in a future
@ -191,7 +194,10 @@ class IntrospectNode(command.Command):
node_uuids=parsed_args.node_uuids, node_uuids=parsed_args.node_uuids,
) )
else: else:
baremetal.provide_manageable_nodes(self.app.client_manager) baremetal.provide_manageable_nodes(
clients=self.app.client_manager,
verbosity=oooutils.playbook_verbosity(self=self)
)
class ProvisionNode(command.Command): class ProvisionNode(command.Command):
@ -258,9 +264,9 @@ class ProvisionNode(command.Command):
oooutils.run_ansible_playbook( oooutils.run_ansible_playbook(
playbook='cli-overcloud-node-provision.yaml', playbook='cli-overcloud-node-provision.yaml',
inventory='localhost,', inventory='localhost,',
verbosity=self.app_args.verbose_level - 1,
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=oooutils.playbook_verbosity(self=self),
extra_vars=extra_vars, extra_vars=extra_vars,
) )
@ -308,9 +314,9 @@ class UnprovisionNode(command.Command):
oooutils.run_ansible_playbook( oooutils.run_ansible_playbook(
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
inventory='localhost,', inventory='localhost,',
verbosity=self.app_args.verbose_level - 1,
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=oooutils.playbook_verbosity(self=self),
extra_vars={ extra_vars={
"stack_name": parsed_args.stack, "stack_name": parsed_args.stack,
"baremetal_deployment": roles, "baremetal_deployment": roles,
@ -336,9 +342,9 @@ class UnprovisionNode(command.Command):
oooutils.run_ansible_playbook( oooutils.run_ansible_playbook(
playbook='cli-overcloud-node-unprovision.yaml', playbook='cli-overcloud-node-unprovision.yaml',
inventory='localhost,', inventory='localhost,',
verbosity=self.app_args.verbose_level - 1,
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=oooutils.playbook_verbosity(self=self),
extra_vars={ extra_vars={
"stack_name": parsed_args.stack, "stack_name": parsed_args.stack,
"baremetal_deployment": roles, "baremetal_deployment": roles,

View File

@ -93,5 +93,6 @@ class ReportExecute(command.Command):
inventory=constants.ANSIBLE_INVENTORY, inventory=constants.ANSIBLE_INVENTORY,
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=utils.playbook_verbosity(self=self),
extra_vars=extra_vars extra_vars=extra_vars
) )

View File

@ -90,6 +90,7 @@ class BackupUndercloud(command.Command):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=utils.playbook_verbosity(self=self),
extra_vars=extra_vars extra_vars=extra_vars
) )

View File

@ -113,11 +113,11 @@ def _format_errors(payload):
return '\n'.join(errors) return '\n'.join(errors)
def provide(clients, node_uuids): def provide(verbosity, node_uuids):
"""Provide Baremetal Nodes """Provide Baremetal Nodes
:param clients: Application client object. :param verbosity: Verbosity level
:type clients: Object :type verbosity: Integer
:param node_uuids: List of instance UUID(s). :param node_uuids: List of instance UUID(s).
:type node_uuids: List :type node_uuids: List
@ -129,6 +129,7 @@ def provide(clients, node_uuids):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
'node_uuids': node_uuids 'node_uuids': node_uuids
} }
@ -137,18 +138,18 @@ def provide(clients, node_uuids):
print('Successfully provided nodes: {}'.format(node_uuids)) print('Successfully provided nodes: {}'.format(node_uuids))
def provide_manageable_nodes(clients): def provide_manageable_nodes(clients, verbosity=0):
"""Provide all manageable Nodes """Provide all manageable Nodes
:param clients: Application client object. :param clients: Application client object.
:type clients: Object :type clients: Object
:param node_uuids: List of instance UUID(s). :param verbosity: Verbosity level
:type node_uuids: List :type verbosity: Integer
""" """
provide( provide(
clients, verbosity=verbosity,
node_uuids=[ node_uuids=[
i.uuid for i in clients.baremetal.node.list() i.uuid for i in clients.baremetal.node.list()
if i.provision_state == "manageable" and not i.maintenance if i.provision_state == "manageable" and not i.maintenance
@ -156,10 +157,24 @@ def provide_manageable_nodes(clients):
) )
def introspect(clients, node_uuids, run_validations, concurrency): def introspect(clients, node_uuids, run_validations, concurrency,
verbosity=0):
"""Introspect Baremetal Nodes """Introspect Baremetal Nodes
Run the tripleo.baremetal.v1.introspect Mistral workflow. :param clients: Application client object.
:type clients: Object
:param node_uuids: List of instance UUID(s).
:type node_uuids: List
:param run_validations: Enable or disable validations
:type run_validations: Boolean
:param concurrency: concurrency level
:type concurrency: Integer
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
with utils.TempDirs() as tmp: with utils.TempDirs() as tmp:
@ -168,6 +183,7 @@ def introspect(clients, node_uuids, run_validations, concurrency):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
"node_uuids": node_uuids, "node_uuids": node_uuids,
"run_validations": run_validations, "run_validations": run_validations,
@ -178,10 +194,21 @@ def introspect(clients, node_uuids, run_validations, concurrency):
print('Successfully introspected nodes: {}'.format(node_uuids)) print('Successfully introspected nodes: {}'.format(node_uuids))
def introspect_manageable_nodes(clients, run_validations, concurrency): def introspect_manageable_nodes(clients, run_validations, concurrency,
verbosity=0):
"""Introspect all manageable nodes """Introspect all manageable nodes
Run the tripleo.baremetal.v1.introspect_manageable_nodes Mistral workflow. :param clients: Application client object.
:type clients: Object
:param verbosity: Enable or disable validations
:type verbosity: Boolean
:param verbosity: concurrency level
:type verbosity: Integer
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
introspect( introspect(
@ -191,7 +218,8 @@ def introspect_manageable_nodes(clients, run_validations, concurrency):
if i.provision_state == "manageable" and not i.maintenance if i.provision_state == "manageable" and not i.maintenance
], ],
run_validations=run_validations, run_validations=run_validations,
concurrency=concurrency concurrency=concurrency,
verbosity=verbosity
) )
@ -296,7 +324,8 @@ def configure_manageable_nodes(clients, kernel_name='bm-deploy-kernel',
) )
def create_raid_configuration(clients, node_uuids, configuration): def create_raid_configuration(clients, node_uuids, configuration,
verbosity=0):
"""Create RAID configuration on nodes. """Create RAID configuration on nodes.
:param clients: application client object. :param clients: application client object.
@ -305,8 +334,11 @@ def create_raid_configuration(clients, node_uuids, configuration):
:param node_uuids: List of instance UUID(s). :param node_uuids: List of instance UUID(s).
:type node_uuids: List :type node_uuids: List
:param node_uuids: List of instance UUID(s). :param configuration: RAID configuration object.
:type node_uuids: List :type configuration: Object
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
with utils.TempDirs() as tmp: with utils.TempDirs() as tmp:
@ -315,6 +347,7 @@ def create_raid_configuration(clients, node_uuids, configuration):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
'node_uuids': node_uuids, 'node_uuids': node_uuids,
'raid_configuration': configuration 'raid_configuration': configuration
@ -389,14 +422,14 @@ def discover_and_enroll(clients, ip_addresses, credentials, kernel_name,
) )
def clean_nodes(clients, node_uuids): def clean_nodes(node_uuids, verbosity=0):
"""Clean Baremetal Nodes """Clean Baremetal Nodes
:param clients: application client object.
:type clients: Object
:param node_uuids: List of instance UUID(s). :param node_uuids: List of instance UUID(s).
:type node_uuids: List :type node_uuids: List
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
with utils.TempDirs() as tmp: with utils.TempDirs() as tmp:
@ -405,6 +438,7 @@ def clean_nodes(clients, node_uuids):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
'node_uuids': node_uuids 'node_uuids': node_uuids
} }
@ -413,26 +447,36 @@ def clean_nodes(clients, node_uuids):
print('Successfully cleaned nodes: {}'.format(node_uuids)) print('Successfully cleaned nodes: {}'.format(node_uuids))
def clean_manageable_nodes(clients): def clean_manageable_nodes(clients, verbosity=0):
"""Clean all manageable Nodes """Clean all manageable Nodes
:param clients: application client object. :param clients: application client object.
:type clients: Object :type clients: Object
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
clean_nodes( clean_nodes(
clients=clients,
node_uuids=[ node_uuids=[
i.uuid for i in clients.baremetal.node.list() i.uuid for i in clients.baremetal.node.list()
if i.provision_state == "manageable" and not i.maintenance if i.provision_state == "manageable" and not i.maintenance
] ],
verbosity=verbosity
) )
def apply_bios_configuration(clients, node_uuids, configuration): def apply_bios_configuration(node_uuids, configuration, verbosity=0):
"""Apply BIOS settings on nodes. """Apply BIOS settings on nodes.
Run the tripleo.baremetal.v1.apply_bios_settings Mistral workflow. :param node_uuids: List of instance UUID(s).
:type node_uuids: List
:param configuration: BIOS configuration object.
:type configuration: Object
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
print('Applying BIOS settings for given nodes, this may take time') print('Applying BIOS settings for given nodes, this may take time')
@ -443,6 +487,7 @@ def apply_bios_configuration(clients, node_uuids, configuration):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
'node_uuids': node_uuids, 'node_uuids': node_uuids,
'bios_configuration': configuration 'bios_configuration': configuration
@ -452,31 +497,38 @@ def apply_bios_configuration(clients, node_uuids, configuration):
print('Successfully applied the BIOS for nodes: {}'.format(node_uuids)) print('Successfully applied the BIOS for nodes: {}'.format(node_uuids))
def apply_bios_configuration_on_manageable_nodes(clients, configuration): def apply_bios_configuration_on_manageable_nodes(clients, configuration,
verbosity=0):
"""Apply BIOS settings on manageable nodes. """Apply BIOS settings on manageable nodes.
Run the tripleo.baremetal.v1.apply_bios_settings_on_manageable_nodes
Mistral workflow.
"""
apply_bios_configuration(
clients=clients,
node_uuids=[
i.uuid for i in clients.baremetal.node.list()
if i.provision_state == "manageable" and not i.maintenance
],
configuration=configuration
)
def reset_bios_configuration(clients, node_uuids):
"""Reset BIOS settings on nodes.
:param clients: application client object. :param clients: application client object.
:type clients: Object :type clients: Object
:param configuration: BIOS configuration object.
:type configuration: Object
:param verbosity: Verbosity level
:type verbosity: Integer
"""
apply_bios_configuration(
node_uuids=[
i.uuid for i in clients.baremetal.node.list()
if i.provision_state == "manageable" and not i.maintenance
],
configuration=configuration,
verbosity=verbosity
)
def reset_bios_configuration(node_uuids, verbosity=0):
"""Reset BIOS settings on nodes.
:param node_uuids: List of instance UUID(s). :param node_uuids: List of instance UUID(s).
:type node_uuids: List :type node_uuids: List
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
with utils.TempDirs() as tmp: with utils.TempDirs() as tmp:
@ -485,6 +537,7 @@ def reset_bios_configuration(clients, node_uuids):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
'node_uuids': node_uuids 'node_uuids': node_uuids
} }
@ -493,17 +546,20 @@ def reset_bios_configuration(clients, node_uuids):
print('Successfully reset the BIOS for nodes: {}'.format(node_uuids)) print('Successfully reset the BIOS for nodes: {}'.format(node_uuids))
def reset_bios_configuration_on_manageable_nodes(clients, **workflow_input): def reset_bios_configuration_on_manageable_nodes(clients, verbosity=0):
"""Reset BIOS settings on manageable nodes. """Reset BIOS settings on manageable nodes.
:param clients: application client object. :param clients: application client object.
:type clients: Object :type clients: Object
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
reset_bios_configuration( reset_bios_configuration(
clients=clients,
node_uuids=[ node_uuids=[
i.uuid for i in clients.baremetal.node.list() i.uuid for i in clients.baremetal.node.list()
if i.provision_state == "manageable" and not i.maintenance if i.provision_state == "manageable" and not i.maintenance
], ],
verbosity=verbosity
) )

View File

@ -33,18 +33,37 @@ from tripleoclient import utils
_WORKFLOW_TIMEOUT = 360 # 6 * 60 seconds _WORKFLOW_TIMEOUT = 360 # 6 * 60 seconds
def deploy(log, clients, **workflow_input): def deploy(container, run_validations, skip_deploy_identifier,
timeout, verbosity=0):
"""Run the deployment playbook.
:param container: Name of the container
:type container: String
:param run_validations: Enable or disable validations
:type run_validations: Boolean
:param skip_deploy_identifier: Enable or disable validations
:type skip_deploy_identifier: Boolean
:param timeout: Timeout
:type timeout: Integer
:param verbosity: Verbosity level
:type verbosity: Integer
"""
utils.run_ansible_playbook( utils.run_ansible_playbook(
"cli-deploy-deployment-plan.yaml", "cli-deploy-deployment-plan.yaml",
'undercloud,', 'undercloud,',
ANSIBLE_TRIPLEO_PLAYBOOKS, ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
"container": workflow_input['container'], "container": container,
"run_validations": workflow_input['run_validations'], "run_validations": run_validations,
"skip_deploy_identifier": workflow_input['skip_deploy_identifier'], "skip_deploy_identifier": skip_deploy_identifier,
"timeout_mins": workflow_input['timeout'], "ansible_timeout": timeout,
}, }
verbosity=3
) )
print("Success.") print("Success.")
@ -72,17 +91,13 @@ def deploy_and_wait(log, clients, stack, plan_name, verbose_level,
marker = events[0].id if events else None marker = events[0].id if events else None
action = 'UPDATE' action = 'UPDATE'
workflow_input = { deploy(
"container": plan_name, container=plan_name,
"run_validations": run_validations, run_validations=run_validations,
"skip_deploy_identifier": skip_deploy_identifier, skip_deploy_identifier=skip_deploy_identifier,
"timeout": timeout timeout=timeout,
} verbosity=verbose_level
)
if timeout is not None:
workflow_input['timeout'] = timeout
deploy(log, clients, **workflow_input)
verbose_events = verbose_level >= 1 verbose_events = verbose_level >= 1
@ -136,7 +151,8 @@ def get_overcloud_hosts(stack, ssh_network):
def get_hosts_and_enable_ssh_admin(stack, overcloud_ssh_network, def get_hosts_and_enable_ssh_admin(stack, overcloud_ssh_network,
overcloud_ssh_user, overcloud_ssh_key, overcloud_ssh_user, overcloud_ssh_key,
overcloud_ssh_port_timeout): overcloud_ssh_port_timeout,
verbosity=0):
"""Enable ssh admin access. """Enable ssh admin access.
Get a list of hosts from a given stack and enable admin ssh across all of Get a list of hosts from a given stack and enable admin ssh across all of
@ -156,6 +172,9 @@ def get_hosts_and_enable_ssh_admin(stack, overcloud_ssh_network,
:param overcloud_ssh_port_timeout: Ansible connection timeout :param overcloud_ssh_port_timeout: Ansible connection timeout
:type overcloud_ssh_port_timeout: Int :type overcloud_ssh_port_timeout: Int
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
hosts = get_overcloud_hosts(stack, overcloud_ssh_network) hosts = get_overcloud_hosts(stack, overcloud_ssh_network)
@ -165,7 +184,8 @@ def get_hosts_and_enable_ssh_admin(stack, overcloud_ssh_network,
hosts, hosts,
overcloud_ssh_user, overcloud_ssh_user,
overcloud_ssh_key, overcloud_ssh_key,
overcloud_ssh_port_timeout overcloud_ssh_port_timeout,
verbosity=verbosity
) )
else: else:
raise exceptions.DeploymentError( raise exceptions.DeploymentError(
@ -176,7 +196,8 @@ def get_hosts_and_enable_ssh_admin(stack, overcloud_ssh_network,
) )
def enable_ssh_admin(stack, hosts, ssh_user, ssh_key, timeout): def enable_ssh_admin(stack, hosts, ssh_user, ssh_key, timeout,
verbosity=0):
"""Run enable ssh admin access playbook. """Run enable ssh admin access playbook.
:param stack: Stack data. :param stack: Stack data.
@ -193,6 +214,9 @@ def enable_ssh_admin(stack, hosts, ssh_user, ssh_key, timeout):
:param timeout: Ansible connection timeout :param timeout: Ansible connection timeout
:type timeout: int :type timeout: int
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
print( print(
@ -213,6 +237,7 @@ def enable_ssh_admin(stack, hosts, ssh_user, ssh_key, timeout):
playbook_dir=ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=ANSIBLE_TRIPLEO_PLAYBOOKS,
key=ssh_key, key=ssh_key,
ssh_user=ssh_user, ssh_user=ssh_user,
verbosity=verbosity,
extra_vars={ extra_vars={
"ssh_user": ssh_user, "ssh_user": ssh_user,
"ssh_servers": hosts, "ssh_servers": hosts,
@ -225,7 +250,7 @@ def enable_ssh_admin(stack, hosts, ssh_user, ssh_key, timeout):
def config_download(log, clients, stack, ssh_network=None, def config_download(log, clients, stack, ssh_network=None,
output_dir=None, override_ansible_cfg=None, output_dir=None, override_ansible_cfg=None,
timeout=None, verbosity=1, deployment_options=None, timeout=None, verbosity=0, deployment_options=None,
in_flight_validations=False, in_flight_validations=False,
ansible_playbook_name='deploy_steps_playbook.yaml', ansible_playbook_name='deploy_steps_playbook.yaml',
limit_list=None, extra_vars=None, inventory_path=None, limit_list=None, extra_vars=None, inventory_path=None,
@ -339,6 +364,7 @@ def config_download(log, clients, stack, ssh_network=None,
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
'access_path': output_dir, 'access_path': output_dir,
'execution_user': getpass.getuser() 'execution_user': getpass.getuser()
@ -498,7 +524,7 @@ def config_download_export(clients, plan, config_type):
object_name='{}.tar.gz'.format(container_config)) object_name='{}.tar.gz'.format(container_config))
def get_horizon_url(stack): def get_horizon_url(stack, verbosity=0):
"""Return horizon URL string. """Return horizon URL string.
:params stack: Stack name :params stack: Stack name
@ -513,6 +539,7 @@ def get_horizon_url(stack):
inventory='localhost,', inventory='localhost,',
workdir=tmp, workdir=tmp,
playbook_dir=ANSIBLE_TRIPLEO_PLAYBOOKS, playbook_dir=ANSIBLE_TRIPLEO_PLAYBOOKS,
verbosity=verbosity,
extra_vars={ extra_vars={
'stack_name': stack, 'stack_name': stack,
'horizon_url_output_file': horizon_tmp_file 'horizon_url_output_file': horizon_tmp_file

View File

@ -28,7 +28,8 @@ from tripleoclient.workflows import roles
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
def invoke_plan_env_workflows(clients, stack_name, plan_env_file): def invoke_plan_env_workflows(clients, stack_name, plan_env_file,
verbosity=0):
"""Invokes the workflows in plan environment file""" """Invokes the workflows in plan environment file"""
try: try:
@ -65,6 +66,7 @@ def invoke_plan_env_workflows(clients, stack_name, plan_env_file):
inventory=static_inventory, inventory=static_inventory,
workdir=tmp, workdir=tmp,
playbook_dir=playbook_dir, playbook_dir=playbook_dir,
verbosity=verbosity,
extra_vars=pb_vars extra_vars=pb_vars
) )

View File

@ -64,22 +64,25 @@ def _upload_templates(swift_client, container_name, tht_root, roles_file=None,
constants.PLAN_ENVIRONMENT, plan_env_file) constants.PLAN_ENVIRONMENT, plan_env_file)
def create_deployment_plan(clients, **workflow_input): def create_deployment_plan(container, generate_passwords,
use_default_templates=False, source_url=None,
validate_stack=True, verbosity_level=0,
plan_env_file=None):
extra_vars = { extra_vars = {
"container": workflow_input['container'], "container": container,
"validate": workflow_input['validate_stack'], "validate": validate_stack,
"generate_passwords": workflow_input["generate_passwords"]} "generate_passwords": generate_passwords
}
if 'plan_env_file' in workflow_input and workflow_input[ if plan_env_file:
'plan_env_file'] is not None: extra_vars['plan_environment'] = plan_env_file
extra_vars.update(plan_environment=workflow_input['plan_env_file'])
utils.run_ansible_playbook( utils.run_ansible_playbook(
"cli-create-deployment-plan.yaml", "cli-create-deployment-plan.yaml",
'undercloud,', 'undercloud,',
constants.ANSIBLE_TRIPLEO_PLAYBOOKS, constants.ANSIBLE_TRIPLEO_PLAYBOOKS,
extra_vars=extra_vars, extra_vars=extra_vars,
verbosity=3 verbosity=verbosity_level
) )
print("Success.") print("Success.")
@ -102,7 +105,7 @@ def delete_deployment_plan(clients, container):
raise RuntimeError(result) raise RuntimeError(result)
def update_deployment_plan(clients, **workflow_input): def update_deployment_plan(clients, verbosity_level=0, **workflow_input):
utils.run_ansible_playbook( utils.run_ansible_playbook(
"cli-update-deployment-plan.yaml", "cli-update-deployment-plan.yaml",
'undercloud,', 'undercloud,',
@ -112,7 +115,7 @@ def update_deployment_plan(clients, **workflow_input):
"validate": workflow_input['validate_stack'], "validate": workflow_input['validate_stack'],
"generate_passwords": workflow_input["generate_passwords"], "generate_passwords": workflow_input["generate_passwords"],
}, },
verbosity=3 verbosity=verbosity_level
) )
print("Success.") print("Success.")
@ -125,7 +128,8 @@ def list_deployment_plans(clients):
def create_plan_from_templates(clients, name, tht_root, roles_file=None, def create_plan_from_templates(clients, name, tht_root, roles_file=None,
generate_passwords=True, plan_env_file=None, generate_passwords=True, plan_env_file=None,
networks_file=None, validate_stack=True): networks_file=None, validate_stack=True,
verbosity_level=0):
swift_client = clients.tripleoclient.object_store swift_client = clients.tripleoclient.object_store
print("Creating Swift container to store the plan") print("Creating Swift container to store the plan")
@ -137,10 +141,11 @@ def create_plan_from_templates(clients, name, tht_root, roles_file=None,
plan_env_file, networks_file) plan_env_file, networks_file)
try: try:
create_deployment_plan(clients, container=name, create_deployment_plan(container=name,
generate_passwords=generate_passwords, generate_passwords=generate_passwords,
plan_env_file=plan_env_file, plan_env_file=plan_env_file,
validate_stack=validate_stack) validate_stack=validate_stack,
verbosity_level=verbosity_level)
except exceptions.WorkflowServiceError: except exceptions.WorkflowServiceError:
swiftutils.delete_container(swift_client, name) swiftutils.delete_container(swift_client, name)
raise raise
@ -149,7 +154,7 @@ def create_plan_from_templates(clients, name, tht_root, roles_file=None,
def update_plan_from_templates(clients, name, tht_root, roles_file=None, def update_plan_from_templates(clients, name, tht_root, roles_file=None,
generate_passwords=True, plan_env_file=None, generate_passwords=True, plan_env_file=None,
networks_file=None, keep_env=False, networks_file=None, keep_env=False,
validate_stack=True): validate_stack=True, verbosity_level=1):
swift_client = clients.tripleoclient.object_store swift_client = clients.tripleoclient.object_store
passwords = None passwords = None
keep_file_contents = {} keep_file_contents = {}
@ -204,7 +209,8 @@ def update_plan_from_templates(clients, name, tht_root, roles_file=None,
update_deployment_plan(clients, container=name, update_deployment_plan(clients, container=name,
generate_passwords=generate_passwords, generate_passwords=generate_passwords,
source_url=None, source_url=None,
validate_stack=validate_stack) validate_stack=validate_stack,
verbosity_level=verbosity_level)
def _load_content_or_file(swift_client, container, remote_and_local_map): def _load_content_or_file(swift_client, container, remote_and_local_map):

View File

@ -20,7 +20,7 @@ from tripleoclient import utils
from tripleoclient.workflows import deployment from tripleoclient.workflows import deployment
def scale_down(log, clients, stack, nodes, timeout=None): def scale_down(log, clients, stack, nodes, timeout=None, verbosity=0):
"""Unprovision and deletes overcloud nodes from a heat stack. """Unprovision and deletes overcloud nodes from a heat stack.
:param log: Logging object :param log: Logging object
@ -40,6 +40,9 @@ def scale_down(log, clients, stack, nodes, timeout=None):
:param timeout: Timeout to use when deleting nodes. If timeout is None :param timeout: Timeout to use when deleting nodes. If timeout is None
it will be set to 240. it will be set to 240.
:type timeout: Integer :type timeout: Integer
:param verbosity: Verbosity level
:type verbosity: Integer
""" """
if not timeout: if not timeout:
@ -59,7 +62,8 @@ def scale_down(log, clients, stack, nodes, timeout=None):
stack=stack, stack=stack,
timeout=timeout, timeout=timeout,
ansible_playbook_name='scale_playbook.yaml', ansible_playbook_name='scale_playbook.yaml',
limit_list=limit_list limit_list=limit_list,
verbosity=verbosity
) )
print('Running scale down') print('Running scale down')