예제 #1
0
 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)
예제 #2
0
 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)