diff options
Diffstat (limited to 'onap-client/onap_client/sdc')
-rw-r--r-- | onap-client/onap_client/sdc/catalog/service_catalog.py | 22 | ||||
-rw-r--r-- | onap-client/onap_client/sdc/service.py | 21 |
2 files changed, 43 insertions, 0 deletions
diff --git a/onap-client/onap_client/sdc/catalog/service_catalog.py b/onap-client/onap_client/sdc/catalog/service_catalog.py index aeaa3da..c40306f 100644 --- a/onap-client/onap_client/sdc/catalog/service_catalog.py +++ b/onap-client/onap_client/sdc/catalog/service_catalog.py @@ -495,4 +495,26 @@ CATALOG_RESOURCES = { sdc_properties.GLOBAL_SDC_PASSWORD, ), }, + "GET_SDC_CSAR": { + "verb": "GET", + "description": "Returns the CSAR for a service.", + "uri": partial( + "{endpoint}{service_path}/{catalog_service_id}/artifacts/{csar_artifact_id}".format, + endpoint=sdc_properties.SDC_BE_ENDPOINT, + service_path=sdc_properties.SDC_CATALOG_SERVICES_PATH, + ), + "uri-parameters": ["catalog_service_id", "csar_artifact_id"], + "success_code": 200, + "headers": { + "Accept": "application/json", + "Content-Type": "application/json", + "USER_ID": sdc_properties.SDC_DESIGNER_USER_ID, + "X-TransactionId": str(uuid.uuid4()), + "X-FromAppId": application_id, + }, + "auth": ( + sdc_properties.GLOBAL_SDC_USERNAME, + sdc_properties.GLOBAL_SDC_PASSWORD, + ), + }, } diff --git a/onap-client/onap_client/sdc/service.py b/onap-client/onap_client/sdc/service.py index 1b91c61..8b9c68b 100644 --- a/onap-client/onap_client/sdc/service.py +++ b/onap-client/onap_client/sdc/service.py @@ -43,6 +43,7 @@ from onap_client.sdc.vnf import get_vnf_id from onap_client.sdc import SDC_PROPERTIES from onap_client.util import utility +import base64 import time import json import random @@ -474,3 +475,23 @@ def poll_distribution(service_name): raise exceptions.DistributionTimeout( "Distribution polling timed out waiting for {}".format(service_name) ) + + +@utility +def download_csar(service_name, output_file): + oc = Client() + + service = get_service(service_name) + artifact_id = service.get("toscaArtifacts", {}).get("assettoscacsar", {}).get("uniqueId") + + csar_data = oc.sdc.service.get_sdc_csar( + catalog_service_id=service.get("uniqueId"), + csar_artifact_id=artifact_id + ).response_data + + data = base64.b64decode(csar_data.get("base64Contents")) + + output_file = f"{output_file}.csar" if not output_file.endswith(".csar") else output_file + + with open(output_file, "wb") as f: + f.write(data) |