Esempio n. 1
0
 def total_hdd_mb(cls, node):
     drives = get_field_value(node, 'automatic.filesystem')
     if drives and isinstance(drives, dict):
         root_drive = list(drives.values())[0]
         drive_kb = root_drive.get('kb_size')
         return AuditUtil.kb_to_mb(drive_kb)
     return None
Esempio n. 2
0
    def create(cls, node):
        hardware = {
            'name': cls.name(node),
            'ip_address': cls.ip_address(node),
            'mac_address': cls.mac_address(node),
            'hostname': cls.hostname(node),
            'fqdn': cls.fqdn(node),
            'domain': cls.domain(node),
            'platform': cls.platform(node),
            'platform_version': cls.platform_version(node),
            'serial_number': cls.serial_number(node),
            'model': cls.model(node),
            'total_memory_mb': cls.total_memory_mb(node),
            'total_hdd_mb': cls.total_hdd_mb(node),
            'cpu': cls.cpu(node),
            'cpu_count': cls.cpu_count(node),
            'uptime_seconds': cls.uptime_seconds(node),
        }

        # process configured attribute extensions
        try:
            for platform in cls.AttributeExtension:
                if platform in ['__default__', node['automatic']['platform']]:
                    extensions = cls.AttributeExtension[platform]
                    for extension in extensions:
                        hardware[extension] = get_field_value(
                            node, cls.AttributeExtension[platform][extension])
        except:
            logger.exception(
                'error: exception processing attribute extensions - %r' %
                cls.AttributeExtension)

        return {'hardware': hardware}
Esempio n. 3
0
 def create(node):
     platform = get_field_value(node, 'automatic.platform')
     if platform == 'mac_os_x':
         return MacAudit.create(node)
     if platform == 'windows':
         return WindowsAudit.create(node)
     return BaseAudit.create(node)
 def get_field_value(self, field, data, default=None):
     """
     Will return the field value out of data.
     Field can contain '.', which will be followed.
     :param field: the field name, can contain '.'
     :param data: the data as a dict, can contain sub-dicts
     :param default: the default value to return if field can't be found
     :return: the field value, or default.
     """
     return get_field_value(data, field, default)
Esempio n. 5
0
 def domain(cls, node):
     return get_field_value(node, 'automatic.domain')
Esempio n. 6
0
 def name(cls, node):
     return get_field_value(node, 'name')
Esempio n. 7
0
 def fqdn(cls, node):
     return get_field_value(node, 'automatic.fqdn')
Esempio n. 8
0
 def total_hdd_mb(cls, node):
     total_kb = get_field_value(
         node, 'automatic.filesystem.by_mountpoint./.kb_size')
     return AuditUtil.kb_to_mb(total_kb)
Esempio n. 9
0
 def uptime_seconds(cls, node):
     return get_field_value(node, 'automatic.uptime_seconds')
Esempio n. 10
0
 def serial_number(cls, node):
     return get_field_value(node, 'automatic.kernel.os_info.serial_number')
Esempio n. 11
0
 def cpu_count(cls, node):
     return get_field_value(
         node, 'automatic.kernel.cs_info.number_of_processors')
Esempio n. 12
0
 def hostname(cls, node):
     return get_field_value(node, 'automatic.hostname')
Esempio n. 13
0
 def mac_address(cls, node):
     return get_field_value(node, 'automatic.macaddress')
Esempio n. 14
0
 def cpu_count(cls, node):
     return get_field_value(node, 'automatic.hardware.number_processors')
Esempio n. 15
0
 def platform(cls, node):
     return get_field_value(node, 'automatic.platform')
Esempio n. 16
0
 def cpu(cls, node):
     return get_field_value(node, 'automatic.cpu.model_name')
Esempio n. 17
0
 def model(cls, node):
     return get_field_value(node, 'automatic.hardware.machine_model')
Esempio n. 18
0
 def serial_number(cls, node):
     return get_field_value(node, 'automatic.hardware.serial_number')
Esempio n. 19
0
 def cpu_count(cls, node):
     return get_field_value(node, 'automatic.cpu.total')
Esempio n. 20
0
 def total_memory_mb(cls, node):
     total_kb = get_field_value(node, 'automatic.memory.total')
     return AuditUtil.kb_to_mb(total_kb)
Esempio n. 21
0
 def platform_version(cls, node):
     return get_field_value(node, 'automatic.platform_version')
Esempio n. 22
0
 def total_memory_mb(cls, node):
     total_mb = get_field_value(node, 'automatic.memory.total')
     return AuditUtil.regex_match_digits(total_mb)
Esempio n. 23
0
 def ip_address(cls, node):
     return get_field_value(node, 'automatic.ipaddress')
Esempio n. 24
0
 def model(cls, node):
     return get_field_value(node, 'automatic.kernel.cs_info.model')