logger = logging.getLogger("uvicorn.error") def load_asset_edc(body:DataProductResourcesModel, dataResouceAPi_URL:str): header_authorization = os.getenv("HEADER_AUTHORIZATION") # asset_id = asset_id.replace(os.getenv("DOMAIN_PART"),"") # Create asset #get policy metadata print(body.dataProductPolicy) policyData=body.dataProductPolicy policyData=policyData.replace("'", "\"") print(policyData) #get the policyId policy_json = json.loads(policyData) policy_id=policy_json["@id"] print(policy_id) # check new data type for dataresource in body.dataResources: formatType = body.dataAccount[0].formatType if dataresource.dataResourceInfo is not None: create_asset_response = invoke_create_asset(dataresource.dataResourceInfo.name, body.dataProductName, formatType, dataresource.dataResourceInfo.description, dataResouceAPi_URL, header_authorization) if not create_asset_response.ok: raise HTTPException(status_code=400, detail=json.loads(create_asset_response.text)) # Create policy #policy_id = os.getenv("POLICY_ID") contract_uuid = uuid.uuid4() contract_id = "contract-"+policy_id+"-"+str(contract_uuid) #os.getenv("CONTRACT_ID") policyExist = checkPolicyId(policy_id, header_authorization) if not policyExist: #create_policy_response = invoke_create_policy(policy_id, header_authorization) create_policy_response = invoke_create_policy(policyData, header_authorization) print (json.loads(create_policy_response.text)) create_contract_response = invoke_create_contract_definition(contract_id, policy_id, dataresource.dataResourceInfo.name, header_authorization) print(json.loads(create_contract_response.text)) print (f'Asset {body.dataProductName} created') return (f'Asset {body.dataProductName} created')