This is an automated email from the ASF dual-hosted git repository. dahn pushed a commit to branch 4.11 in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.11 by this push: new 156dbf4 agent: Add logging to libvirt qemu hook (#2554) 156dbf4 is described below commit 156dbf466c1307b66706e1133dad33d97096cc5b Author: Rohit Yadav <ro...@apache.org> AuthorDate: Mon Apr 16 17:20:48 2018 +0530 agent: Add logging to libvirt qemu hook (#2554) This allows logging to the default libvirt qemu hook Signed-off-by: Rohit Yadav <rohit.ya...@shapeblue.com> --- agent/bindir/libvirtqemuhook.in | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/agent/bindir/libvirtqemuhook.in b/agent/bindir/libvirtqemuhook.in index 9fbe037..55ab3e6 100755 --- a/agent/bindir/libvirtqemuhook.in +++ b/agent/bindir/libvirtqemuhook.in @@ -6,25 +6,36 @@ # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at -# +# # http://www.apache.org/licenses/LICENSE-2.0 -# +# # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -import sys + +import logging import re +import sys from xml.dom.minidom import parse from cloudutils.configFileOps import configFileOps from cloudutils.networkConfig import networkConfig + +logging.basicConfig(filename='/var/log/libvirt/qemu-hook.log', + filemode='a', + format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', + datefmt='%H:%M:%S', + level=logging.INFO) +logger = logging.getLogger('qemu-hook') + def isOldStyleBridge(brName): if brName.find("cloudVirBr") == 0: return True else: return False + def isNewStyleBridge(brName): if brName.startswith('brvx-'): return False @@ -32,12 +43,14 @@ def isNewStyleBridge(brName): return False else: return True + def getGuestNetworkDevice(): - netlib = networkConfig() + netlib = networkConfig() cfo = configFileOps("/etc/cloudstack/agent/agent.properties") guestDev = cfo.getEntry("guest.network.device") enslavedDev = netlib.getEnslavedDev(guestDev, 1) return enslavedDev.split(".")[0] + def handleMigrateBegin(): try: domain = parse(sys.stdin) @@ -45,20 +58,26 @@ def handleMigrateBegin(): source = interface.getElementsByTagName("source")[0] bridge = source.getAttribute("bridge") if isOldStyleBridge(bridge): - vlanId = bridge.replace("cloudVirBr","") + vlanId = bridge.replace("cloudVirBr", "") elif isNewStyleBridge(bridge): - vlanId = re.sub(r"br(\w+)-","",bridge) + vlanId = re.sub(r"br(\w+)-", "", bridge) else: continue phyDev = getGuestNetworkDevice() - newBrName="br" + phyDev + "-" + vlanId + newBrName = "br" + phyDev + "-" + vlanId source.setAttribute("bridge", newBrName) print(domain.toxml()) except: pass + + if __name__ == '__main__': if len(sys.argv) != 5: sys.exit(0) - if sys.argv[2] == "migrate" and sys.argv[3] == "begin": - handleMigrateBegin() + # For docs refer https://libvirt.org/hooks.html#qemu + logger.debug("Executing qemu hook with args: %s" % sys.argv) + action, status = sys.argv[2:4] + + if action == "migrate" and status == "begin": + handleMigrateBegin() -- To stop receiving notification emails like this one, please contact d...@apache.org.