Remove support for murano and senlin

These projects were marked inactive during 2024.1 and is being
retired in 2024.2[1][2].

Also get rid of unittest2, which is not actually required.

[1] https://review.opendev.org/c/openstack/governance/+/919358
[2] https://review.opendev.org/c/openstack/governance/+/919347

Change-Id: Ief5bbcd05379b49dc1ad2c05c2d40d15d869f40a
This commit is contained in:
Takashi Kajinami 2024-05-17 00:42:29 +09:00
parent 660dd14be5
commit 96bfc6c718
10 changed files with 9 additions and 238 deletions

View File

@ -20,8 +20,8 @@ from mistral_extra.actions.openstack.action_generator import base
SUPPORTED_MODULES = [ SUPPORTED_MODULES = [
'Nova', 'Glance', 'Keystone', 'Heat', 'Neutron', 'Cinder', 'Nova', 'Glance', 'Keystone', 'Heat', 'Neutron', 'Cinder',
'Trove', 'Ironic', 'Baremetal Introspection', 'Swift', 'SwiftService', 'Trove', 'Ironic', 'Baremetal Introspection', 'Swift', 'SwiftService',
'Zaqar', 'Barbican', 'Mistral', 'Designate', 'Magnum', 'Murano', 'Tacker', 'Zaqar', 'Barbican', 'Mistral', 'Designate', 'Magnum', 'Tacker',
'Aodh', 'Gnocchi', 'Vitrage', 'Senlin', 'Zun', 'Manila' 'Aodh', 'Gnocchi', 'Vitrage', 'Zun', 'Manila'
] ]

View File

@ -64,12 +64,10 @@ manilaclient = _try_import('manilaclient.client')
manila_api_versions = _try_import('manilaclient.api_versions') manila_api_versions = _try_import('manilaclient.api_versions')
magnumclient = _try_import('magnumclient.v1.client') magnumclient = _try_import('magnumclient.v1.client')
mistralclient = _try_import('mistralclient.api.v2.client') mistralclient = _try_import('mistralclient.api.v2.client')
muranoclient = _try_import('muranoclient.v1.client')
neutronclient = _try_import('neutronclient.v2_0.client') neutronclient = _try_import('neutronclient.v2_0.client')
nova = _try_import('novaclient') nova = _try_import('novaclient')
novaclient = _try_import('novaclient.client') novaclient = _try_import('novaclient.client')
nova_api_versions = _try_import('novaclient.api_versions') nova_api_versions = _try_import('novaclient.api_versions')
senlinclient = _try_import('senlinclient.v1.client')
swift_client = _try_import('swiftclient.client') swift_client = _try_import('swiftclient.client')
swiftservice = _try_import('swiftclient.service') swiftservice = _try_import('swiftclient.service')
tackerclient = _try_import('tackerclient.v1_0.client') tackerclient = _try_import('tackerclient.v1_0.client')
@ -754,34 +752,6 @@ class MagnumAction(base.OpenStackAction):
return cls._get_client_class()(auth_url='X', magnum_url='X') return cls._get_client_class()(auth_url='X', magnum_url='X')
class MuranoAction(base.OpenStackAction):
_service_name = 'murano'
@classmethod
def _get_client_class(cls):
return muranoclient.Client
def _create_client(self, context):
LOG.debug("Murano action security context: %s", context)
keystone_endpoint = keystone_utils.get_keystone_endpoint()
murano_endpoint = self.get_service_endpoint()
return self._get_client_class()(
endpoint=murano_endpoint.url,
token=context.auth_token,
tenant=context.project_id,
region_name=murano_endpoint.region,
auth_url=keystone_endpoint.url,
insecure=context.insecure
)
@classmethod
def _get_fake_client(cls):
return cls._get_client_class()("http://127.0.0.1:8082/")
class TackerAction(base.OpenStackAction): class TackerAction(base.OpenStackAction):
_service_name = 'tacker' _service_name = 'tacker'
@ -810,57 +780,6 @@ class TackerAction(base.OpenStackAction):
return cls._get_client_class()() return cls._get_client_class()()
class SenlinAction(base.OpenStackAction):
_service_name = 'senlin'
@classmethod
def _get_client_class(cls):
return senlinclient.Client
def _create_client(self, context):
LOG.debug("Senlin action security context: %s", context)
keystone_endpoint = keystone_utils.get_keystone_endpoint()
senlin_endpoint = self.get_service_endpoint()
if context.is_trust_scoped and keystone_utils.is_token_trust_scoped(
context.auth_token):
if context.trust_id is None:
raise Exception(
"'trust_id' must be provided in the admin context."
)
auth = ks_identity_v3.Password(
auth_url=keystone_endpoint.url,
trust_id=context.trust_id,
username=CONF.keystone_authtoken.username,
password=CONF.keystone_authtoken.password,
user_domain_name=CONF.keystone_authtoken.user_domain_name
)
else:
auth = ks_identity_v3.Token(
auth_url=keystone_endpoint.url,
token=context.auth_token,
project_id=context.project_id
)
return self._get_client_class()(
endpoint_url=senlin_endpoint.url,
session=ks_session.Session(auth=auth),
tenant_id=context.project_id,
region_name=senlin_endpoint.region,
auth_url=keystone_endpoint.url,
insecure=context.insecure
)
@classmethod
def _get_fake_client(cls):
# Senlin client changed interface a bit, let's skip __init__ altogether
class_ = cls._get_client_class()
return class_.__new__(class_)
class AodhAction(base.OpenStackAction): class AodhAction(base.OpenStackAction):
_service_type = 'alarming' _service_type = 'alarming'

