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)
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)
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)