cgcsdk 1.0.3__py3-none-any.whl → 1.0.5__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.
- cgc/.env +1 -1
- cgc/CHANGELOG.md +37 -0
- cgc/commands/cgc_cmd.py +7 -0
- cgc/commands/cgc_helpers.py +45 -33
- cgc/commands/compute/compute_cmd.py +156 -29
- cgc/commands/compute/compute_models.py +7 -3
- cgc/commands/compute/compute_responses.py +17 -1
- cgc/commands/compute/compute_utills.py +99 -2
- cgc/commands/resource/resource_cmd.py +3 -3
- cgc/sdk/__init__.py +3 -0
- cgc/sdk/exceptions.py +7 -0
- cgc/sdk/resource.py +425 -0
- cgc/utils/consts/env_consts.py +1 -0
- cgc/utils/custom_exceptions.py +1 -1
- cgc/utils/response_utils.py +60 -0
- {cgcsdk-1.0.3.dist-info → cgcsdk-1.0.5.dist-info}/METADATA +1 -1
- {cgcsdk-1.0.3.dist-info → cgcsdk-1.0.5.dist-info}/RECORD +21 -19
- {cgcsdk-1.0.3.dist-info → cgcsdk-1.0.5.dist-info}/WHEEL +1 -1
- {cgcsdk-1.0.3.dist-info → cgcsdk-1.0.5.dist-info}/LICENSE +0 -0
- {cgcsdk-1.0.3.dist-info → cgcsdk-1.0.5.dist-info}/entry_points.txt +0 -0
- {cgcsdk-1.0.3.dist-info → cgcsdk-1.0.5.dist-info}/top_level.txt +0 -0
cgc/utils/response_utils.py
CHANGED
@@ -14,6 +14,7 @@ from cgc.utils.consts.message_consts import (
|
|
14
14
|
from cgc.utils.custom_exceptions import CUSTOM_EXCEPTIONS
|
15
15
|
from cgc.telemetry.basic import increment_metric
|
16
16
|
from cgc.utils.config_utils import get_namespace
|
17
|
+
from cgc.sdk.exceptions import SDKException
|
17
18
|
|
18
19
|
|
19
20
|
def _get_response_json_error_message(response_json: dict):
|
@@ -22,6 +23,65 @@ def _get_response_json_error_message(response_json: dict):
|
|
22
23
|
return UNKNOWN_ERROR
|
23
24
|
|
24
25
|
|
26
|
+
def retrieve_and_validate_response_send_metric_for_sdk(
|
27
|
+
response: requests.Response, metric: str, json_return: bool = True
|
28
|
+
):
|
29
|
+
"""Checks if server is available and user is authorized
|
30
|
+
|
31
|
+
:param response: dict object from API response.
|
32
|
+
:type response: requests.Response
|
33
|
+
"""
|
34
|
+
error_message = UNKNOWN_ERROR
|
35
|
+
try:
|
36
|
+
try:
|
37
|
+
if metric is not None:
|
38
|
+
metric = f"{get_namespace()}.{metric}"
|
39
|
+
except NoNamespaceInConfig:
|
40
|
+
metric = f"unknown-namespace.{metric}"
|
41
|
+
except NoConfigFileFound:
|
42
|
+
print("No config file found. Please use:")
|
43
|
+
print("cgc register")
|
44
|
+
metric = f"bad-client.{metric}"
|
45
|
+
|
46
|
+
if response.status_code == 200:
|
47
|
+
increment_metric(
|
48
|
+
metric=metric, is_error=False
|
49
|
+
) # if metric is None, will not increment metric
|
50
|
+
if json_return:
|
51
|
+
return response.json()
|
52
|
+
else:
|
53
|
+
return response
|
54
|
+
increment_metric(
|
55
|
+
metric=metric, is_error=False
|
56
|
+
) # ALL "VALID" error messages are not Errors
|
57
|
+
if response.status_code == 401:
|
58
|
+
raise SDKException(response.status_code, UNAUTHORIZED_ERROR)
|
59
|
+
elif response.status_code == 302:
|
60
|
+
raise SDKException(response.status_code, ENDPOINT_DISABLED)
|
61
|
+
else:
|
62
|
+
try:
|
63
|
+
response_json = response.json()
|
64
|
+
if "detail" in response_json:
|
65
|
+
raise SDKException(response.status_code, response_json["detail"])
|
66
|
+
else:
|
67
|
+
raise SDKException(
|
68
|
+
response.status_code,
|
69
|
+
CUSTOM_EXCEPTIONS[response.status_code][
|
70
|
+
response_json["reason"]
|
71
|
+
],
|
72
|
+
)
|
73
|
+
except KeyError as e:
|
74
|
+
error_message = _get_response_json_error_message(response_json)
|
75
|
+
increment_metric(metric=metric, is_error=True)
|
76
|
+
raise SDKException(response.status_code, error_message) from e
|
77
|
+
|
78
|
+
except (AttributeError, json.JSONDecodeError) as e:
|
79
|
+
increment_metric(metric=metric, is_error=True)
|
80
|
+
raise SDKException(
|
81
|
+
response.status_code, f"Response reading error. {error_message}"
|
82
|
+
) from e
|
83
|
+
|
84
|
+
|
25
85
|
def retrieve_and_validate_response_send_metric(
|
26
86
|
response: requests.Response, metric: str, json_return: bool = True
|
27
87
|
):
|
@@ -1,12 +1,12 @@
|
|
1
|
-
cgc/.env,sha256=
|
2
|
-
cgc/CHANGELOG.md,sha256
|
1
|
+
cgc/.env,sha256=4WIMONz4kDhj4OoFOm52Rauw6Ba84NI3HKiCBB3t1-o,209
|
2
|
+
cgc/CHANGELOG.md,sha256=WHHXunoy5D1qKLhG3InzyLPU8gRYtZrLD_jBljBZBLw,7433
|
3
3
|
cgc/__init__.py,sha256=d03Xv8Pw4ktNyUHfmicP6XfxYPXnVYLaCZPyUlg_RNQ,326
|
4
4
|
cgc/cgc.py,sha256=kPLg3h-3kjlMBiwZGOM7yvXJ7pzkVglAbWWQ7KX8jeY,1377
|
5
5
|
cgc/config.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
6
6
|
cgc/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
7
|
-
cgc/commands/cgc_cmd.py,sha256=
|
7
|
+
cgc/commands/cgc_cmd.py,sha256=tct8ZBplLsqD-gjxsnwx_uJo1361iOnZvvxGIGYMU_c,4310
|
8
8
|
cgc/commands/cgc_cmd_responses.py,sha256=ToPjvGf3zUbFLhLwv-BV8ZAvAHg1xS99iprM928MnOY,2026
|
9
|
-
cgc/commands/cgc_helpers.py,sha256=
|
9
|
+
cgc/commands/cgc_helpers.py,sha256=nDq9qLRpF2yu9vvYvDjnIYKudTNdrRop0XAOLYm6zxs,1509
|
10
10
|
cgc/commands/exceptions.py,sha256=l3Sms3D2fxSpLQQQEYeLWxO3to82myTQ0VFgFYdQdLU,45
|
11
11
|
cgc/commands/auth/__init__.py,sha256=K8HkHHotMnK7SQRAst5rx_wprHEphPo_w2KToEymjAY,399
|
12
12
|
cgc/commands/auth/auth_cmd.py,sha256=jfijV-C0uOnpj5LcOgsW7Sn5JiemZ-nuQRQUEjEvaEk,3856
|
@@ -17,27 +17,29 @@ cgc/commands/billing/billing_cmd.py,sha256=T1E5WW5Z-RlzddaotimTuvLvIbGihNpStIBET
|
|
17
17
|
cgc/commands/billing/billing_responses.py,sha256=HAD5N-Odx3Jz1OmhO4v66rHoXpTYIOGlXDsrs0da9dk,1949
|
18
18
|
cgc/commands/billing/billing_utils.py,sha256=zXLbBBcWeOgur-r0OKiIjaKeaxMNxASXWzCTeTsyC6o,4711
|
19
19
|
cgc/commands/compute/__init__.py,sha256=lCdLfZ0ECSHtXEUSwq5YRHH85yXHchSsz8ZJvmClPtI,239
|
20
|
-
cgc/commands/compute/compute_cmd.py,sha256=
|
21
|
-
cgc/commands/compute/compute_models.py,sha256=
|
22
|
-
cgc/commands/compute/compute_responses.py,sha256=
|
23
|
-
cgc/commands/compute/compute_utills.py,sha256=
|
20
|
+
cgc/commands/compute/compute_cmd.py,sha256=_4yt6sGWwbqZSUcc-VjtF2luTwyeQVbu2MsDXpUL1lY,15266
|
21
|
+
cgc/commands/compute/compute_models.py,sha256=DzktT7nR6eG3po6iIayQjnczmnZruAl00Q9o3okqdng,1139
|
22
|
+
cgc/commands/compute/compute_responses.py,sha256=eOmcllyOqPYqN0kSUzSpuC2S1rFmkkawgc_F-0-LSIQ,5807
|
23
|
+
cgc/commands/compute/compute_utills.py,sha256=oANUoJRt0L2VDKoMsAhEkE5lfigjRrX9fJjhWpG1Mc4,8615
|
24
24
|
cgc/commands/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
25
|
cgc/commands/db/db_cmd.py,sha256=zVcA5GHsW2sZ0Q826q7Va-4Y9iGmw-J7aBPwu-PWF8I,3293
|
26
26
|
cgc/commands/debug/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
27
27
|
cgc/commands/debug/debug_cmd.py,sha256=kuAuh5YOqzGFjoiYZwfM9FJ1z5OeSpC0JAIUEzS83lM,412
|
28
28
|
cgc/commands/resource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
|
-
cgc/commands/resource/resource_cmd.py,sha256=
|
29
|
+
cgc/commands/resource/resource_cmd.py,sha256=nHIlUxtMJQnffy2TfcJy_N1Q6juMPsCK7gc542-fhmU,4021
|
30
30
|
cgc/commands/resource/resource_responses.py,sha256=sES7mAi_Cv5B6Z3I_6eUOqVwOr2HgMO45cz8MiNZetQ,197
|
31
31
|
cgc/commands/volume/__init__.py,sha256=Ou3kyb72aaXkrVCfQCVdniA65R2xHsRFgebooG1gflA,384
|
32
32
|
cgc/commands/volume/data_model.py,sha256=meprXdaXLo3mMTZta1ks1-BJ7G0rO16qi_ycH-sXJpY,1295
|
33
33
|
cgc/commands/volume/volume_cmd.py,sha256=C2K6PclAYhRm5optlmSxj4KujonYu8kdu1kGJQ0Nck4,7609
|
34
34
|
cgc/commands/volume/volume_responses.py,sha256=WefUohXxXZ9Znfc6P2XjoAM2RlA19hMKcVaW-xG9HWs,3199
|
35
35
|
cgc/commands/volume/volume_utils.py,sha256=n6s0FgpsYyxFMp_JdMRCzRi5Ar3_Svg9JDvWSdX4lhk,1919
|
36
|
-
cgc/sdk/__init__.py,sha256=
|
36
|
+
cgc/sdk/__init__.py,sha256=2KWwBgq1wxwrB1uTYfN4TvKoNAWiy5qugb1L7YPspfo,271
|
37
|
+
cgc/sdk/exceptions.py,sha256=99XIzDO6LYKjex715troH-MkGUN7hi2Bit4KHfSHDis,214
|
37
38
|
cgc/sdk/handlers.py,sha256=ECCHNe1pErsXFlmwHewsWRvYqzAZ5j5TrSqwernpLJk,868
|
38
39
|
cgc/sdk/mongodb.py,sha256=TJ2XU7nilNRXLOIpQQPrRiVxHN2TaVM5QOSuMRtNDVs,7221
|
39
40
|
cgc/sdk/postgresql.py,sha256=ziXaMMwjSF3k1OAID3F9npqWVxreQaoZ8wn7X8x1FZw,1637
|
40
41
|
cgc/sdk/redis.py,sha256=W5wS9Sgyv4098yzWAwG7qEk4HEDwscE3JmWgPC3NCzc,2844
|
42
|
+
cgc/sdk/resource.py,sha256=X1MqX2dYom5G8zu27onTdZR7tZK6-VlBgH9MXoQwfLY,13460
|
41
43
|
cgc/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
44
|
cgc/telemetry/basic.py,sha256=XagCcyH4QSEPmfiQ1WCjqXslnJO6IaJCY0AMPySd5rc,3175
|
43
45
|
cgc/tests/__init__.py,sha256=8aI3MVpkzaj0_UX02kZCtY5vmGO0rnq0mw2H04-OHf8,102743
|
@@ -53,23 +55,23 @@ cgc/tests/desired_responses/test_volume_list.txt,sha256=vYB1p50BBHD801q7LUdDc_ac
|
|
53
55
|
cgc/utils/__init__.py,sha256=l9JF-WnvmhlolxbDKlJPsxquZ-fjtvv7wKvn2zpu5IM,3466
|
54
56
|
cgc/utils/click_group.py,sha256=Scfw8eMIyt2dE1ezUq2JuiI-E_LklqXQXJEr7L-EG6A,633
|
55
57
|
cgc/utils/config_utils.py,sha256=VFTrcN9QeOByIobhh48TfAm-BWON4PN8zX0H8PdUNTU,2729
|
56
|
-
cgc/utils/custom_exceptions.py,sha256=
|
58
|
+
cgc/utils/custom_exceptions.py,sha256=V50fXz09c_VNzLkgVNCFihIN1o-lUqRV0XMpy8zTgH8,2068
|
57
59
|
cgc/utils/message_utils.py,sha256=jdUHtR2-gEvyxYu1T0OY-a6cBz5N8TatRaxKNuNcJtU,1766
|
58
60
|
cgc/utils/prepare_headers.py,sha256=FK04VFreStH6xcfgP8s5zmePilQPn0bKhCajgV0f2sY,2546
|
59
61
|
cgc/utils/requests_helper.py,sha256=ghn8LTxWqfRvy7BXQdxD4VHX8b-ypHkbnFXY05ig7_A,2050
|
60
|
-
cgc/utils/response_utils.py,sha256=
|
62
|
+
cgc/utils/response_utils.py,sha256=9vJqAt2UFJ1n-oesFPe6CB_ooGoStjl-twY_31Jt4_I,7374
|
61
63
|
cgc/utils/update.py,sha256=AsQwhcBqsjgNPKn6AN6ojt0Ew5otvJXyshys6bjr7DQ,413
|
62
64
|
cgc/utils/version_control.py,sha256=VsqNzNYWDvU3VsoPuYIaZV7Img-K2_DmEOHd7rZlRxk,3267
|
63
65
|
cgc/utils/consts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
64
|
-
cgc/utils/consts/env_consts.py,sha256=
|
66
|
+
cgc/utils/consts/env_consts.py,sha256=sHO1vzWZALiXB4Ej2E7S5v0i-DfTwHBIIC1fIP_MocI,1286
|
65
67
|
cgc/utils/consts/message_consts.py,sha256=8CIe3N_HL6Pj-gSArkPkpegsvm-QMWxqqnSgtzG08Qw,1218
|
66
68
|
cgc/utils/cryptography/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
67
69
|
cgc/utils/cryptography/aes_crypto.py,sha256=S0rKg38oy7rM5lTrP6DDpjLA-XRxuZggAXyxMFHtyzY,3333
|
68
70
|
cgc/utils/cryptography/encryption_module.py,sha256=rbblBBorHYPGl-iKblyZX3_NuPEvUTpnH1l_RgNGCbA,1958
|
69
71
|
cgc/utils/cryptography/rsa_crypto.py,sha256=h3jU5qPpj9uVjP1rTqZJTdYB5yjhD9HZpr_nD439h9Q,4180
|
70
|
-
cgcsdk-1.0.
|
71
|
-
cgcsdk-1.0.
|
72
|
-
cgcsdk-1.0.
|
73
|
-
cgcsdk-1.0.
|
74
|
-
cgcsdk-1.0.
|
75
|
-
cgcsdk-1.0.
|
72
|
+
cgcsdk-1.0.5.dist-info/LICENSE,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
73
|
+
cgcsdk-1.0.5.dist-info/METADATA,sha256=rVxdoWqe-3QobxnPQ9LS40TLAAnVEkvUxkXDwM-5f98,1418
|
74
|
+
cgcsdk-1.0.5.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
75
|
+
cgcsdk-1.0.5.dist-info/entry_points.txt,sha256=bdfIHeJ6Y-BBr5yupCVoK7SUrJj1yNdew8OtIOg_3No,36
|
76
|
+
cgcsdk-1.0.5.dist-info/top_level.txt,sha256=nqW9tqcIcCXFigQT69AuOk7XHKc4pCuv4HGJQGXb6iA,12
|
77
|
+
cgcsdk-1.0.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|