View File

@ -1084,55 +1084,6 @@
"certificates_rotate_ca": "certificates.rotate_ca", "certificates_rotate_ca": "certificates.rotate_ca",
"mservices_list": "mservices.list" "mservices_list": "mservices.list"
}, },
"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_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"
},
"tacker":{ "tacker":{
"_comment": "It uses tackerclient.v1_0.", "_comment": "It uses tackerclient.v1_0.",
"list_extensions": "list_extensions", "list_extensions": "list_extensions",
@ -1169,57 +1120,6 @@
"list_vims": "list_vims", "list_vims": "list_vims",
"show_vim": "show_vim" "show_vim": "show_vim"
}, },
"senlin":{
"_comment": "It uses senlinclient.v1_0.",
"profile_types": "profile_types",
"get_profile_type": "get_profile_type",
"profiles": "profiles",
"create_profile": "create_profile",
"get_profile": "get_profile",
"update_profile": "update_profile",
"delete_profile": "delete_profile",
"validate_profile": "validate_profile",
"policy_types": "policy_types",
"get_policy_type": "get_policy_type",
"policies": "policies",
"create_policy": "create_policy",
"get_policy": "get_policy",
"update_policy": "update_policy",
"delete_policy": "delete_policy",
"validate_policy": "validate_policy",
"clusters": "clusters",
"create_cluster": "create_cluster",
"get_cluster": "get_cluster",
"update_cluster": "update_cluster",
"delete_cluster": "delete_cluster",
"cluster_add_nodes": "cluster_add_nodes",
"cluster_del_nodes": "cluster_del_nodes",
"cluster_resize": "cluster_resize",
"cluster_scale_out": "cluster_scale_out",
"cluster_scale_in": "cluster_scale_in",
"cluster_policies": "cluster_policies",
"get_cluster_policy": "get_cluster_policy",
"cluster_attach_policy": "cluster_attach_policy",
"cluster_detach_policy": "cluster_detach_policy",
"cluster_update_policy": "cluster_update_policy",
"check_cluster": "check_cluster",
"recover_cluster": "recover_cluster",
"nodes": "nodes",
"create_node": "create_node",
"get_node": "get_node",
"update_node": "update_node",
"delete_node": "delete_node",
"check_node": "check_node",
"recover_node": "recover_node",
"receivers": "receivers",
"create_receiver": "create_receiver",
"get_receiver": "get_receiver",
"delete_receiver": "delete_receiver",
"events": "events",
"get_event": "get_event",
"actions": "actions",
"get_action": "get_action"
},
"vitrage": { "vitrage": {
"_comment": "It uses vitrageclient.v1.", "_comment": "It uses vitrageclient.v1.",
"alarm_list": "alarm.list", "alarm_list": "alarm.list",

View File

@ -39,8 +39,7 @@ openstack_actions_opts = [
cfg.ListOpt( cfg.ListOpt(
'modules-support-region', 'modules-support-region',
default=['nova', 'glance', 'heat', 'neutron', 'cinder', default=['nova', 'glance', 'heat', 'neutron', 'cinder',
'trove', 'ironic', 'designate', 'murano', 'tacker', 'senlin', 'trove', 'ironic', 'designate', 'tacker', 'aodh', 'gnocchi'],
'aodh', 'gnocchi'],
help='List of module names that support region in actions.' help='List of module names that support region in actions.'
), ),
cfg.StrOpt( cfg.StrOpt(

View File

@ -53,16 +53,14 @@ MODULE_MAPPING = {
'designate': ['designate.quotas_list', actions.DesignateAction], 'designate': ['designate.quotas_list', actions.DesignateAction],
'manila': ['manila.shares_list', actions.ManilaAction], 'manila': ['manila.shares_list', actions.ManilaAction],
'magnum': ['magnum.mservices_list', actions.MagnumAction], 'magnum': ['magnum.mservices_list', actions.MagnumAction],
'murano': ['murano.deployments_list', actions.MuranoAction],
'tacker': ['tacker.list_vims', actions.TackerAction], 'tacker': ['tacker.list_vims', actions.TackerAction],
'senlin': ['senlin.get_profile', actions.SenlinAction],
'aodh': ['aodh.alarm_list', actions.AodhAction], 'aodh': ['aodh.alarm_list', actions.AodhAction],
'gnocchi': ['gnocchi.metric_list', actions.GnocchiAction], 'gnocchi': ['gnocchi.metric_list', actions.GnocchiAction],
'vitrage': ['vitrage.alarm_get', actions.VitrageAction], 'vitrage': ['vitrage.alarm_get', actions.VitrageAction],
'zun': ['zun.containers_list', actions.ZunAction] 'zun': ['zun.containers_list', actions.ZunAction]
} }
EXTRA_MODULES = ['neutron', 'swift', 'zaqar', 'tacker', 'senlin'] EXTRA_MODULES = ['neutron', 'swift', 'zaqar', 'tacker']
CONF = cfg.CONF CONF = cfg.CONF

View File

@ -254,21 +254,6 @@ class OpenStackActionTest(base.BaseTestCase):
self.assertTrue(mocked().domain.get.called) self.assertTrue(mocked().domain.get.called)
mocked().domain.get.assert_called_once_with(domain="example.com") mocked().domain.get.assert_called_once_with(domain="example.com")
@mock.patch.object(actions.MuranoAction, '_get_client')
def test_murano_action(self, mocked):
mock_ctx = mock.Mock()
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(mock_ctx)
self.assertTrue(mocked().categories.get.called)
mocked().categories.get.assert_called_once_with(
category_id="1234-abcd"
)
@mock.patch.object(actions.TackerAction, '_get_client') @mock.patch.object(actions.TackerAction, '_get_client')
def test_tacker_action(self, mocked): def test_tacker_action(self, mocked):
mock_ctx = mock.Mock() mock_ctx = mock.Mock()
@ -284,21 +269,6 @@ class OpenStackActionTest(base.BaseTestCase):
vim_id="1234-abcd" vim_id="1234-abcd"
) )
@mock.patch.object(actions.SenlinAction, '_get_client')
def test_senlin_action(self, mocked):
mock_ctx = mock.Mock()
action_class = actions.SenlinAction
action_class.client_method_name = "get_cluster"
action = action_class(cluster_id='1234-abcd')
action.run(mock_ctx)
self.assertTrue(mocked().get_cluster.called)
mocked().get_cluster.assert_called_once_with(
cluster_id="1234-abcd"
)
@mock.patch.object(actions.AodhAction, '_get_client') @mock.patch.object(actions.AodhAction, '_get_client')
def test_aodh_action(self, mocked): def test_aodh_action(self, mocked):
mock_ctx = mock.Mock() mock_ctx = mock.Mock()

View File

@ -0,0 +1,5 @@
---
upgrade:
- |
Support for Murano and Senlin was removed, because these two projects were
retired.

View File

@ -2,10 +2,6 @@
# date but we do not test them so no guarantee of having them all correct. If # date but we do not test them so no guarantee of having them all correct. If
# you find any incorrect lower bounds, let us know or propose a fix. # you find any incorrect lower bounds, let us know or propose a fix.
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
pbr!=2.1.0,>=2.0.0 # Apache-2.0 pbr!=2.1.0,>=2.0.0 # Apache-2.0
Babel!=2.4.0,>=2.3.4 # BSD Babel!=2.4.0,>=2.3.4 # BSD
oslo.log>=3.36.0 # Apache-2.0 oslo.log>=3.36.0 # Apache-2.0
@ -22,10 +18,8 @@ python-keystoneclient>=3.8.0 # Apache-2.0
python-mistralclient!=3.2.0,>=3.1.0 # Apache-2.0 python-mistralclient!=3.2.0,>=3.1.0 # Apache-2.0
python-manilaclient>=1.23.0 # Apache-2.0 python-manilaclient>=1.23.0 # Apache-2.0
python-magnumclient>=2.15.0 # Apache-2.0 python-magnumclient>=2.15.0 # Apache-2.0
python-muranoclient>=1.3.0 # Apache-2.0
python-neutronclient>=6.7.0 # Apache-2.0 python-neutronclient>=6.7.0 # Apache-2.0
python-novaclient>=9.1.0 # Apache-2.0 python-novaclient>=9.1.0 # Apache-2.0
python-senlinclient>=1.11.0 # Apache-2.0
python-swiftclient>=3.2.0 # Apache-2.0 python-swiftclient>=3.2.0 # Apache-2.0
python-tackerclient>=0.8.0 # Apache-2.0 python-tackerclient>=0.8.0 # Apache-2.0
python-troveclient>=2.2.0 # Apache-2.0 python-troveclient>=2.2.0 # Apache-2.0

View File

@ -1,12 +1,7 @@
# The order of packages is significant, because pip processes them in the order
# of appearance. Changing the order has an impact on the overall integration
# process, which may cause wedges in the gate later.
hacking>=3.0.1 # Apache-2.0 hacking>=3.0.1 # Apache-2.0
coverage>=6.4.3 # Apache-2.0 coverage>=6.4.3 # Apache-2.0
doc8>=0.6.0 # Apache-2.0 doc8>=0.6.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0
stestr>=2.0.0 # Apache-2.0 stestr>=2.0.0 # Apache-2.0
unittest2>=1.1.0 # BSD
requests-mock>=1.2.0 # Apache-2.0 requests-mock>=1.2.0 # Apache-2.0
fixtures>=3.0.0 # Apache-2.0/BSD fixtures>=3.0.0 # Apache-2.0/BSD

View File

@ -52,8 +52,6 @@ from manilaclient import base as manila_base
from manilaclient.v2 import client as manilaclient from manilaclient.v2 import client as manilaclient
from mistralclient.api import base as mistral_base from mistralclient.api import base as mistral_base
from mistralclient.api.v2 import client as mistralclient 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 base as nova_base
from novaclient import client as novaclient from novaclient import client as novaclient
from troveclient import base as trove_base from troveclient import base as trove_base
@ -103,7 +101,6 @@ BASE_IRONIC_MANAGER = ironic_base.Manager
BASE_BARBICAN_MANAGER = barbican_base.BaseEntityManager BASE_BARBICAN_MANAGER = barbican_base.BaseEntityManager
BASE_MANILA_MANAGER = manila_base.Manager BASE_MANILA_MANAGER = manila_base.Manager
BASE_MAGNUM_MANAGER = magnum_base.Manager BASE_MAGNUM_MANAGER = magnum_base.Manager
BASE_MURANO_MANAGER = murano_base.Manager
BASE_AODH_MANAGER = aodh_base.Manager BASE_AODH_MANAGER = aodh_base.Manager
BASE_GNOCCHI_MANAGER = gnocchi_base.Manager BASE_GNOCCHI_MANAGER = gnocchi_base.Manager
@ -206,10 +203,6 @@ def get_magnum_client(**kwargs):
return magnumclient.Client() return magnumclient.Client()
def get_murano_client(**kwargs):
return muranoclient.Client('')
def get_aodh_client(**kwargs): def get_aodh_client(**kwargs):
return aodhclient.Client('') return aodhclient.Client('')
@ -237,7 +230,6 @@ CLIENTS = {
'mistral': get_mistral_client, 'mistral': get_mistral_client,
'designate': get_designate_client, 'designate': get_designate_client,
'magnum': get_magnum_client, 'magnum': get_magnum_client,
'murano': get_murano_client,
'aodh': get_aodh_client, 'aodh': get_aodh_client,
'gnocchi': get_gnocchi_client, 'gnocchi': get_gnocchi_client,
'manila': get_manila_client, 'manila': get_manila_client,
@ -258,7 +250,6 @@ BASE_MANAGERS = {
'mistral': BASE_MISTRAL_MANAGER, 'mistral': BASE_MISTRAL_MANAGER,
'designate': None, 'designate': None,
'magnum': BASE_MAGNUM_MANAGER, 'magnum': BASE_MAGNUM_MANAGER,
'murano': BASE_MURANO_MANAGER,
'aodh': BASE_AODH_MANAGER, 'aodh': BASE_AODH_MANAGER,
'gnocchi': BASE_GNOCCHI_MANAGER, 'gnocchi': BASE_GNOCCHI_MANAGER,
'manila': BASE_MANILA_MANAGER, 'manila': BASE_MANILA_MANAGER,