rabbitmq/assetsweeper_message_processor.py (27 lines of code) (raw):

from .MessageProcessor import MessageProcessor import logging from gnm_deliverables.models import DeliverableAsset logger = logging.getLogger(__name__) class AssetSweeperMessageProcessor(MessageProcessor): routing_key = "assetsweeper.permissions_monitor.vidispine_job_rerun" schema = { "type": "object", "properties": { "old": {"type": "string"}, "new": {"type": "string"}, "path": {"type": "string"} } } def valid_message_receive(self, exchange_name, routing_key, delivery_tag, body): """ Takes an incoming message, looks up the asset based on the old Vidispine job id. and replaces it with the new one. :param exchange_name: :param routing_key: :param delivery_tag: :param body: :return: """ logger.debug("Got incoming message: " + str(body)) logger.debug("Exchange name: {0}".format(exchange_name)) logger.debug("Routing key: {0}".format(routing_key)) logger.debug("Delivery tag: {0}".format(delivery_tag)) try: asset = DeliverableAsset.objects.get(job_id=body["old"]) except DeliverableAsset.DoesNotExist: logger.info("Received a message for job {0}. Cannot find a matching asset.".format(body["old"])) return logger.info("Received a message for job {0}. Tied this job to asset {1} from bundle {2}. Setting job on asset to {3}.".format(body["old"], asset.id, asset.deliverable_id, body["new"])) asset.job_id = body["new"] asset.save()