Ejemplo n.º 1
0
def _get_filter_args(klass, request, custom_filters=None):
    filter_args = {}
    if 'instance' in request.GET:
        uuid = request.GET['instance']
        filter_args['instance'] = uuid
        if not utils.is_uuid_like(uuid):
            msg = "%s is not uuid-like" % uuid
            raise BadRequestException(msg)

    for (key, value) in request.GET.items():
        if not custom_filters or key not in custom_filters:
            if key.endswith('_min'):
                k = key[0:-4]
                _check_has_field(klass, k)
                try:
                    filter_args['%s__gte' % k] = \
                        utils.str_time_to_unix(value)
                except AttributeError:
                    msg = "Range filters must be dates."
                    raise BadRequestException(message=msg)
            elif key.endswith('_max'):
                k = key[0:-4]
                _check_has_field(klass, k)
                try:
                    filter_args['%s__lte' % k] = \
                        utils.str_time_to_unix(value)
                except AttributeError:
                    msg = "Range filters must be dates."
                    raise BadRequestException(message=msg)

    return filter_args
Ejemplo n.º 2
0
def _get_filter_args(klass, request, custom_filters=None):
    filter_args = {}
    if 'instance' in request.GET:
        uuid = request.GET['instance']
        filter_args['instance'] = uuid
        if not utils.is_uuid_like(uuid):
            msg = "%s is not uuid-like" % uuid
            raise BadRequestException(msg)

    for (key, value) in request.GET.items():
            if not custom_filters or key not in custom_filters:
                if key.endswith('_min'):
                    k = key[0:-4]
                    _check_has_field(klass, k)
                    try:
                        filter_args['%s__gte' % k] = \
                            utils.str_time_to_unix(value)
                    except AttributeError:
                        msg = "Range filters must be dates."
                        raise BadRequestException(message=msg)
                elif key.endswith('_max'):
                    k = key[0:-4]
                    _check_has_field(klass, k)
                    try:
                        filter_args['%s__lte' % k] = \
                            utils.str_time_to_unix(value)
                    except AttributeError:
                        msg = "Range filters must be dates."
                        raise BadRequestException(message=msg)

    return filter_args
Ejemplo n.º 3
0
 def test_is_uuid_like_invalid(self):
     uuid = "$-^&#$"
     self.assertFalse(stacktach_utils.is_uuid_like(uuid))
Ejemplo n.º 4
0
 def test_is_uuid_like_no_dashes(self):
     uuid = "08f685d963524dbc827196cc54bf14cd"
     self.assertTrue(stacktach_utils.is_uuid_like(uuid))
Ejemplo n.º 5
0
 def test_is_uuid_like(self):
     uuid = INSTANCE_ID_1
     self.assertTrue(stacktach_utils.is_uuid_like(uuid))
Ejemplo n.º 6
0
 def test_is_uuid_like_invalid(self):
     uuid = "$-^&#$"
     self.assertFalse(stacktach_utils.is_uuid_like(uuid))
Ejemplo n.º 7
0
 def test_is_uuid_like_no_dashes(self):
     uuid = "08f685d963524dbc827196cc54bf14cd"
     self.assertTrue(stacktach_utils.is_uuid_like(uuid))
Ejemplo n.º 8
0
 def test_is_uuid_like(self):
     uuid = INSTANCE_ID_1
     self.assertTrue(stacktach_utils.is_uuid_like(uuid))