Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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