def test_validate_values(self): msg = attributes._validate_values(4, [4, 6]) self.assertIsNone(msg) msg = attributes._validate_values(4, (4, 6)) self.assertIsNone(msg) msg = attributes._validate_values(7, [4, 6]) self.assertEqual("'7' is not in [4, 6]", msg) msg = attributes._validate_values(7, (4, 6)) self.assertEqual("'7' is not in (4, 6)", msg)
def _validate_destination(instance_ctx, valid_values=None): expected_keys = ['destination_flag', 'destination_mac'] if not isinstance(instance_ctx, dict): msg = _("'%s' is not a dict") % instance_ctx LOG.debug(msg) return msg for port_key in instance_ctx: if port_key not in expected_keys: msg = (_("'%(data)s' is not in %(valid_values)s") % { 'data': port_key, 'valid_values': expected_keys }) LOG.debug(msg) return msg if instance_ctx.has_key('destination_flag'): msg = attr._validate_values(instance_ctx['destination_flag'], ['packet', 'chain', 'default']) if msg: msg = _("'%s' must be 'packet', 'chain' or 'default'" ) % instance_ctx['destination_flag'] LOG.debug(msg) return msg if instance_ctx['destination_flag'] == 'chain': if not instance_ctx.has_key('destination_mac'): msg = _("'%s' must has key destination_mac") % instance_ctx LOG.debug(msg) return msg else: if instance_ctx.has_key('destination_mac'): msg = _( "'%s', if destination_flag != chain, you should not input destination_mac" ) % instance_ctx LOG.debug(msg) return msg if instance_ctx.has_key('destination_mac'): msg = attr._validate_mac_address(instance_ctx['destination_mac']) if msg: msg = _("'%s' is not a valid MAC address" ) % instance_ctx['destination_mac'] LOG.debug(msg) return msg
def _validate_portforwardings(data, valid_values=None): if not isinstance(data, list): msg = _("Invalid data format for portforwarding: '%s'") % data raise webob.exc.HTTPBadRequest(msg) # LOG.debug(msg) # return msg expected_keys = ['protocol', 'outside_port', 'inside_addr', 'inside_port'] portfwds = [] for portfwd in data: msg = attributes._verify_dict_keys(expected_keys, portfwd) if msg: raise webob.exc.HTTPBadRequest(msg) # LOG.debug(msg) # return msg #raise InvalidInput(portfwd=portfwd, msg=msg) msg = attributes._validate_range(portfwd['outside_port'], (0, 65535)) if msg: raise webob.exc.HTTPBadRequest(msg) # LOG.debug(msg) # return msg #raise InvalidPortValue(port=portfwd['outside_port'], msg=msg) msg = attributes._validate_ip_address(portfwd['inside_addr']) if msg: raise webob.exc.HTTPBadRequest(msg) # LOG.debug(msg) # return msg msg = attributes._validate_range(portfwd['inside_port'], (0, 65535)) if msg: raise webob.exc.HTTPBadRequest(msg) # LOG.debug(msg) # return msg #raise InvalidPortValue(portfwd['inside_port'], msg=msg) msg = attributes._validate_values(portfwd['protocol'].upper(), ('TCP', 'UDP')) if msg: raise webob.exc.HTTPBadRequest(msg) # LOG.debug(msg) # return msg #raise InvalidProtocol(protocol=portfwd['protocol'].upper(), msg=msg) if portfwd in portfwds: raise DuplicatePortforwardingRuleInRequest(portfwds=portfwds)
def _validate_ethertype(data): return attr._validate_values(data, sg_supported_ethertypes)