def getDisks(self): """ Enumerate all the disks present on the system, updating the cmdb object accordingly Create a disk instance for each disk on the system, populate the attributes and add it to the cmdb's hardDisks collection @return: cmdb.hardDisks """ disks = j.cloud.cmdtools.inventoryScan.getDisks() currentAvailableDisks = list() for name, value in disks.iteritems(): size = int(float(value['size']) * 1024) if value['unit'] == 'GB' else int( float(value['size'])) partitions = value['partitions'] currentAvailableDisks.append(name) if name in self.cmdb.disks.keys(): self.cmdb.disks[name].name = name self.cmdb.disks[name].size = size else: disk = Disk() disk.name = name disk.size = size self.cmdb.disks[name] = disk if partitions: disk = self.cmdb.disks[name] disk.partitions = list() for part in partitions: partition = Partition( part['Type'], part['number'], part['start'], part['end'], int(float(part['size'][0:-3])), part['mountpoint'] if 'mountpoint' in part else '', part['used'] if 'used' in part else 0.0, part['name'] if 'name' in part else '', part['flag'] if 'flag' in part else '') if 'devices' in part: partition.raid = PartitionRaid( part['level'], part['state'], part['devices'], part['activeDevices'], part['failedDevices'], part['totalDevices'], part['raidDevices'], part['spareDevices'], part['backendsize']) disk.partitions.append(partition) for disk in self.cmdb.disks.keys(): if disk not in currentAvailableDisks: del self.cmdb.disks[disk] self.cmdb.dirtyProperties.add('disks') return disks
def getDisks(self): """ Enumerate all the disks present on the system, updating the cmdb object accordingly Create a disk instance for each disk on the system, populate the attributes and add it to the cmdb's hardDisks collection @return: cmdb.hardDisks """ disks = j.cloud.cmdtools.inventoryScan.getDisks() currentAvailableDisks = list() for name, value in disks.iteritems(): size = int(float(value['size']) * 1024) if value['unit'] == 'GB' else int(float(value['size'])) partitions = value['partitions'] currentAvailableDisks.append(name) if name in self.cmdb.disks.keys(): self.cmdb.disks[name].name = name self.cmdb.disks[name].size = size else: disk = Disk() disk.name = name disk.size = size self.cmdb.disks[name] = disk if partitions: disk = self.cmdb.disks[name] disk.partitions = list() for part in partitions: partition = Partition(part['Type'], part['number'], part['start'], part['end'], int(float(part['size'][0:-3])), part['mountpoint'] if 'mountpoint' in part else '', part['used'] if 'used' in part else 0.0, part['name'] if 'name' in part else '', part['flag'] if 'flag' in part else '') if 'devices' in part: partition.raid = PartitionRaid(part['level'], part['state'], part['devices'], part['activeDevices'], part['failedDevices'], part['totalDevices'], part['raidDevices'], part['spareDevices'], part['backendsize']) disk.partitions.append(partition) for disk in self.cmdb.disks.keys(): if disk not in currentAvailableDisks: del self.cmdb.disks[disk] self.cmdb.dirtyProperties.add('disks') return disks