You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2009/08/04 17:45:21 UTC
svn commit: r800853 - /incubator/vcl/trunk/managementnode/lib/VCL/new.pm
Author: arkurth
Date: Tue Aug 4 15:45:20 2009
New Revision: 800853
URL: http://svn.apache.org/viewvc?rev=800853&view=rev
Log:
VCL-23
Removed old Windows code which isn't called anymore. Cleaned up section where dynamic address is retrieved.
Modified:
incubator/vcl/trunk/managementnode/lib/VCL/new.pm
Modified: incubator/vcl/trunk/managementnode/lib/VCL/new.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/new.pm?rev=800853&r1=800852&r2=800853&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/new.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/new.pm Tue Aug 4 15:45:20 2009
@@ -702,7 +702,7 @@
else {
notify($ERRORS{'OK'}, 0, ref($self->os) . "->post_load() subroutine does not exist");
}
-
+
#Post operations not to be handled by provisioning modules
if($image_os_install_type eq "kickstart"){
notify($ERRORS{'OK'}, 0, "Detected kickstart install on $computer_short_name, writing current_image.txt");
@@ -710,7 +710,7 @@
notify($ERRORS{'OK'}, 0, "Successfully wrote current_image.txt on $computer_short_name");
}
}
-
+
notify($ERRORS{'OK'}, 0, "node ready: successfully reloaded $computer_short_name with $image_name");
insertloadlog($reservation_id, $computer_id, "nodeready", "$computer_short_name was reloaded with $image_name");
@@ -1026,154 +1026,59 @@
}
if ($computer_type =~ /blade|virtualmachine/) {
- # if dynamicDHCP update or dble check address in table
- #ipconfiguration
- if ($IPCONFIGURATION ne "manualDHCP") {
- #not default setting
- if ($IPCONFIGURATION eq "dynamicDHCP") {
- my $assignedIPaddress = getdynamicaddress($computer_short_name, $image_os_name,$image_os_type);
-
- if ($assignedIPaddress) {
- #$IPaddressforlog = $assignedIPaddress;
- #update computer table
- if (update_computer_address($computer_id, $assignedIPaddress)) {
- notify($ERRORS{'OK'}, 0, "dynamic address collect $assignedIPaddress -- updating computer table");
- }
- #change our local and hash variables
- $self->data->set_computer_ip_address($assignedIPaddress);
- $computer_ip_address = $assignedIPaddress;
- } ## end if ($assignedIPaddress)
+ # If dynamic DHCP is used, update the public IP address in the computer table
+ if ($IPCONFIGURATION eq "dynamicDHCP") {
+ $computer_ip_address = getdynamicaddress($computer_short_name, $image_os_name, $image_os_type);
+ if ($computer_ip_address) {
+ notify($ERRORS{'DEBUG'}, 0, "retrieved dynamic DHCP IP address from $computer_ip_address: $computer_ip_address");
+
+ # Update the reservation data
+ $self->data->set_computer_ip_address($computer_ip_address);
+
+ # Update the public IP address in the computer table
+ if (update_computer_address($computer_id, $computer_ip_address)) {
+ notify($ERRORS{'DEBUG'}, 0, "updated IP address in computer table");
+ }
else {
- notify($ERRORS{'CRITICAL'}, 0, "could not fetch dynamic address from $computer_short_name $image_name");
- insertloadlog($reservation_id, $computer_id, "failed", "node problem could not collect IP address form $computer_short_name");
- return 0;
+ $self->reservation_failed("failed to update IP address in computer table");
}
- } ## end if ($IPCONFIGURATION eq "dynamicDHCP")
- } ## end if ($IPCONFIGURATION ne "manualDHCP")
-
-
- insertloadlog($reservation_id, $computer_id, "info", "node ready adding user account");
-
- if ($image_os_type =~ /windows/ || ($image_os_type =~ /linux/ && $user_standalone)) {
- # Get a random password
- my $reservation_password = getpw();
-
- # Update pw in reservation table
- if (update_request_password($reservation_id, $reservation_password)) {
- notify($ERRORS{'OK'}, 0, "updated password entry reservation_id $reservation_id");
}
else {
- notify($ERRORS{'CRITICAL'}, 0, "failed to update password entry reservation_id $reservation_id");
+ $self->reservation_failed("failed to retrieve dynamic DHCP IP address from $computer_short_name");
}
-
- # Set the password in the DataStructure object
- $self->data->set_reservation_password($reservation_password);
-
- # Check if OS module had implemented a reserve() subroutine
- # This is only true for modularized OS modules
- if ($self->os->can('reserve')) {
- # Call the OS module's reserve() subroutine
- notify($ERRORS{'DEBUG'}, 0, "calling OS module's reserve() subroutine");
- if ($self->os->reserve()) {
- notify($ERRORS{'DEBUG'}, 0, "OS module successfully reserved resources for this reservation");
- }
- else {
- $self->reservation_failed("OS module failed to reserve resources for this reservation");
- }
- }
-
- # Windows Vista reservation tasks
- # Much of this subroutine will be rearranged once other OS's are modularized
- elsif ($image_os_name =~ /winvista/) {
- if ($request_forimaging) {
- # Set the Administrator password
- notify($ERRORS{'OK'}, 0, "attempting to set Administrator password to $reservation_password on $computer_short_name");
- if (!$self->os->set_password('Administrator', $reservation_password)) {
- notify($ERRORS{'WARNING'}, 0, "reserve computer failed: unable to set password for administrator account on $computer_short_name");
- return 0;
- }
- }
- else {
- # Add the users to the computer
- # OS add_users() subroutine will add the primary reservation user and any imagemeta group users
- notify($ERRORS{'OK'}, 0, "attempting to add users to $computer_short_name");
- if (!$self->os->add_users()) {
- notify($ERRORS{'WARNING'}, 0, "reserve computer failed: unable to add users to $computer_short_name");
- return 0;
- }
- }
+ }
+
+ insertloadlog($reservation_id, $computer_id, "info", "node ready adding user account");
+
+ # Create a random password for the reservation
+ my $reservation_password = getpw();
+
+ # Update the password in the reservation table
+ if (update_request_password($reservation_id, $reservation_password)) {
+ notify($ERRORS{'DEBUG'}, 0, "updated password in the reservation table");
+ }
+ else {
+ $self->reservation_failed("failed to update password in the reservation table");
+ }
+
+ # Set the password in the DataStructure object
+ $self->data->set_reservation_password($reservation_password);
+
+
+ # Check if OS module implements a reserve() subroutine
+ if ($self->os->can('reserve')) {
+ # Call the OS module's reserve() subroutine
+ notify($ERRORS{'DEBUG'}, 0, "calling OS module's reserve() subroutine");
+ if ($self->os->reserve()) {
+ notify($ERRORS{'DEBUG'}, 0, "OS module successfully reserved resources for this reservation");
}
-
- elsif ($image_os_type =~ /windows/ && $request_forimaging) {
- if (changewindowspasswd($computer_short_name, "administrator", $reservation_password)) {
- notify($ERRORS{'OK'}, 0, "password changed for administrator account on $computer_short_name to $reservation_password");
- }
- else {
- notify($ERRORS{'CRITICAL'}, 0, "unable to change password for administrator account on $computer_short_name to $reservation_password");
- return 0;
- }
+ else {
+ $self->reservation_failed("OS module failed to reserve resources for this reservation");
}
- elsif ($image_os_type =~ /windows/) {
- # Add user to computer
- # Linux user addition is handled in reserve.pm
- notify($ERRORS{'OK'}, 0, "attempting to add user $user_unityid to $computer_short_name");
- insertloadlog($reservation_id, $computer_id, "addinguser", "adding user account $user_unityid");
-
- # Add the request user to the computer
- if (add_user($computer_short_name, $user_unityid, $user_uid, $reservation_password, $computer_host_name, $image_os_name,$image_os_type, 0, 0, 0)) {
- notify($ERRORS{'OK'}, 0, "user $user_unityid added to $computer_short_name");
- }
- else {
- # check for deletion
- if (is_request_deleted($request_id)) {
- notify($ERRORS{'OK'}, 0, "unable to add user $user_unityid to $computer_short_name due to deleted requested ");
- #return 0 and let process routine handle reset computer state
- return 0;
- }
- notify($ERRORS{'CRITICAL'}, 0, "unable to add user $user_unityid to $computer_short_name");
- return 0;
- } ## end else [ if (add_user($computer_short_name, $user_unityid...
-
- # If imagemeta has user group members, add them to the computer
- if ($imagemeta_usergroupmembercount) {
- notify($ERRORS{'OK'}, 0, "multiple users detected");
-
- insertloadlog($reservation_id, $computer_id, "info", "multiple user accounts flagged adding additional users");
-
- if (add_users_by_group($computer_short_name, $reservation_password, $computer_host_name, $image_os_name,$image_os_type, $imagemeta_usergroupmembers)) {
- notify($ERRORS{'OK'}, 0, "successfully added multiple users");
- }
- else {
- notify($ERRORS{'CRITICAL'}, 0, "failed to add multiple users");
- return 0;
- }
- notify($ERRORS{'OK'}, 0, "users from group $imagemeta_usergroupid added");
-
- } ## end if ($imagemeta_usergroupmembercount)
-
- } ## end elsif ($image_os_type =~ /windows/) [ if ($image_os_type =~ /windows/ && $request_forimaging)
- } ## end if ($image_os_type =~ /windows/ || ($image_os_type...
- elsif ($image_os_type =~ /linux/) {
- if ($user_standalone) {
- # Get a random password
- my $reservation_password = getpw();
-
- # Update pw in reservation table
- if (update_request_password($reservation_id, $reservation_password)) {
- notify($ERRORS{'OK'}, 0, "updated password entry reservation_id $reservation_id");
- }
- else {
- notify($ERRORS{'CRITICAL'}, 0, "failed to update password entry reservation_id $reservation_id");
- }
- } ## end if ($user_standalone)
- } ## end elsif ($image_os_type =~ /linux/) [ if ($image_os_type =~ /windows/ || ($image_os_type...
- else {
- notify($ERRORS{'CRITICAL'}, 0, "password set failed, unsupported image OS type: $image_os_type");
- return 0;
}
-
+
+ # Check if this is a parent reservation, only the parent reservation handles notifications
if (!$reservation_is_parent) {
- #sub image; parent handles notification
return 1;
}