Ejemplo n.º 1
0
 def validate_ec2_id(val):
     if not validator.validate_str()(val):
         return False
     try:
         ec2utils.ec2_id_to_id(val)
     except exception.InvalidEc2Id:
         return False
     return True
Ejemplo n.º 2
0
 def validate_ec2_id(val):
     if not validator.validate_str()(val):
         return False
     try:
         ec2utils.ec2_id_to_id(val)
     except exception.InvalidEc2Id:
         return False
     return True
Ejemplo n.º 3
0
 def test_validate_str(self):
     self.assertTrue(validator.validate_str()('foo'))
     self.assertFalse(validator.validate_str()(1))
     self.assertTrue(validator.validate_str(4)('foo'))
     self.assertFalse(validator.validate_str(2)('foo'))
     self.assertFalse(validator.validate_str()(None))
     self.assertTrue(validator.validate_str()(u'foo'))
Ejemplo n.º 4
0
 def test_validate_str(self):
     self.assertTrue(validator.validate_str()('foo'))
     self.assertFalse(validator.validate_str()(1))
     self.assertTrue(validator.validate_str(4)('foo'))
     self.assertFalse(validator.validate_str(2)('foo'))
     self.assertFalse(validator.validate_str()(None))
     self.assertTrue(validator.validate_str()(u'foo'))
Ejemplo n.º 5
0
class Validator(wsgi.Middleware):
    def validate_ec2_id(val):
        if not validator.validate_str()(val):
            return False
        try:
            ec2utils.ec2_id_to_id(val)
        except exception.InvalidEc2Id:
            return False
        return True

    validator.validate_ec2_id = validate_ec2_id

    validator.DEFAULT_VALIDATOR = {
        'instance_id': validator.validate_ec2_id,
        'volume_id': validator.validate_ec2_id,
        'image_id': validator.validate_ec2_id,
        'attribute': validator.validate_str(),
        'image_location': validator.validate_image_path,
        'public_ip': netutils.is_valid_ipv4,
        'region_name': validator.validate_str(),
        'group_name': validator.validate_str(max_length=255),
        'group_description': validator.validate_str(max_length=255),
        'size': validator.validate_int(),
        'user_data': validator.validate_user_data
    }

    def __init__(self, application):
        super(Validator, self).__init__(application)

    @webob.dec.wsgify(RequestClass=wsgi.Request)
    def __call__(self, req):
        if validator.validate(req.environ['ec2.request'].args,
                              validator.DEFAULT_VALIDATOR):
            return self.application
        else:
            raise webob.exc.HTTPBadRequest()