def process(self, device, results, log): """collect WBEM information from this device""" log.info('processing %s for device %s', self.name(), device.id) try: bb = results['Linux_BaseBoard'][0] if not bb: return cs = results['Linux_ComputerSystem'][0] if not cs: return os = results['Linux_OperatingSystem'][0] if not os: return maps = [] om = self.objectMap(cs) om.snmpLocation = '' om.snmpOid = '' if bb['_manuf'] not in EnterpriseOIDs.values(): bb['_manuf'] = 'Unknown' om.setHWProductKey = MultiArgs(bb['_model'], bb['_manuf']) osmanuf = os['version'].split()[0] if osmanuf not in EnterpriseOIDs.values(): osmanuf = 'Unknown' om.setOSProductKey = MultiArgs(os['version'], osmanuf) maps.append(om) maps.append(ObjectMap({ "serialNumber": bb['serialNumber'], "tag": bb['tag'], "totalMemory": (os['totalMemory'] * 1024)}, compname="hw")) maps.append(ObjectMap({"totalSwap": (os['totalSwap'] * 1024)}, compname="os")) except: log.warning('processing error') return return maps
def process(self, device, results, log): """collect snmp information from this device""" log.info('processing %s for device %s', self.name(), device.id) getdata, tabledata = results #if getdata['setHWProductKey'] is None: return None om = self.objectMap(getdata) #Attempt to determine the registered manufacturer from snmp oid #If we cant find a registered name, assign it an identifiable default if om.sysObjectID: match = re.match(r'(.\d+){7}', om.sysObjectID) if match: manufacturer = EnterpriseOIDs.get(match.group(0), 'F5 Labs, Inc.') else: manufacturer = None device_model = self._determine_device_model(om) # Build a product build and version string to populate the OSModel field # Also set the manufacturer_name os_model = " ".join([om.sysProductName, om.sysProductVersion, om.sysProductBuild, om.sysProductEdition]) om.setOSProductKey = MultiArgs(os_model, manufacturer) # Now set it. I'm not entirely up to speed on this method, # But in testing the multiargs stuff will populate two fields in the GUI om.setHWProductKey = MultiArgs(device_model, manufacturer) return om
def process(self, device, results, log): """collect WMI information from this device""" log.info('processing %s for device %s', self.name(), device.id) rm = self.relMap() perfnames = {} instances = results.get("Win32_PerfRawData_PerfDisk_PhysicalDisk", None) if instances: for instance in instances: perfnames[instance['name'].split()[0]] = instance['snmpindex'] instances = results.get("Win32_DiskDrive", None) if not instances: return for instance in instances: om = self.objectMap(instance) om.id = self.prepId('PHYSICALDRIVE%s'%om.id) try: if not om._mediatype or not om._mediatype.startswith('Fixed'): continue om.perfindex = perfnames.get(str(instance['id']), None) if not om.perfindex: continue if om._model and not om._manuf: om._manuf = om._model.split()[0] if om._manuf not in EnterpriseOIDs.values(): om._manuf='Unknown' if om._model: om.setProductKey = MultiArgs(om._model, om._manuf) except AttributeError: raise rm.append(om) return rm
def process(self, device, results, log): """collect WMI information from this device""" log.info('processing %s for device %s', self.name(), device.id) instances = results.get("Win32_Product", None) if not instances: return rm = self.relMap() for instance in instances: try: if instance['setInstallDate']: instance['setInstallDate'] = str(instance['setInstallDate']) elif instance['_setInstallDate']: instance['setInstallDate'] = '%s/%s/%s 00:00:00' % ( instance['_setInstallDate'][:4], instance['_setInstallDate'][4:6], instance['_setInstallDate'][6:8]) else: instance['setInstallDate'] = '1968/01/08 00:00:00' om = self.objectMap(instance) om.id = self.prepId(om.setProductKey) if om._vendor: om._vendor = om._vendor.split()[0] if om._vendor not in EnterpriseOIDs.values(): om._vendor = 'Unknown' om.setProductKey = MultiArgs(om.setProductKey, om._vendor) rm.append(om) except AttributeError: continue return rm
def process(self, device, results, log): """collect WBEM information from this device""" log.info('processing %s for device %s', self.name(), device.id) try: cs = results['Linux_BaseBoard'][0] if not cs: return os = results['Linux_OperatingSystem'][0] if not os: return om = self.objectMap() if cs['_manuf'] not in EnterpriseOIDs.values(): cs['_manuf'] = 'Unknown' om.setHWProductKey = MultiArgs(cs['_model'], cs['_manuf']) osmanuf = os['version'].split()[0] if osmanuf not in EnterpriseOIDs.values(): osmanuf = 'Unknown' om.setOSProductKey = MultiArgs(os['version'], osmanuf) except: return return om
def process(self, device, results, log): """collect WBEM information from this device""" log.info("processing %s for device %s", self.name(), device.id) try: cs = results["Linux_BaseBoard"][0] if not cs: return os = results["Linux_OperatingSystem"][0] if not os: return om = self.objectMap() if cs["_manuf"] not in EnterpriseOIDs.values(): cs["_manuf"] = "Unknown" om.setHWProductKey = MultiArgs(cs["_model"], cs["_manuf"]) osmanuf = os["version"].split()[0] if osmanuf not in EnterpriseOIDs.values(): osmanuf = "Unknown" om.setOSProductKey = MultiArgs(os["version"], osmanuf) except: return return om
def process(self, device, results, log): """collect WBEM information from this device""" log.info('processing %s for device %s', self.name(), device.id) try: bb = results['Linux_BaseBoard'][0] if not bb: return cs = results['Linux_ComputerSystem'][0] if not cs: return os = results['Linux_OperatingSystem'][0] if not os: return maps = [] om = self.objectMap(cs) om.snmpLocation = '' om.snmpOid = '' if bb['_manuf'] not in EnterpriseOIDs.values(): bb['_manuf'] = 'Unknown' om.setHWProductKey = MultiArgs(bb['_model'], bb['_manuf']) osmanuf = os['version'].split()[0] if osmanuf not in EnterpriseOIDs.values(): osmanuf = 'Unknown' om.setOSProductKey = MultiArgs(os['version'], osmanuf) maps.append(om) maps.append( ObjectMap( { "serialNumber": bb['serialNumber'], "tag": bb['tag'], "totalMemory": (os['totalMemory'] * 1024) }, compname="hw")) maps.append( ObjectMap({"totalSwap": (os['totalSwap'] * 1024)}, compname="os")) except: log.warning('processing error') return return maps
def process(self, device, results, log): """collect WBEM information from this device""" log.info('processing %s for device %s', self.name(), device.id) rm = self.relMap() instances = results["Linux_Processor"] if not instances: return for instance in instances: om = self.objectMap(instance) try: om.socket = om.id om.id = prepId(om.id) manuf = om._name.split()[0] if manuf not in EnterpriseOIDs.values(): manuf = 'Unknown' om.setProductKey = MultiArgs(om._name, manuf) except AttributeError: continue rm.append(om) return rm
def process(self, device, results, log): getData, tabledata = results om = self.objectMap() if not getData.has_key('setHWSerialNumber') or not getData['setHWSerialNumber']: om.setHWSerialNumber='N/A' else: om.setHWSerialNumber=getData['setHWSerialNumber'] if getData['snmpOid']: match = re.match(r'(.\d+){7}',getData['snmpOid']) if match: manufacturer = EnterpriseOIDs.get(match.group(0), None) else: manufacturer = None if getData.has_key('modelName'): om.setHWProductKey = MultiArgs(getData['modelName'], manufacturer) else: om.setHWProductKey = MultiArgs(getData['snmpOid'], manufacturer) log.debug("HWProductKey=%s", om.setHWProductKey) return om
def process(self, device, results, log): """ Collect SNMP information from this device """ log.info('Processing %s for device %s', self.name(), device.id) getdata, tabledata = results if not getdata: log.warn("Unable to retrieve getdata from %s", device.id) log.warn("Does snmpwalk -v1 -c community %s 1.3.6.1.2.1.1 work?", device.id) return log.debug("%s getdata = %s", device.id, getdata) om = self.objectMap(getdata) # Set the manufacturer according the IANA enterprise OID assignments. if om.snmpOid: match = re.match(r'(.\d+){7}', om.snmpOid) if match: manufacturer = EnterpriseOIDs.get(match.group(0), None) else: manufacturer = None om.setHWProductKey = MultiArgs(om.snmpOid, manufacturer) log.debug("HWProductKey=%s", om.setHWProductKey) if om.snmpDescr: descr = re.sub("\s", " ", om.snmpDescr) for regex in self.osregex: m = regex.search(descr) if m: groups = m.groups() if groups[0] == 'SunOS': om.setOSProductKey = MultiArgs(" ".join(groups[0:3]), 'Sun') else: om.setOSProductKey = " ".join(groups) log.debug("OSProductKey=%s", om.setOSProductKey) break return om
def process(self, device, results, log): """ Collect SNMP information from this device """ log.info('Processing %s for device %s', self.name(), device.id) getdata, tabledata = results if not getdata: log.warn("Unable to retrieve getdata from %s", device.id) log.warn("Does snmpwalk -v1 -c community %s 1.3.6.1.2.1.1 work?", device.id) return log.debug("%s getdata = %s", device.id, getdata) om = self.objectMap(getdata) # Set the manufacturer according the IANA enterprise OID assignments. if om.snmpOid: match = re.match(r'(.\d+){7}', om.snmpOid) if match: manufacturer = EnterpriseOIDs.get(match.group(0), None) else: manufacturer = None om.setHWProductKey = MultiArgs(om.snmpOid, manufacturer) log.debug("HWProductKey=%s", om.setHWProductKey) if om.snmpDescr: descr = re.sub("\s", " ", om.snmpDescr) for regex in self.osregex: m = regex.search(descr) if m: groups = m.groups() if groups[0] == 'SunOS': om.setOSProductKey = MultiArgs(" ".join(groups[0:3]) , 'Sun') else: om.setOSProductKey = " ".join(groups) log.debug("OSProductKey=%s", om.setOSProductKey) break return om