Fixing environment creation from template
Environment creation for env-template operation does not work in python-muranoclient in multi-region testbed. This patch allows for including region information in the request. Change-Id: Ib274ae6d0489687e085fcae0ba897c0d7af2d547 Closes-Bug: #1597715
This commit is contained in:
parent
df35a2e3a1
commit
f8d340a778
|
@ -716,7 +716,20 @@ class ShellCommandTest(ShellTest):
|
|||
self.register_keystone_token_fixture(m_requests)
|
||||
self.shell('env-template-create-env env-id env-name')
|
||||
self.client.env_templates.create_env.\
|
||||
assert_called_once_with('env-id', 'env-name')
|
||||
assert_called_once_with('env-id', {"name": 'env-name'})
|
||||
|
||||
@mock.patch('muranoclient.v1.templates.EnvTemplateManager')
|
||||
@requests_mock.mock()
|
||||
def test_env_template_create_env_with_region(self, mock_manager,
|
||||
m_requests):
|
||||
self.client.env_templates = mock_manager()
|
||||
self.make_env()
|
||||
self.register_keystone_discovery_fixture(m_requests)
|
||||
self.register_keystone_token_fixture(m_requests)
|
||||
self.shell('env-template-create-env env-id env-name --region Region')
|
||||
self.client.env_templates.create_env.\
|
||||
assert_called_once_with('env-id', {"name": 'env-name',
|
||||
"region": 'Region'})
|
||||
|
||||
@mock.patch('muranoclient.v1.templates.EnvTemplateManager')
|
||||
@requests_mock.mock()
|
||||
|
|
|
@ -351,10 +351,16 @@ def do_env_template_create(mc, args):
|
|||
help="Environment template ID.")
|
||||
@utils.arg("name", metavar="<ENV_NAME>",
|
||||
help="New environment name.")
|
||||
@utils.arg("--region", metavar="<REGION_NAME>",
|
||||
help="Name of the target OpenStack region.",)
|
||||
def do_env_template_create_env(mc, args):
|
||||
"""Create a new environment from template."""
|
||||
try:
|
||||
template = mc.env_templates.create_env(args.id, args.name)
|
||||
data = {}
|
||||
data["name"] = args.name
|
||||
if args.region:
|
||||
data["region"] = args.region
|
||||
template = mc.env_templates.create_env(args.id, data)
|
||||
except common_exceptions.HTTPNotFound:
|
||||
raise exceptions.CommandError("Environment template %s not found"
|
||||
% args.id)
|
||||
|
|
|
@ -81,14 +81,14 @@ class EnvTemplateManager(base.Manager):
|
|||
return self._delete('/v1/templates/{id}/services/{app_id}'.
|
||||
format(id=env_template_id, app_id=app_id))
|
||||
|
||||
def create_env(self, env_template_id, name):
|
||||
def create_env(self, env_template_id, data):
|
||||
"""Creates new environment from template.
|
||||
|
||||
:param env_template_id: The environment template ID.
|
||||
:param name: The name for the environment.
|
||||
:param data: The environment information.
|
||||
"""
|
||||
return self._create('/v1/templates/{id}/create-environment'.
|
||||
format(id=env_template_id), data={'name': name})
|
||||
format(id=env_template_id), data=data)
|
||||
|
||||
def clone(self, env_template_id, name):
|
||||
"""Clones a public template from one tenant to another.
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
|
||||
features:
|
||||
- CLI command :command:``env-templat-create-env`` now supports ``--region`` flag
|
Loading…
Reference in New Issue