X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=xenserver%2Fusr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py;h=99dd15d8da52bdd5d7ca958c0443b305ee0b108c;hb=7b09e42666aa1d345d44c112ff7f74ac8f030297;hp=45231395df1e0cf5b9368789da663de35f6f1cc7;hpb=e3fdfed11b8c56aa6a8deffe11a552fed7e7adbc;p=openvswitch diff --git a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py index 45231395..99dd15d8 100644 --- a/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py +++ b/xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py @@ -7,16 +7,13 @@ # Copyright (c) 2009 Nicira Networks. -import logging -log = logging.getLogger("vswitch-cfg-update") -logging.basicConfig(filename="/var/log/vswitch-xsplugin.log", level=logging.DEBUG) +from XSConsoleLog import * import os import socket import subprocess -cfg_mod="/root/vswitch/bin/ovs-cfg-mod" -vswitchd_cfg_filename="/etc/ovs-vswitchd.conf" +vsctl="/usr/bin/ovs-vsctl" if __name__ == "__main__": raise Exception("This script is a plugin for xsconsole and cannot run independently") @@ -32,20 +29,31 @@ class VSwitchService: if self.processname == None: self.processname = name + def version(self): + try: + output = ShellPipe(["service", self.name, "version"]).Stdout() + except StandardError, e: + XSLogError("vswitch version retrieval error: " + str(e)) + return "" + for line in output: + if self.processname in line: + return line.split()[-1] + return "" + def status(self): try: output = ShellPipe(["service", self.name, "status"]).Stdout() except StandardError, e: - log.error("status retrieval error: " + str(e)) + XSLogError("vswitch status retrieval error: " + str(e)) return "" if len(output) == 0: return "" - for l in output: - if self.processname not in l: + for line in output: + if self.processname not in line: continue - elif "running" in l: + elif "running" in line: return "Running" - elif "stop" in l: + elif "stop" in line: return "Stopped" else: return "" @@ -55,7 +63,7 @@ class VSwitchService: try: ShellPipe(["service", self.name, "restart"]).Call() except StandardError, e: - log.error("restart error: " + str(e)) + XSLogError("vswitch restart error: " + str(e)) @classmethod def Inst(cls, name, processname=None): @@ -69,12 +77,11 @@ class VSwitchService: class VSwitchConfig: @staticmethod - def Get(key): + def Get(action): try: - output = ShellPipe([cfg_mod, "-vANY:console:emer", "-F", - vswitchd_cfg_filename, "-q", key]).Stdout() + output = ShellPipe([vsctl, "-vANY:console:emer", action]).Stdout() except StandardError, e: - log.error("config retrieval error: " + str(e)) + XSLogError("config retrieval error: " + str(e)) return "" if len(output) == 0: @@ -262,8 +269,8 @@ class XSFeatureVSwitch: inPane.NewLine() - versionStr = data.host.other_config({}).get("vSwitchVersion", "") - inPane.AddStatusField(Lang("Version", 20), versionStr) + inPane.AddStatusField(Lang("Version", 20), + VSwitchService.Inst("vswitch", "ovs-vswitchd").version()) inPane.NewLine() @@ -276,7 +283,7 @@ class XSFeatureVSwitch: if dbController == "": dbController = Lang("") inPane.AddStatusField(Lang("Controller (config)", 20), dbController) - controller = VSwitchConfig.Get("mgmt.controller") + controller = VSwitchConfig.Get("get-controller") if controller == "": controller = Lang("") elif controller[0:4] == "ssl:":