in gnm_deliverables/views/metadata_views.py [0:0]
def post(self, request, project_id:int, asset_id:int):
try:
asset = DeliverableAsset.objects.get(pk=asset_id)
except DeliverableAsset.DoesNotExist:
return Response({"status":"error","details":"Asset not found"}, status=404)
if asset.atom_id is None:
return Response({"status":"error","details":"Asset is not from an atom","asset_id":asset_id}, status=400)
try:
url = settings.LAUNCH_DETECTOR_URL + "/update/" + str(asset.atom_id)
logger.info("Update URL for asset {aid} on project {pid} is {url}".format(aid=asset_id,pid=project_id,url=url))
response = requests.put(url)
logger.info("Updating {pid}/{aid}: Launch detector said {status} {msg}".format(aid=asset_id,pid=project_id,
status=response.status_code,
msg=response.content))
#simply echo the Launch Detector's response back to the client
return Response(response.json(), status=response.status_code)
except requests.ConnectTimeout:
return Response({"status": "error", "error": "Timeout connecting to LaunchDetector, please try again and notify multimediatech@theguardian.com"},status=500)
except requests.ConnectionError:
return Response({"status": "error", "error": "Unable to connect to LaunchDetector, please notify multimediatech@theguardian.com"},status=500)
except Exception as e:
return Response({"status": "error", "error": str(e)},status=500)