From f4640692b1879b7b3ba6b2e98372256d4f053cb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Piliszek?= Date: Wed, 17 Mar 2021 14:45:45 +0000 Subject: [PATCH] Drop dep on python-masakariclient There is no logic in python-masakariclient that masakari-dashboard requires. It is safe to drop. The check for supported API versions was irrelevant already as it depends directly on OpenStack SDK. Change-Id: I97c6db49f1a4dbd36f7003299938a05994e37cb6 --- masakaridashboard/api/api.py | 45 +------------------ masakaridashboard/notifications/tabs.py | 8 +--- ...p-masakariclient-dep-054a456a5bf2b941.yaml | 4 ++ requirements.txt | 1 - 4 files changed, 6 insertions(+), 52 deletions(-) create mode 100644 releasenotes/notes/drop-masakariclient-dep-054a456a5bf2b941.yaml diff --git a/masakaridashboard/api/api.py b/masakaridashboard/api/api.py index 2b89f7d..703392c 100644 --- a/masakaridashboard/api/api.py +++ b/masakaridashboard/api/api.py @@ -22,15 +22,11 @@ from horizon.utils import functions as utils from horizon.utils import memoized from keystoneauth1.identity.generic import token from keystoneauth1 import session as ks_session -from masakariclient import api_versions -from masakariclient import plugin from openstack import connection from openstack_dashboard.api import nova as nova_api from masakaridashboard.handle_errors import handle_errors -MICROVERSION_FEATURES = {"recovery_workflow_details": ["1.1"]} - @memoized.memoized def openstack_connection(request, version=None): @@ -192,46 +188,7 @@ def get_notification(request, notification_id): return openstack_connection(request).get_notification(notification_id) -def get_requested_versions(features): - if not features: - return None - # Convert a single feature string into a list for backward compatibility. - if isinstance(features, str): - features = [features] - service_features = MICROVERSION_FEATURES - feature_versions = set(service_features[features[0]]) - for feature in features[1:]: - feature_versions &= set(service_features[feature]) - if not feature_versions: - return None - # Sort version candidates from larger versins - feature_versions = sorted(feature_versions, reverse=True, - key=lambda v: [int(i) for i in v.split('.')]) - return feature_versions - - -def get_microversion_for_features(features, wrapper_class, min_ver, max_ver): - """Retrieves that highest known functional microversion for features""" - feature_versions = get_requested_versions(features) - if not feature_versions: - return None - for version in feature_versions: - microversion = wrapper_class(version) - if microversion.matches(min_ver, max_ver): - return microversion - return None - - -@memoized.memoized -def get_microversion(features): - min_ver = api_versions.APIVersion(plugin.SUPPORTED_VERSIONS[1]) - max_ver = api_versions.APIVersion(plugin.SUPPORTED_VERSIONS[-1]) - return (get_microversion_for_features( - features, api_versions.APIVersion, min_ver, max_ver)) - - def get_notification_with_progress_details(request, notification_id): - microversion = get_microversion("recovery_workflow_details") return openstack_connection( - request, version=microversion.get_string()).get_notification( + request, version='1.1').get_notification( notification_id) diff --git a/masakaridashboard/notifications/tabs.py b/masakaridashboard/notifications/tabs.py index efdba7b..0c9121e 100644 --- a/masakaridashboard/notifications/tabs.py +++ b/masakaridashboard/notifications/tabs.py @@ -16,8 +16,6 @@ from django.utils.translation import ugettext_lazy as _ from horizon import exceptions from horizon import tabs -from masakariclient import api_versions -from masakariclient import plugin from masakaridashboard.api import api from masakaridashboard.notifications import tables as notification_tab @@ -70,8 +68,4 @@ class NotificationProgressDetailsTab(tabs.TableTab): class NotificationDetailTabs(tabs.DetailTabsGroup): slug = "notification_details" - if api_versions.APIVersion( - plugin.DEFAULT_HA_API_VERSION) >= api_versions.APIVersion("1.1"): - tabs = (OverviewTab, NotificationProgressDetailsTab) - else: - tabs = (OverviewTab,) + tabs = (OverviewTab, NotificationProgressDetailsTab) diff --git a/releasenotes/notes/drop-masakariclient-dep-054a456a5bf2b941.yaml b/releasenotes/notes/drop-masakariclient-dep-054a456a5bf2b941.yaml new file mode 100644 index 0000000..d009bb0 --- /dev/null +++ b/releasenotes/notes/drop-masakariclient-dep-054a456a5bf2b941.yaml @@ -0,0 +1,4 @@ +--- +other: + - | + Masakari Dashboard no longer depends on the Masakari Client (OSC plugin). diff --git a/requirements.txt b/requirements.txt index 1118b31..af3a184 100644 --- a/requirements.txt +++ b/requirements.txt @@ -12,5 +12,4 @@ pbr!=2.1.0,>=2.0.0 # Apache-2.0 # Horizon Core Requirements horizon>=17.1.0 # Apache-2.0 openstacksdk>=0.26.0 -python-masakariclient>=5.4.0 PyYAML>=3.12 # MIT