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.
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: cgcsdk
3
- Version: 1.0.3
3
+ Version: 1.0.5
4
4
  Summary: Comtegra GPU Cloud REST API client
5
5
  Author: Comtegra AI Team
6
6
  Author-email: ai@comtegra.pl
@@ -1,12 +1,12 @@
1
- cgc/.env,sha256=6yo0dplScp04wupUUEO4locxlsoyWK3npVnCXDiLELQ,209
2
- cgc/CHANGELOG.md,sha256=-Hg_rneT9tBdKNv1whb8ghvUTJ_QKzmZUw17I6MneYk,5858
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=Tvjr_dtRur_5G-rhLFgvNNS-T19bI3bRHQ0mDbjmwLw,4061
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=i5M0xYwEAYFKeA9Rvp5x3xYBGrxtUPU8y8uegt6VkhY,1207
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=xMCx8jRtzX4xIdqSAdAkSYUX0fvtyjPsF1-xomNL1N8,10831
21
- cgc/commands/compute/compute_models.py,sha256=aC01SOj39Ze6daqX_iqCEJOrT2u03tYMA5kqKPHtc_0,1031
22
- cgc/commands/compute/compute_responses.py,sha256=AUSfmzUPr-4RSeXaQaykk9yFKCh-YtQcxllcp_Mi4as,5298
23
- cgc/commands/compute/compute_utills.py,sha256=YtaR1QsRYHbvlB339GPcF9v1fE7KeKdjLsBdeJT_VAs,4777
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=aWrOwQb6bDmekuBt3fwPKNhRAnPzfFR-T_gUaVj09Og,4016
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=XhdIQ-K0mFVl3m4UPftBc7ZYDSsrPpLi2g2Scbk9XI0,194
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=DXhEjei0dW-dHOSCZitiuzBQEhDSBheGBHi6gZ-jO3Q,2067
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=d-NvGr-U4iBaYiWmiYhonTwOeYGPMhHWk1Me4ov0tIs,5018
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=IhruFRld61AgNKk_E3Ld4a043mZ1GhRSrpFhhRo4sz4,1221
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.3.dist-info/LICENSE,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
71
- cgcsdk-1.0.3.dist-info/METADATA,sha256=loN-INRF0qNj8I5uAIRfkXrF8inz1bJNtSrJXT-ksv4,1418
72
- cgcsdk-1.0.3.dist-info/WHEEL,sha256=Xo9-1PvkuimrydujYJAjF7pCkriuXBpUPEjma1nZyJ0,92
73
- cgcsdk-1.0.3.dist-info/entry_points.txt,sha256=bdfIHeJ6Y-BBr5yupCVoK7SUrJj1yNdew8OtIOg_3No,36
74
- cgcsdk-1.0.3.dist-info/top_level.txt,sha256=nqW9tqcIcCXFigQT69AuOk7XHKc4pCuv4HGJQGXb6iA,12
75
- cgcsdk-1.0.3.dist-info/RECORD,,
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,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.3)
2
+ Generator: bdist_wheel (0.42.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5