#
# Sched-credit tests modified from SEDF tests
#
+
+import re
+
from XmTestLib import *
+paramsRE = re.compile(r'^[^ ]* *[^ ]* *([^ ]*) *([^ ]*)$')
+
def get_sched_credit_params(domain):
- status, output = traceCommand("xm sched-credit -d %s" %(domain.getName()))
- params = output.strip('{}').split(', ')
- cap = int(params[0].split(':')[1].strip(' '))
- weight = int(params[1].split(':')[1].strip(' '))
- return (status, (weight, cap))
+ status, output = traceCommand("xm sched-credit -d %s | tail -1" %
+ domain.getName())
+
+ if status != 0:
+ FAIL("Getting sched-credit parameters return non-zero rv (%d)",
+ status)
+
+ m = paramsRE.match(output)
+ if not m:
+ FAIL("xm sched-credit gave bad output")
+ weight = int(m.group(1))
+ cap = int(m.group(2))
+ return (weight, cap)
def set_sched_credit_weight(domain, weight):
status, output = traceCommand("xm sched-credit -d %s -w %d" %(domain.getName(), weight))
FAIL(str(e))
# check default param values
-(status, params) = get_sched_credit_params(domain)
-if status != 0:
- FAIL("Getting sched-credit parameters return non-zero rv (%d)", status)
+(weight, cap) = get_sched_credit_params(domain)
-(weight, cap) = params
if weight != 256:
FAIL("default weight is 256 (got %d)", weight)
if cap != 0:
FAIL("Setting sched-credit cap return non-zero rv (%d)", status)
# check new param values
-(status, params) = get_sched_credit_params(domain)
-if status != 0:
- FAIL("Getting sched-credit parameters return non-zero rv (%d)", status)
+(weight, cap) = get_sched_credit_params(domain)
-(weight, cap) = params
if weight != 512:
FAIL("expected weight of 512 (got %d)", weight)
if cap != 100: