Fix minor bugs in dhcp service during vm deployment 96/1796/2
authormirabal <leonardo.mirabal@altran.com>
Tue, 9 May 2017 09:01:06 +0000 (11:01 +0200)
committermirabal <leonardo.mirabal@altran.com>
Tue, 9 May 2017 10:39:17 +0000 (12:39 +0200)
Change-Id: Iaa0fdc083836242c8b713b09d4875fd05450061a
Signed-off-by: mirabal <leonardo.mirabal@altran.com>
openflow
osm_openvim/host_thread.py
osm_openvim/ovim.py

index 07261df..316ac0f 100755 (executable)
--- a/openflow
+++ b/openflow
@@ -375,10 +375,10 @@ if __name__=="__main__":
                 module = of_controller_module
             else:
                 module = of_controller_type
-            module_info = imp.find_module(module)
-            
-            of_conn = imp.load_module("of_conn", *module_info)
+
             try:
+                pkg = __import__("osm_openvim." + module)
+                of_conn = getattr(pkg, module)
                 ofconnector = of_conn.OF_conn(params)
             except Exception as e: 
                 print "Cannot open the Openflow controller '%s': %s" % (type(e).__name__, str(e))
index 0cf2691..1f8fdb4 100644 (file)
@@ -628,7 +628,7 @@ class host_thread(threading.Thread):
             elif content[0]['provider'][0:3] == "OVS":
                 vlan = content[0]['provider'].replace('OVS:', '')
                 text += self.tab() + "<interface type='bridge'>" + \
-                        self.inc_tab() + "<source bridge='ovim-" + vlan + "'/>"
+                        self.inc_tab() + "<source bridge='ovim-" + str(vlan) + "'/>"
             else:
                 return -1, 'Unknown Bridge net provider ' + content[0]['provider']
             if model!=None:
@@ -751,7 +751,7 @@ class host_thread(threading.Thread):
         if self.test:
             return True
         try:
-            port_name = 'ovim-' + vlan
+            port_name = 'ovim-' + str(vlan)
             command = 'sudo ovs-vsctl del-port br-int ' + port_name
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
@@ -779,7 +779,7 @@ class host_thread(threading.Thread):
         if not self.is_dhcp_port_free(vlan, net_uuid):
             return True
         try:
-            net_namespace = 'ovim-' + vlan
+            net_namespace = 'ovim-' + str(vlan)
             dhcp_path = os.path.join(dhcp_path, net_namespace)
             pid_file = os.path.join(dhcp_path, 'dnsmasq.pid')
 
@@ -852,8 +852,8 @@ class host_thread(threading.Thread):
         if self.test:
             return True
         try:
-            port_name = 'ovim-' + vlan
-            command = 'sudo ovs-vsctl add-port br-int ' + port_name + ' tag=' + vlan
+            port_name = 'ovim-' + str(vlan)
+            command = 'sudo ovs-vsctl add-port br-int ' + port_name + ' tag=' + str(vlan)
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
@@ -909,8 +909,8 @@ class host_thread(threading.Thread):
         if self.test:
             return True
         try:
-            port_name = 'ovim-' + vlan
-            command = 'sudo ip link set dev veth0-' + vlan + ' down'
+            port_name = 'ovim-' + str(vlan)
+            command = 'sudo ip link set dev veth0-' + str(vlan) + ' down'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             # content = stdout.read()
@@ -952,7 +952,7 @@ class host_thread(threading.Thread):
         if self.test:
             return True
         try:
-            port_name = 'ovim-' + vlan
+            port_name = 'ovim-' + str(vlan)
             command = 'sudo brctl show | grep ' + port_name
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
@@ -1010,7 +1010,7 @@ class host_thread(threading.Thread):
         if self.test:
             return True
 
-        net_namespace = 'ovim-' + vlan
+        net_namespace = 'ovim-' + str(vlan)
         dhcp_path = os.path.join(dhcp_path, net_namespace)
         dhcp_hostsdir = os.path.join(dhcp_path, net_namespace)
 
@@ -1054,7 +1054,7 @@ class host_thread(threading.Thread):
         if self.test:
             return False
         try:
-            net_namespace = 'ovim-' + vlan
+            net_namespace = 'ovim-' + str(vlan)
             dhcp_path = os.path.join(dhcp_path, net_namespace)
             dhcp_hostsdir = os.path.join(dhcp_path, net_namespace)
 
@@ -1094,8 +1094,8 @@ class host_thread(threading.Thread):
         if self.test:
             return True
         try:
