You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by fa...@apache.org on 2011/12/09 21:30:48 UTC
svn commit: r1212612 -
/incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm
Author: fapeeler
Date: Fri Dec 9 20:30:48 2011
New Revision: 1212612
URL: http://svn.apache.org/viewvc?rev=1212612&view=rev
Log:
VCL-468
add check in sub routines to determine if is a reservation or being called through healthcheck
This forces not to use cached value assigned in ENV
Modified:
incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm
Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm?rev=1212612&r1=1212611&r2=1212612&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/Provisioning/VMware/VMware.pm Fri Dec 9 20:30:48 2011
@@ -1118,7 +1118,8 @@ sub node_status {
$status->{ping} = 0;
}
- $status->{vmstate} = $self->power_status();
+ my $vmx_file_path = $self->get_vmx_file_path();
+ $status->{vmstate} = $self->power_status($vmx_file_path);
if (!defined($status->{vmstate})) {
$status->{vmstate} = "off";
}
@@ -2841,7 +2842,11 @@ sub get_vmx_file_path {
return;
}
- return $ENV{vmx_file_path} if $ENV{vmx_file_path};
+ my $reservation_id = $self->data->get_reservation_id();
+
+ if ($reservation_id) {
+ return $ENV{vmx_file_path} if $ENV{vmx_file_path};
+ }
my $vmx_base_directory_path = $self->get_vmx_base_directory_path();
if (!$vmx_base_directory_path) {
@@ -2857,7 +2862,7 @@ sub get_vmx_file_path {
my $vmx_file_path = "$vmx_base_directory_path/$vmx_directory_name/$vmx_directory_name.vmx";
$ENV{vmx_file_path} = $vmx_file_path;
- notify($ERRORS{'DEBUG'}, 0, "determined vmx file path: $vmx_file_path");
+ notify($ERRORS{'OK'}, 0, "determined vmx file path: $vmx_file_path");
return $vmx_file_path;
}
@@ -2886,17 +2891,22 @@ sub get_vmx_base_directory_path {
# Check if vmx_file_path environment variable has been set
# If set, parse the path to return the directory name preceding the vmx file name and directory name
# /<vmx base directory path>/<vmx directory name>/<vmx file name>
- if ($ENV{vmx_file_path}) {
- ($vmx_base_directory_path) = $ENV{vmx_file_path} =~ /(.+)\/[^\/]+\/[^\/]+.vmx$/i;
- if ($vmx_base_directory_path) {
- return $vmx_base_directory_path;
- }
- else {
- notify($ERRORS{'WARNING'}, 0, "vmx base directory path could not be determined from vmx file path: '$ENV{vmx_file_path}'");
- return;
+
+ my $reservation_id = $self->data->get_reservation_id();
+
+ if ($reservation_id) {
+ if ($ENV{vmx_file_path}) {
+ ($vmx_base_directory_path) = $ENV{vmx_file_path} =~ /(.+)\/[^\/]+\/[^\/]+.vmx$/i;
+ if ($vmx_base_directory_path) {
+ return $vmx_base_directory_path;
+ }
+ else {
+ notify($ERRORS{'WARNING'}, 0, "vmx base directory path could not be determined from vmx file path: '$ENV{vmx_file_path}'");
+ return;
+ }
}
}
-
+
# Get the vmprofile.vmpath
# If this is not set, use vmprofile.datastorepath
$vmx_base_directory_path = $self->data->get_vmhost_profile_vmpath() || $self->data->get_vmhost_profile_datastore_path();
@@ -2941,21 +2951,24 @@ sub get_vmx_directory_name {
}
my $vmx_directory_name;
+ my $reservation_id = $self->data->get_reservation_id();
+
# Check if vmx_file_path environment variable has been set
# If set, parse the path to return the directory name preceding the vmx file name
# /<vmx base directory path>/<vmx directory name>/<vmx file name>
- if ($ENV{vmx_file_path}) {
- ($vmx_directory_name) = $ENV{vmx_file_path} =~ /([^\/]+)\/[^\/]+.vmx$/i;
- if ($vmx_directory_name) {
- return $vmx_directory_name;
- }
- else {
- notify($ERRORS{'WARNING'}, 0, "vmx directory name could not be determined from vmx file path: '$ENV{vmx_file_path}'");
- return;
+ if ($reservation_id) {
+ if ($ENV{vmx_file_path}) {
+ ($vmx_directory_name) = $ENV{vmx_file_path} =~ /([^\/]+)\/[^\/]+.vmx$/i;
+ if ($vmx_directory_name) {
+ return $vmx_directory_name;
+ }
+ else {
+ notify($ERRORS{'WARNING'}, 0, "vmx directory name could not be determined from vmx file path: '$ENV{vmx_file_path}'");
+ return;
+ }
}
- }
-
+ }
# Get the computer name
my $computer_short_name = $self->data->get_computer_short_name();
if (!$computer_short_name) {