mpt-extension-sdk 5.15__py3-none-any.whl → 5.17.0__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.
- mpt_extension_sdk/mpt_http/base.py +7 -0
- mpt_extension_sdk/mpt_http/mpt.py +13 -1
- mpt_extension_sdk/mpt_http/wrap_http_error.py +17 -6
- {mpt_extension_sdk-5.15.dist-info → mpt_extension_sdk-5.17.0.dist-info}/METADATA +1 -1
- {mpt_extension_sdk-5.15.dist-info → mpt_extension_sdk-5.17.0.dist-info}/RECORD +8 -8
- {mpt_extension_sdk-5.15.dist-info → mpt_extension_sdk-5.17.0.dist-info}/WHEEL +0 -0
- {mpt_extension_sdk-5.15.dist-info → mpt_extension_sdk-5.17.0.dist-info}/entry_points.txt +0 -0
- {mpt_extension_sdk-5.15.dist-info → mpt_extension_sdk-5.17.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -253,6 +253,18 @@ def get_template_by_name(mpt_client, product_id, template_name):
|
|
|
253
253
|
return templates["data"][0] if templates["data"] else None
|
|
254
254
|
|
|
255
255
|
|
|
256
|
+
@wrap_mpt_http_error
|
|
257
|
+
def get_asset_template_by_name(mpt_client, product_id, template_name):
|
|
258
|
+
"""Retrieve an asset template by name."""
|
|
259
|
+
rql_filter = f"and(eq(type,Asset),eq(name,{template_name}))"
|
|
260
|
+
url = f"/catalog/products/{product_id}/templates?{rql_filter}&limit=1"
|
|
261
|
+
response = mpt_client.get(url)
|
|
262
|
+
response.raise_for_status()
|
|
263
|
+
|
|
264
|
+
templates = response.json()
|
|
265
|
+
return templates["data"][0] if templates["data"] else None
|
|
266
|
+
|
|
267
|
+
|
|
256
268
|
@wrap_mpt_http_error
|
|
257
269
|
def update_agreement(mpt_client, agreement_id, **kwargs):
|
|
258
270
|
"""Update an agreement."""
|
|
@@ -495,7 +507,7 @@ def get_agreements_by_customer_deployments(mpt_client, deployment_id_parameter,
|
|
|
495
507
|
f"any(parameters.fulfillment,and("
|
|
496
508
|
f"eq(externalId,{deployment_id_parameter}),"
|
|
497
509
|
f"in(displayValue,({deployments_list}))))"
|
|
498
|
-
f"&select=lines,parameters,subscriptions,subscriptions.parameters,product,listing"
|
|
510
|
+
f"&select=lines,parameters,subscriptions,subscriptions.parameters,assets,product,listing"
|
|
499
511
|
)
|
|
500
512
|
|
|
501
513
|
url = f"/commerce/agreements?{rql_query}"
|
|
@@ -2,12 +2,17 @@ import json
|
|
|
2
2
|
from functools import wraps
|
|
3
3
|
|
|
4
4
|
from requests import HTTPError, JSONDecodeError
|
|
5
|
+
from requests.exceptions import RetryError
|
|
5
6
|
|
|
6
7
|
|
|
7
8
|
class MPTError(Exception):
|
|
8
9
|
"""Represents a generic MPT error."""
|
|
9
10
|
|
|
10
11
|
|
|
12
|
+
class MPTMaxRetryError(MPTError):
|
|
13
|
+
"""Represents a maximum request retry error."""
|
|
14
|
+
|
|
15
|
+
|
|
11
16
|
class MPTHttpError(MPTError):
|
|
12
17
|
"""Represents an HTTP error."""
|
|
13
18
|
|
|
@@ -40,6 +45,15 @@ class MPTAPIError(MPTHttpError):
|
|
|
40
45
|
return str(self.payload)
|
|
41
46
|
|
|
42
47
|
|
|
48
|
+
def transform_http_error(err):
|
|
49
|
+
"""Transform an HTTP error to an MPT error."""
|
|
50
|
+
try:
|
|
51
|
+
payload = err.response.json()
|
|
52
|
+
except JSONDecodeError:
|
|
53
|
+
return MPTHttpError(err.response.status_code, err.response.content.decode())
|
|
54
|
+
return MPTAPIError(err.response.status_code, payload)
|
|
55
|
+
|
|
56
|
+
|
|
43
57
|
def wrap_mpt_http_error(func):
|
|
44
58
|
"""Wrap a function to catch MPT HTTP errors."""
|
|
45
59
|
|
|
@@ -48,12 +62,9 @@ def wrap_mpt_http_error(func):
|
|
|
48
62
|
try:
|
|
49
63
|
return func(*args, **kwargs)
|
|
50
64
|
except HTTPError as err:
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
except JSONDecodeError:
|
|
55
|
-
raise MPTHttpError(response.status_code, response.content.decode()) from err
|
|
56
|
-
raise MPTAPIError(response.status_code, payload) from err
|
|
65
|
+
raise transform_http_error(err) from err
|
|
66
|
+
except RetryError as retry_error:
|
|
67
|
+
raise MPTMaxRetryError(str(retry_error))
|
|
57
68
|
|
|
58
69
|
return _wrapper
|
|
59
70
|
|
|
@@ -15,10 +15,10 @@ mpt_extension_sdk/flows/pipeline.py,sha256=s4iYNxszt-fNKkVu3QXX7ffvsT6oehBPUPsX7
|
|
|
15
15
|
mpt_extension_sdk/key_vault/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
mpt_extension_sdk/key_vault/base.py,sha256=OnlBEhof_NMRToPQUO4Nrq-dnT_FPxr5FuSn3CRBQF0,3869
|
|
17
17
|
mpt_extension_sdk/mpt_http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
|
-
mpt_extension_sdk/mpt_http/base.py,sha256=
|
|
19
|
-
mpt_extension_sdk/mpt_http/mpt.py,sha256=
|
|
18
|
+
mpt_extension_sdk/mpt_http/base.py,sha256=zVGW-ERSaTFzyAKWe-_vXwSX_balI1yZHW8Q9nppr4o,1689
|
|
19
|
+
mpt_extension_sdk/mpt_http/mpt.py,sha256=0Gwr326VTy1cPKDuTdDJKidLgQrub9FhBQT8NvYIW7U,18205
|
|
20
20
|
mpt_extension_sdk/mpt_http/utils.py,sha256=Ek2D4efcJNhQlOyXd4ZeBhwqDjFpvcbBEqxuCqRQ7cU,166
|
|
21
|
-
mpt_extension_sdk/mpt_http/wrap_http_error.py,sha256=
|
|
21
|
+
mpt_extension_sdk/mpt_http/wrap_http_error.py,sha256=ULR5If8IJ9UAy137xDnOODcbMlqoW0Yc7gv6lxdbJuY,2435
|
|
22
22
|
mpt_extension_sdk/runtime/__init__.py,sha256=YY7ChHKTXXv0a6_PG1F4pVASDzleSWMv_Zf7uX0UDyc,244
|
|
23
23
|
mpt_extension_sdk/runtime/errors.py,sha256=dO2038Ivj9lzHtOtpJrB5fwL03tUWNT0R6HUKxrzKa4,146
|
|
24
24
|
mpt_extension_sdk/runtime/initializer.py,sha256=P_cbsR10NloHQ1dYZvTeaMOZmYFgrJF0PlEytWFF6rQ,2204
|
|
@@ -47,8 +47,8 @@ mpt_extension_sdk/runtime/events/utils.py,sha256=GybK8Qs9Xj03Qqm98ulKeZzPiz92L-G
|
|
|
47
47
|
mpt_extension_sdk/swo_rql/__init__.py,sha256=QrvRDYhpK-Pd3OF-U2aMeazuKm_kbvXwLRIjd9Mm6ok,104
|
|
48
48
|
mpt_extension_sdk/swo_rql/constants.py,sha256=39BZ78OzdU_dIQtoy-Z_5utXqEXRweIFvM9Zfxg9j5M,171
|
|
49
49
|
mpt_extension_sdk/swo_rql/query_builder.py,sha256=CG1dm7uJNPPCwWcf9sRD5zLbz-dtgECkQ_pX4QXpJPw,10825
|
|
50
|
-
mpt_extension_sdk-5.
|
|
51
|
-
mpt_extension_sdk-5.
|
|
52
|
-
mpt_extension_sdk-5.
|
|
53
|
-
mpt_extension_sdk-5.
|
|
54
|
-
mpt_extension_sdk-5.
|
|
50
|
+
mpt_extension_sdk-5.17.0.dist-info/METADATA,sha256=NYRWDw2B9muAqhuKlF0a_tABGOaPNvpYWa7AASaHBEs,1359
|
|
51
|
+
mpt_extension_sdk-5.17.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
52
|
+
mpt_extension_sdk-5.17.0.dist-info/entry_points.txt,sha256=N8T9gBssEOm_UeBf9ABbGqtlnethrumfMoL4hNYWVFA,146
|
|
53
|
+
mpt_extension_sdk-5.17.0.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
54
|
+
mpt_extension_sdk-5.17.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|