Использование vSphere VI Java API для получения аннотаций

У кого-нибудь есть фрагмент того, как использовать Java API vSphere VI для извлечения значений в разделе «Аннотации» на вкладке «Сводка» для виртуальной машины? Я много оглядывался, а также просматривал документы API, но нигде этого не видел.


person SS781    schedule 04.08.2014    source источник


Ответы (2)


Сначала ознакомьтесь с документацией по API VirtualMachineConfigSpec .

Затем вы можете сделать это из java

VirtualMachineConfigSpec configSpec = new VirtualMachineConfigSpec();
configSpec.setAnnotation = "Your annotation string here" 
reconfigVM_Task(vmMOR, configSpec);
person Reuben    schedule 05.08.2014
comment
Это выглядит хорошо для установки аннотаций, но я просто хочу прочитать то, что уже есть - person SS781; 05.08.2014
comment
Прочтите документацию pubs.vmware.com/vi3/sdk/ReferenceGuide /vim.vm.ConfigInfo.html Вы можете получить аннотацию, выполнив следующие действия vm.getConfig().annotation - person Reuben; 07.08.2014

Я сделал это в Perl SDK, но переделать это для использования Java API должно быть легко. Вы получаете аннотации из объекта виртуальной машины, который имеет свойство с именем summary класса VirtualMachineSummary, который имеет config класса VirtualMachineConfigSummary, который имеет >поле аннотации типа string, которое вам нужно.

my $vmname = "vmname you are looking for";
# Get all VMs
my $vms = Vim::find_entity_views(
        view_type => 'VirtualMachine',
        filter => {"config.name" => qr/^$vmname$/i},
);

# Iterate over the VMs, getting their annotations
foreach my $vm (@{ $vms }) {
  my $notes = $vm->summary->config->annotation;
  my $name = $vm->summary->config->name;
  if (not defined $notes) {
    print " - VM: $name  has no notes\n";
  }
  elsif ($notes =~ m/^\$*/) {
    print " - VM: $name  has empty notes\n";
  }
  else {
    print " - VM: $name  notes: '$notes'\n";
  }
}

Вот полный код: https://communities.vmware.com/message/2613855#2613855

person Pik Master    schedule 11.08.2016