[ovs-dev] [PATCH v2] msi: add ovs-vswitchd trigger info

Alin Serdean aserdean at cloudbasesolutions.com
Tue Feb 21 21:50:53 UTC 2017


From: Alin Serdean <aserdean at cloudbasesolutions.com>

This patch changes the service ovs-vswitchd from "auto" execution to
"demand" start.

This patch also introduces a custom action for the ovs-vswitchd service
in which the following command will be executed before the service startup:

sc triggerinfo ovs-vswitchd \
start/strcustom/6066F867-7CA1-4418-85FD-36E3F9C0600C/VmmsWmiEventProvider

The above command is a service trigger available since Windows 7.
More on the topic:
https://msdn.microsoft.com/en-us/library/windows/desktop/dd405513%28v=vs.85%29.aspx

In out case we will wait until Microsoft-Windows-Hyper-V-VMMS has triggered
that the WMI provider: VmmsWmiEventProvider has started.

The change is needed because the network service inside VMMS starts slower than
ovs-vswitchd, which will cause a race condition because we check if the OVS
extension is enabled on a single switch.

Signed-off-by: Alin Gabriel Serdean <aserdean at cloudbasesolutions.com>
---
Intended for branch-2.7, master.
v2: Change title.
---
 windows/ovs-windows-installer/CustomActions.wxs | 6 ++++++
 windows/ovs-windows-installer/Product.wxs       | 4 +++-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/windows/ovs-windows-installer/CustomActions.wxs b/windows/ovs-windows-installer/CustomActions.wxs
index bce9455..422f951 100644
--- a/windows/ovs-windows-installer/CustomActions.wxs
+++ b/windows/ovs-windows-installer/CustomActions.wxs
@@ -63,5 +63,11 @@
     <CustomAction Id="ChangeOvsVSwitchdService"
               BinaryKey="OVSActions"
               JScriptCall="changeServiceAction" Execute="deferred" Return="check" Impersonate="no" />
+    <CustomAction Id="AddTriggerToOvsVswitchdService_Prop" Property="AddTriggerToOvsVswitchdService"
+                  Value='"[System64Folder]sc.exe" triggerinfo ovs-vswitchd "start/strcustom/6066F867-7CA1-4418-85FD-36E3F9C0600C/VmmsWmiEventProvider"|0|failed to add triggerinfo to ovs-vswitchd service'
+                  Execute="immediate" />
+    <CustomAction Id="AddTriggerToOvsVswitchdService"
+              BinaryKey="OVSActions"
+              JScriptCall="runCommandAction" Execute="deferred" Return="check" Impersonate="no" />
   </Fragment>
 </Wix>
diff --git a/windows/ovs-windows-installer/Product.wxs b/windows/ovs-windows-installer/Product.wxs
index 0cdc9a8..23bc880 100644
--- a/windows/ovs-windows-installer/Product.wxs
+++ b/windows/ovs-windows-installer/Product.wxs
@@ -83,6 +83,8 @@
       <Custom Action="InitializeDB_Prop" After="CostFinalize"><![CDATA[REMOVE <> "ALL" AND (&OpenvSwitchDriver = 3)]]></Custom>
       <Custom Action="InitializeDB" After="ChangeOvsdbServerService" ><![CDATA[REMOVE <> "ALL" AND (&OpenvSwitchDriver = 3)]]></Custom>
 
+      <Custom Action="AddTriggerToOvsVswitchdService_Prop" After="CostFinalize"><![CDATA[NOT Installed AND (&OpenvSwitchDriver = 3)]]></Custom>
+      <Custom Action="AddTriggerToOvsVswitchdService" Before="ChangeOvsVSwitchdService"><![CDATA[NOT Installed AND (&OpenvSwitchDriver = 3)]]></Custom>
       <Custom Action="StartOvsVSwitchdService_Prop" After="CostFinalize"><![CDATA[NOT Installed AND (&OpenvSwitchDriver = 3)]]></Custom>
       <Custom Action="RestartOvsVSwitchdService_Prop" After="CostFinalize"><![CDATA[Installed AND REMOVE <> "ALL" AND (&OpenvSwitchDriver = 3)]]></Custom>
       <Custom Action="ChangeOvsVSwitchdService" Before="InstallFinalize"><![CDATA[REMOVE <> "ALL" AND (&OpenvSwitchDriver = 3)]]></Custom>
@@ -207,7 +209,7 @@
                 Name="ovs-vswitchd"
                 DisplayName="Open vSwitch Service"
                 Description="Open vSwitch Service"
-                Start="auto"
+                Start="demand"
                 Account="LocalSystem"
                 ErrorControl="ignore"
                 Interactive="no">
-- 
2.10.2.windows.1


More information about the dev mailing list