diff options
author | Miroslav Los <miroslav.los@pantheon.tech> | 2019-11-14 17:36:44 +0100 |
---|---|---|
committer | Miroslav Los <miroslav.los@pantheon.tech> | 2020-02-14 17:34:04 +0100 |
commit | 9b7e81e78c70514aa123482610e274869b6ba137 (patch) | |
tree | e2e44b515d518825db9240a5e4a8fe2efe0b3126 /dmaap | |
parent | 4daa9d9a30306cfa6d25999cdc992d886fa405a8 (diff) |
Support python3 in all plugins
Unify tox/requirements/setup.py requirement specifications.
Use cloudify-common 5.0.5 release.
For helm, use a dev cloudify-common build with better python3 code.
Use PEP 508 URLs in requirements for the non-PyPI (github) release.
Fix mixed indentation and trailing whitespace.
Signed-off-by: Miroslav Los <miroslav.los@pantheon.tech>
Issue-ID: CCSDK-1931
Change-Id: I607957d9e2c299121785f3f02420c6038966a200
Diffstat (limited to 'dmaap')
-rw-r--r-- | dmaap/consulif/consulif.py | 7 | ||||
-rw-r--r-- | dmaap/dmaap.yaml | 2 | ||||
-rw-r--r-- | dmaap/dmaapcontrollerif/dmaap_requests.py | 16 | ||||
-rw-r--r-- | dmaap/dmaapplugin/__init__.py | 3 | ||||
-rw-r--r-- | dmaap/dmaapplugin/dr_bridge.py | 3 | ||||
-rw-r--r-- | dmaap/dmaapplugin/dr_lifecycle.py | 15 | ||||
-rw-r--r-- | dmaap/dmaapplugin/dr_relationships.py | 3 | ||||
-rw-r--r-- | dmaap/dmaapplugin/mr_lifecycle.py | 3 | ||||
-rw-r--r-- | dmaap/pom.xml | 4 | ||||
-rw-r--r-- | dmaap/requirements.txt | 4 | ||||
-rw-r--r-- | dmaap/setup.py | 28 | ||||
-rw-r--r-- | dmaap/tests/test_dmaapcontrollerif.py | 17 | ||||
-rw-r--r-- | dmaap/tests/test_dr_lifecycle.py | 17 | ||||
-rw-r--r-- | dmaap/tests/test_mr_lifecycle.py | 17 | ||||
-rw-r--r-- | dmaap/tox.ini | 8 |
15 files changed, 96 insertions, 51 deletions
diff --git a/dmaap/consulif/consulif.py b/dmaap/consulif/consulif.py index 8033603..5c78b89 100644 --- a/dmaap/consulif/consulif.py +++ b/dmaap/consulif/consulif.py @@ -2,6 +2,7 @@ # org.onap.ccsdk # ============================================================================= # Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -18,7 +19,11 @@ import consul import json -from urlparse import urlparse +try: + from urllib.parse import urlparse +except ImportError: + from urlparse import urlparse + class ConsulHandle(object): ''' diff --git a/dmaap/dmaap.yaml b/dmaap/dmaap.yaml index 4a47a7f..a4fe9fb 100644 --- a/dmaap/dmaap.yaml +++ b/dmaap/dmaap.yaml @@ -25,7 +25,7 @@ plugins: dmaapplugin: executor: 'central_deployment_agent' package_name: dmaap - package_version: 1.3.5 + package_version: 1.4.0 node_types: diff --git a/dmaap/dmaapcontrollerif/dmaap_requests.py b/dmaap/dmaapcontrollerif/dmaap_requests.py index 231953a..0f02594 100644 --- a/dmaap/dmaapcontrollerif/dmaap_requests.py +++ b/dmaap/dmaapcontrollerif/dmaap_requests.py @@ -2,6 +2,7 @@ # org.onap.ccsdk # ============================================================================= # Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -287,14 +288,15 @@ class DMaaPControllerHandle(object): locations.raise_for_status() # pull out location names for VALID locations with matching dcae_layer - return map(lambda l: l["dcaeLocationName"], - filter(lambda i : (i['dcaeLayer'] == dcae_layer and i['status'] == 'VALID'), - locations.json())) + return [location["dcaeLocationName"] for location in locations.json() + if location['dcaeLayer'] == dcae_layer + and location['status'] == 'VALID'] def get_dcae_central_locations(self): ''' Get the list of location names known to the DMaaP bus controller - whose "dcaeLayer" property contains "central" (ignoring case) and whose status is "VALID". + whose "dcaeLayer" property contains "central" (ignoring case) + and whose status is "VALID". "dcaeLayer" contains "central" for central sites. ''' # Do these as a separate step so things like 404 get reported precisely @@ -302,7 +304,7 @@ class DMaaPControllerHandle(object): locations.raise_for_status() # pull out location names for VALID central locations - return map(lambda l: l["dcaeLocationName"], - filter(lambda i : ('central' in i['dcaeLayer'].lower() and i['status'] == 'VALID'), - locations.json())) + return [location["dcaeLocationName"] for location in locations.json() + if 'central' in location['dcaeLayer'].lower() + and location['status'] == 'VALID'] diff --git a/dmaap/dmaapplugin/__init__.py b/dmaap/dmaapplugin/__init__.py index 43da00e..faa331b 100644 --- a/dmaap/dmaapplugin/__init__.py +++ b/dmaap/dmaapplugin/__init__.py @@ -2,6 +2,7 @@ # org.onap.ccsdk # ============================================================================= # Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,7 +22,7 @@ from consulif.consulif import ConsulHandle from cloudify.exceptions import NonRecoverableError import os -os.environ["REQUESTS_CA_BUNDLE"]="/opt/onap/certs/cacert.pem" # This is to handle https request thru plugin +os.environ["REQUESTS_CA_BUNDLE"]="/opt/onap/certs/cacert.pem" # This is to handle https request thru plugin CONSUL_HOST = "consul" # Should always be a local consul agent on Cloudify Manager DBCL_KEY_NAME = "dmaap-plugin" # Consul key containing DMaaP data bus credentials diff --git a/dmaap/dmaapplugin/dr_bridge.py b/dmaap/dmaapplugin/dr_bridge.py index 25022bb..f4c5cdc 100644 --- a/dmaap/dmaapplugin/dr_bridge.py +++ b/dmaap/dmaapplugin/dr_bridge.py @@ -2,6 +2,7 @@ # org.onap.ccsdk # ============================================================================= # Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +21,7 @@ from cloudify import ctx from cloudify.decorators import operation from cloudify.exceptions import NonRecoverableError from dmaapplugin import DMAAP_API_URL, DMAAP_USER, DMAAP_PASS -from dmaaputils import random_string +from dmaapplugin.dmaaputils import random_string from dmaapcontrollerif.dmaap_requests import DMaaPControllerHandle # Set up a subscriber to a source feed diff --git a/dmaap/dmaapplugin/dr_lifecycle.py b/dmaap/dmaapplugin/dr_lifecycle.py index 718158a..4efeef5 100644 --- a/dmaap/dmaapplugin/dr_lifecycle.py +++ b/dmaap/dmaapplugin/dr_lifecycle.py @@ -2,6 +2,7 @@ # org.onap.ccsdk # ============================================================================= # Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +21,7 @@ from cloudify import ctx from cloudify.decorators import operation from cloudify.exceptions import NonRecoverableError from dmaapplugin import DMAAP_API_URL, DMAAP_USER, DMAAP_PASS, DMAAP_OWNER -from dmaaputils import random_string +from dmaapplugin.dmaaputils import random_string from dmaapcontrollerif.dmaap_requests import DMaaPControllerHandle # Lifecycle operations for DMaaP Data Router feeds @@ -47,19 +48,19 @@ def create_feed(**kwargs): feed_name = random_string(12) # Set defaults/placeholders for the optional properties for the feed - if "feed_version" in ctx.node.properties.keys(): + if "feed_version" in ctx.node.properties: feed_version = ctx.node.properties["feed_version"] else: feed_version = "0.0" - if "feed_description" in ctx.node.properties.keys(): + if "feed_description" in ctx.node.properties: feed_description = ctx.node.properties["feed_description"] else: feed_description = "No description provided" - if "aspr_classification" in ctx.node.properties.keys(): + if "aspr_classification" in ctx.node.properties: aspr_classification = ctx.node.properties["aspr_classification"] else: aspr_classification = "unclassified" - if "useExisting" in ctx.node.properties.keys(): + if "useExisting" in ctx.node.properties: useExisting = ctx.node.properties["useExisting"] else: useExisting = False @@ -98,10 +99,10 @@ def get_existing_feed(**kwargs): dmc = DMaaPControllerHandle(DMAAP_API_URL, DMAAP_USER, DMAAP_PASS, ctx.logger) ctx.logger.info("DMaaPControllerHandle() returned") feed_id_input = False - if "feed_id" in ctx.node.properties.keys(): + if "feed_id" in ctx.node.properties: feed_id_input = True f = dmc.get_feed_info(ctx.node.properties["feed_id"]) - elif "feed_name" in ctx.node.properties.keys(): + elif "feed_name" in ctx.node.properties: feed_name = ctx.node.properties["feed_name"] f = dmc.get_feed_info_by_name(feed_name) if f is None: diff --git a/dmaap/dmaapplugin/dr_relationships.py b/dmaap/dmaapplugin/dr_relationships.py index 4c955f2..bdb742d 100644 --- a/dmaap/dmaapplugin/dr_relationships.py +++ b/dmaap/dmaapplugin/dr_relationships.py @@ -2,6 +2,7 @@ # org.onap.ccsdk # ============================================================================= # Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +21,7 @@ from cloudify import ctx from cloudify.decorators import operation from cloudify.exceptions import NonRecoverableError from dmaapplugin import DMAAP_API_URL, DMAAP_USER, DMAAP_PASS, CONSUL_HOST -from dmaaputils import random_string +from dmaapplugin.dmaaputils import random_string from dmaapcontrollerif.dmaap_requests import DMaaPControllerHandle from consulif.consulif import ConsulHandle diff --git a/dmaap/dmaapplugin/mr_lifecycle.py b/dmaap/dmaapplugin/mr_lifecycle.py index ec674de..eb4e1ba 100644 --- a/dmaap/dmaapplugin/mr_lifecycle.py +++ b/dmaap/dmaapplugin/mr_lifecycle.py @@ -2,6 +2,7 @@ # org.onap.ccsdk # ============================================================================= # Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,7 +21,7 @@ from cloudify import ctx from cloudify.decorators import operation from cloudify.exceptions import NonRecoverableError from dmaapplugin import DMAAP_API_URL, DMAAP_USER, DMAAP_PASS, DMAAP_OWNER -from dmaaputils import random_string +from dmaapplugin.dmaaputils import random_string from dmaapcontrollerif.dmaap_requests import DMaaPControllerHandle # Lifecycle operations for DMaaP Message Router topics diff --git a/dmaap/pom.xml b/dmaap/pom.xml index f49bb8c..95f0774 100644 --- a/dmaap/pom.xml +++ b/dmaap/pom.xml @@ -23,7 +23,7 @@ limitations under the License. <parent> <groupId>org.onap.ccsdk.platform</groupId> <artifactId>plugins</artifactId> - <version>1.0.1-SNAPSHOT</version> + <version>1.1.0-SNAPSHOT</version> </parent> <!--- CHANGE THE FOLLOWING 3 OBJECTS for your own repo --> @@ -31,7 +31,7 @@ limitations under the License. <artifactId>dmaap</artifactId> <name>dmaap</name> - <version>1.0.1-SNAPSHOT</version> + <version>1.4.0-SNAPSHOT</version> <url>http://maven.apache.org</url> <properties> <!-- name from the setup.py file --> diff --git a/dmaap/requirements.txt b/dmaap/requirements.txt index ffdb97f..54ffbc4 100644 --- a/dmaap/requirements.txt +++ b/dmaap/requirements.txt @@ -1 +1,3 @@ -python-consul==0.7.0 +python-consul>=0.7.0 +requests +cloudify-common>=5.0.5 diff --git a/dmaap/setup.py b/dmaap/setup.py index c423d95..7a4c85c 100644 --- a/dmaap/setup.py +++ b/dmaap/setup.py @@ -1,8 +1,26 @@ +# ============LICENSE_START==================================================== +# ============================================================================= +# Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. +# ============================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END====================================================== + from setuptools import setup, find_packages setup( name = "dmaap", - version = "1.3.5", + version = "1.4.0", packages=find_packages(), author = "AT&T", description = ("Cloudify plugin for creating DMaaP feeds and topics, and setting up publishers and subscribers."), @@ -10,7 +28,9 @@ setup( keywords = "", url = "", zip_safe=False, - install_requires = [ - "python-consul==0.7.0" - ] + install_requires=[ + 'python-consul>=0.7.0', + 'requests', + 'cloudify-common>=5.0.5', + ], ) diff --git a/dmaap/tests/test_dmaapcontrollerif.py b/dmaap/tests/test_dmaapcontrollerif.py index 0f6a5c0..6ca15ba 100644 --- a/dmaap/tests/test_dmaapcontrollerif.py +++ b/dmaap/tests/test_dmaapcontrollerif.py @@ -2,6 +2,7 @@ # org.onap.dcae # ================================================================================ # Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -52,13 +53,15 @@ def test_dmaapc (monkeypatch, mockconsul, mockdmaapbc): DMAAP_OWNER = config['owner'] properties = {'fqdn': 'a.x.example.com', 'openstack': _goodosv2 } - mock_ctx = MockCloudifyContext(node_id='test_node_id', node_name='test_node_name', properties=properties, - runtime_properties = { - "admin": { "user": "admin_user" }, - "user": { "user": "user_user" }, - "viewer": { "user": "viewer_user" } - } - ) + mock_ctx = MockCloudifyContext( + node_id='test_node_id', + node_name='test_node_name', + properties=properties, + runtime_properties = { + "admin": { "user": "admin_user" }, + "user": { "user": "user_user" }, + "viewer": { "user": "viewer_user" } + }) current_ctx.set(mock_ctx) diff --git a/dmaap/tests/test_dr_lifecycle.py b/dmaap/tests/test_dr_lifecycle.py index 925d575..d08e9db 100644 --- a/dmaap/tests/test_dr_lifecycle.py +++ b/dmaap/tests/test_dr_lifecycle.py @@ -2,6 +2,7 @@ # org.onap.dcae # ================================================================================ # Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -41,13 +42,15 @@ def test_create_feed(monkeypatch, mockconsul, mockdmaapbc): from dmaapplugin import dr_lifecycle properties = {'fqdn': 'a.x.example.com', 'openstack': _goodosv2, 'feed_id': 'test_feed_id' } - mock_ctx = MockCloudifyContext(node_id='test_node_id', node_name='test_node_name', properties=properties, - runtime_properties = { - "admin": { "user": "admin_user" }, - "user": { "user": "user_user" }, - "viewer": { "user": "viewer_user" } - } - ) + mock_ctx = MockCloudifyContext( + node_id='test_node_id', + node_name='test_node_name', + properties=properties, + runtime_properties = { + "admin": { "user": "admin_user" }, + "user": { "user": "user_user" }, + "viewer": { "user": "viewer_user" } + }) current_ctx.set(mock_ctx) diff --git a/dmaap/tests/test_mr_lifecycle.py b/dmaap/tests/test_mr_lifecycle.py index b2ee713..593c091 100644 --- a/dmaap/tests/test_mr_lifecycle.py +++ b/dmaap/tests/test_mr_lifecycle.py @@ -2,6 +2,7 @@ # org.onap.dcae # ================================================================================ # Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -40,13 +41,15 @@ def test_create_topic(monkeypatch, mockconsul, mockdmaapbc): import dmaapplugin from dmaapplugin import mr_lifecycle properties = {'fqdn': 'a.x.example.com', 'openstack': _goodosv2, 'fqtn': 'test_fqtn' } - mock_ctx = MockCloudifyContext(node_id='test_node_id', node_name='test_node_name', properties=properties, - runtime_properties = { - "admin": { "user": "admin_user" }, - "user": { "user": "user_user" }, - "viewer": { "user": "viewer_user" } - } - ) + mock_ctx = MockCloudifyContext( + node_id='test_node_id', + node_name='test_node_name', + properties=properties, + runtime_properties = { + "admin": { "user": "admin_user" }, + "user": { "user": "user_user" }, + "viewer": { "user": "viewer_user" } + }) current_ctx.set(mock_ctx) diff --git a/dmaap/tox.ini b/dmaap/tox.ini index 15a07f2..020413f 100644 --- a/dmaap/tox.ini +++ b/dmaap/tox.ini @@ -2,6 +2,7 @@ # org.onap.ccsdk # ============================================================================= # Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Pantheon.tech. All rights reserved. # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,14 +18,15 @@ # ============LICENSE_END====================================================== [tox] -envlist = py27 +envlist = py27,py36,py37 +skip_missing_interpreters = true + [testenv] deps= - requests - cloudify==3.4 pytest coverage pytest-cov + -r requirements.txt setenv = PYTHONPATH={toxinidir} commands= |