Reject xm sched-* comands for other than the in-use scheduler.
authorkaf24@localhost.localdomain <kaf24@localhost.localdomain>
Sun, 28 Jan 2007 09:35:00 +0000 (09:35 +0000)
committerkaf24@localhost.localdomain <kaf24@localhost.localdomain>
Sun, 28 Jan 2007 09:35:00 +0000 (09:35 +0000)
Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
tools/python/xen/xm/main.py

index 95990f8f62ad45a7bb6e84a79bdcb83c76b1f417..f363efc2cd89ec5767763cc15ff478743d1fc2e2 100644 (file)
@@ -706,6 +706,15 @@ def parse_doms_info(info):
         'seclabel' : security.get_security_printlabel(info),
         }
 
+def check_sched_type(sched):
+    current = 'unknown'
+    for x in server.xend.node.info()[1:]:
+        if len(x) > 1 and x[0] == 'xen_scheduler':
+            current = x[1]
+            break
+    if sched != current:
+        err("Xen is running with the %s scheduler" % current)
+        sys.exit(1)
 
 def parse_sedf_info(info):
     def get_info(n, t, d):
@@ -1098,6 +1107,8 @@ def xm_sched_sedf(args):
         print( ("%(name)-32s %(domid)3d %(period)9.1f %(slice)9.1f" +
                 " %(latency)7.1f %(extratime)6d %(weight)6d") % info)
 
+    check_sched_type('sedf')
+
     # we want to just display current info if no parameters are passed
     if len(args) == 0:
         domid = None
@@ -1170,6 +1181,8 @@ def xm_sched_sedf(args):
 def xm_sched_credit(args):
     """Get/Set options for Credit Scheduler."""
     
+    check_sched_type('credit')
+
     try:
         opts, params = getopt.getopt(args, "d:w:c:",
             ["domain=", "weight=", "cap="])