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 2009/07/15 19:42:03 UTC
svn commit: r794333 - /incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
Author: fapeeler
Date: Wed Jul 15 17:42:02 2009
New Revision: 794333
URL: http://svn.apache.org/viewvc?rev=794333&view=rev
Log:
VCL-169
added routine, set_managementnode_state that accepts Management node
info hash and desired state.
This is to be used in placing a given management node into maintenance
state if an datacenter shutdown event is triggered.
Modified:
incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
Modified: incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=794333&r1=794332&r2=794333&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/utils.pm Wed Jul 15 17:42:02 2009
@@ -174,6 +174,7 @@
run_ssh_command
set_hash_process_id
set_logfile_path
+ set_managementnode_state
setimageid
setpreferredimage
setstaticaddress
@@ -6010,6 +6011,60 @@
#/////////////////////////////////////////////////////////////////////////////
+=head2 set_managementnode_state
+
+ Parameters : management node info, state
+ Returns : 1 or 0
+ Description : sets a given management node to maintenance
+
+=cut
+
+sub set_managementnode_state {
+ my ($mninfo, $state) = @_;
+
+ if(!(defined($state))){
+ notify($ERRORS{'WARNING'}, 0, "state was not specified");
+ return ();
+ }
+ if(!(defined($mninfo->{hostname}))){
+ notify($ERRORS{'WARNING'}, 0, "management node hostname was not specified");
+ return ();
+ }
+ if(!(defined($mninfo->{id}))){
+ notify($ERRORS{'WARNING'}, 0, "management node ID was not specified");
+ return ();
+ }
+
+ my $mn_ID = $mninfo->{id};
+ my $mn_hostname = $mninfo->{hostname};
+
+ # Construct the update statement
+ my $update_statement = "
+ UPDATE
+ managementnode,
+ state
+ SET
+ managementnode.stateid = state.id
+ WHERE
+ state.name = '$state' AND
+ managementnode.id = '$mn_ID'
+ ";
+
+
+ # Call the database execute subroutine
+ if (database_execute($update_statement)) {
+ # Update successful, return timestamp
+ notify($ERRORS{'OK'}, 0, "Successfully updated management node $mn_hostname state to $state");
+ return 1;
+ }
+ else {
+ notify($ERRORS{'CRITICAL'}, 0, "unable to update database, management node $mn_hostname state to $state");
+ return 0;
+ }
+}
+
+#/////////////////////////////////////////////////////////////////////////////
+
=head2 get_requests
Parameters : management node id