VM cluster

Hi,

Can anyone guide me to build a pers script witch should gather information about VM?

Such as the data center, cluster, and other information about the vm.

I tried with the script below, but for some DC it crashes it triggers the error:

 

Can't load class 'ClusterComputeResourceHCIConfigInfo'

 

My Script is this:

my $dc_views = Vim::find_entity_views(view_type => 'Datacenter');

foreach my $dc (@$dc_views)
{
    my $datacenter =$dc->name;
    $log->info("Datacenter:$datacenter");


    my $clu_views = Vim::find_entity_view ( view_type => "ClusterComputeResource", begin_entity => $dc );

        foreach my $cls (@$clu_views)
        {
             my $cluster = $cls->name;
             $log->info(" Cluster:$cluster");

             my $vm_views = Vim::find_entity_views(view_type => 'VirtualMachine', begin_entity => $cls);
             foreach my $vm(@$vm_views)
             {
                    my $vm_obj = new VM_summary_obj();
                    my $hddCount = 0;
                    my $disksKB = 0;
                    my $disksGB = 0;
                    my $guestFamily = $vm->guest->guestFamily;
                    my $guestFullName = $vm->config->guestFullName;
               
                   $vm_obj->setName ($vm->name);
                   $vm_obj->setCpuNum ($vm->config->hardware->numCPU);
                   $vm_obj->setCpuCoresPerSocket ($vm->config->hardware->numCoresPerSocket);
                   $vm_obj->setMemoryMB ($vm->config->hardware->memoryMB);
                   $vm_obj->setGuestFullName ($vm->config->guestFullName);
                   $vm_obj->setGuestFamily ($guestFamily);
                   $vm_obj->setIpAddress ($vm->guest->ipAddress);
                   $vm_obj->setDevices ($vm->config->hardware->device);
                   $vm_obj->setDatacenter ($datacenter);
                   $vm_obj->setCluster ($cluster);

                   my $devices = $vm_obj->getDevices();
                   foreach my $device (@$devices)
                   { 
                         my $summary = $device->deviceInfo->summary;
                         my $label = $device->deviceInfo->label;

                         if (index($label, "Hard disk") != -1)
                        {
                              $disksKB += $device->capacityInKB;
                              $hddCount++;
                       }
                   }
                  $disksGB = $disksKB / (1024*1024) ;

                  $vm_obj->setDiskCount($hddCount);
                  $vm_obj->setDiskTotalSize($disksGB);
           }

       }
}

Thank you!

 

Labels (1)