[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [XEND] Add more API implementations, add sched_id_get to xc.
# HG changeset patch # User Alastair Tse <atse@xxxxxxxxxxxxx> # Node ID df5431b2b519a8e56bfbe0b092a27f8087828099 # Parent 1f790f5fcdbb10af7a620cb2ae38a40217c152d3 [XEND] Add more API implementations, add sched_id_get to xc. Signed-off-by: Alastair Tse <atse@xxxxxxxxxxxxx> --- tools/python/xen/lowlevel/xc/xc.c | 20 ++++++++++++++++++++ tools/python/xen/xend/XendAPI.py | 10 +++++----- tools/python/xen/xend/XendDomainInfo.py | 8 +++++++- tools/python/xen/xend/XendStorageRepository.py | 3 +++ 4 files changed, 35 insertions(+), 6 deletions(-) diff -r 1f790f5fcdbb -r df5431b2b519 tools/python/xen/lowlevel/xc/xc.c --- a/tools/python/xen/lowlevel/xc/xc.c Wed Nov 01 10:12:13 2006 +0000 +++ b/tools/python/xen/lowlevel/xc/xc.c Thu Oct 26 17:59:49 2006 +0100 @@ -647,6 +647,15 @@ static PyObject *pyxc_shadow_mem_control return Py_BuildValue("i", mbarg); } +static PyObject *pyxc_sched_id_get(XcObject *self) { + + int sched_id; + if (xc_sched_id(self->xc_handle, &sched_id) != 0) + return PyErr_SetFromErrno(xc_error); + + return Py_BuildValue("i", sched_id); +} + static PyObject *pyxc_sched_credit_domain_set(XcObject *self, PyObject *args, PyObject *kwds) @@ -975,6 +984,12 @@ static PyMethodDef pyxc_methods[] = { " image [str]: Name of HVM loader image file.\n" " vcpus [int, 1]: Number of Virtual CPUS in domain.\n\n" "Returns: [int] 0 on success; -1 on error.\n" }, + + { "sched_id_get", + (PyCFunction)pyxc_sched_id_get, + METH_NOARGS, "\n" + "Get the current scheduler type in use.\n" + "Returns: [int] sched_id.\n" }, { "sedf_domain_set", (PyCFunction)pyxc_sedf_domain_set, @@ -1242,6 +1257,11 @@ PyMODINIT_FUNC initxc(void) Py_INCREF(xc_error); PyModule_AddObject(m, "Error", xc_error); + + /* Expose some libxc constants to Python */ + PyModule_AddIntConstant(m, "XEN_SCHEDULER_SEDF", XEN_SCHEDULER_SEDF); + PyModule_AddIntConstant(m, "XEN_SCHEDULER_CREDIT", XEN_SCHEDULER_CREDIT); + } diff -r 1f790f5fcdbb -r df5431b2b519 tools/python/xen/xend/XendAPI.py --- a/tools/python/xen/xend/XendAPI.py Wed Nov 01 10:12:13 2006 +0000 +++ b/tools/python/xen/xend/XendAPI.py Thu Oct 26 17:59:49 2006 +0100 @@ -701,23 +701,23 @@ class XendAPI: def vm_get_actions_after_shutdown(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) - return xen_api_success('') + return xen_api_success(dom.get_on_shutdown()) def vm_get_actions_after_reboot(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) - return xen_api_success('') + return xen_api_success(dom.get_on_reboot()) def vm_get_actions_after_suspend(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) - return xen_api_success('') + return xen_api_success(dom.get_on_suspend()) def vm_get_actions_after_crash(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) - return xen_api_success('') + return xen_api_success(dom.get_on_crash()) def vm_get_bios_boot(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) - return xen_api_success('') + return xen_api_success(dom.get_bios_boot()) def vm_get_platform_std_vga(self, session, vm_ref): dom = XendDomain.instance().get_vm_by_uuid(vm_ref) diff -r 1f790f5fcdbb -r df5431b2b519 tools/python/xen/xend/XendDomainInfo.py --- a/tools/python/xen/xend/XendDomainInfo.py Wed Nov 01 10:12:13 2006 +0000 +++ b/tools/python/xen/xend/XendDomainInfo.py Thu Oct 26 17:59:49 2006 +0100 @@ -1655,7 +1655,13 @@ class XendDomainInfo: def get_memory_static_min(self): return self.info['memory'] def get_vcpus_policy(self): - return '' # TODO + sched_id = xc.sched_id_get() + if sched_id == xen.lowlevel.xc.XEN_SCHEDULER_SEDF: + return 'sedf' + elif sched_id == xen.lowlevel.xc.XEN_SCHEDULER_CREDIT: + return 'credit' + else: + return 'unknown' def get_vcpus_params(self): return '' # TODO def get_power_state(self): diff -r 1f790f5fcdbb -r df5431b2b519 tools/python/xen/xend/XendStorageRepository.py --- a/tools/python/xen/xend/XendStorageRepository.py Wed Nov 01 10:12:13 2006 +0000 +++ b/tools/python/xen/xend/XendStorageRepository.py Thu Oct 26 17:59:49 2006 +0100 @@ -100,6 +100,7 @@ class XendStorageRepository: """ self.lock.acquire() try: + # create directory if /var/lib/xend/storage does not exist if not os.path.exists(XEND_STORAGE_DIR): os.makedirs(XEND_STORAGE_DIR) os.chmod(XEND_STORAGE_DIR, 0700) @@ -111,6 +112,8 @@ class XendStorageRepository: if filename[-5:] == XEND_STORAGE_QCOW_FILENAME[-5:]: image_uuid = filename[:-5] seen_images.append(image_uuid) + + # add this image if we haven't seen it before if image_uuid not in self.images: qcow_file = XEND_STORAGE_QCOW_FILENAME % image_uuid cfg_file = XEND_STORAGE_VDICFG_FILENAME % image_uuid _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |