Merge "Use DHCP ip ranges for assign IPs to nodes from this range"
This commit is contained in:
@@ -1141,7 +1141,6 @@ class LibvirtNode(node.Node):
|
||||
acpi=self.driver.enable_acpi,
|
||||
numa=self.numa,
|
||||
)
|
||||
logger.debug(node_xml)
|
||||
self.uuid = self.driver.conn.defineXML(node_xml).UUIDString()
|
||||
|
||||
if self.cloud_init_volume_name is not None:
|
||||
@@ -1388,7 +1387,6 @@ class LibvirtNode(node.Node):
|
||||
)
|
||||
|
||||
domain = self._libvirt_node
|
||||
logger.debug(xml)
|
||||
logger.debug(domain.state(0))
|
||||
|
||||
domain.snapshotCreateXML(xml, create_xml_flag)
|
||||
|
||||
@@ -18,6 +18,7 @@ import hashlib
|
||||
import six
|
||||
|
||||
from devops.helpers import xmlgenerator
|
||||
from devops import logger
|
||||
|
||||
|
||||
class LibvirtXMLBuilder(object):
|
||||
@@ -88,6 +89,7 @@ class LibvirtXMLBuilder(object):
|
||||
if has_pxe_server:
|
||||
network_xml.bootp(file='pxelinux.0')
|
||||
|
||||
logger.debug(str(network_xml))
|
||||
return str(network_xml)
|
||||
|
||||
@classmethod
|
||||
@@ -108,6 +110,7 @@ class LibvirtXMLBuilder(object):
|
||||
with volume_xml.backingStore:
|
||||
volume_xml.path(backing_store_path)
|
||||
volume_xml.format(type=backing_store_format)
|
||||
logger.debug(str(volume_xml))
|
||||
return str(volume_xml)
|
||||
|
||||
@classmethod
|
||||
@@ -141,6 +144,7 @@ class LibvirtXMLBuilder(object):
|
||||
with xml_builder.disk(name=disk['disk_target_dev'],
|
||||
snapshot='external'):
|
||||
xml_builder.source(file=disk['disk_volume_path'])
|
||||
logger.debug(str(xml_builder))
|
||||
return str(xml_builder)
|
||||
|
||||
@classmethod
|
||||
@@ -210,6 +214,7 @@ class LibvirtXMLBuilder(object):
|
||||
if rule:
|
||||
with filter_xml.rule(**rule):
|
||||
filter_xml.all()
|
||||
logger.debug(str(filter_xml))
|
||||
return str(filter_xml)
|
||||
|
||||
@classmethod
|
||||
@@ -229,6 +234,7 @@ class LibvirtXMLBuilder(object):
|
||||
if rule:
|
||||
with filter_xml.rule(**rule):
|
||||
filter_xml.all()
|
||||
logger.debug(str(filter_xml))
|
||||
return str(filter_xml)
|
||||
|
||||
@classmethod
|
||||
@@ -326,6 +332,7 @@ class LibvirtXMLBuilder(object):
|
||||
node_xml.target(port='0')
|
||||
with node_xml.console(type='pty'):
|
||||
node_xml.target(type='serial', port='0')
|
||||
logger.debug(str(node_xml))
|
||||
return str(node_xml)
|
||||
|
||||
@classmethod
|
||||
@@ -358,4 +365,5 @@ class LibvirtXMLBuilder(object):
|
||||
if (ip is not None) and (prefix is not None):
|
||||
with interface_xml.protocol(family='ipv4'):
|
||||
interface_xml.ip(address=ip, prefix=prefix)
|
||||
logger.debug(str(interface_xml))
|
||||
return str(interface_xml)
|
||||
|
||||
@@ -194,10 +194,21 @@ class AddressPool(base.ParamedModel, base.BaseModel):
|
||||
return None
|
||||
|
||||
def next_ip(self):
|
||||
"""Get next IP address from the address pool
|
||||
|
||||
If 'dhcp' ip_range specified for the address pool, then the
|
||||
IP addresses will be taken from this pool.
|
||||
Else, IP addresses will be taken from the range
|
||||
[ x.x.x.x + 2 : x.x.x.x - 2 ]
|
||||
"""
|
||||
range_start = netaddr.IPAddress(
|
||||
self.ip_range_start('dhcp') or self.ip_network[2])
|
||||
range_end = netaddr.IPAddress(
|
||||
self.ip_range_end('dhcp') or self.ip_network[-2])
|
||||
for ip in self.ip_network.iter_hosts():
|
||||
# if ip < self.ip_pool_start or ip > self.ip_pool_end:
|
||||
# Skip net, gw and broadcast addresses in the address pool
|
||||
if ip < self.ip_network[2] or ip > self.ip_network[-2]:
|
||||
if ip < range_start or ip > range_end:
|
||||
continue
|
||||
already_exists = Address.objects.filter(
|
||||
interface__l2_network_device__address_pool=self,
|
||||
|
||||
Reference in New Issue
Block a user