Ejemplo 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
Ejemplo 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}
Ejemplo 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)
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 def domain(cls, node):
     return get_field_value(node, 'automatic.domain')
Ejemplo n.º 6
0
 def name(cls, node):
     return get_field_value(node, 'name')
Ejemplo n.º 7
0
 def fqdn(cls, node):
     return get_field_value(node, 'automatic.fqdn')
Ejemplo 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)
Ejemplo n.º 9
0
 def uptime_seconds(cls, node):
     return get_field_value(node, 'automatic.uptime_seconds')
Ejemplo n.º 10
0
 def serial_number(cls, node):
     return get_field_value(node, 'automatic.kernel.os_info.serial_number')
Ejemplo n.º 11
0
 def cpu_count(cls, node):
     return get_field_value(
         node, 'automatic.kernel.cs_info.number_of_processors')
Ejemplo n.º 12
0
 def hostname(cls, node):
     return get_field_value(node, 'automatic.hostname')
Ejemplo n.º 13
0
 def mac_address(cls, node):
     return get_field_value(node, 'automatic.macaddress')
Ejemplo n.º 14
0
 def cpu_count(cls, node):
     return get_field_value(node, 'automatic.hardware.number_processors')
Ejemplo n.º 15
0
 def platform(cls, node):
     return get_field_value(node, 'automatic.platform')
Ejemplo n.º 16
0
 def cpu(cls, node):
     return get_field_value(node, 'automatic.cpu.model_name')
Ejemplo n.º 17
0
 def model(cls, node):
     return get_field_value(node, 'automatic.hardware.machine_model')
Ejemplo n.º 18
0
 def serial_number(cls, node):
     return get_field_value(node, 'automatic.hardware.serial_number')
Ejemplo n.º 19
0
 def cpu_count(cls, node):
     return get_field_value(node, 'automatic.cpu.total')
Ejemplo 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)
Ejemplo n.º 21
0
 def platform_version(cls, node):
     return get_field_value(node, 'automatic.platform_version')
Ejemplo 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)
Ejemplo n.º 23
0
 def ip_address(cls, node):
     return get_field_value(node, 'automatic.ipaddress')
Ejemplo n.º 24
0
 def model(cls, node):
     return get_field_value(node, 'automatic.kernel.cs_info.model')