cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike C <mcrosson_cloudst...@nusku.net>
Subject Re: libvirt exception
Date Mon, 11 May 2015 16:08:36 GMT
On 2015-05-11 03:02, Wei ZHOU wrote:
> Hi Mike,
> 
> Please apply the following patch to cloudstack, and copy the file
> agent/bindir/libvirtqemuhook.in to repace /etc/libvirt/hooks/qemu on 
> your
> hosts
> 

Wei,

I've applied the patch manually (git apply failed) and the error 
persists. Below you'll find the contents of /etc/libvirt/hooks/qemu 
(I've removed the licensing / header for brevity).

I've even stopped/started the router in case the patched script only 
runs when a VM is first started. I've included the domain.toxml() output 
below as well.

-- Mike

import sys
from xml.dom.minidom import parse
from cloudutils.configFileOps import configFileOps
from cloudutils.networkConfig import networkConfig
def isOldStyleBridge(brName):
     if brName.find("cloudVirBr") == 0:
        return True
     else:
        return False
def isNewStyleBridge(brName):
     if re.match(r"br(\w+)-(\d+)", brName) == None:
        return False
     else:
        return True
def getGuestNetworkDevice():
     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)
         for interface in domain.getElementsByTagName("interface"):
             source = interface.getElementsByTagName("source")[0]
             bridge = source.getAttribute("bridge")
             if isOldStyleBridge(bridge):
                 vlanId = bridge.replace("cloudVirBr","")
             elif isNewStyleBridge(bridge):
                 vlanId = re.sub(r"br(\w+)-","",bridge)
             else:
                 continue
             phyDev = getGuestNetworkDevice()
             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()



2015-05-11 12:04:36,831 DEBUG [kvm.resource.LibvirtComputingResource] 
(agentRequest-Handler-2:null) starting r-93-VM: <domain type='k
vm'>
<name>r-93-VM</name>
<uuid>5269e919-564a-4986-92c1-07464e99e3ce</uuid>
<description>Debian GNU/Linux 7(64-bit)</description>
<clock offset='utc'>
</clock>
<features>
<pae/>
<apic/>
<acpi/>
</features>
<devices>
<emulator>/usr/bin/kvm-spice</emulator>
<interface type='bridge'>
<source bridge='brbond0-1208'/>
<mac address='02:00:6b:5b:00:03'/>
<model type='e1000'/>
<bandwidth>
<inbound average='25600' peak='25600'/>
<outbound average='25600' peak='25600'/>
</bandwidth>
</interface>
<interface type='bridge'>
<source bridge='cloud0'/>
<mac address='0e:00:a9:fe:01:68'/>
<model type='e1000'/>
</interface>
<interface type='bridge'>
<source bridge='cloudbr0'/>
<mac address='06:13:ca:00:00:36'/>
<model type='e1000'/>
<bandwidth>
<inbound average='25600' peak='25600'/>
<outbound average='25600' peak='25600'/>
</bandwidth>
</interface>
<serial type='pty'>
<target port='0'/>
</serial>
<graphics type='vnc' autoport='yes' listen='172.16.16.30' 
passwd='2b74e551cba07566'/>
<disk  device='disk' type='file'>
<driver name='qemu' type='qcow2' cache='none' />
<source 
file='/mnt/d5174632-721e-39ed-b93b-462539f63c77/c1b45654-5e74-420e-bf91-5beb745546f8'/>
<target dev='hda' bus='ide'/>
</disk>
<disk  device='cdrom' type='file'>
<driver name='qemu' type='raw' cache='none' />
<source file='/usr/share/cloudstack-common/vms/systemvm.iso'/>
<target dev='hdc' bus='ide'/>
</disk>
<console type='pty'>
<target port='0'/>
</console>
<input type='tablet' bus='usb'/>
<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/r-93-VM.agent'/>
<target type='virtio' name='r-93-VM.vport'/>
<address type='virtio-serial'/>
</channel>
</devices>
<memory>262144</memory>
<devices>
<memballoon model='none'/>
</devices>
<vcpu>1</vcpu>
<os>
<type  arch='x86_64' machine='pc'>hvm</type>
<boot dev='cdrom'/>
<boot dev='hd'/>
</os>
<cputune>
<shares>500</shares>
</cputune>
<cpu></cpu><on_reboot>restart</on_reboot>
<on_poweroff>destroy</on_poweroff>
<on_crash>destroy</on_crash>
</domain>

Mime
View raw message