diff --git a/vim_thread.py b/vim_thread.py
index eb740b4..676ba20 100644
--- a/vim_thread.py
+++ b/vim_thread.py
@@ -34,7 +34,7 @@
 import logging
 import vimconn
 from db_base import db_base_Exception
-from openvim.ovim import ovimException
+#from openvim.ovim import ovimException
 
 
 # from logging import Logger
@@ -159,7 +159,8 @@
             net_type = params[1]
 
             network = None
-            sdn_controller = self.vim.config.get('sdn-controller')
+            #sdn_controller = self.vim.config.get('sdn-controller')
+            sdn_controller = None
             if sdn_controller and (net_type == "data" or net_type == "ptp"):
                 network = {"name": net_name, "type": net_type}
 
@@ -189,9 +190,9 @@
             except db_base_Exception as e:
                 self.logger.error("Error updating database %s", str(e))
             return False, str(e)
-        except ovimException as e:
-            self.logger.error("Error creating NET in ovim, task=%s: %s", str(task_id), str(e))
-            return False, str(e)
+        # except ovimException as e:
+        #     self.logger.error("Error creating NET in ovim, task=%s: %s", str(task_id), str(e))
+        #     return False, str(e)
 
     def new_vm(self, task):
         try:
@@ -252,7 +253,8 @@
 
     def del_net(self, task):
         net_id = task["params"][0]
-        sdn_net_id = task["params"][1]
+        #sdn_net_id = task["params"][1]
+        sdn_net_id = None
         if is_task_id(net_id):
             try:
                 task_create = task["depends"][net_id]
@@ -272,8 +274,7 @@
             return True, result
         except vimconn.vimconnException as e:
             return False, str(e)
-        except ovimException as e:
-            logging.error("Error deleting network from ovim. net_id: {}, sdn_net_id: {}".format(net_id, sdn_net_id))
-            return False, str(e)
-
+        # except ovimException as e:
+        #     logging.error("Error deleting network from ovim. net_id: {}, sdn_net_id: {}".format(net_id, sdn_net_id))
+        #     return False, str(e)
 
