xend: Add support for cpuinfo data on Solaris

Signed-off-by: Russell Blaine <russell.blaine@sun.com>
This commit is contained in:
Keir Fraser committed 2009-03-12 10:57:44 +00:00
1 parent 1f7a575203
commit 75c9ba7911
1 file changed
+47
+47
View File
@@ -18,6 +18,7 @@
# Use is subject to license terms.
import os
import commands
_scripts_dir = {
"Linux": "/etc/xen/scripts",
@@ -142,7 +143,53 @@ def _linux_get_cpuinfo():
finally:
f.close()
def _solaris_get_cpuinfo():
cpuinfo = {}
# call kstat to extrace specific cpu_info output
cmd = "/usr/bin/kstat -p -c misc -m cpu_info"
kstatoutput = commands.getoutput (cmd)
# walk each line
for kstatline in kstatoutput.split('\n'):
# split the line on
# module:cpu #:module#:name value
(module, cpunum, combo, namevalue) = kstatline.split (":")
# check to see if this cpunum is already a key. If not,
# initialize an empty hash table
if not cpuinfo.has_key (int(cpunum)):
cpuinfo[int(cpunum)] = {}
# split the namevalue output on whitespace
data = namevalue.split()
# the key will be data[0]
key = data[0]
# check the length of the data list. If it's larger than
# 2, join the rest of the list together with a space.
# Otherwise, value is just data[1]
if len (data) > 2:
value = ' '.join (data[1:])
else:
value = data[1]
# add this key/value pair to the cpuhash
cpuinfo[int(cpunum)][key] = value
# Translate Solaris tokens into what Xend expects
for key in cpuinfo.keys():
cpuinfo[key]["flags"] = ""
cpuinfo[key]["model name"] = cpuinfo[key]["brand"]
cpuinfo[key]["cpu MHz"] = cpuinfo[key]["clock_MHz"]
# return the hash table
return cpuinfo
_get_cpuinfo = {
"SunOS": _solaris_get_cpuinfo
}
def _get(var, default=None):
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.