sub shutdown_vm {
my ( $vm_name ) = @_ ; my $vm_view = Vim::find_entity_view( view_type => 'VirtualMachine' , filter => { 'name' => $vm_name } ) ; $vm_view->ShutdownGuest() ; }
sub power_off_host {
my ( $host_name ) = @_ ; my $host_view = Vim::find_entity_view( view_type => 'HostSystem' , filter => { 'name' => $host_name } ) ; $host_view->ShutdownHost_Task( force => 1 ) ;
}
sub power_off_vm {
my ( $vm_name ) = @_ ; my $vm_view = Vim::find_entity_view( view_type => 'VirtualMachine' , filter => { 'name' => $vm_name } ) ; $vm_view->PowerOffVM() ; }
sub power_on_vm {
my ( $vm_name ) = @_ ; my $vm_view = Vim::find_entity_view( view_type => 'VirtualMachine' , filter => { 'name' => $vm_name } ) ; $vm_view->PowerOnVM() ; }
sub get_vm_power_state {
my ( $vm_name ) = @_ ; my $vm_view = Vim::find_entity_view( view_type => 'VirtualMachine', filter => { 'name' => $vm_name } , properties => [ 'name','runtime' ] ) ; my $power_state = $vm_view->runtime->powerState->val ;
return $power_state ; }
sub get_host_info {
my ( $host_name ) = @_ ; my $host_icon ; my $network_icon ; my $storage_icon ; my $host_view = Vim::find_entity_view( view_type => 'HostSystem' , filter => { 'name' => $host_name } , properties => [ 'name','summary','config','runtime','network','datastore' ] ) ; my $storage_view = Vim::get_views( mo_ref_array => $host_view->datastore ) ; my $network_view = Vim::get_views( mo_ref_array => $host_view->network ) ; my $cpu_mhz = $host_view->summary->hardware->cpuMhz ; my $num_cpu_core = $host_view->summary->hardware->numCpuCores ; my $manufacture = $host_view->summary->hardware->vendor ; my $model = $host_view->summary->hardware->model ; my $cpu_model = $host_view->summary->hardware->cpuModel ; my $num_cpu_pkg = $host_view->summary->hardware->numCpuPkgs ; my $num_cpu_thread = $host_view->summary->hardware->numCpuThreads ; my $ht = ( $host_view->config->hyperThread->active eq "1" ) ? "true" : "false" ; my $num_nic = $host_view->summary->hardware->numNics ; my $state = $host_view->runtime->connectionState->val ; my $status = $host_view->summary->overallStatus->val ; switch ( $status ) { case(green) { $host_icon = "menu_normal.png" } case(red) { $host_icon = "menu_alert.png" } case(yellow) { $host_icon = "menu_warning.png" } case(gray) { $host_icon = "menu_unknown.png" } }
sub get_host_vm {
my ( $host_ip ) = @_ ; my @vm_list ; my $host_view = Vim::find_entity_view( view_type => 'HostSystem', filter => { name => $host_ip } , properties => [ 'name' ] ) ;
my $vm_views = Vim::find_entity_views( view_type => 'VirtualMachine', begin_entity => $host_view , filter => {'config.template' => qr/false/i}, properties => [ 'name' ] ) ;
foreach ( @$vm_views ) { push( @vm_list, $_->name ) ; }
return \@vm_list ; }
sub get_dc_host {
my ( $dc_name ) = @_ ; my @host_list ; my $dc_view = Vim::find_entity_view( view_type => 'Datacenter', filter => { name => $dc_name } , properties => ['name'] ) ; my $host_views = Vim::find_entity_views( view_type => 'HostSystem' , begin_entity => $dc_view , properties => ['name','parent'] ) ;
foreach my $host_view ( @$host_views ) { push ( @host_list, $host_view->name ) ; }
|