Beispiel #1
0
    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 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)
Beispiel #3
0
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
Beispiel #4
0
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)
Beispiel #5
0
def _validate_ethertype(data):
    return attr._validate_values(data, sg_supported_ethertypes)