oc-cdtapi 3.20.0__py3-none-any.whl → 3.21.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
oc_cdtapi/VaultAPI.py ADDED
@@ -0,0 +1,62 @@
1
+ import logging
2
+ import os
3
+
4
+ import hvac
5
+ from hvac.exceptions import VaultError
6
+
7
+ class VaultAPI:
8
+ def __init__(self,
9
+ vault_enable=False,
10
+ vault_url=None,
11
+ vault_token=None,
12
+ vault_path=None,
13
+ vault_mount_point=None,
14
+ verify_ssl=True):
15
+ self.vault_enable = vault_enable or os.getenv("VAULT_ENABLE")
16
+ self.vault_url = vault_url or os.getenv("VAULT_URL")
17
+ self.vault_token = vault_token or os.getenv("VAULT_TOKEN")
18
+ self.vault_path = vault_path or os.getenv("VAULT_PATH")
19
+ self.mount_point = vault_mount_point or os.getenv("VAULT_MOUNT_POINT")
20
+ self.verify_ssl = verify_ssl
21
+ self._client = None
22
+
23
+ @property
24
+ def client(self):
25
+ if not self.vault_enable:
26
+ logging.warning("VAULT_ENABLE environment set to false, skip using vault")
27
+ return None
28
+
29
+ if self._client is None:
30
+ if not self.vault_url:
31
+ logging.warning("VAULT_URL environment variable or vault_url parameter is missing, skip using vault")
32
+ return None
33
+ if not self.vault_token:
34
+ logging.warning("VAULT_TOKEN environment variable or vault_token parameter is missing, skip using vault")
35
+ return None
36
+
37
+ self._client = hvac.Client(
38
+ url=self.vault_url,
39
+ token=self.vault_token,
40
+ verify=self.verify_ssl
41
+ )
42
+
43
+ if not self._client.is_authenticated():
44
+ logging.warning("Failed to authenticate with Vault - check credentials, skip using vault")
45
+ return None
46
+
47
+ return self._client
48
+
49
+ def get_secret_from_path(self, name):
50
+ client = self.client
51
+ if client is None:
52
+ return None
53
+
54
+ try:
55
+ response = client.secrets.kv.read_secret_version(path=self.vault_path, mount_point=self.mount_point)
56
+ return response['data']['data'].get(name)
57
+ except VaultError as e:
58
+ logging.warning(f"Failed getting data from vault: {e}")
59
+ return None
60
+
61
+ def load_secret(self, name, default=None):
62
+ return self.get_secret_from_path(name) or os.getenv(name, default)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oc-cdtapi
3
- Version: 3.20.0
3
+ Version: 3.21.2
4
4
  Summary: Custom Development python API libraries
5
5
  License: Apache2.0
6
6
  Requires-Python: >=3.6
@@ -9,6 +9,7 @@ License-File: LICENSE
9
9
  Requires-Dist: requests
10
10
  Requires-Dist: packaging
11
11
  Requires-Dist: psycopg2-binary
12
+ Requires-Dist: hvac
12
13
  Dynamic: description
13
14
  Dynamic: description-content-type
14
15
  Dynamic: license
@@ -10,10 +10,11 @@ oc_cdtapi/PgAPI.py,sha256=URSz7qu-Ir7AOj0jI3ucTXn2PM-nC96nmPZI746OLjA,14356
10
10
  oc_cdtapi/PgQAPI.py,sha256=CUN3TSvyglglJ5EgzIt-iE7PX6atKKycoPMHyLkT6oA,8658
11
11
  oc_cdtapi/RundeckAPI.py,sha256=O3LmcFaHSz8UqeUyIHTTEMJncDD191Utd-iZaeJay2s,24243
12
12
  oc_cdtapi/TestServer.py,sha256=HV97UWg2IK4gOYAp9yaMdwFUWsw9v66MxyZdI3qQctA,2715
13
+ oc_cdtapi/VaultAPI.py,sha256=4-fIFJ6x7BFaF6YJIRY0QKW2umGVGlGKZqx_gldI0ow,2259
13
14
  oc_cdtapi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
- oc_cdtapi-3.20.0.data/scripts/nexus.py,sha256=4teqZ_KtCSrwHDJVgA7lkreteod4Xt5XJFZNbwb7E6E,6858
15
- oc_cdtapi-3.20.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
16
- oc_cdtapi-3.20.0.dist-info/METADATA,sha256=vqmC6tuhx_8u9q1Z6Yal31uLdmKewZva6v0-ABgnrQk,484
17
- oc_cdtapi-3.20.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
18
- oc_cdtapi-3.20.0.dist-info/top_level.txt,sha256=d4-5-D-0CSeSXYuLCP7-nIFCpjkfmJr-Y_muzds8iVU,10
19
- oc_cdtapi-3.20.0.dist-info/RECORD,,
15
+ oc_cdtapi-3.21.2.data/scripts/nexus.py,sha256=4teqZ_KtCSrwHDJVgA7lkreteod4Xt5XJFZNbwb7E6E,6858
16
+ oc_cdtapi-3.21.2.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
17
+ oc_cdtapi-3.21.2.dist-info/METADATA,sha256=Ss_KnNrUfZKUqThcxOc3BmgOzgm182tXiciWvuQwlBU,504
18
+ oc_cdtapi-3.21.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
19
+ oc_cdtapi-3.21.2.dist-info/top_level.txt,sha256=d4-5-D-0CSeSXYuLCP7-nIFCpjkfmJr-Y_muzds8iVU,10
20
+ oc_cdtapi-3.21.2.dist-info/RECORD,,