--- xeninfo.pl.orig 2007-07-04 16:05:14.943902658 +0200 +++ xeninfo.pl 2007-07-04 16:36:43.508432922 +0200 @@ -21,11 +21,16 @@ ##### CONFIG ###### -my %xenhosts = ("127.0.0.1" => {"port" => "9363"}, - ); +my %xenhosts; + +#%xenhosts = ("127.0.0.1" => {"port" => "9363"}, +# "SOMEOTHERHOST" => {"port" => "SOMEPORT"}, +#); ##### CONFIG END ### +die "Please provide a list of Xen hosts" unless %xenhosts; + ##### STATIC VARS ##### my %host_info; @@ -142,8 +147,8 @@ { my ($xen, $session, $host_name, $vm_ref, $vm_name_label) = @_; my $vm_metrics_ref = validate_response($xen->simple_request("VM.get_metrics",$session,$vm_ref)); - - my %vm_vcpu_utilisation = %{validate_response($xen->simple_request("VM_metrics.get_vcpus_utilisation",$session,$vm_metrics_ref))}; + + my %vm_vcpu_utilisation = %{validate_response($xen->simple_request("VM_metrics.get_VCPUs_utilisation",$session,$vm_metrics_ref))}; for my $tempcpu (keys %vm_vcpu_utilisation) { print " |- CPUiNFO: $tempcpu - $vm_vcpu_utilisation{$tempcpu}\n"; @@ -229,31 +234,31 @@ my $xen = $xenhosts{$xenhost}{'xen'}; my $session = $xenhosts{$xenhost}{'session'}; print "_______________________\n## $xenhost ##\n-----------------------\n"; - - my $host_ref = validate_response($xen->simple_request("session.get_this_host", $session)); - + + my $host_ref = validate_response($xen->simple_request("session.get_this_host", $session, $session)); + my $host_name = validate_response($xen->simple_request("host.get_name_label", $session, $host_ref)); $xenhosts{$xenhost}{'hostname'} = $host_name; $host_info{$host_name}{'ip'} = $xenhost; - + get_host_cpu_utilisation($xen, $session, $host_name, $host_ref); get_host_mem_utilisation($xen, $session, $host_name, $host_ref); - + get_host_pif_utilisation($xen, $session, $host_name, $host_ref); - - + + my $all_vm_refs = validate_response($xen->simple_request("host.get_resident_VMs",$session, $host_ref)); - + foreach my $vm_ref (@$all_vm_refs) { my $vm_name_label = validate_response($xen->simple_request("VM.get_name_label",$session,$vm_ref)); get_vm_type($xen,$session,$host_name,$vm_ref,$vm_name_label); - + my $vm_id = validate_response($xen->simple_request("VM.get_domid",$session,$vm_ref)); print "vm: $vm_id\t$vm_name_label\ttype: $host_info{$host_name}{'vms'}->{$vm_name_label}{'type'}\n"; - + # vm_metrics includes both mem_actual & cpu utilisation # So we'll add all stats found in that class in one go.. get_vm_metrics($xen,$session,$host_name,$vm_ref,$vm_name_label); @@ -263,11 +268,11 @@ # This might not be needed at all as xen doesnt have functionality to # resize mem for a VM atm (afaik) get_vm_mem_info($xen,$session,$host_name,$vm_ref,$vm_name_label); - + get_vm_vif_utilisation($xen,$session,$host_name,$vm_ref,$vm_name_label); - + get_vm_vbd_utilisation($xen,$session,$host_name,$vm_ref,$vm_name_label); - + $all_vms{$vm_name_label} = "" unless ("$vm_name_label" eq "Domain-0"); } print "\n";