update Dmaap lib 99/108299/2
authordyh <dengyuanhong@chinamobile.com>
Wed, 27 May 2020 07:56:13 +0000 (15:56 +0800)
committerdyh <dengyuanhong@chinamobile.com>
Wed, 27 May 2020 08:00:46 +0000 (16:00 +0800)
Issue-ID: MODELING-366
Change-Id: I69f86ef9a90423e33e3903dcc1be63028e1571b6
Signed-off-by: dyh <dengyuanhong@chinamobile.com>
catalog/pub/Dmaap_lib/__init__.py
catalog/pub/Dmaap_lib/dmaap/__init__.py
catalog/pub/Dmaap_lib/dmaap/consumer.py
catalog/pub/Dmaap_lib/dmaap/identity.py
catalog/pub/Dmaap_lib/dmaap/publisher.py
catalog/pub/Dmaap_lib/pub/__init__.py
catalog/pub/Dmaap_lib/pub/exceptions.py
catalog/pub/Dmaap_lib/test/test_consumer.py
catalog/pub/Dmaap_lib/test/test_identity.py

index 7ae04f0..021c3f3 100644 (file)
@@ -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.
index 0c1e8e1..021c3f3 100644 (file)
@@ -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.
index 054791c..d817b81 100644 (file)
@@ -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)
index 1dcaad8..9ca68cd 100644 (file)
@@ -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
index 643ba90..7ebbca0 100644 (file)
@@ -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
index 0c1e8e1..021c3f3 100644 (file)
@@ -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.
index 6b65fcf..9f49e5f 100644 (file)
@@ -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.
index 1f89f65..a8c564f 100644 (file)
@@ -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.
index 0f88a5e..3367a19 100644 (file)
@@ -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.