def size(self): attribute = "%s_size" % self.category.lower() size = self._attributes.get(attribute) if size: size = string_to_type(size) return size
def run(self, result): attributes = self.getAttributes() if not attributes: return # Default values machine = self.machine processor = { "platform": machine, "count": 1, "type": machine, "model": machine, "model_number": "", "model_version": "", "model_revision": "", "cache": -1, "bogomips": -1, "speed": -1, "other": "" } # Conversion table platform_to_conversion = { ( "i386", "i486", "i586", "i686", "x86_64", ): { "type": "vendor_id", "model": "model name", "model_number": "cpu family", "model_version": "model", "model_revision": "stepping", "cache": "cache size", "other": "flags", "speed": "cpu MHz" }, ( "alpha", "alphaev6", ): { "count": "cpus detected", "type": "cpu", "model": "cpu model", "model_number": "cpu variation", "model_version": ( "system type", "system variation", ), "model_revision": "cpu revision", "other": "platform string", "speed": "cycle frequency [Hz]" }, ("armv7l", "aarch64"): { "type": "Hardware", "model": "Processor", "model_number": "CPU variant", "model_version": "CPU architecture", "model_revision": "CPU revision", "other": "Features", "bogomips": "BogoMIPS" }, ("ia64", ): { "type": "vendor", "model": "family", "model_version": "archrev", "model_revision": "revision", "other": "features", "speed": "cpu mhz" }, ( "ppc64", "ppc64le", "ppc64el", "ppc", ): { "type": "platform", "model": "cpu", "model_number": "model", "model_version": "version", "model_revision": "revision", "other": "firmware", "speed": "clock" }, ( "sparc64", "sparc", ): { "count": "ncpus probed", "type": "type", "model": "cpu", "model_version": "type", "speed": "bogomips" } } for key in processor: if attributes.get(key): processor[key] = attributes.get(key) for platform, conversion in platform_to_conversion.items(): if machine in platform: for pkey, ckey in conversion.items(): if isinstance(ckey, (list, tuple)): processor[pkey] = "/".join( [attributes[k] for k in ckey]) elif ckey in attributes: processor[pkey] = attributes[ckey] # Adjust platform if machine[0] == "i" and machine[-2:] == "86": processor["platform"] = "i386" elif machine[:5] == "alpha": processor["platform"] = "alpha" # Adjust cache if processor["cache"]: try: processor["cache"] = string_to_type(processor["cache"]) except TypeError: processor["cache"] = int(round(float(processor["cache"]))) # Adjust speed try: if machine[:5] == "alpha": speed = processor["speed"].split()[0] processor["speed"] = int(round(float(speed))) / 1000000 elif machine[:5] == "sparc": speed = processor["speed"] processor["speed"] = int(round(float(speed))) / 2 elif machine[:3] == "ppc": # String is appended with "mhz" processor["speed"] = processor["speed"][:-3] except ValueError: processor["speed"] = -1 # Make sure speed and bogomips are integers processor["speed"] = int(round(float(processor["speed"])) - 1) processor["bogomips"] = int(round(float(processor["bogomips"]))) # Adjust other for ppc. Firmware is empty for VM. if machine[:3] == "ppc" and processor["model_number"][13:-1] == \ "emulated by qemu": processor["other"] = processor["model_number"][13:-1] # Adjust count try: processor["count"] = int(processor["count"]) except ValueError: processor["count"] = 1 else: # There is at least one processor if processor["count"] == 0: processor["count"] = 1 result.setProcessor(processor)
def run(self, result): attributes = self.getAttributes() if not attributes: return # Default values machine = self.machine processor = { "platform": machine, "count": 1, "type": machine, "model": machine, "model_number": "", "model_version": "", "model_revision": "", "cache": 0, "bogomips": 0, "speed": -1, "other": ""} # Conversion table platform_to_conversion = { ("i386", "i486", "i586", "i686", "x86_64",): { "type": "vendor_id", "model": "model name", "model_number": "cpu family", "model_version": "model", "model_revision": "stepping", "cache": "cache size", "other": "flags", "speed": "cpu MHz"}, ("alpha", "alphaev6",): { "count": "cpus detected", "type": "cpu", "model": "cpu model", "model_number": "cpu variation", "model_version": ("system type", "system variation",), "model_revision": "cpu revision", "other": "platform string", "speed": "cycle frequency [Hz]"}, ("armv7l",): { "type": "Hardware", "model": "Processor", "model_number": "CPU variant", "model_version": "CPU architecture", "model_revision": "CPU revision", "other": "Features", "bogomips": "BogoMIPS"}, ("ia64",): { "type": "vendor", "model": "family", "model_version": "archrev", "model_revision": "revision", "other": "features", "speed": "cpu mhz"}, ("ppc64", "ppc",): { "type": "platform", "model": "cpu", "model_version": "revision", "speed": "clock"}, ("sparc64", "sparc",): { "count": "ncpus probed", "type": "type", "model": "cpu", "model_version": "type", "speed": "bogomips"}} for key in processor: if attributes.get(key): processor[key] = attributes.get(key) for platform, conversion in platform_to_conversion.items(): if machine in platform: for pkey, ckey in conversion.items(): if isinstance(ckey, (list, tuple)): processor[pkey] = "/".join([attributes[k] for k in ckey]) elif ckey in attributes: processor[pkey] = attributes[ckey] # Adjust platform if machine[0] == "i" and machine[-2:] == "86": processor["platform"] = "i386" elif machine[:5] == "alpha": processor["platform"] = "alpha" # Adjust cache if processor["cache"]: processor["cache"] = string_to_type(processor["cache"]) # Adjust speed try: if machine[:5] == "alpha": speed = processor["speed"].split()[0] processor["speed"] = int(round(float(speed))) / 1000000 elif machine[:5] == "sparc": speed = processor["speed"] processor["speed"] = int(round(float(speed))) / 2 elif machine[:3] == "ppc": # String is appended with "mhz" speed = processor["speed"][:-3] except ValueError: processor["speed"] = -1 # Make sure speed and bogomips are integers processor["speed"] = int(round(float(processor["speed"])) - 1) processor["bogomips"] = int(round(float(processor["bogomips"]))) # Adjust count try: processor["count"] = int(processor["count"]) except ValueError: processor["count"] = 1 else: # There is at least one processor if processor["count"] == 0: processor["count"] = 1 result.setProcessor(processor)