def getModelAndBiosUuid(self): '''@types: -> HostDo @raise Exception: WMI query failed ''' convertToMicrosoftStandart = GeneralSettingsConfigFile.getInstance().getPropertyStringValue('setBiosUuidToMicrosoftStandart', 'false') hostDo = HostDo() queryBuilder = self._wmiProvider.getBuilder('win32_ComputerSystemProduct') queryBuilder.addWmiObjectProperties('uuid', 'name') computerProductList = self._wmiProvider.getAgent().getWmiData(queryBuilder) for computerProduct in computerProductList: if computerProduct.uuid: if (re.match(r"(0{8}-0{4}-0{4}-0{4}-0{12})", computerProduct.uuid) or re.match(r"([fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})", computerProduct.uuid)): logger.debug('Invalid UUID was received. Skipping.') continue if convertToMicrosoftStandart.lower() == 'false': #returned 00010203-0405-0607-0809-0a0b0c0d0e0f #should be 03020100-0504-0706-0809-0a0b0c0d0e0f byteStyle = re.match(r"(\w{2})(\w{2})(\w{2})(\w{2})\-(\w{2})(\w{2})-(\w{2})(\w{2})(.*)", computerProduct.uuid) if byteStyle: group1 = byteStyle.group(4) + byteStyle.group(3) + byteStyle.group(2) + byteStyle.group(1) group2 = byteStyle.group(6) + byteStyle.group(5) group3 = byteStyle.group(8) + byteStyle.group(7) uuidFormated = group1 + '-' + group2 + '-' + group3 + byteStyle.group(9) hostDo.biosUUID = uuidFormated else: logger.warn('UUID is not in proper format.') else: hostDo.biosUUID = computerProduct.uuid logger.warn('BIOS UUID is reported according to Microsoft definitions since parameter setBiosUuidToMicrosoftStandart is set to True.') hostDo.hostModel = computerProduct.name return hostDo
def getModelAndBiosUuid(self): '''@types: -> HostDo @raise Exception: WMI query failed ''' convertToMicrosoftStandart = GeneralSettingsConfigFile.getInstance( ).getPropertyStringValue('setBiosUuidToMicrosoftStandart', 'false') hostDo = HostDo() queryBuilder = self._wmiProvider.getBuilder( 'win32_ComputerSystemProduct') queryBuilder.addWmiObjectProperties('uuid', 'name') computerProductList = self._wmiProvider.getAgent().getWmiData( queryBuilder) for computerProduct in computerProductList: if computerProduct.uuid: if (re.match(r"(0{8}-0{4}-0{4}-0{4}-0{12})", computerProduct.uuid) or re.match( r"([fF]{8}-[fF]{4}-[fF]{4}-[fF]{4}-[fF]{12})", computerProduct.uuid)): logger.debug('Invalid UUID was received. Skipping.') continue if convertToMicrosoftStandart.lower() == 'false': #returned 00010203-0405-0607-0809-0a0b0c0d0e0f #should be 03020100-0504-0706-0809-0a0b0c0d0e0f byteStyle = re.match( r"(\w{2})(\w{2})(\w{2})(\w{2})\-(\w{2})(\w{2})-(\w{2})(\w{2})(.*)", computerProduct.uuid) if byteStyle: group1 = byteStyle.group(4) + byteStyle.group( 3) + byteStyle.group(2) + byteStyle.group(1) group2 = byteStyle.group(6) + byteStyle.group(5) group3 = byteStyle.group(8) + byteStyle.group(7) uuidFormated = group1 + '-' + group2 + '-' + group3 + byteStyle.group( 9) hostDo.biosUUID = uuidFormated else: logger.warn('UUID is not in proper format.') else: hostDo.biosUUID = computerProduct.uuid logger.warn( 'BIOS UUID is reported according to Microsoft definitions since parameter setBiosUuidToMicrosoftStandart is set to True.' ) hostDo.hostModel = computerProduct.name return hostDo