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()
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
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)
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)
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)
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
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)
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')
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)
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)
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