From 0fce8e48a317440a0aaf351d9255b79d84ad5e21 Mon Sep 17 00:00:00 2001 From: Mehdi Abaakouk Date: Tue, 10 Jul 2018 15:51:02 +0200 Subject: [PATCH] publisher: allow to not inherit from ConfigPublisherBase Change-Id: I9bb2f392bcdd5d920a8f0db883766e5439d7de73 --- ceilometer/publisher/__init__.py | 10 +++++++++- requirements.txt | 1 + 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ceilometer/publisher/__init__.py b/ceilometer/publisher/__init__.py index d9af055a6a..dc50be2bec 100644 --- a/ceilometer/publisher/__init__.py +++ b/ceilometer/publisher/__init__.py @@ -16,11 +16,16 @@ import abc +import funcsigs +from oslo_log import log from oslo_utils import netutils import six from stevedore import driver +LOG = log.getLogger(__name__) + + def get_publisher(conf, url, namespace): """Get publisher driver and load it. @@ -29,9 +34,12 @@ def get_publisher(conf, url, namespace): """ parse_result = netutils.urlsplit(url) loaded_driver = driver.DriverManager(namespace, parse_result.scheme) - if issubclass(loaded_driver.driver, ConfigPublisherBase): + if len(funcsigs.signature(loaded_driver.driver).parameters) == 2: return loaded_driver.driver(conf, parse_result) else: + # We keep it just the time to cleanup panko + LOG.warning("%s publisher use the deprecated class signature", + parse_result.scheme) return loaded_driver.driver(parse_result) diff --git a/requirements.txt b/requirements.txt index d730da3f47..7422c0977d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,6 +6,7 @@ cachetools>=1.1.0 # MIT License cotyledon>=1.3.0 #Apache-2.0 futures>=3.0;python_version=='2.7' or python_version=='2.6' # BSD futurist>=0.11.0 # Apache-2.0 +funcsigs debtcollector>=1.2.0 # Apache-2.0 jsonpath-rw-ext>=0.1.9 # Apache-2.0 lxml>=2.3 # BSD