aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordyh <dengyuanhong@chinamobile.com>2020-05-27 15:56:13 +0800
committerdyh <dengyuanhong@chinamobile.com>2020-05-27 16:00:46 +0800
commit9fe3930a822fe7978ffab9838611dc61b91cc948 (patch)
treedf470daccdefddcf23c1268d9719bf5807f399fc
parentfddda96911bdb3ec9841ac71e764cb6eb8fa08d5 (diff)
update Dmaap lib
Issue-ID: MODELING-366 Change-Id: I69f86ef9a90423e33e3903dcc1be63028e1571b6 Signed-off-by: dyh <dengyuanhong@chinamobile.com>
-rw-r--r--catalog/pub/Dmaap_lib/__init__.py10
-rw-r--r--catalog/pub/Dmaap_lib/dmaap/__init__.py9
-rw-r--r--catalog/pub/Dmaap_lib/dmaap/consumer.py30
-rw-r--r--catalog/pub/Dmaap_lib/dmaap/identity.py37
-rw-r--r--catalog/pub/Dmaap_lib/dmaap/publisher.py22
-rw-r--r--catalog/pub/Dmaap_lib/pub/__init__.py9
-rw-r--r--catalog/pub/Dmaap_lib/pub/exceptions.py9
-rw-r--r--catalog/pub/Dmaap_lib/test/test_consumer.py2
-rw-r--r--catalog/pub/Dmaap_lib/test/test_identity.py2
9 files changed, 81 insertions, 49 deletions
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.