def add_user_port(user_id, service_group_id): try: Users.get(user_id) except DoesNotExist: raise try: ServiceGroupDatabase.get(service_group_id) except DoesNotExist: raise try: query = ( dbsession.query(func.max(PortDatabase.port)) .filter(PortDatabase.service_group_id == service_group_id) .group_by(PortDatabase.service_group_id) ) portNumber = int(query.one()[0]) + 1 except NoResultFound: portNumber = 1337 port = PortDatabase() port.user_id = int(user_id) port.service_group_id = int(service_group_id) port.port = int(portNumber) port.save() return port
def add_user_port(user_id, service_group_id): try: Users.get(user_id) except DoesNotExist: raise try: ServiceGroupDatabase.get(service_group_id) except DoesNotExist: raise try: query = dbsession.query(func.max(PortDatabase.port)).filter( PortDatabase.service_group_id == service_group_id).group_by( PortDatabase.service_group_id) portNumber = int(query.one()[0]) + 1 except NoResultFound: portNumber = 1337 port = PortDatabase() port.user_id = int(user_id) port.service_group_id = int(service_group_id) port.port = int(portNumber) port.save() return port
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(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 query(cls): return dbsession.query(cls)