是否可以在Linux中使用VMware perl sdk列出与群集相关的所有数据存储的名称,容量空间,dunesId?
我尝试使用Vim::find_entity_views
获取ComputeResource
并知道它有属性:datastore, host
。
答案 0 :(得分:0)
是的,可以在群集中获取数据存储列表
my $cluster_view = Vim::find_entity_view(view_type => 'ClusterComputeResource',
filter => { name => $cluster_name });
########## Error trap: verify if the cluster_view variable was set in the previous command
########## if it was not set, the Cluster Name is incorrect
if (!$cluster_view) {
die "\nERROR: '" . $cluster_name . "' was not found in the VMware Infrastructure\n\n";
}
########## Print the table header
print "\n";
print "|--------------------------------------------------------------------------|\n";
print "| VMware Cluster: " . $cluster_view->name . "\n";
print "|--------------------------------------------------------------------------|\n";
########## Get a view of the ESX Hosts in the specified Cluster
my $host_views = Vim::find_entity_views(view_type => 'HostSystem',
begin_entity => $cluster_view);
foreach (@$host_views) {
# print "\n", $_->name;
print "\n|--------------------------------------------------------------------------|\n";
print "| Datastore in ESXI Host(s) in " . $_->name . "\n";
print "|--------------------------------------------------------------------------|\n";
print "\n";
my $datastores = Vim::get_views(mo_ref_array => $_->datastore);
foreach(@$datastores) {
print "\n" . $_->summary->name;
}
}