def delete_field(self, uuid): session = db.get_session() q = utils.model_query(models.HashMapField, session) q = q.filter(models.HashMapField.field_id == uuid) r = q.delete() if not r: raise api.NoSuchField(uuid)
def get_field(self, uuid=None, service_uuid=None, name=None): session = db.get_session() try: q = session.query(models.HashMapField) if uuid: q = q.filter(models.HashMapField.field_id == uuid) elif service_uuid and name: q = q.join(models.HashMapField.service) q = q.filter(models.HashMapService.service_id == service_uuid, models.HashMapField.name == name) else: raise api.ClientHashMapError('You must specify either an uuid' ' or a service_uuid and a name.') res = q.one() return res except sqlalchemy.orm.exc.NoResultFound: raise api.NoSuchField(uuid)