X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=xenserver%2Fetc_xapi.d_plugins_openvswitch-cfg-update;h=04d0774be2aaab00d954ea54a85b284c32c07dc5;hb=6fce4487240b12104f3984e0bc36f9183e2fcccb;hp=42bd09a195772a06c3c524d46067397b0d5e961d;hpb=8085488086c48577deaf26fcc11d1be02a6ee140;p=openvswitch diff --git a/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update b/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update index 42bd09a1..04d0774b 100755 --- a/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update +++ b/xenserver/etc_xapi.d_plugins_openvswitch-cfg-update @@ -58,10 +58,18 @@ def update(session, args): currentController = vswitchCurrentController() if controller == "" and currentController != "": delete_cacert() + try: + emergency_reset(session, None) + except: + pass removeControllerCfg() return "Successfully removed controller config" elif controller != currentController: delete_cacert() + try: + emergency_reset(session, None) + except: + pass setControllerCfg(controller) return "Successfully set controller to " + controller else: @@ -110,10 +118,13 @@ def vswitchCfgMod(action_args): [ str(exitcode) , str(action_args) ]) def emergency_reset(session, args): - # This function is just a place holder for testing until the real - # functionality is implemented. - syslog.syslog("openvswitch-cfg-update: emergency_reset called") - return "Need to implement emergency_reset" + cmd = [vsctl, "emer-reset"] + exitcode = subprocess.call(cmd) + if exitcode != 0: + raise XenAPIPlugin.Failure("VSWITCH_EMER_RESET_FAILURE", + [ str(exitcode) ]) + + return "Successfully reset configuration" if __name__ == "__main__": XenAPIPlugin.dispatch({"update": update,