Exemplo n.º 1
0
    def _validate_cidr(self, subnet, nuage_subnet, shared_subnet):
        nuage_subnet = shared_subnet or nuage_subnet
        if nuage_subnet.get('DHCPManaged', True) is False:
            subnet_validate = {'enable_dhcp': Is(False)}
        else:
            if subnet['ip_version'] == 4:
                nuage_cidr = netaddr.IPNetwork(nuage_subnet['address'] + '/' +
                                               nuage_subnet['netmask'])
                subnet_validate = {'enable_dhcp': Is(nuage_cidr is not None)}
            else:
                if nuage_subnet['IPType'] == constants.IP_TYPE_IPV4:
                    msg = (_("Subnet with ip_version %(ip_version)s can't be "
                             "linked to vsd subnet with IPType %(ip_type)s.")
                           % {'ip_version': subnet['ip_version'],
                              'ip_type': nuage_subnet['IPType']})
                    raise NuageBadRequest(msg=msg)
                nuage_cidr = netaddr.IPNetwork(nuage_subnet['IPv6Address'])
                subnet_validate = {'enable_dhcp': Is(False)}

            if not compare_cidr(subnet['cidr'], nuage_cidr):
                msg = 'OSP cidr %s and NuageVsd cidr %s do not match' % \
                      (subnet['cidr'], nuage_cidr)
                raise NuageBadRequest(msg=msg)

        validate("subnet", subnet, subnet_validate)
    def _validate_create_subnet(self, core_plugin, db_context, subnet):
        subnet_validate = {'net_partition': IsSet(),
                           'nuagenet': IsSet()}
        validate("subnet", subnet, subnet_validate)
        network = core_plugin.get_network(db_context, subnet['network_id'])
        net_validate = {'router:external': Is(False)}
        validate("network", network, net_validate)

        self._validate_network_segment(network)
Exemplo n.º 3
0
    def _validate_cidr(self, subnet, nuage_subnet, shared_subnet):
        nuage_subnet = shared_subnet or nuage_subnet
        if nuage_subnet.get('DHCPManaged', True):
            if subnet['ip_version'] == 4:
                subnet_validate = {
                    'enable_dhcp': Is(nuage_subnet.get('enableDHCPv4', True))
                }
                if nuage_subnet['IPType'] == constants.IP_TYPE_IPV6:
                    msg = (_("Subnet with ip_version %(ip_version)s can't be "
                             "linked to vsd subnet with IPType %(ip_type)s.") %
                           {
                               'ip_version': subnet['ip_version'],
                               'ip_type': nuage_subnet['IPType']
                           })
                    raise NuageBadRequest(msg=msg)
                nuage_cidr = (netaddr.IPNetwork(nuage_subnet['address'] + '/' +
                                                nuage_subnet['netmask'])
                              if nuage_subnet.get('address') else None)
            else:
                subnet_validate = {
                    'enable_dhcp': Is(nuage_subnet.get('enableDHCPv6', False))
                }
                if nuage_subnet['IPType'] == constants.IP_TYPE_IPV4:
                    msg = (_("Subnet with ip_version %(ip_version)s can't be "
                             "linked to vsd subnet with IPType %(ip_type)s.") %
                           {
                               'ip_version': subnet['ip_version'],
                               'ip_type': nuage_subnet['IPType']
                           })
                    raise NuageBadRequest(msg=msg)
                nuage_cidr = (netaddr.IPNetwork(nuage_subnet['IPv6Address'])
                              if nuage_subnet.get('IPv6Address') else None)

            if not self.compare_cidr(subnet['cidr'], nuage_cidr):
                msg = 'OSP cidr %s and NuageVsd cidr %s do not match' % \
                      (subnet['cidr'], nuage_cidr)
                raise NuageBadRequest(msg=msg)
        else:
            subnet_validate = {'enable_dhcp': Is(False)}

        validate("subnet", subnet, subnet_validate)
        if nuage_subnet["type"] == constants.L2DOMAIN:
            if subnet['enable_dhcp']:
                if ((subnet['ip_version'] == 4 and not nuage_subnet['gateway'])
                        or (subnet['ip_version'] == 6
                            and not nuage_subnet['IPv6Gateway'])):
                    msg = (_("DHCP enabled subnet can't be linked to vsd "
                             "L2Domain without DHCP server IP"))
                    raise NuageBadRequest(msg=msg)
            elif nuage_subnet['DHCPManaged']:
                if ((subnet['ip_version'] == 4 and nuage_subnet['gateway'])
                        or (subnet['ip_version'] == 6
                            and nuage_subnet['IPv6Gateway'])):
                    msg = (_("DHCP disabled subnet can't be linked to vsd "
                             "L2Domain with DHCP server IP"))
                    raise NuageBadRequest(msg=msg)
    def _validate_cidr(self, subnet, nuage_subnet, shared_subnet):
        if not nuage_subnet['subnet_address'] and not shared_subnet:
            nuage_ip = None
        else:
            if shared_subnet:
                nuage_subnet = shared_subnet
            nuage_ip = netaddr.IPNetwork(nuage_subnet['subnet_address'] + '/' +
                                         nuage_subnet['subnet_netmask'])

        subnet_validate = {'enable_dhcp': Is(nuage_ip is not None)}
        if nuage_ip:
            subnet_validate['cidr'] = Is(str(nuage_ip))
        validate("subnet", subnet, subnet_validate)
Exemplo n.º 5
0
    def _validate_cidr(self, subnet, nuage_subnet, shared_subnet):
        shared_subnet = shared_subnet or {}
        if (not nuage_subnet['subnet_address']) and (
                not shared_subnet.get('subnet_address')):
            nuage_ip = None
        else:
            if shared_subnet.get('subnet_address'):
                nuage_subnet = shared_subnet
            nuage_ip = netaddr.IPNetwork(nuage_subnet['subnet_address'] + '/' +
                                         nuage_subnet['subnet_netmask'])

        subnet_validate = {'enable_dhcp': Is(nuage_ip is not None)}
        if nuage_ip:
            subnet_validate['cidr'] = Is(str(nuage_ip))
        validate("subnet", subnet, subnet_validate)