diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index a1841b03b4..a7877bd6cf 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -566,18 +566,31 @@ class XendDomain: return xc.atropos_domain_get(dom) def domain_device_create(self, dom, devconfig): + """Create a new device for a domain. + + @param dom: domain id + @param devconfig: device configuration + @return: deferred + """ dom = int(dom) dominfo = self.domain_get(dom) if not dominfo: raise ValueError("invalid domain:" + str(dom)) + self.refresh_schedule() return dominfo.device_create(devconfig) - def domain_device_destroy(self, dom, type, idx): + """Destroy a device. + + @param dom: domain id + @param type: device type + @param idx: device index + """ dom = int(dom) dominfo = self.domain_get(dom) if not dominfo: raise ValueError("invalid domain:" + str(dom)) + self.refresh_schedule() return dominfo.device_destroy(type, idx) def domain_devtype_ls(self, dom, type): diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 629068e090..a9c4f5b492 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -445,6 +445,13 @@ class XendDomainInfo: devices.append(dev) return devices + def config_device(self, type, idx): + devs = self.config_devices(type) + if 0 <= idx < len(devs): + return devs[idx] + else: + return None + def add_device(self, type, dev): """Add a device to a virtual machine. @@ -650,6 +657,39 @@ class XendDomainInfo: print '