aboutsummaryrefslogtreecommitdiffstats
path: root/tools/python/xen/xend/XendNode.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/python/xen/xend/XendNode.py')
-rw-r--r--tools/python/xen/xend/XendNode.py71
1 files changed, 71 insertions, 0 deletions
diff --git a/tools/python/xen/xend/XendNode.py b/tools/python/xen/xend/XendNode.py
new file mode 100644
index 0000000000..7221785aff
--- /dev/null
+++ b/tools/python/xen/xend/XendNode.py
@@ -0,0 +1,71 @@
+# Copyright (C) 2004 Mike Wray <mike.wray@hp.com>
+
+"""Handler for node operations.
+ Has some persistent state:
+ - logs
+ - notification urls
+
+"""
+
+import os
+import xen.ext.xc
+
+class XendNode:
+
+ def __init__(self):
+ self.xc = xen.ext.xc.new()
+
+ def shutdown(self):
+ return 0
+
+ def reboot(self):
+ return 0
+
+ def notify(self, uri):
+ return 0
+
+ def cpu_bvt_slice_set(self, slice):
+ ret = 0
+ #ret = self.xc.bvtsched_global_set(ctx_allow=slice)
+ return ret
+
+ def cpu_bvt_slice_get(self, slice):
+ ret = 0
+ #ret = self.xc.bvtsched_global_get()
+ return ret
+
+ def cpu_rrobin_slice_set(self, slice):
+ ret = 0
+ #ret = self.xc.rrobin_global_set(slice)
+ return ret
+
+ def info(self):
+ return self.nodeinfo() + self.physinfo()
+
+ def nodeinfo(self):
+ (sys, host, rel, ver, mch) = os.uname()
+ return [['system', sys],
+ ['host', host],
+ ['release', rel],
+ ['version', ver],
+ ['machine', mch]]
+
+ def physinfo(self):
+ pinfo = self.xc.physinfo()
+ info = [['cores', pinfo['cores']],
+ ['hyperthreads_per_core', pinfo['ht_per_core']],
+ ['cpu_mhz', pinfo['cpu_khz']/1000],
+ ['memory', pinfo['total_pages']/256],
+ ['free_memory', pinfo['free_pages']/256]]
+ return info
+
+
+
+def instance():
+ global inst
+ try:
+ inst
+ except:
+ inst = XendNode()
+ return inst
+