Support getting the Tuskar plan by name or UUID when deploying

See https://bugzilla.redhat.com/show_bug.cgi?id=1233429

Change-Id: I574264e7c92d51aaeaad9bdd0d945b81bcf32169
This commit is contained in:
Dougal Matthews
2015-06-18 15:47:33 +01:00
parent 53d8d34161
commit a933eec21d
2 changed files with 19 additions and 4 deletions

View File

@@ -15,6 +15,8 @@
import mock import mock
from tuskarclient.v2.plans import Plan
from rdomanager_oscplugin.tests.v1.overcloud_deploy import fakes from rdomanager_oscplugin.tests.v1.overcloud_deploy import fakes
from rdomanager_oscplugin.tests.v1.utils import ( from rdomanager_oscplugin.tests.v1.utils import (
generate_overcloud_passwords_mock) generate_overcloud_passwords_mock)
@@ -134,10 +136,10 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
mock_generate_overcloud_passwords, mock_generate_overcloud_passwords,
mock_get_key, mock_update_nodesjson): mock_get_key, mock_update_nodesjson):
arglist = ['--plan-uuid', 'UUID', '--output-dir', 'fake'] arglist = ['--plan', 'undercloud', '--output-dir', 'fake']
verifylist = [ verifylist = [
('use_tht', False), ('use_tht', False),
('plan_uuid', 'UUID'), ('plan', 'undercloud'),
('output_dir', 'fake'), ('output_dir', 'fake'),
] ]
@@ -145,6 +147,11 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
management = clients.rdomanager_oscplugin.management() management = clients.rdomanager_oscplugin.management()
management.plans.templates.return_value = {} management.plans.templates.return_value = {}
management.plans.resource_class = Plan
mock_plan = mock.Mock()
mock_plan.configure_mock(name="undercloud")
management.plans.list.return_value = [mock_plan, ]
mock_get_templte_contents.return_value = ({}, "template") mock_get_templte_contents.return_value = ({}, "template")
mock_process_multiple_env.return_value = ({}, "envs") mock_process_multiple_env.return_value = ({}, "envs")

View File

@@ -26,6 +26,7 @@ import uuid
from cliff import command from cliff import command
from heatclient.common import template_utils from heatclient.common import template_utils
from heatclient.exc import HTTPNotFound from heatclient.exc import HTTPNotFound
from openstackclient.common import utils as oscutils
from openstackclient.i18n import _ from openstackclient.i18n import _
from os_cloud_config import keystone_pki from os_cloud_config import keystone_pki
@@ -379,8 +380,11 @@ class DeployOvercloud(command.Command):
if not os.path.isdir(output_dir): if not os.path.isdir(output_dir):
os.mkdir(output_dir) os.mkdir(output_dir)
management_plan = oscutils.find_resource(
management.plans, parsed_args.plan)
# retrieve templates # retrieve templates
templates = management.plans.templates(parsed_args.plan_uuid) templates = management.plans.templates(management_plan.plan_uuid)
parameters = self._update_paramaters(parsed_args, network_client) parameters = self._update_paramaters(parsed_args, network_client)
@@ -520,9 +524,13 @@ class DeployOvercloud(command.Command):
default=os.environ.get('no_proxy', '') default=os.environ.get('no_proxy', '')
) )
parser.add_argument( parser.add_argument(
'--plan-uuid', '--plan-uuid', dest='plan',
help=_("The UUID of the Tuskar plan to deploy.") help=_("The UUID of the Tuskar plan to deploy.")
) )
parser.add_argument(
'--plan',
help=_("The Name or UUID of the Tuskar plan to deploy.")
)
parser.add_argument( parser.add_argument(
'-O', '--output-dir', metavar='<OUTPUT DIR>', '-O', '--output-dir', metavar='<OUTPUT DIR>',
help=_('Directory to write Tuskar template files into. It will be ' help=_('Directory to write Tuskar template files into. It will be '