Ejemplo n.º 1
0
    def get_agencies(self):  # pylint: disable=no-self-use
        r_connection = self.get_redis_connection('slave')
        try:
            data = r_connection.get(KEY_AGENCIES)
        except redis.ConnectionError as ex:
            raise exceptions.DatabaseOperationError(
                'Cannot get agencies from redis: {0}'.format(ex.message))

        if data is None:
            agencies = None
        else:
            try:
                agencies = json.loads(data)
            except TypeError:
                raise exceptions.DatabaseOperationError(
                    'Invalid format for agencies')

        raise gen.Return(agencies)
Ejemplo n.º 2
0
    def get_route_vehicles(self, agency_tag, route_tag):  # pylint: disable=no-self-use

        r_connection = self.get_redis_connection('slave')

        try:
            key_name = agency_tag + ':' + KEY_ROUTE_VEHICLES + ':' + route_tag
            data = r_connection.get(key_name)
        except redis.ConnectionError as ex:
            raise exceptions.DatabaseOperationError(
                'Cannot get route vehicles from redis: {0}'.format(ex.message))
        if data is None:
            vehicles = None
        else:
            try:
                vehicles = json.loads(data)
            except TypeError:
                raise exceptions.DatabaseOperationError(
                    'Invalid format for route vehicles')

        raise gen.Return(vehicles)
Ejemplo n.º 3
0
    def get_route_schedule(self, agency_tag, route_tag):  # pylint: disable=no-self-use

        r_connection = self.get_redis_connection('slave')

        try:
            key_name = agency_tag + ':' + KEY_ROUTE_SCHEDULE + ':' + route_tag
            data = r_connection.get(key_name)
        except redis.ConnectionError as ex:
            raise exceptions.DatabaseOperationError(
                'Cannot get route schedule from redis: {0}'.format(ex.message))
        if data is None:
            schedule = None
        else:
            try:
                schedule = json.loads(data)
            except TypeError:
                raise exceptions.DatabaseOperationError(
                    'Invalid format for schedule')

        raise gen.Return(schedule)
Ejemplo n.º 4
0
    def store_routes(self, agency_tag, routes):  # pylint: disable=no-self-use

        r_connection = self.get_redis_connection('master')

        routes_ttl = settings.ROUTES_CACHE_TTL_SECONDS
        try:
            key_name = agency_tag + ':' + KEY_ROUTES
            r_connection.set(key_name, json.dumps(routes), ex=routes_ttl)
        except redis.ConnectionError as ex:
            raise exceptions.DatabaseOperationError(
                'Cannot store routes in redis: {0}'.format(ex.message))

        raise gen.Return(routes)
Ejemplo n.º 5
0
    def store_agencies(self, agencies):  # pylint: disable=no-self-use

        r_connection = self.get_redis_connection('master')

        agencies_ttl = settings.AGENCIES_CACHE_TTL_SECONDS
        try:

            r_connection.set(KEY_AGENCIES,
                             json.dumps(agencies),
                             ex=agencies_ttl)
        except redis.ConnectionError as ex:
            raise exceptions.DatabaseOperationError(
                'Cannot store agencies in redis: {0}'.format(ex.message))

        raise gen.Return(agencies)
Ejemplo n.º 6
0
 def test_DatabaseOperationError(self):
     try:
         raise exceptions.DatabaseOperationError(
             "Testing DatabaseOperationError")
     except exceptions.DatabaseOperationError:
         pass