Artikel-Schlagworte: „Perl SDK“
perl SDK – Host Alarme in vCenter bestätigen
Manchmal ist es einfacher, vCenter Alarme über die Kommandozeile zu bestätigen (acknowledge), als das Ganze via VI Client zu erledigen.
Hier ein kleines Beispiel, wie das mittels Perl SDK und vSphere 4.0 API funktioniert:
#!/usr/bin/perl
use strict;
use warnings;
use VMware::VIRuntime;
# validate options, and connect to the server
Opts::parse();
Opts::validate();
Util::connect();
# This is where most features starts … get service content reference
my $sc = Vim::get_service_content();
# fetch alarmManager
my $alarmManager = Vim::get_view( mo_ref => $sc->alarmManager );
unless (defined $alarmManager) {
print “ERROR Could not connect to alarmManager. Exiting.\n”;
print “Remember: you need to connect to a vCenter installation.\n”;
Util::disconnect();
exit 1
}
# our ESX Hosts
my $esx_hosts = Vim::find_entity_views( view_type => ‘HostSystem’ );
foreach my $esx (@{$esx_hosts}) {
printf “Working at Host: %s\n”, $esx->{summary}->{config}->{name};
if($esx->{summary}->{host}->{type} ne “HostSystem”) {
printf “Skipping for non HostSystem ‘%s’”, $esx->{summary}->{host}->{type};
next;
}
foreach my $alarm_me (@{$esx->{triggeredAlarmState}}) {
my $alarm = Vim::get_view( mo_ref => $alarm_me->{alarm} );
printf “%s “, $alarm->{info}->{lastModifiedTime};
printf “%s\n”, $alarm->{info}->{name};
# Ack the alarm
$alarmManager->AcknowledgeAlarm( alarm => $alarm_me->{alarm},
entity => $alarm_me->{entity} );
printf “Alarm acknowledged\n”;
}
}
Util::disconnect();
Viel Spaß damit!

