Change in vdsm[master]: v2v: refactor get_external_vms
shavivi at redhat.com
shavivi at redhat.com
Thu Dec 3 10:46:25 UTC 2015
Shahar Havivi has uploaded a new change for review.
Change subject: v2v: refactor get_external_vms
......................................................................
v2v: refactor get_external_vms
break to smaller methods
Change-Id: If5c331b3136b61b0ee81829d7e71eedbbc1fa6b9
Signed-off-by: Shahar Havivi <shaharh at redhat.com>
---
M tests/v2vTests.py
M vdsm/v2v.py
2 files changed, 48 insertions(+), 25 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/vdsm refs/changes/36/49636/1
diff --git a/tests/v2vTests.py b/tests/v2vTests.py
index 884abec..e37c7e2 100644
--- a/tests/v2vTests.py
+++ b/tests/v2vTests.py
@@ -59,8 +59,14 @@
def name(self):
return self._name
+ def id(self):
+ return self._vmid
+
def state(self, flags=0):
return [5, 0]
+
+ def isActive(self):
+ return False
def XMLDesc(self, flags=0):
return """
@@ -109,7 +115,7 @@
pass
def listAllDomains(self):
- return self._vms
+ return [vm for vm in self._vms]
def storageVolLookupByPath(self, name):
return LibvirtMock.Volume()
diff --git a/vdsm/v2v.py b/vdsm/v2v.py
index ab657d0..fe20510 100644
--- a/vdsm/v2v.py
+++ b/vdsm/v2v.py
@@ -150,27 +150,11 @@
with closing(conn):
vms = []
- for vm in conn.listAllDomains():
- params = {}
- _add_vm_info(vm, params)
- try:
- xml = vm.XMLDesc(0)
- except libvirt.libvirtError as e:
- logging.error("error getting domain xml for vm %r: %s",
- vm.name(), e)
- continue
- root = ET.fromstring(xml)
- try:
- _add_general_info(root, params)
- except InvalidVMConfiguration as e:
- logging.error('error parsing domain xml, msg: %s xml: %s',
- e.message, vm.XMLDesc(0))
- continue
- _add_networks(root, params)
- _add_disks(root, params)
- for disk in params['disks']:
- _add_disk_info(conn, disk)
- vms.append(params)
+ # TODO: use new API: listAllDomain() when supported in Xen
+ # under RHEL 5.x
+ for vm in _list_domains(conn):
+ _add_vm(conn, vms, vm)
+
return {'status': doneCode, 'vmList': vms}
@@ -653,12 +637,45 @@
" %r" % unit)
+def _list_domains(conn):
+ for vm in conn.listAllDomains():
+ yield vm
+
+
+def _add_vm(conn, vms, vm):
+ params = {}
+ try:
+ _add_vm_info(vm, params)
+ try:
+ xml = vm.XMLDesc(0)
+ except libvirt.libvirtError as e:
+ logging.error("error getting domain xml for vm %r: %s",
+ vm.name(), e)
+ else:
+ root = ET.fromstring(xml)
+ try:
+ _add_general_info(root, params)
+ except InvalidVMConfiguration as e:
+ logging.error('error parsing domain xml, msg: %s xml: %s',
+ e.message, vm.XMLDesc(0))
+ else:
+ _add_networks(root, params)
+ _add_disks(root, params)
+ for disk in params['disks']:
+ _add_disk_info(conn, disk)
+ vms.append(params)
+ except libvirt.libvirtError as e:
+ logging.error('error parsing domain: %s', e)
+
+
def _add_vm_info(vm, params):
params['vmName'] = vm.name()
- if vm.state()[0] == libvirt.VIR_DOMAIN_SHUTOFF:
- params['status'] = "Down"
- else:
+ # TODO: use new API: vm.state()[0] == libvirt.VIR_DOMAIN_SHUTOFF
+ # when supported in Xen under RHEL 5.x
+ if vm.isActive():
params['status'] = "Up"
+ else:
+ params['status'] = "Down"
def _add_general_info(root, params):
--
To view, visit https://gerrit.ovirt.org/49636
To unsubscribe, visit https://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If5c331b3136b61b0ee81829d7e71eedbbc1fa6b9
Gerrit-PatchSet: 1
Gerrit-Project: vdsm
Gerrit-Branch: master
Gerrit-Owner: Shahar Havivi <shavivi at redhat.com>
More information about the vdsm-patches
mailing list