VMware {code} Community
samsvmware
Enthusiast
Enthusiast

Need to list datastore with lun name ?

I need perl sdkl script to list the Lun name (naa.600xxxxxxxx) of datastore. Any reference link or script pls.

I need to get O/p like below

Datacenter A --- Datastore A -----naa.600xxxxxxxxxxxxxxxxxxxxxxx

                                          -----naa.600xxxxxxxxxxxxxxxxxxxxxxx

                                          -----naa.600xxxxxxxxxxxxxxxxxxxxxxx

         

Datacenter B --- Datastore B -----naa.600xxxxxxxxxxxxxxxxxxxxxxx

                                          -----naa.600xxxxxxxxxxxxxxxxxxxxxxx

                                          -----naa.600xxxxxxxxxxxxxxxxxxxxxxx

                          Datastore C -----naa.600xxxxxxxxxxxxxxxxxxxxxxx

                                          -----naa.600xxxxxxxxxxxxxxxxxxxxxxx

                                          -----naa.600xxxxxxxxxxxxxxxxxxxxxxx
0 Kudos
1 Reply
Frenchkiwis
Contributor
Contributor

Hello,

I wrote a simple script which may correspond at your need. However, I'm not a dev Smiley Happy

#!/usr/bin/perl -w

use strict;

use warnings;

use VMware::VIRuntime;

use VMware::VILib;

my %opts = (

        entity => {

        type => "=s",

        help => "ManagedEntity type: HostSystem, Datacenter, etc",

        required => 1,

    },

);

Opts::add_options(%opts);

Opts::parse();

Opts::validate();

Util::connect();

my $entity_type = Opts::get_option('entity');

my $global_ds_views = Vim::find_entity_views(view_type => 'Datastore', properties => [ 'summary', 'info', 'overallStatus', 'host', 'vm' , 'browser']);

use constant STORAGE_MULTIPLIER => 1073741824;  # 1024*1024*1024 (to convert to GB);

foreach my $lun_view ( @{$global_ds_views || []} ) {

        my $name = $lun_view->info->name;

        my $capacity = (($lun_view->summary->capacity)/STORAGE_MULTIPLIER);

        my $freespace = (($lun_view->summary->freeSpace)/STORAGE_MULTIPLIER);

        my $test1 = $lun_view->info->vmfs->version;

        my $test2 = $lun_view->info->vmfs->extent;

        foreach my $lun ( @{$test2 || []} ) {

                        my $fin = $lun->diskName;

                        my $fin2 = $lun->partition;

                 Util::trace(0, "$name with $capacity\Go . $fin et $fin2\n");}

}

# Disconnect from the server

Util::disconnect();

Regards

0 Kudos