From 96bfc6c7185cef96a8906709c2364485b9ccac96 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Fri, 17 May 2024 00:42:29 +0900 Subject: [PATCH] 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 --- mistral_extra/actions/generator_factory.py | 4 +- mistral_extra/actions/openstack/actions.py | 81 -------------- mistral_extra/actions/openstack/mapping.json | 100 ------------------ mistral_extra/config.py | 3 +- .../unit/actions/openstack/test_generator.py | 4 +- .../openstack/test_openstack_actions.py | 30 ------ ...ve-murano-and-senlin-92e0706e778ff480.yaml | 5 + requirements.txt | 6 -- test-requirements.txt | 5 - tools/get_action_list.py | 9 -- 10 files changed, 9 insertions(+), 238 deletions(-) create mode 100644 releasenotes/notes/remove-murano-and-senlin-92e0706e778ff480.yaml diff --git a/mistral_extra/actions/generator_factory.py b/mistral_extra/actions/generator_factory.py index 7845378..3bc529a 100644 --- a/mistral_extra/actions/generator_factory.py +++ b/mistral_extra/actions/generator_factory.py @@ -20,8 +20,8 @@ from mistral_extra.actions.openstack.action_generator import base SUPPORTED_MODULES = [ 'Nova', 'Glance', 'Keystone', 'Heat', 'Neutron', 'Cinder', 'Trove', 'Ironic', 'Baremetal Introspection', 'Swift', 'SwiftService', - 'Zaqar', 'Barbican', 'Mistral', 'Designate', 'Magnum', 'Murano', 'Tacker', - 'Aodh', 'Gnocchi', 'Vitrage', 'Senlin', 'Zun', 'Manila' + 'Zaqar', 'Barbican', 'Mistral', 'Designate', 'Magnum', 'Tacker', + 'Aodh', 'Gnocchi', 'Vitrage', 'Zun', 'Manila' ] diff --git a/mistral_extra/actions/openstack/actions.py b/mistral_extra/actions/openstack/actions.py index 9e6befb..35ef566 100644 --- a/mistral_extra/actions/openstack/actions.py +++ b/mistral_extra/actions/openstack/actions.py @@ -64,12 +64,10 @@ manilaclient = _try_import('manilaclient.client') manila_api_versions = _try_import('manilaclient.api_versions') magnumclient = _try_import('magnumclient.v1.client') mistralclient = _try_import('mistralclient.api.v2.client') -muranoclient = _try_import('muranoclient.v1.client') neutronclient = _try_import('neutronclient.v2_0.client') nova = _try_import('novaclient') novaclient = _try_import('novaclient.client') nova_api_versions = _try_import('novaclient.api_versions') -senlinclient = _try_import('senlinclient.v1.client') swift_client = _try_import('swiftclient.client') swiftservice = _try_import('swiftclient.service') 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') -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): _service_name = 'tacker' @@ -810,57 +780,6 @@ class TackerAction(base.OpenStackAction): 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): _service_type = 'alarming' diff --git a/mistral_extra/actions/openstack/mapping.json b/mistral_extra/actions/openstack/mapping.json index 6219bbd..6c45727 100644 --- a/mistral_extra/actions/openstack/mapping.json +++ b/mistral_extra/actions/openstack/mapping.json @@ -1084,55 +1084,6 @@ "certificates_rotate_ca": "certificates.rotate_ca", "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":{ "_comment": "It uses tackerclient.v1_0.", "list_extensions": "list_extensions", @@ -1169,57 +1120,6 @@ "list_vims": "list_vims", "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": { "_comment": "It uses vitrageclient.v1.", "alarm_list": "alarm.list", diff --git a/mistral_extra/config.py b/mistral_extra/config.py index 205f2d3..f34845a 100644 --- a/mistral_extra/config.py +++ b/mistral_extra/config.py @@ -39,8 +39,7 @@ openstack_actions_opts = [ cfg.ListOpt( 'modules-support-region', default=['nova', 'glance', 'heat', 'neutron', 'cinder', - 'trove', 'ironic', 'designate', 'murano', 'tacker', 'senlin', - 'aodh', 'gnocchi'], + 'trove', 'ironic', 'designate', 'tacker', 'aodh', 'gnocchi'], help='List of module names that support region in actions.' ), cfg.StrOpt( diff --git a/mistral_extra/tests/unit/actions/openstack/test_generator.py b/mistral_extra/tests/unit/actions/openstack/test_generator.py index 5b5f44e..92132ea 100644 --- a/mistral_extra/tests/unit/actions/openstack/test_generator.py +++ b/mistral_extra/tests/unit/actions/openstack/test_generator.py @@ -53,16 +53,14 @@ MODULE_MAPPING = { 'designate': ['designate.quotas_list', actions.DesignateAction], 'manila': ['manila.shares_list', actions.ManilaAction], 'magnum': ['magnum.mservices_list', actions.MagnumAction], - 'murano': ['murano.deployments_list', actions.MuranoAction], 'tacker': ['tacker.list_vims', actions.TackerAction], - 'senlin': ['senlin.get_profile', actions.SenlinAction], 'aodh': ['aodh.alarm_list', actions.AodhAction], 'gnocchi': ['gnocchi.metric_list', actions.GnocchiAction], 'vitrage': ['vitrage.alarm_get', actions.VitrageAction], 'zun': ['zun.containers_list', actions.ZunAction] } -EXTRA_MODULES = ['neutron', 'swift', 'zaqar', 'tacker', 'senlin'] +EXTRA_MODULES = ['neutron', 'swift', 'zaqar', 'tacker'] CONF = cfg.CONF diff --git a/mistral_extra/tests/unit/actions/openstack/test_openstack_actions.py b/mistral_extra/tests/unit/actions/openstack/test_openstack_actions.py index 0bad98f..84a2b0f 100644 --- a/mistral_extra/tests/unit/actions/openstack/test_openstack_actions.py +++ b/mistral_extra/tests/unit/actions/openstack/test_openstack_actions.py @@ -254,21 +254,6 @@ class OpenStackActionTest(base.BaseTestCase): self.assertTrue(mocked().domain.get.called) 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') def test_tacker_action(self, mocked): mock_ctx = mock.Mock() @@ -284,21 +269,6 @@ class OpenStackActionTest(base.BaseTestCase): 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') def test_aodh_action(self, mocked): mock_ctx = mock.Mock() diff --git a/releasenotes/notes/remove-murano-and-senlin-92e0706e778ff480.yaml b/releasenotes/notes/remove-murano-and-senlin-92e0706e778ff480.yaml new file mode 100644 index 0000000..f8deb54 --- /dev/null +++ b/releasenotes/notes/remove-murano-and-senlin-92e0706e778ff480.yaml @@ -0,0 +1,5 @@ +--- +upgrade: + - | + Support for Murano and Senlin was removed, because these two projects were + retired. diff --git a/requirements.txt b/requirements.txt index 436282a..eb54ba3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,10 +2,6 @@ # 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. -# 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 Babel!=2.4.0,>=2.3.4 # BSD 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-manilaclient>=1.23.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-novaclient>=9.1.0 # Apache-2.0 -python-senlinclient>=1.11.0 # Apache-2.0 python-swiftclient>=3.2.0 # Apache-2.0 python-tackerclient>=0.8.0 # Apache-2.0 python-troveclient>=2.2.0 # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt index e12803b..1b5d70f 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -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 coverage>=6.4.3 # Apache-2.0 doc8>=0.6.0 # Apache-2.0 oslotest>=3.2.0 # Apache-2.0 stestr>=2.0.0 # Apache-2.0 -unittest2>=1.1.0 # BSD requests-mock>=1.2.0 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD diff --git a/tools/get_action_list.py b/tools/get_action_list.py index 4e7cd1b..ef6dca9 100644 --- a/tools/get_action_list.py +++ b/tools/get_action_list.py @@ -52,8 +52,6 @@ from manilaclient import base as manila_base from manilaclient.v2 import client as manilaclient 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 @@ -103,7 +101,6 @@ BASE_IRONIC_MANAGER = ironic_base.Manager BASE_BARBICAN_MANAGER = barbican_base.BaseEntityManager BASE_MANILA_MANAGER = manila_base.Manager BASE_MAGNUM_MANAGER = magnum_base.Manager -BASE_MURANO_MANAGER = murano_base.Manager BASE_AODH_MANAGER = aodh_base.Manager BASE_GNOCCHI_MANAGER = gnocchi_base.Manager @@ -206,10 +203,6 @@ def get_magnum_client(**kwargs): return magnumclient.Client() -def get_murano_client(**kwargs): - return muranoclient.Client('') - - def get_aodh_client(**kwargs): return aodhclient.Client('') @@ -237,7 +230,6 @@ CLIENTS = { 'mistral': get_mistral_client, 'designate': get_designate_client, 'magnum': get_magnum_client, - 'murano': get_murano_client, 'aodh': get_aodh_client, 'gnocchi': get_gnocchi_client, 'manila': get_manila_client, @@ -258,7 +250,6 @@ BASE_MANAGERS = { 'mistral': BASE_MISTRAL_MANAGER, 'designate': None, 'magnum': BASE_MAGNUM_MANAGER, - 'murano': BASE_MURANO_MANAGER, 'aodh': BASE_AODH_MANAGER, 'gnocchi': BASE_GNOCCHI_MANAGER, 'manila': BASE_MANILA_MANAGER,