def create_or_update_consumer_identity(item): """ Creates a new consumer identity or updates existing to match passed in item data @param item: dict containing needed info to construct a ConsumerIdentity object required keys: 'uuid', 'engineering_ids' @type item: dict @return: True on success, False on failure @rtype: bool """ if not item.has_key("uuid"): raise Exception("Missing required parameter: 'uuid'") if not item.has_key("engineering_ids"): raise Exception("Missing required parameter: 'engineering_ids'") consumer_id = item["uuid"] engineering_ids = item["engineering_ids"] created_date = datetime.now(tzutc()) modified_date = datetime.now(tzutc()) deleted = False deleted_date = None if item.has_key("created_date"): created_date = convert_to_datetime(item["created_date"]) if item.has_key("modified_date"): modified_date = convert_to_datetime(item["modified_date"]) if item.has_key("deleted"): deleted = item["deleted"] if item.has_key("deleted_date"): deleted_date = convert_to_datetime(item["deleted_date"]) if deleted and not deleted_date: deleted_date = datetime.now(tzutc()) identity = ConsumerIdentity.objects(uuid=UUID(consumer_id)).first() if not identity: _LOG.info("Creating new ConsumerIdentity for: %s" % (consumer_id)) identity = ConsumerIdentity(uuid=UUID(consumer_id)) identity.engineering_ids = engineering_ids identity.created_date = created_date identity.modified_date = modified_date identity.deleted = deleted identity.deleted_date = deleted_date try: _LOG.debug("Updating ConsumerIdentity: %s" % (identity)) identity.save(safe=True) return True except Exception, e: _LOG.exception(e) return False
def convert_dict_to_consumer_identity(item): """ Converts a dictionary to a ConsumerIdentity @param item: dict containing needed info to construct a ConsumerIdentity object required keys: 'uuid', 'engineering_ids' @type item: dict @return: instance of a consumer identity, note this instance has not yet been saved @rtype: splice.common.models.ConsumerIdentity """ if not item.has_key("uuid"): raise Exception("Missing required parameter: 'uuid'") if not item.has_key("engineering_ids"): raise Exception("Missing required parameter: 'engineering_ids'") consumer_id = item["uuid"] engineering_ids = item["engineering_ids"] created_date = datetime.now(tzutc()) modified_date = datetime.now(tzutc()) deleted = False deleted_date = None if item.has_key("created_date"): created_date = convert_to_datetime(item["created_date"]) if item.has_key("modified_date"): modified_date = convert_to_datetime(item["modified_date"]) if item.has_key("deleted"): deleted = item["deleted"] if item.has_key("deleted_date"): deleted_date = convert_to_datetime(item["deleted_date"]) if deleted and not deleted_date: deleted_date = datetime.now(tzutc()) identity = ConsumerIdentity(uuid=UUID(consumer_id)) identity.engineering_ids = engineering_ids identity.created_date = created_date identity.modified_date = modified_date identity.deleted = deleted identity.deleted_date = deleted_date return identity