123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import hashlib
- import socket
- from .python_3x import url_encode
- # define constants
- CONFIGURATIONS = "configurations"
- NOTIFICATION_ID = "notificationId"
- NAMESPACE_NAME = "namespaceName"
- # add timestamps uris and keys
- def signature(timestamp, uri, secret):
- import base64
- import hmac
- string_to_sign = "" + timestamp + "\n" + uri
- hmac_code = hmac.new(secret.encode(), string_to_sign.encode(), hashlib.sha1).digest()
- return base64.b64encode(hmac_code).decode()
- def url_encode_wrapper(params):
- return url_encode(params)
- def no_key_cache_key(namespace, key):
- return "{}{}{}".format(namespace, len(namespace), key)
- # Returns whether the obtained value is obtained, and None if it does not
- def get_value_from_dict(namespace_cache, key):
- if namespace_cache:
- kv_data = namespace_cache.get(CONFIGURATIONS)
- if kv_data is None:
- return None
- if key in kv_data:
- return kv_data[key]
- return None
- def init_ip():
- ip = ""
- s = None
- try:
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- s.connect(("8.8.8.8", 53))
- ip = s.getsockname()[0]
- finally:
- if s:
- s.close()
- return ip
|