示例#1
0
 def delete_key(cls, key):
     try:
         item = cls.query().filter(AuthKeys.key == key).one()
     except SQLAlchemyError as e:
         logger.exception(e)
         raise DoesNotExist("Key does not exist")
     item.delete()
示例#2
0
 def get_user(self):
     if self.user_id is None:
         return None
     try:
         user = Users.query().filter(Users.id == self.user_id).one()
     except SQLAlchemyError as e:
         logger.exception(e)
         raise DoesNotExist("Key does not exist")
     return user
示例#3
0
def get_domain_by_id(domain_id, user_id=None):
    query = DomainDatabase.query()
    if user_id is not None:
        query = query.filter(DomainDatabase.user_id == user_id)
    try:
        return query.filter(DomainDatabase.id == domain_id).one()
    except NoResultFound:
        pass
    raise DoesNotExist("Domain id=%s does not exist" % domain_id)
示例#4
0
def get_domain(name, user_id=None):
    query = DomainDatabase.query()
    if user_id is not None:
        query = query.filter(DomainDatabase.user_id == user_id)
    try:
        return query.filter(DomainDatabase.name == name).one()
    except NoResultFound:
        pass
    raise DoesNotExist("Domain name=%s does not exist" % name)
示例#5
0
def get_dns_record(user_id, dns_record_id):
    record = DNSRecordDatabase.query().filter(
        DNSRecordDatabase.id == dns_record_id,
        DNSRecordDatabase.dns_zone.has(
            DNSZoneDatabase.domain.has(DomainDatabase.user_id == user_id)))
    try:
        return record.one()
    except NoResultFound:
        pass
    raise DoesNotExist("DNS record %d does not exist" % dns_record_id)
示例#6
0
 def get_key(cls, key):
     key = hash_key(key)
     try:
         item = cls.query().filter(
             AuthKeys.key == key,
             or_(AuthKeys.expires > datetime.now(),
                 AuthKeys.expires == None)).one()
     except SQLAlchemyError as e:
         logger.exception(e)
         raise DoesNotExist("Key does not exist")
     return item
示例#7
0
def get_dns_zone(user_id, domain_id, limit=None, offset=None):
    if is_positive_numeric(user_id) is not True:
        raise Invalid('User id must be positive integer')
    elif is_positive_numeric(domain_id) is not True:
        raise Invalid('User id must be positive integer')
    zonequery = DNSZoneDatabase.query()
    zonequery = zonequery.filter(DNSZoneDatabase.domain_id == domain_id)
    zonequery = zonequery.filter(
        DNSZoneDatabase.domain.has(DomainDatabase.user_id == user_id))
    zonequery = do_limits(zonequery, limit, offset)
    try:
        return zonequery.one()
    except NoResultFound:
        pass
    raise DoesNotExist("DNS entry for domain %s does not exist" % domain_id)
示例#8
0
文件: table.py 项目: annttu/Renki
 def get(cls, id_):
     if id_:
         try:
             id_ = int(id_)
         except ValueError:
             logger.error("Get with invalid database id %s" % id_)
             raise Invalid('ID must be integer')
         try:
             c = dbsession.query(cls).filter(cls.id == id_).one()
         except NoResultFound:
             raise DoesNotExist('Object with id %d does not exist' % id_)
         except SQLAlchemyError as e:
             logger.exception(e)
             raise DatabaseError('Cannot get object with id %d' % id_)
         return c
     raise Invalid('ID must be integer')
示例#9
0
def get_port_by_id(port_id, user_id=None):
    query = PortDatabase.query()

    if user_id is not None:
        try:
            Users.get(user_id)
        except DoesNotExist:
            raise
        query = query.filter(PortDatabase.user_id == user_id)

    try:
        return query.filter(PortDatabase.id == port_id).one()
    except NoResultFound:
        pass

    raise DoesNotExist("Port id=%s does not exist" % port_id)
示例#10
0
def get_repository_by_id(user_id, type, repo_id):
    query = RepositoryDatabase.query()
    if user_id is not None:
        try:
            Users.get(user_id)
        except DoesNotExist:
            raise
        query = query.filter(RepositoryDatabase.user_id == user_id)

    if type is not None:
        query = query.filter(RepositoryDatabase.type == type)

    try:
        return query.filter(RepositoryDatabase.id == repo_id).one()
    except NoResultFound:
        pass

    raise DoesNotExist("Repository id=%s does not exist" % repo_id)
示例#11
0
def add_user_dns_zone(user_id,
                      domain_id,
                      ttl,
                      retry,
                      refresh,
                      rname,
                      expire,
                      record_ttl,
                      comment=''):
    if is_positive_numeric(user_id) is not True:
        raise Invalid('User id must be positive integer')
    elif is_positive_numeric(domain_id) is not True:
        raise Invalid('User id must be positive integer')
    domain_q = DomainDatabase.query()
    domain_q = domain_q.filter(DomainDatabase.user_id == user_id)
    domain_q = domain_q.filter(DomainDatabase.id == domain_id)
    try:
        domain = domain_q.one()
    except NoResultFound:
        raise DoesNotExist("Domain id=%s does not exist" % domain_id)
    try:
        get_dns_zone(user_id, domain_id)
        raise AlreadyExist("DNS zone already added for domain id=%s" %
                           domain_id)
    except DoesNotExist:
        pass
    zone = DNSZoneDatabase()
    zone.domain_id = domain.id
    zone.refresh = refresh
    zone.retry = retry
    zone.expire = expire
    zone.ttl = ttl
    zone.rname = rname
    zone.record_ttl = record_ttl
    zone.comment = comment
    zone.save()
    return zone