コード例 #1
0
ファイル: networks.py プロジェクト: Brainiarc7/kimchi
    def _set_network_subnet(self, params):
        netaddr = params.get('subnet', '')
        net_addrs = []
        # lookup a free network address for nat and isolated automatically
        if not netaddr:
            for net_name in self.get_list():
                network = NetworkModel.get_network(self.conn.get(), net_name)
                xml = network.XMLDesc(0)
                subnet = NetworkModel.get_network_from_xml(xml)['subnet']
                subnet and net_addrs.append(ipaddr.IPNetwork(subnet))
            netaddr = knetwork.get_one_free_network(net_addrs)
            if not netaddr:
                raise OperationFailed("KCHNET0009E", {'name': params['name']})

        try:
            ip = ipaddr.IPNetwork(netaddr)
        except ValueError:
            raise InvalidParameter("KCHNET0003E", {'subent': netaddr,
                                                   'network': params['name']})

        if ip.ip == ip.network:
            ip.ip = ip.ip + 1

        dhcp_start = str(ip.ip + ip.numhosts / 2)
        dhcp_end = str(ip.ip + ip.numhosts - 2)
        params.update({'net': str(ip),
                       'dhcp': {'range': {'start': dhcp_start,
                                'end': dhcp_end}}})
コード例 #2
0
 def _get_available_address(self, addr_pools=[]):
     invalid_addrs = []
     for net_name in self.get_list():
         network = NetworkModel.get_network(self.conn.get(), net_name)
         xml = network.XMLDesc(0)
         subnet = NetworkModel.get_network_from_xml(xml)['subnet']
         subnet and invalid_addrs.append(ipaddr.IPNetwork(subnet))
         addr_pools = addr_pools if addr_pools else knetwork.PrivateNets
     return knetwork.get_one_free_network(invalid_addrs, addr_pools)
コード例 #3
0
ファイル: networks.py プロジェクト: melmorabity/kimchi
 def _get_available_address(self, addr_pools=[]):
     invalid_addrs = []
     for net_name in self.get_list():
         network = NetworkModel.get_network(self.conn.get(), net_name)
         xml = network.XMLDesc(0)
         subnet = NetworkModel.get_network_from_xml(xml)['subnet']
         subnet and invalid_addrs.append(ipaddr.IPNetwork(subnet))
         addr_pools = addr_pools if addr_pools else knetwork.PrivateNets
     return knetwork.get_one_free_network(invalid_addrs, addr_pools)