def serialization_notifications_callback(channel, method, properties, body): obj_data = simplejson.loads(body) obj_type = obj_data.get("obj_type") domain_model = getattr(domain, obj_type, None) if domain_model: obj_key = valueKey(obj_data.get("obj_key")) session = Session() obj = session.query(domain_model).get(obj_key) if obj: try: publish_to_xml(obj) except Exception, e: notify_serialization_failure(SERIALIZE_FAILURE_TEMPLATE, obj=obj, message=obj_data, error=e ) channel.basic_ack(delivery_tag=method.delivery_tag) else: log.error("Could not query object of type %s with key %s. " "Check database records - Rejecting message.", domain_model, obj_key ) #Reject the message channel.basic_reject(delivery_tag=method.delivery_tag, requeue=False ) session.close()
def serialization_notifications_callback(channel, method, properties, body): obj_data = simplejson.loads(body) obj_type = obj_data.get("obj_type") domain_model = getattr(domain, obj_type, None) if domain_model: obj_key = valueKey(obj_data.get("obj_key")) session = Session() obj = session.query(domain_model).get(obj_key) if obj: try: publish_to_xml(obj) except Exception, e: notify_serialization_failure(SERIALIZE_FAILURE_TEMPLATE, obj=obj, message=obj_data, error=e) channel.basic_ack(delivery_tag=method.delivery_tag) else: log.error( "Could not query object of type %s with key %s. " "Check database records - Rejecting message.", domain_model, obj_key) #Reject the message channel.basic_reject(delivery_tag=method.delivery_tag, requeue=False) session.close()
def getValueKey(self, context): """iterate through the parents until you get a valueKey """ if context.__parent__ is None: return None else: try: value_key = valueKey(context.__parent__.__name__)[0] except: value_key = self.getValueKey(context.__parent__) return value_key
def getValueKey(self, context): """iterate through the parents until you get a valueKey """ if context.__parent__ is None: return None else: try: value_key = valueKey( context.__parent__.__name__ )[0] except: value_key = self.getValueKey( context.__parent__) return value_key
def get(self, name, default=None): try: key = valueKey(name) except KeyError: return default #value = self._query.get(key) # sqlalchemy 0.5.x does thow an exception instead of a warning as in .4.x: # InvalidRequestError: Query.get() being called on a Query with existing criterion. session = Session() value = session.query(self.domain_model).get(key) if value is None: return default value = contained(value, self, stringKey(value)) return value
def get(self, name, default=None): try: key = valueKey(name) except KeyError: return default # value = self._query.get(key) # sqlalchemy 0.5.x does thow an exception instead of a warning as in .4.x: # InvalidRequestError: Query.get() being called on a Query with existing criterion. session = Session() value = session.query(self.domain_model).get(key) if value is None: return default value = contained(value, self, stringKey(value)) return value
def resolve(self, id): class_path, oid = id.split('-', 1) domain_class = resolve.resolve(class_path) session = Session() value_key = container.valueKey(oid) return session.query(domain_class).get(value_key)