def test_vmxml_report_updates_cluster(self): on_report(NodeOnlineReport.create(self.node_oid, hostname='testhost')) report = VmXMLReport.create(self.node_oid, raw_data = LIBVIRT_XML) on_report(report) cluster = Cluster.instance() vms = cluster.entities_by_class('VmProcess') self.assertEqual(len(vms), 1) node = cluster.get(self.node_oid) self.assertEqual(len(node.get_vm_procs()), 1) vm_proc = vms[0] self.assertEqual(vm_proc.vm_config.nics[0].target, 'vnet0')
def perform(self, client): from swarm.reports import VmXMLReport from swarm.utils.hyper import get_hypervisor BaseTask.perform(self, client) self.set(status='accepted') self.report(client, self.to_dict()) hyper = get_hypervisor() for libvirt_id in hyper.listDomainsID(): domain = hyper.lookupByID(libvirt_id) report = VmXMLReport.create(client.oid, raw_data=domain.XMLDesc(0)) client.publish_report(report)
def test_parsing(self): report = VmXMLReport.create(self.node_oid, raw_data=LIBVIRT_XML) data = report.parsed_data self.assertEqual('c2127a40-eb4c-4e3c-af5b-ab455fd8bb40', data['uuid']) self.assertEqual(data['name'], 'usbvm') self.assertEqual(data['libvirt_id'], '1') self.assertEqual(data['vcpu'], '4') self.assertEqual(data['memory'], '2048000') self.assertEqual(len(data['features']), 3) self.assertEqual(data['features'][1], 'apic') self.assertEqual(len(data['disks']), 2) self.assertEqual(data['disks'][0], '/home/vgd/storage2/usbvm_d0.qcow2') self.assertEqual(len(data['nics']), 1) nic = data['nics'][0] self.assertEqual(nic['mac'], '52:54:00:fe:49:df') self.assertEqual(nic['bridge'], 'virbr2') self.assertEqual(nic['target'], 'vnet0')
def load_fixtures(node_oid): "Load demo data for development" from swarm.scenarios import on_report from swarm.tests import fixtures from swarm.reports import (NodeOnlineReport, VmXMLReport, IFConfigReport, BrctlShowReport, DFReport) log.debug('Loading test data') storage_oid = str(uuid.uuid4()) on_report(NodeOnlineReport.create(node_oid, hostname='testhost', storages = [dict( storage_oid=storage_oid, path='/home/vgdcloud/storage1')])) on_report(IFConfigReport.create(node_oid, raw_data=fixtures.IFCONFIG_DATA)) on_report(BrctlShowReport.create(node_oid, raw_data=fixtures.BRCTL_SHOW_DATA)) on_report(VmXMLReport.create(node_oid, raw_data=fixtures.LIBVIRT_XML)) on_report(DFReport.create(node_oid, raw_data=fixtures.DF_RAW))