[ovs-dev] [PATCH 1/2] xenserver: Remove support for setting different controllers for datapaths
Justin Pettit
jpettit at nicira.com
Fri Mar 19 06:49:46 UTC 2010
Ben approved of this change out of band. I pushed it.
--Justin
On Mar 13, 2010, at 6:20 AM, Justin Pettit wrote:
> A hack was put in a while back to support setting different controllers for
> different datapaths by defining a "for-bridges" value in the
> "vSwitchController" key. It is no longer necessary to do that with the
> management protocol, since the manager can directly set controllers for
> each datapath.
> ---
> xenserver/etc_xapi.d_plugins_vswitch-cfg-update | 80 -----------------------
> 1 files changed, 0 insertions(+), 80 deletions(-)
>
> diff --git a/xenserver/etc_xapi.d_plugins_vswitch-cfg-update b/xenserver/etc_xapi.d_plugins_vswitch-cfg-update
> index 7f49e33..6e38a80 100755
> --- a/xenserver/etc_xapi.d_plugins_vswitch-cfg-update
> +++ b/xenserver/etc_xapi.d_plugins_vswitch-cfg-update
> @@ -49,23 +49,6 @@ def update(session, args):
> controller = pool["other_config"]["vSwitchController"]
> except KeyError, e:
> controller = ""
> - if controller == "do-not-update":
> - return "XAPI key set to do-not-update"
> - if controller.startswith("for-bridges|"):
> - l = controller.split("|")[1:]
> - for netctrl in l:
> - xapiNet = session.xenapi.network
> - n, t = netctrl.split("=")
> - blist = xapiNet.get_by_name_label(n)
> - if len(blist) == 0:
> - # If there is no bridge for the network, just keep
> - # going so we bring up as much as possible.
> - continue
> - elif len(blist) > 1:
> - raise XenAPIPlugin.Failure("TOO_MANY_MATCHING_NETWORKS", [n,blist])
> - b = xapiNet.get_bridge(blist[0])
> - setBrControllerCfg(b, t)
> - return "Completed setting controllers on specific bridges"
> currentController = vswitchCurrentController()
> if controller == "" and currentController != "":
> delete_cacert()
> @@ -91,69 +74,6 @@ def removeControllerCfg():
> vswitchCfgMod(["--", "del-controller",
> "--", "del-ssl"])
>
> -def setBrControllerCfg(br, target):
> - # Terrible hack... When this is run at boot the required bridges
> - # may not be present. So, we fork a process for each bridge that
> - # needs to be set which sits around in the background and updates
> - # it when it becomes available, finally timing out after a long
> - # interval if it never becomes available.
> - #
> - # The right way to do this is to hook the bridge creation somehow
> - # but I don't believe this is possible in XenServer 5.5 without
> - # either listening to XAPI events or writing it in C code in
> - # brcompatd.
> - import time
> - import syslog
> - import resource
> -
> - p = os.fork()
> - if p != 0:
> - return
> -
> - os.setsid()
> - p = os.fork()
> - if p != 0:
> - sys.exit(0)
> -
> - os.chdir("/")
> - os.umask(0)
> - maxfd = resource.getrlimit(resource.RLIMIT_NOFILE)[1]
> - if maxfd == resource.RLIM_INFINITY:
> - maxfd = 1024
> - for fd in range(0, maxfd):
> - try:
> - os.close(fd)
> - except OSError:
> - pass
> - os.open("/dev/null", os.O_RDWR)
> - os.dup2(0, 1)
> - os.dup2(0, 2)
> -
> - syslog.openlog("vswitch-cfg-update", syslog.LOG_PID)
> - syslog.syslog(syslog.LOG_INFO,
> - "Started background process waiting on bridge %s" % (br,))
> -
> - count = 0
> - error = None
> - sleep_time = 10
> - while count < 60:
> - count += 1
> - try:
> - vswitchCfgMod(["--", "del-controller", br,
> - "--", "set-controller", br, target,
> - "--", "set-fail-mode", br, "secure"])
> - except XenAPIPlugin.Failure, e:
> - error = e
> - syslog.syslog(syslog.LOG_INFO,
> - "Attempt to set br %s controller failed" % (br,))
> - time.sleep(sleep_time)
> - continue
> - syslog.syslog(syslog.LOG_INFO,
> - "Successfully set br %s controller to %s" % (br, repr(target)))
> - return
> - syslog.syslog(syslog.LOG_ERR,
> - "Giving up on setting br %s controller" % (br,))
> -
> def setControllerCfg(controller):
> vswitchCfgMod(["--", "del-controller",
> "--", "del-ssl",
> --
> 1.6.5.5
>
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev_openvswitch.org
More information about the dev
mailing list