rename package name
[modeling/etsicatalog.git] / catalog / pub / msapi / sdc.py
index bb473cc..498db8d 100644 (file)
@@ -30,7 +30,7 @@ DISTRIBUTED = "DISTRIBUTED"
 
 def call_sdc(resource, method, content=''):
     additional_headers = {
-        'X-ECOMP-InstanceID': 'VFC',
+        'X-ECOMP-InstanceID': 'Modeling',
     }
     return restcall.call_req(base_url=SDC_BASE_URL,
                              user=SDC_USER,
@@ -90,6 +90,8 @@ def get_asset(asset_type, uuid):
         logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
         raise CatalogException("Failed to get asset(%s, %s) from sdc." % (asset_type, uuid))
     asset = json.JSONDecoder().decode(ret[1])
+    if len(asset) == 0:
+        raise CatalogException("Failed to get asset(%s, %s) from sdc." % (asset_type, uuid))
     if asset.get("distributionStatus", None) != DISTRIBUTED:
         raise CatalogException("The asset (%s,%s) is not distributed from sdc." % (asset_type, uuid))
     else:
@@ -127,3 +129,41 @@ def download_artifacts(download_url, local_path, file_name):
     local_file.write(ret[1])
     local_file.close()
     return local_file_name
+
+
+def create_consumer(name, salt, password):
+    req_data = {
+        'consumerName': name,
+        'consumerSalt': salt,
+        'consumerPassword': password
+    }
+    req_data = json.JSONEncoder().encode(req_data)
+    resource = '/sdc2/rest/v1/consumers'
+    headers = {'USER_ID': 'jh0003'}
+    ret = restcall.call_req(base_url=SDC_BASE_URL,
+                            user="",
+                            passwd="",
+                            auth_type=restcall.rest_no_auth,
+                            resource=resource,
+                            method="POST",
+                            content=req_data,
+                            additional_headers=headers)
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise CatalogException("Failed to create consumer from sdc.")
+
+
+def register_for_topics(key):
+    req_data = {
+        'apiPublicKey': key,
+        'distrEnvName': 'AUTO',
+        'isConsumerToSdcDistrStatusTopic': False,
+        'distEnvEndPoints': []
+    }
+    req_data = json.JSONEncoder().encode(req_data)
+    url = '/sdc/v1/registerForDistribution'
+    ret = call_sdc(url, 'POST', req_data)
+    if ret[0] != 0:
+        logger.error("Status code is %s, detail is %s.", ret[2], ret[1])
+        raise CatalogException("Failed to register from sdc.")
+    return json.JSONDecoder().decode(ret[1])