--- /usr/libexec/vdsm/hooks/before_device_create/ovirt_provider_ovn_hook.orig 2016-12-29 23:12:00.040538156 +0100
+++ /usr/libexec/vdsm/hooks/before_device_create/ovirt_provider_ovn_hook 2016-12-30 00:42:11.435474643 +0100
@@ -20,7 +20,8 @@
import os
import hooking
-
+import sys
+import xml
#BRIDGE_NAME = 'br-int'
BRIDGE_NAME = 'ovirtbridge'
@@ -36,17 +37,27 @@
iface = domxml.getElementsByTagName('interface')[0]
except IndexError:
return # skip if not an interface
- source = iface.getElementsByTagName('source')[0]
-
- virtualport = domxml.createElement('virtualport')
- virtualport.setAttribute('type', 'openvswitch')
- iface.appendChild(virtualport)
+
+ #source = iface.getElementsByTagName('source')[0]
- parameters = domxml.createElement('parameters')
+ try:
+ virtualport = iface.getElementsByTagName('virtualport')[0]
+ except IndexError:
+ virtualport = domxml.createElement('virtualport')
+ virtualport.setAttribute('type', 'openvswitch')
+ iface.appendChild(virtualport)
+
+ parameters_interfaceid = None
+ for parameters in virtualport.getElementsByTagName('parameters'):
+ if parameters.getAttribute('interfaceid') != None:
+ parameters_interfaceid = parameters
+
+ if parameters_interfaceid == None:
+ parameters = domxml.createElement('parameters')
+ virtualport.appendChild(parameters)
parameters.setAttribute('interfaceid', ifc_name)
- virtualport.appendChild(parameters)
- source.setAttribute('bridge', BRIDGE_NAME)
+ #source.setAttribute('bridge', BRIDGE_NAME)
def get_lsp_name():
@@ -66,5 +77,81 @@
ovs_device(domxml)
hooking.write_domxml(domxml)
+def test(domxml):
+ os.environ[VNIC_ID_KEY] = '4981ee5f-6e15-4bd5-a1cf-7ead9bdd5873'
+ print("Domain xml before ovs_device: %s" %
+ domxml.toprettyxml(encoding='UTF-8'))
+
+ ovs_device(domxml)
+
+ print("Domain xml after ovs_device: %s" %
+ domxml.toprettyxml(encoding='UTF-8'))
+
+def test1():
+ domxml = xml.dom.minidom.parseString("""
+
+
+
+
+
+
+
+
+
+
+
+
+
+ """.replace("\n","").replace(" ",""))
+ print("test1")
+ test(domxml)
+
+def test2():
+ domxml = xml.dom.minidom.parseString("""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ """.replace("\n","").replace(" ",""))
+ print("test2")
+ test(domxml)
+
+def test3():
+ domxml = xml.dom.minidom.parseString("""
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ """.replace("\n","").replace(" ",""))
+ print("test3")
+ test(domxml)
+
if __name__ == '__main__':
- main()
+ if '--test' in sys.argv:
+ test1()
+ test2()
+ test3()
+ else:
+ main()