import device
import hypervisor
+PROFILE_VERSION = 0
+
SYS_CLASS_DMI = "/sys/class/dmi/id"
class Singleton(type):
self.hypervisor = hypervisor.Hypervisor()
def profile(self):
- p = {
- "public_id" : self.public_id,
- "private_id" : self.private_id,
-
- "arch" : self.arch,
- "language" : self.language,
- "release" : self.release,
- "memory" : self.memory,
- "kernel" : self.kernel,
- "root_size" : self.root_size,
- "devices" : [],
-
+ p = {}
+ p["system"] = {
# System information
"model" : self.model,
"vendor" : self.vendor,
+ # Indicator if the system is running in a
+ # virtual environment.
"virtual" : self.virtual,
- }
+ # System language
+ "language" : self.language,
+
+ # Release information
+ "release" : self.release,
+ "kernel_release" : self.kernel_release,
+
+ "memory" : self.memory,
+ "root_size" : self.root_size,
+ }
+
+ p["devices"] = []
for device in self.devices:
p["devices"].append({
"subsystem" : device.subsystem.lower(),
})
p["cpu"] = {
+ "arch" : self.arch,
"vendor" : self.cpu.vendor,
"model" : self.cpu.model,
"stepping" : self.cpu.stepping,
"vendor" : self.hypervisor.vendor,
}
- return p
+ return {
+ # Profile version
+ "profile_version" : PROFILE_VERSION,
+
+ # Identification and authorization codes
+ "public_id" : self.public_id,
+ "private_id" : self.private_id,
+
+ # Actual profile data
+ "profile" : p,
+ }
@property
return firstline.split()[1]
@property
- def kernel(self):
+ def kernel_release(self):
return os.uname()[2]
@property