fix minor bugs related with dhcp
- get_free_ip_from_range() was calculating wrong the free ip for if first and last ip is given and the range is lower than the CIDR
- Namespace loopback up must be forced.
- is_dhcp_port_free() mysql query fix
Change-Id: I1bbf9ed2c23945accc16c75d4e75da4b62ce745c
Signed-off-by: mirabal <leonardo.mirabal@altran.com>
diff --git a/osm_openvim/vim_db.py b/osm_openvim/vim_db.py
index b034342..5d7fb16 100644
--- a/osm_openvim/vim_db.py
+++ b/osm_openvim/vim_db.py
@@ -37,7 +37,7 @@
import auxiliary_functions as af
import json
import logging
-from netaddr import IPNetwork, IPSet, IPRange, all_matching_cidrs
+from netaddr import IPNetwork, IPAddress
HTTP_Bad_Request = 400
HTTP_Unauthorized = 401
@@ -1538,15 +1538,15 @@
:param ip_used_list: contain all used ips to avoid ip collisions
:return:
"""
-
ip_tools = IPNetwork(cidr)
cidr_len = ip_tools.prefixlen
ips = IPNetwork(first_ip + '/' + str(cidr_len))
- ip_used_list.append(str(ips[0])) # first ip
- ip_used_list.append(str(ips[1])) # gw ip
- ip_used_list.append(str(ips[-1])) # broadcast ip
+
+ ip_used_list.append(str(ips[1])) # gw ip
+ ip_used_list.append(str(ips[-1])) # broadcast ip
+
for vm_ip in ips:
- if str(vm_ip) not in ip_used_list:
+ if str(vm_ip) not in ip_used_list and IPAddress(first_ip) <= IPAddress(vm_ip) <= IPAddress(last_ip):
return vm_ip
return None