vcl-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From arku...@apache.org
Subject svn commit: r1059044 - in /incubator/vcl/trunk/managementnode/lib/VCL/Module/OS: Windows.pm Windows/Version_5.pm Windows/Version_6.pm
Date Fri, 14 Jan 2011 15:33:52 GMT
Author: arkurth
Date: Fri Jan 14 15:33:52 2011
New Revision: 1059044

URL: http://svn.apache.org/viewvc?rev=1059044&view=rev
Log:
VCL-393
Added disable_sleep subroutines to Version_5.pm and Version_6.pm. Added call to disable_sleep
in post_load and pre_capture in Windows.pm.

Modified:
    incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
    incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_5.pm
    incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_6.pm

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm?rev=1059044&r1=1059043&r2=1059044&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm Fri Jan 14 15:33:52 2011
@@ -361,6 +361,16 @@ sub pre_capture {
 
 =item *
 
+ Disable sleep
+
+=cut
+
+	if (!$self->disable_sleep()) {
+		notify($ERRORS{'WARNING'}, 0, "unable to disable sleep");
+	}
+
+=item *
+
  Disable Windows Customer Experience Improvement program
 
 =cut
@@ -761,6 +771,16 @@ sub post_load {
 
 =item *
 
+ Disable sleep
+
+=cut
+
+	if (!$self->disable_sleep()) {
+		notify($ERRORS{'WARNING'}, 0, "unable to disable sleep");
+	}
+
+=item *
+
  Check if the imagemeta postoption is set to reboot, reboot if necessary
 
 =cut

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_5.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_5.pm?rev=1059044&r1=1059043&r2=1059044&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_5.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_5.pm Fri Jan 14 15:33:52
2011
@@ -649,6 +649,71 @@ sub sanitize_files {
 
 #/////////////////////////////////////////////////////////////////////////////
 
+=head2 disable_sleep
+
+ Parameters  : None
+ Returns     : If successful: true
+               If failed: false
+ Description : Disables the sleep power mode.
+
+=cut
+
+sub disable_sleep {
+	my $self = shift;
+	unless (ref($self) && $self->isa('VCL::Module')) {
+		notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called as a VCL::Module module object
method");
+		return;	
+	}
+	
+	my $management_node_keys = $self->data->get_management_node_keys();
+	my $computer_node_name   = $self->data->get_computer_node_name();
+	my $system32_path        = $self->get_system32_path() || return;
+	
+	my $query_command = "$system32_path/powercfg.exe /QUERY";
+	my ($query_exit_status, $query_output) = run_ssh_command($computer_node_name, $management_node_keys,
$query_command, '', '', 1);
+	if (!defined($query_output)) {
+		notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to retrieve power scheme name");
+		return;
+	}
+	
+	# Join the powercfg.exe output lines into a string then parse the line beginning with 'Name
'
+	join("\n", @$query_output) =~ /Name\s+(.*)/;
+	my $scheme_name = $1;
+	if (!$scheme_name) {
+		notify($ERRORS{'WARNING'}, 0, "failed to retrieve power scheme name from powercfg.exe query
output:\n" . join("\n", @$query_output));
+		return;
+	}
+	notify($ERRORS{'DEBUG'}, 0, "retrieved power scheme name: '$scheme_name'");
+	
+	# Run powercfg.exe to disable sleep
+	my $powercfg_command;
+	$powercfg_command .= "$system32_path/powercfg.exe /CHANGE \"$scheme_name\" /monitor-timeout-ac
0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe /CHANGE \"$scheme_name\" /monitor-timeout-dc
0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe /CHANGE \"$scheme_name\" /disk-timeout-ac
0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe /CHANGE \"$scheme_name\" /disk-timeout-dc
0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe /CHANGE \"$scheme_name\" /standby-timeout-ac
0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe /CHANGE \"$scheme_name\" /standby-timeout-dc
0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe /CHANGE \"$scheme_name\" /hibernate-timeout-ac
0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe /CHANGE \"$scheme_name\" /hibernate-timeout-dc
0";
+	
+	my ($powercfg_exit_status, $powercfg_output) = run_ssh_command($computer_node_name, $management_node_keys,
$powercfg_command, '', '', 1);
+	if (!defined($powercfg_output)) {
+		notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to disable sleep");
+		return;
+	}
+	elsif (grep(/(error|invalid|not found)/i, @$powercfg_output)) {
+		notify($ERRORS{'WARNING'}, 0, "failed to disable sleep, powercfg.exe output:\n" . join("\n",
@$powercfg_output));
+		return;
+	}
+	else {
+		notify($ERRORS{'OK'}, 0, "disabled sleep");
+	}
+	
+	return 1;
+}
+
+#/////////////////////////////////////////////////////////////////////////////
+
 1;
 __END__
 

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_6.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_6.pm?rev=1059044&r1=1059043&r2=1059044&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_6.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows/Version_6.pm Fri Jan 14 15:33:52
2011
@@ -1795,6 +1795,55 @@ sub sanitize_files {
 
 #/////////////////////////////////////////////////////////////////////////////
 
+=head2 disable_sleep
+
+ Parameters  : None
+ Returns     : If successful: true
+               If failed: false
+ Description : Disables the sleep power mode.
+
+=cut
+
+sub disable_sleep {
+	my $self = shift;
+	unless (ref($self) && $self->isa('VCL::Module')) {
+		notify($ERRORS{'CRITICAL'}, 0, "subroutine can only be called as a VCL::Module module object
method");
+		return;	
+	}
+	
+	my $management_node_keys = $self->data->get_management_node_keys();
+	my $computer_node_name   = $self->data->get_computer_node_name();
+	my $system32_path        = $self->get_system32_path() || return;
+
+	# Run powercfg.exe to disable sleep
+	my $powercfg_command;
+	$powercfg_command .= "$system32_path/powercfg.exe -CHANGE -monitor-timeout-ac 0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe -CHANGE -monitor-timeout-dc 0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe -CHANGE -disk-timeout-ac 0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe -CHANGE -disk-timeout-dc 0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe -CHANGE -standby-timeout-ac 0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe -CHANGE -standby-timeout-dc 0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe -CHANGE -hibernate-timeout-ac 0 ; ";
+	$powercfg_command .= "$system32_path/powercfg.exe -CHANGE -hibernate-timeout-dc 0";
+	
+	my ($powercfg_exit_status, $powercfg_output) = run_ssh_command($computer_node_name, $management_node_keys,
$powercfg_command, '', '', 1);
+	if (!defined($powercfg_output)) {
+		notify($ERRORS{'WARNING'}, 0, "failed to run SSH command to disable sleep");
+		return;
+	}
+	elsif (grep(/(error|invalid|not found)/i, @$powercfg_output)) {
+		notify($ERRORS{'WARNING'}, 0, "failed to disable sleep, powercfg.exe output:\n" . join("\n",
@$powercfg_output));
+		return;
+	}
+	else {
+		notify($ERRORS{'OK'}, 0, "disabled sleep");
+	}
+	
+	return 1;
+}
+
+#/////////////////////////////////////////////////////////////////////////////
+
 1;
 __END__
 



Mime
View raw message