-            interface = 'tap-' + vlan
-            net_namespace = 'ovim-' + vlan
+            interface = 'tap-' + str(vlan)
+            net_namespace = 'ovim-' + str(vlan)
             dhcp_path = os.path.join(dhcp_path, net_namespace)
             leases_path = os.path.join(dhcp_path, "dnsmasq.leases")
             pid_file = os.path.join(dhcp_path, 'dnsmasq.pid')
@@ -1149,18 +1149,18 @@ class host_thread(threading.Thread):
         if self.test:
             return True
         try:
-            net_namespace = 'ovim-' + vlan
-            command = 'sudo ovs-vsctl del-port br-int ovs-tap-' + vlan
+            net_namespace = 'ovim-' + str(vlan)
+            command = 'sudo ovs-vsctl del-port br-int ovs-tap-' + str(vlan)
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip netns exec ' + net_namespace + ' ip link set dev tap-' + vlan + ' down'
+            command = 'sudo ip netns exec ' + net_namespace + ' ip link set dev tap-' + str(vlan) + ' down'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip link set dev ovs-tap-' + vlan + ' down'
+            command = 'sudo ip link set dev ovs-tap-' + str(vlan) + ' down'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
@@ -1170,11 +1170,11 @@ class host_thread(threading.Thread):
                 self.ssh_connect()
             return False
 
-    def create_dhcp_interfaces(self, vlan, ip, netmask):
+    def create_dhcp_interfaces(self, vlan, ip_listen_address, netmask):
         """
         Create a linux bridge with STP active
         :param vlan: segmentation id
-        :param ip: Ip included in the dhcp range for the tap interface living in namesapce side
+        :param ip_listen_address: Listen Ip address for the dhcp service, the tap interface living in namesapce side
         :param netmask: dhcp net CIDR
         :return: True if success
         """
@@ -1182,41 +1182,41 @@ class host_thread(threading.Thread):
         if self.test:
             return True
         try:
-            net_namespace = 'ovim-' + vlan
-            namespace_interface = 'tap-' + vlan
+            net_namespace = 'ovim-' + str(vlan)
+            namespace_interface = 'tap-' + str(vlan)
 
             command = 'sudo ip netns add ' + net_namespace
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip link add tap-' + vlan + ' type veth peer name ovs-tap-' + vlan
+            command = 'sudo ip link add tap-' + str(vlan) + ' type veth peer name ovs-tap-' + str(vlan)
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ovs-vsctl add-port br-int ovs-tap-' + vlan + ' tag=' + vlan
+            command = 'sudo ovs-vsctl add-port br-int ovs-tap-' + str(vlan) + ' tag=' + str(vlan)
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip link set tap-' + vlan + ' netns ' + net_namespace
+            command = 'sudo ip link set tap-' + str(vlan) + ' netns ' + net_namespace
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip netns exec ' + net_namespace + ' ip link set dev tap-' + vlan + ' up'
+            command = 'sudo ip netns exec ' + net_namespace + ' ip link set dev tap-' + str(vlan) + ' up'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
-            command = 'sudo ip link set dev ovs-tap-' + vlan + ' up'
+            command = 'sudo ip link set dev ovs-tap-' + str(vlan) + ' up'
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
 
             command = 'sudo  ip netns exec ' + net_namespace + ' ' + ' ifconfig  ' + namespace_interface \
-                      + ' ' + ip + ' netmask ' + netmask
+                      + ' ' + ip_listen_address + ' netmask ' + netmask
             self.logger.debug("command: " + command)
             (_, stdout, _) = self.ssh_conn.exec_command(command)
             content = stdout.read()
index fb34552..b0fa78f 100755 (executable)
@@ -142,11 +142,11 @@ class ovim():
 
             ips = IPNetwork(cidr)
             if "dhcp_first_ip" not in network:
-                network["dhcp_first_ip"] = str(ips[2])
+                network["dhcp_first_ip"] = str(ips[3])
             if "dhcp_last_ip" not in network:
                 network["dhcp_last_ip"] = str(ips[-2])
             if "gateway_ip" not in network:
-                network["gateway_ip"] = str(ips[1])
+                network["gateway_ip"] = str(ips[2])
 
             return True
         else:
@@ -1382,7 +1382,7 @@ class ovim():
 
         controller_host = self.get_dhcp_controller()
         controller_host.create_linux_bridge(vlan)
-        controller_host.create_dhcp_interfaces(vlan, first_ip, dhcp_netmask)
+        controller_host.create_dhcp_interfaces(vlan, gateway, dhcp_netmask)
         controller_host.launch_dhcp_server(vlan, ip_range, dhcp_netmask, dhcp_path, gateway)
 
 if __name__ == "__main__":