From: dyh Date: Wed, 27 May 2020 07:56:13 +0000 (+0800) Subject: update Dmaap lib X-Git-Tag: 1.0.7~13 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=modeling%2Fetsicatalog.git;a=commitdiff_plain;h=9fe3930a822fe7978ffab9838611dc61b91cc948 update Dmaap lib Issue-ID: MODELING-366 Change-Id: I69f86ef9a90423e33e3903dcc1be63028e1571b6 Signed-off-by: dyh --- diff --git a/catalog/pub/Dmaap_lib/__init__.py b/catalog/pub/Dmaap_lib/__init__.py index 7ae04f0..021c3f3 100644 --- a/catalog/pub/Dmaap_lib/__init__.py +++ b/catalog/pub/Dmaap_lib/__init__.py @@ -1,11 +1,11 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. - +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. +# # 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 - +# +# 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. diff --git a/catalog/pub/Dmaap_lib/dmaap/__init__.py b/catalog/pub/Dmaap_lib/dmaap/__init__.py index 0c1e8e1..021c3f3 100644 --- a/catalog/pub/Dmaap_lib/dmaap/__init__.py +++ b/catalog/pub/Dmaap_lib/dmaap/__init__.py @@ -1,8 +1,11 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License") +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. +# +# 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 +# +# 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. diff --git a/catalog/pub/Dmaap_lib/dmaap/consumer.py b/catalog/pub/Dmaap_lib/dmaap/consumer.py index 054791c..d817b81 100644 --- a/catalog/pub/Dmaap_lib/dmaap/consumer.py +++ b/catalog/pub/Dmaap_lib/dmaap/consumer.py @@ -1,48 +1,47 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License") +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. +# +# 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 +# +# 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. - import base64 +import datetime import hmac import json import logging -import datetime -import requests from hashlib import sha1 -from ..pub.exceptions import DmaapClientException +import requests + +from catalog.pub.Dmaap_lib.pub.exceptions import DmaapClientException logger = logging.getLogger(__name__) class ConsumerClient: - def __init__(self, host, topic, consumer_group, consumer_id, timeout_ms=-1, limit=-1, filter='', - api_key='', api_secret=''): - self.host = host + def __init__(self, base_url, topic, consumer_group, consumer_id, timeout_ms=-1, limit=-1, filter=''): + self.base_url = base_url self.topic = topic self.group = consumer_group self.comsumer_id = consumer_id self.timeout_ms = timeout_ms self.limit = limit self.filter = filter - self.api_key = api_key - self.api_secret = api_secret def set_api_credentials(self, api_key, api_secret): - self.api_key = api_key self.api_secret = api_secret def create_url(self): - url = "http://%s/events/%s/%s/%s" % (self.host, self.topic, self.group, self.comsumer_id) + url = self.base_url + "/events/%s/%s/%s" % (self.topic, self.group, self.comsumer_id) add_url = "" if self.timeout_ms > -1: add_url += "timeout=%s" % self.timeout_ms @@ -81,7 +80,8 @@ class ConsumerClient: ret = requests.get(url) logger.info("Status code is %s, detail is %s.", ret.status_code, ret.json()) if ret.status_code != 200: - raise DmaapClientException('Call dmaap failed. Status code is %s, detail is %s.' % (ret.status_code, ret.json())) + raise DmaapClientException( + 'Call dmaap failed. Status code is %s, detail is %s.' % (ret.status_code, ret.json())) data = ret.json() for msg in data: msg = json.loads(msg) diff --git a/catalog/pub/Dmaap_lib/dmaap/identity.py b/catalog/pub/Dmaap_lib/dmaap/identity.py index 1dcaad8..9ca68cd 100644 --- a/catalog/pub/Dmaap_lib/dmaap/identity.py +++ b/catalog/pub/Dmaap_lib/dmaap/identity.py @@ -1,27 +1,30 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License") +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. +# +# 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 +# +# 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. - import json import logging + import requests -from ..pub.exceptions import DmaapClientException +from catalog.pub.Dmaap_lib.pub.exceptions import DmaapClientException logger = logging.getLogger(__name__) class IdentityClient: - def __init__(self, host): - self.host = host + def __init__(self, base_url): + self.base_url = base_url def create_apikey(self, email, description): try: @@ -31,7 +34,7 @@ class IdentityClient: 'description': description } data = json.JSONEncoder().encode(data) - url = "http://%s/apiKeys/create" % (self.host) + url = self.base_url + "/apiKeys/create" ret = requests.post(url=url, data=data, headers=headers) logger.info('create apiKey, response status_code: %s, body: %s', ret.status_code, ret.json()) if ret.status_code != 200: @@ -44,3 +47,21 @@ class IdentityClient: return resp_data except Exception as e: raise DmaapClientException('create apikey from dmaap failed: ' + e.message) + + def get_apikey(self, apikey): + try: + url = self.base_url + "/apiKeys/%s" % apikey + ret = requests.get(url) + logger.info('get apiKey, response status_code: %s, body: %s', ret.status_code, ret.json()) + if ret.status_code != 200: + raise DmaapClientException(ret.json()) + ret = ret.json() + return ret + except Exception as e: + raise DmaapClientException('get apikey from dmaap failed: ' + e.message) + + def delete_apikey(self): + pass + + def update_apikey(self, apikey, email, description): + pass diff --git a/catalog/pub/Dmaap_lib/dmaap/publisher.py b/catalog/pub/Dmaap_lib/dmaap/publisher.py index 643ba90..7ebbca0 100644 --- a/catalog/pub/Dmaap_lib/dmaap/publisher.py +++ b/catalog/pub/Dmaap_lib/dmaap/publisher.py @@ -1,15 +1,17 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License") +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. +# +# 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 +# +# 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. - import base64 import datetime import hmac @@ -21,14 +23,15 @@ from hashlib import sha1 import requests from apscheduler.scheduler import Scheduler -from ..pub.exceptions import DmaapClientException +from catalog.pub.Dmaap_lib.pub.exceptions import DmaapClientException logger = logging.getLogger(__name__) class BatchPublisherClient: - def __init__(self, host, topic, partition="", contenttype="text/plain", max_batch_size=100, max_batch_age_ms=1000): - self.host = host + def __init__(self, base_url, topic, partition="", contenttype="text/plain", max_batch_size=100, + max_batch_age_ms=1000): + self.base_url = base_url self.topic = topic self.partition = partition self.contenttype = contenttype @@ -38,12 +41,11 @@ class BatchPublisherClient: self.closed = False self.dont_send_until_ms = 0 self.scheduler = Scheduler(standalone=False) - self.api_key = '', - self.api_secret = '' @self.scheduler.interval_schedule(second=1) def crawl_job(): self.send_message(False) + self.scheduler.start() def set_api_credentials(self, api_key, api_secret): @@ -136,7 +138,7 @@ class BatchPublisherClient: return headers def create_url(self): - url = "http://%s/events/%s" % (self.host, self.topic) + url = self.base_url + "/events/%s" % self.topic if self.partition: url = url + "?partitionKey=" + self.partition return url diff --git a/catalog/pub/Dmaap_lib/pub/__init__.py b/catalog/pub/Dmaap_lib/pub/__init__.py index 0c1e8e1..021c3f3 100644 --- a/catalog/pub/Dmaap_lib/pub/__init__.py +++ b/catalog/pub/Dmaap_lib/pub/__init__.py @@ -1,8 +1,11 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License") +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. +# +# 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 +# +# 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. diff --git a/catalog/pub/Dmaap_lib/pub/exceptions.py b/catalog/pub/Dmaap_lib/pub/exceptions.py index 6b65fcf..9f49e5f 100644 --- a/catalog/pub/Dmaap_lib/pub/exceptions.py +++ b/catalog/pub/Dmaap_lib/pub/exceptions.py @@ -1,8 +1,11 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License") +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. +# +# 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 +# +# 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. diff --git a/catalog/pub/Dmaap_lib/test/test_consumer.py b/catalog/pub/Dmaap_lib/test/test_consumer.py index 1f89f65..a8c564f 100644 --- a/catalog/pub/Dmaap_lib/test/test_consumer.py +++ b/catalog/pub/Dmaap_lib/test/test_consumer.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. diff --git a/catalog/pub/Dmaap_lib/test/test_identity.py b/catalog/pub/Dmaap_lib/test/test_identity.py index 0f88a5e..3367a19 100644 --- a/catalog/pub/Dmaap_lib/test/test_identity.py +++ b/catalog/pub/Dmaap_lib/test/test_identity.py @@ -1,4 +1,4 @@ -# Copyright (c) 2019, CMCC Technologies Co., Ltd. +# Copyright (c) 2019, CMCC Technologies. Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License.