#use warnings;
use Win32::ODBC;
use CGI;
use VMware::VIM2Runtime;
use VMware::VILib;
use Data::Dumper;
use IO::Handle;
STDOUT->autoflush(1);
my $service_url="";
my $username="";
my $password="";
Vim::login(service_url => $service_url, user_name => $username, password => $password);
my $host_views = Vim::find_entity_views(view_type => 'HostSystem');
foreach my $the_host (@$host_views) {
my $host_configMgr = ($the_host->configManager);
my $host_storage_system = Vim::get_view(mo_ref => ($host_configMgr->storageSystem) );
# now rescan
eval { $host_storage_system->RescanAllHba(); };
if ($@) {
# failed - report and continue
print "Rescan failed for host " . $the_host->name . ".\n";
print $@."\n";
} else {
print "Rescanned " . $the_host->name . ".\n";
}
# now rescan VMFS
eval { $host_storage_system->RescanVmfs(); };
if ($@) {
# failed - report and continue
print "Rescan VMFS failed for host " . $the_host->name . ".\n";
} else {
print "Rescanned VMFS on " . $the_host->name . ".\n";
}
eval { $host_storage_system->RefreshStorageSystem(); };
if ($@) {
# failed - report and continue
print "Refresh failed for host " . $the_host->name . ".
\n";
print $@."\n";
} else {
print "ReRefreshed " . $the_host->name . ".
\n";
}
}
Vim::logout();
print "Done";