diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index 94fadcf84d..b434cb1186 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -560,13 +560,23 @@ class XendDomain: except Exception, ex: raise XendError(str(ex)) - def domain_sched_credit_set(self, domid, weight, cap): + def domain_sched_credit_set(self, domid, weight = None, cap = None): """Set credit scheduler parameters for a domain. """ dominfo = self.domain_lookup_by_name_or_id_nr(domid) if not dominfo: raise XendInvalidDomain(str(domid)) try: + if weight is None: + weight = int(0) + elif weight < 1 or weight > 65535: + raise XendError("weight is out of range") + + if cap is None: + cap = int(~0) + elif cap < 0 or cap > dominfo.getVCpuCount() * 100: + raise XendError("cap is out of range") + return xc.sched_credit_domain_set(dominfo.getDomid(), weight, cap) except Exception, ex: raise XendError(str(ex)) diff --git a/tools/python/xen/xm/main.py b/tools/python/xen/xm/main.py index aafdf2de34..0beb00e6e2 100644 --- a/tools/python/xen/xm/main.py +++ b/tools/python/xen/xm/main.py @@ -822,11 +822,6 @@ def xm_sched_credit(args): if weight is None and cap is None: print server.xend.domain.sched_credit_get(domain) else: - if weight is None: - weight = int(0) - if cap is None: - cap = int(~0) - err = server.xend.domain.sched_credit_set(domain, weight, cap) if err != 0: print err