Added murano actions
Change-Id: I80e971e54cf165396fd6f96d6c1a19d9c17e4dac Implements: blueprint mistral-murano-actions
This commit is contained in:
parent
4314ea9ef7
commit
10fa24731d
|
@ -27,6 +27,7 @@ from keystoneclient import httpclient
|
|||
from keystoneclient.v3 import client as keystoneclient
|
||||
from magnumclient.v1 import client as magnumclient
|
||||
from mistralclient.api.v2 import client as mistralclient
|
||||
from muranoclient.v1 import client as muranoclient
|
||||
from neutronclient.v2_0 import client as neutronclient
|
||||
from novaclient import client as novaclient
|
||||
from oslo_config import cfg
|
||||
|
@ -632,3 +633,27 @@ class MagnumAction(base.OpenStackAction):
|
|||
@classmethod
|
||||
def _get_fake_client(cls):
|
||||
return cls._client_class()
|
||||
|
||||
|
||||
class MuranoAction(base.OpenStackAction):
|
||||
_client_class = muranoclient.Client
|
||||
|
||||
def _get_client(self):
|
||||
ctx = context.ctx()
|
||||
|
||||
LOG.debug("Murano action security context: %s" % ctx)
|
||||
|
||||
keystone_endpoint = keystone_utils.get_keystone_endpoint_v2()
|
||||
murano_endpoint = keystone_utils.get_endpoint_for_project('murano')
|
||||
|
||||
return self._client_class(
|
||||
endpoint=murano_endpoint.url,
|
||||
token=ctx.auth_token,
|
||||
tenant=ctx.project_id,
|
||||
region_name=murano_endpoint.region,
|
||||
auth_url=keystone_endpoint.url
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def _get_fake_client(cls):
|
||||
return cls._client_class()
|
||||
|
|
|
@ -1131,5 +1131,55 @@
|
|||
"bays_get": "bays.get",
|
||||
"bays_list": "bays.list",
|
||||
"bays_update": "bays.update"
|
||||
},
|
||||
"murano":{
|
||||
"_comment": "It uses muranoclient.v1.",
|
||||
"categories_add": "categories.add",
|
||||
"categories_delete": "categories.delete",
|
||||
"categories_get": "categories.get",
|
||||
"categories_list": "categories.list",
|
||||
"deployments_list": "deployments.list",
|
||||
"deployments_reports": "deployments.reports",
|
||||
"env_templates_clone": "env_templates.clone",
|
||||
"env_templates_create": "env_templates.create",
|
||||
"env_templates_create_app": "env_templates.create_app",
|
||||
"env_templates_create_env": "env_templates.create_env",
|
||||
"env_templates_delete": "env_templates.delete",
|
||||
"env_templates_delete_app": "env_templates.delete_app",
|
||||
"env_templates_get": "env_templates.get",
|
||||
"env_templates_list": "env_templates.list",
|
||||
"env_templates_update": "env_templates.update",
|
||||
"environments_create": "environments.create",
|
||||
"environments_delete": "environments.delete",
|
||||
"environments_find": "environments.find",
|
||||
"environments_findall": "environments.findall",
|
||||
"environments_get": "environments.get",
|
||||
"environments_last_status": "environments.last_status",
|
||||
"environments_list": "environments.list",
|
||||
"environments_update": "environments.update",
|
||||
"instance_statistics_get": "instance_statistics.get",
|
||||
"instance_statistics_get_aggregated": "instance_statistics.get_aggregated",
|
||||
"packages_categories": "packages.categories",
|
||||
"packages_create": "packages.create",
|
||||
"packages_delete": "packages.delete",
|
||||
"packages_download": "packages.download",
|
||||
"packages_filter": "packages.filter",
|
||||
"packages_get": "packages.get",
|
||||
"packages_get_logo": "packages.get_logo",
|
||||
"packages_get_supplier_logo": "packages.get_supplier_logo",
|
||||
"packages_get_ui": "packages.get_ui",
|
||||
"packages_list": "packages.list",
|
||||
"packages_toggle_active": "packages.toggle_active",
|
||||
"packages_toggle_public": "packages.toggle_public",
|
||||
"packages_update": "packages.update",
|
||||
"request_statistics_list": "request_statistics.list",
|
||||
"services_delete": "services.delete",
|
||||
"services_get": "services.get",
|
||||
"services_list": "services.list",
|
||||
"services_post": "services.post",
|
||||
"sessions_configure": "sessions.configure",
|
||||
"sessions_delete": "sessions.delete",
|
||||
"sessions_deploy": "sessions.deploy",
|
||||
"sessions_get": "sessions.get"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -211,3 +211,17 @@ class OpenStackActionTest(base.BaseTestCase):
|
|||
|
||||
self.assertTrue(mocked().baymodels.get.called)
|
||||
mocked().baymodels.get.assert_called_once_with(id="1234-abcd")
|
||||
|
||||
@mock.patch.object(actions.MuranoAction, '_get_client')
|
||||
def test_murano_action(self, mocked):
|
||||
method_name = "categories.get"
|
||||
action_class = actions.MuranoAction
|
||||
action_class.client_method_name = method_name
|
||||
params = {'category_id': '1234-abcd'}
|
||||
action = action_class(**params)
|
||||
action.run()
|
||||
|
||||
self.assertTrue(mocked().categories.get.called)
|
||||
mocked().categories.get.assert_called_once_with(
|
||||
category_id="1234-abcd"
|
||||
)
|
||||
|
|
|
@ -31,6 +31,7 @@ python-heatclient>=1.1.0 # Apache-2.0
|
|||
python-keystoneclient!=1.8.0,!=2.1.0,>=1.7.0 # Apache-2.0
|
||||
python-mistralclient>=2.0.0 # Apache-2.0
|
||||
python-magnumclient>=2.0.0 # Apache-2.0
|
||||
python-muranoclient>=0.8.2 # Apache-2.0
|
||||
python-neutronclient>=4.2.0 # Apache-2.0
|
||||
python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0
|
||||
python-swiftclient>=2.2.0 # Apache-2.0
|
||||
|
|
|
@ -35,6 +35,8 @@ from magnumclient.common import base as magnum_base
|
|||
from magnumclient.v1 import client as magnumclient
|
||||
from mistralclient.api import base as mistral_base
|
||||
from mistralclient.api.v2 import client as mistralclient
|
||||
from muranoclient.common import base as murano_base
|
||||
from muranoclient.v1 import client as muranoclient
|
||||
from novaclient import base as nova_base
|
||||
from novaclient import client as novaclient
|
||||
from troveclient import base as trove_base
|
||||
|
@ -81,6 +83,7 @@ BASE_TROVE_MANAGER = trove_base.Manager
|
|||
BASE_IRONIC_MANAGER = ironic_base.Manager
|
||||
BASE_BARBICAN_MANAGER = barbican_base.BaseEntityManager
|
||||
BASE_MAGNUM_MANAGER = magnum_base.Manager
|
||||
BASE_MURANO_MANAGER = murano_base.Manager
|
||||
|
||||
|
||||
def get_parser():
|
||||
|
@ -188,6 +191,10 @@ def get_magnum_client(**kwargs):
|
|||
return magnumclient.Client()
|
||||
|
||||
|
||||
def get_murano_client(**kwargs):
|
||||
return muranoclient.Client('')
|
||||
|
||||
|
||||
CLIENTS = {
|
||||
'nova': get_nova_client,
|
||||
'heat': get_heat_client,
|
||||
|
@ -201,6 +208,7 @@ CLIENTS = {
|
|||
'mistral': get_mistral_client,
|
||||
'designate': get_designate_client,
|
||||
'magnum': get_magnum_client,
|
||||
'murano': get_murano_client,
|
||||
# 'neutron': get_nova_client
|
||||
# 'baremetal_introspection': ...
|
||||
# 'swift': ...
|
||||
|
@ -219,6 +227,7 @@ BASE_MANAGERS = {
|
|||
'mistral': BASE_MISTRAL_MANAGER,
|
||||
'designate': None,
|
||||
'magnum': BASE_MAGNUM_MANAGER,
|
||||
'murano': BASE_MURANO_MANAGER,
|
||||
# 'neutron': BASE_NOVA_MANAGER
|
||||
# 'baremetal_introspection': ...
|
||||
# 'swift': ...
|
||||
|
|
Loading…
Reference in New Issue