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 2013/09/19 22:26:54 UTC

svn commit: r1524824 - /vcl/trunk/managementnode/lib/VCL/utils.pm

Author: arkurth
Date: Thu Sep 19 20:26:53 2013
New Revision: 1524824

URL: http://svn.apache.org/r1524824
Log:
VCL-702
Removed old subroutines from utils.pm which aren't called from anywhere:
_machine_os
check_uptime
checkonprocess
collectsshkeys
construct_image_name
disablesshd
get_array_summary_string
get_highest_imagerevision_info
get_user_affiliation
isconnected
isfilelocked
restoresshkeys
timefloor15interval
unlockfile
vmwareclone

Modified:
    vcl/trunk/managementnode/lib/VCL/utils.pm

Modified: vcl/trunk/managementnode/lib/VCL/utils.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=1524824&r1=1524823&r2=1524824&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/utils.pm Thu Sep 19 20:26:53 2013
@@ -82,7 +82,6 @@ our @ISA = qw(Exporter);
 
 our @EXPORT = qw(
   _checknstartservice
-  _machine_os
   _pingnode
   _sshd_status
   changelinuxpassword
@@ -90,11 +89,7 @@ our @EXPORT = qw(
   check_endtimenotice_interval
   check_ssh
   check_time
-  check_uptime
-  checkonprocess
   clearfromblockrequest
-  collectsshkeys
-  construct_image_name
   controlVM
   convert_to_datetime
   convert_to_epoch_seconds
@@ -103,13 +98,11 @@ our @EXPORT = qw(
   database_select
   delete_computerloadlog_reservation
   delete_request
-  disablesshd
   escape_file_path
   format_data
   format_hash_keys
   format_number
   get_affiliation_info
-  get_array_summary_string
   get_block_request_image_info
   get_caller_trace
   get_computer_current_state_name
@@ -125,7 +118,6 @@ our @EXPORT = qw(
   get_database_table_columns
   get_file_size_info_string
   get_group_name
-  get_highest_imagerevision_info
   get_image_info
   get_imagemeta_info
   get_imagerevision_info
@@ -175,8 +167,6 @@ our @EXPORT = qw(
   is_request_imaging
   is_valid_dns_host_name
   is_valid_ip_address
-  isconnected
-  isfilelocked
   kill_child_processes
   kill_reservation_process
   known_hosts
@@ -196,7 +186,6 @@ our @EXPORT = qw(
   rename_vcld_process
   reservation_being_processed
   reservations_ready
-  restoresshkeys
   round
   run_command
   run_scp_command
@@ -218,8 +207,6 @@ our @EXPORT = qw(
   switch_state
   switch_vmhost_id
   time_exceeded
-  timefloor15interval
-  unlockfile
   update_blockrequest_processing
   update_cluster_info
   update_computer_address
@@ -1347,117 +1334,6 @@ sub _checknstartservice {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 isconnected
-
- Parameters  : $nodename, $type, $remoteIP, $osname, $ipaddress
- Returns     : 1 connected 0 not connected
- Description : confirms user is connected to node
-					assumes port 3389 for windows and port 22 for linux/solaris
-=cut
-
-sub isconnected {
-	my ($nodename, $type, $remoteIP, $osname, $ipaddress, $image_os_type) = @_;
-	my ($package, $filename, $line, $sub) = caller(0);
-	notify($ERRORS{'OK'}, 0, "nodename not set")  if (!defined($nodename));
-	notify($ERRORS{'OK'}, 0, "type not set")      if (!defined($type));
-	notify($ERRORS{'OK'}, 0, "remoteIP not set")  if (!defined($remoteIP));
-	notify($ERRORS{'OK'}, 0, "osname not set")    if (!defined($osname));
-	notify($ERRORS{'OK'}, 0, "image_os_type not set")    if (!defined($image_os_type));
-	notify($ERRORS{'OK'}, 0, "ipaddress not set") if (!defined($ipaddress));
-
-	my $identity_keys = get_management_node_info()->{keys};
-
-	my @netstat;
-	my @SSHCMD;
-	if ($type =~ /blade|virtualmachine/) {
-		my $shortname = 0;
-		$shortname = $1 if ($nodename =~ /([-_a-zA-Z0-9]*)\./);
-		if ($shortname) {
-			#convert shortname
-			$nodename = $shortname;
-		}
-
-		if ($image_os_type =~ /windows/i) {
-			#notify($ERRORS{'OK'},0,"checking $nodename $ipaddress");
-			undef @SSHCMD;
-			@SSHCMD = run_ssh_command($nodename, $identity_keys, "netstat -an", "root", 22, 0);
-			foreach my $line (@{$SSHCMD[1]}) {
-				chomp($line);
-				if ($line =~ /Connection refused/) {
-					notify($ERRORS{'WARNING'}, 0, "$line");
-					return 0;
-				}
-				#if($line =~ /\s+($ipaddress:3389)\s+([.0-9]*):([0-9]*)\s+(ESTABLISHED)/){
-				if ($line =~ /\s+(TCP\s+[.0-9]*:3389)\s+([.0-9]*):([0-9]*)\s+(ESTABLISHED)/) {
-					#notify($ERRORS{'WARNING'},0,"$line");
-					return 1 if ($2 eq $remoteIP);
-					if ($2 ne $remoteIP) {
-						notify($ERRORS{'WARNING'}, 0, "not correct remote IP is connected");
-						return 1;
-					}
-				}
-			} ## end foreach my $line (@{$SSHCMD[1]})
-		} ## end if ($osname =~ /win|vmwarewin/)
-		elsif ($image_os_type =~ /linux/i) {
-			undef @SSHCMD;
-			@SSHCMD = run_ssh_command($nodename, $identity_keys, "netstat -an", "root", 22, 0);
-			foreach my $line (@{$SSHCMD[1]}) {
-				chomp($line);
-				if ($line =~ /Warning/) {
-					if (known_hosts($nodename, "linux", $ipaddress)) {
-						#good
-					}
-					next;
-				}
-				if ($line =~ /Connection refused/) {
-					notify($ERRORS{'WARNING'}, 0, "$line");
-					return 0;
-				}
-				if ($line =~ /tcp\s+([0-9]*)\s+([0-9]*)\s($ipaddress:22)\s+([.0-9]*):([0-9]*)(.*)(ESTABLISHED)/) {
-					return 1 if ($4 eq $remoteIP);
-					if ($4 ne $remoteIP) {
-						notify($ERRORS{'WARNING'}, 0, "not correct remote IP connected: $line");
-						return 1;
-					}
-				}
-			} ## end foreach my $line (@{$SSHCMD[1]})
-		} 
-		return 0;
-	} ## end if ($type =~ /blade|virtualmachine/)
-	elsif ($type eq "lab") {
-		undef @SSHCMD;
-		@SSHCMD = run_ssh_command($nodename, $identity_keys, "netstat -an", "vclstaff", 24, 1);
-		foreach my $line (@{$SSHCMD[1]}) {
-			chomp($line);
-			if ($line =~ /Connection refused/) {
-				notify($ERRORS{'WARNING'}, 0, "$nodename $line");
-				return 0;
-			}
-			if ($osname =~ /sun4x_/) {
-				if ($line =~ /\s*($ipaddress\.22)\s+([.0-9]*)\.([0-9]*)(.*)(ESTABLISHED)/) {
-					return 1 if ($2 eq $remoteIP);
-					if ($2 ne $remoteIP) {
-						notify($ERRORS{'WARNING'}, 0, "not correct remote IP connected $4");
-						return 1;
-					}
-				}
-			}
-			elsif ($osname =~ /realmrhel3/) {
-				if ($line =~ /tcp\s+([0-9]*)\s+([0-9]*)\s($ipaddress:22)\s+([.0-9]*):([0-9]*)(.*)(ESTABLISHED)/) {
-					return 1 if ($4 eq $remoteIP);
-					if ($4 ne $remoteIP) {
-						notify($ERRORS{'WARNING'}, 0, "not correct remote IP connected $4");
-						return 1;
-					}
-				}
-			}
-		} ## end foreach my $line (@{$SSHCMD[1]})
-		return 0;
-	} ## end elsif ($type eq "lab")  [ if ($type =~ /blade|virtualmachine/)
-} ## end sub isconnected
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 update_preload_fla
 
  Parameters  : request id, flag 1,0
@@ -2431,50 +2307,6 @@ sub _sshd_status {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 _machine_os
-
- Parameters  : $node, $imagename, $log
- Returns     : 0 or system type name
- Description : actually logs into remote node
-=cut
-
-sub _machine_os {
-	my ($node, $imagename) = @_;
-	my ($package, $filename, $line, $sub) = caller(0);
-	notify($ERRORS{'WARNING'}, 0, "node is not defined") if (!(defined($node)));
-	if (!nmap_port($node, 22)) {
-		notify($ERRORS{'OK'}, 0, "ssh port not open cannot check $node OS");
-		return 0;
-	}
-	my $identity_keys = get_management_node_info()->{keys};
-	my @sshcmd = run_ssh_command($node, $identity_keys, "uname -s", "root");
-	foreach my $l (@{$sshcmd[1]}) {
-		if ($l =~ /CYGWIN_NT-5\.1/) {
-			return "WinXp";
-		}
-		elsif ($l =~ "CYGWIN_NT-5\.2") {
-			return "win2003";
-		}
-		elsif ($l =~ /Linux/) {
-			return "Linux";
-		}
-		elsif ($l =~ /Connection refused/) {
-			return 0;
-		}
-		elsif ($l =~ /No route to host/) {
-			return 0;
-		}
-		elsif ($l =~ /Permission denied/) {
-			return 0;
-		}
-		else {
-			return 0;
-		}
-	} ## end foreach my $l (@{$sshcmd[1]})
-} ## end sub _machine_os
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 nmap_port
 
  Parameters  : $hostname,n $port
@@ -2775,28 +2607,6 @@ sub notify_via_wall {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 isfilelocked
-
- Parameters  : $file - file path
- Returns     : 0 no or 1 yes
- Description : looks for supplied file
-					appends .lock to the end of supplied file
-
-=cut
-
-sub isfilelocked {
-	my ($file) = $_[0];
-	my $lockfile = $file . ".lock";
-	if (-r $lockfile) {
-		return 1;
-	}
-	else {
-		return 0;
-	}
-} ## end sub isfilelocked
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 lockfile
 
  Parameters  : $file
@@ -2823,28 +2633,6 @@ sub lockfile {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 unlockfile
-
- Parameters  : $file
- Returns     : 0 or 1
- Description : removes file if exists
-
-=cut
-
-sub unlockfile {
-	my ($file) = $_[0];
-	my $lockfile = $file . ".lock";
-	if (-r $lockfile) {
-		unlink $lockfile;
-	}
-	else {
-		# no lock file exists
-	}
-	return 1;
-} ## end sub unlockfile
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 notify_via_msg
 
  Parameters  : $node, $user, $message
@@ -3098,191 +2886,6 @@ EOF
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 collectsshkeys
-
- Parameters  : node
- Returns     : 0 or 1
- Description : collects ssh keys from client
-
-=cut
-
-sub collectsshkeys {
-	my $node = $_[0];
-	my ($package, $filename, $line, $sub) = caller(0);
-	notify($ERRORS{'WARNING'}, 0, "node is not defined") if (!(defined($node)));
-	if (!(defined($node))) {
-		return 0;
-	}
-	my ($id, $ipaddress, $type, $hostname, $currentimage, $osname);
-	#if lab client and OS is linux or solaris fetch ssh keys
-	#store repective key into computer table for the node
-	my $dbh = getnewdbh;
-	#collect a little information about the node.
-	my $sel = $dbh->prepare("SELECT c.id,c.IPaddress,c.hostname,c.type,o.name,i.name FROM computer c, OS o, image i WHERE c.currentimageid=i.id AND i.OSid=o.id AND c.hostname REGEXP ?") or notify($ERRORS{'WARNING'}, 0, "could not prepare collect computer detail statement" . $dbh->errstr());
-	$sel->execute($node) or notify($ERRORS{'WARNING'}, 0, "Problem could not execute on computer detail : " . $dbh->errstr);
-	my $rows = $sel->rows;
-	$sel->bind_columns(\($id, $ipaddress, $hostname, $type, $osname, $currentimage));
-
-	if ($rows) {
-		if ($sel->fetch) {
-			print "$id,$ipaddress,$hostname,$type,$osname,$currentimage\n";
-		}
-	}
-	else {
-		notify($ERRORS{'CRITICAL'}, 0, "no information found in computer table for $node ");
-		$dbh->disconnect if !defined $ENV{dbh};
-		return 0;
-	}
-
-	#what identity do we use
-	my $key = get_management_node_info()->{keys};
-
-	#send fetch keys flag to node
-	my @sshcmd = run_ssh_command($ipaddress, $key, "echo fetch > /home/vclstaff/clientdata; echo 1 > /home/vclstaff/flag", "vclstaff", "24");
-	foreach my $l (@{$sshcmd[1]}) {
-		if ($l =~ /Warning|denied|No such/) {
-			notify($ERRORS{'CRITICAL'}, 0, "node $node ouput @{ $sshcmd[1] }");
-		}
-	}
-	#retrieve the keys
-	#sleep 6, node flag check is every 5 sec
-	sleep 6;
-	my ($loop, $ct) = 0;
-	undef @sshcmd;
-	@sshcmd = run_ssh_command($ipaddress, $key, "ls -1", "vclstaff", "24");
-	foreach my $l (@{$sshcmd[1]}) {
-		chomp($l);
-
-		if ($l =~ /ssh_host/) {
-			#print "$l\n";
-			if (!(-d "/tmp/$id")) {
-				notify($ERRORS{'OK'}, 0, "creating /tmp/$id") if (mkdir("/tmp/$id"));
-			}
-			if (run_scp_command("vclstaff\@$ipaddress:/home/vclstaff/$l", "/tmp/$id/$l", $key, "24")) {
-				$ct++;
-			}
-		}
-	}    #foreach
-	if ($ct < 6) {
-		notify($ERRORS{'OK'}, 0, "count copied, is less than 6 trying again");
-		if ($loop > 2) {
-			notify($ERRORS{'CRITICAL'}, 0, "could not copy 6 ssh keys from $node");
-			$dbh->disconnect if !defined $ENV{dbh};
-			return 0;
-		}
-		$loop++;
-		goto COLLECT;
-	} ## end if ($ct < 6)
-	     #read in key files
-	my $dsa;
-	my $dsapub;
-	my $rsa;
-	my $rsapub;
-	my $hostbuffer = "";
-	my $hostpub;
-
-	if (open(DSA, "/tmp/$id/ssh_host_dsa_key")) {
-		print "slurping dsa_key\n";
-		#@dsa=<DSA>;
-		read(DSA, $dsa, 1024);
-		close(DSA);
-	}
-	else {
-		notify($ERRORS{'CRITICAL'}, 0, "could not open dsa file $!");
-	}
-
-	if (open(DSAPUB, "/tmp/$id/ssh_host_dsa_key.pub")) {
-		print "slurping dsa_pub_key\n";
-		#@dsapub=<DSAPUB>;
-		read(DSAPUB, $dsapub, 1024);
-		close(DSAPUB);
-	}
-	else {
-		notify($ERRORS{'CRITICAL'}, 0, "could not open dsa.pub file $!");
-	}
-
-	if (open(RSA, "/tmp/$id/ssh_host_rsa_key")) {
-		print "slurping rsa_key\n";
-		#@rsa=<RSA>;
-		read(RSA, $rsa, 1024);
-		close(RSA);
-	}
-	else {
-		notify($ERRORS{'CRITICAL'}, 0, "could not open rsa file $!");
-	}
-
-	if (open(RSAPUB, "/tmp/$id/ssh_host_rsa_key.pub")) {
-		print "slurping rsa_pub_key\n";
-		#@rsapub=<RSAPUB>;
-		read(RSAPUB, $rsapub, 1024);
-		close(RSAPUB);
-	}
-	else {
-		notify($ERRORS{'CRITICAL'}, 0, "could not open rsa.pub file $!");
-	}
-
-	if (open(HOSTPUB, "/tmp/$id/ssh_host_key.pub")) {
-		print "slurping host_pub_key\n";
-		#@hostpub=<HOSTPUB>;
-		read(HOSTPUB, $hostpub, 1024);
-		close(HOSTPUB);
-	}
-	else {
-		notify($ERRORS{'CRITICAL'}, 0, "could not open host.pub file $!");
-	}
-
-	#binary file
-	if (open(HOST, "/tmp/$id/ssh_host_key.pub")) {
-		print "slurping host_key\n";
-		binmode(HOST);
-		my $r = read(HOST, $hostbuffer, 1024);
-		#@hostbuffer=<HOST>;
-		close(HOST);
-		if (defined($r)) {
-			#print "read $r k chunks on binary file ssh_host_key.pub\n";
-			#notify($ERRORS{'OK'},0,"read $r k chunks on binary file ssh_host_key.pub");
-			#print "uploading: $dsa\n $dsapub\n$rsa\n$rsapub\n$hostbuffer\n$hostpub \n $id\n";
-		}
-		else {
-			#print "could not read binary file ssh_host_key.pub\n";
-			notify($ERRORS{'CRITICAL'}, 0, "could not read binary file ssh_host_key.pub");
-		}
-	} ## end if (open(HOST, "/tmp/$id/ssh_host_key.pub"...
-	else {
-		notify($ERRORS{'CRITICAL'}, 0, "could not open host binary file $!");
-	}
-
-	#print "uploading: @dsa\n @dsapub\n @rsa\n @rsapub\n $hostbuffer \n,@hostpub \n $id\n";
-	#upload keys to db
-
-	my $update = $dbh->prepare("UPDATE computer SET dsa=?,dsapub=?,rsa=?,rsapub=?,hostpub=? WHERE id=?") or print "could not prepare update key statement node= $node id= $id" . $dbh->errstr();
-	$update->execute($dsa, $dsapub, $rsa, $rsapub, $hostpub, $id) or print "Problem could not execute on update key statement node= $node id= $id: " . $dbh->errstr;
-
-	$dbh->disconnect if !defined $ENV{dbh};
-
-} ## end sub collectsshkeys
-
-#/////////////////////////////////////////////////////////////////////////////
-
-=head2  restoresshkeys
-
- Parameters  : node
- Returns     : 0 or 1
- Description : NOT COMPLETED
-					connects to node and replaces ssh keys with keys stored in db
-=cut
-
-sub restoresshkeys {
-	my $node = $_[0];
-	my ($package, $filename, $line, $sub) = caller(0);
-	notify($ERRORS{'WARNING'}, 0, "node is not defined") if (!(defined($node)));
-	if (!(defined($node))) {
-		return 0;
-	}
-}
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2  notifyviaIM
 
  Parameters  : IM type, IM user ID, message string
@@ -3376,101 +2979,6 @@ sub notify_via_IM {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 check_uptime
-
- Parameters  : $node, $IPaddress, $OSname, $type, $log
- Returns     : value or 0(failed) + failure message
- Description : fetchs uptime of remote node
-
-=cut
-
-sub check_uptime {
-	my ($node, $IPaddress, $OSname, $type, $log) = @_;
-	my ($package, $filename, $line, $sub) = caller(0);
-	$log = 0 if (!(defined($log)));
-	notify($ERRORS{'WARNING'}, $log, "node is not defined")      if (!(defined($node)));
-	notify($ERRORS{'WARNING'}, $log, "IPaddress is not defined") if (!(defined($IPaddress)));
-	notify($ERRORS{'WARNING'}, $log, "OSname is not defined")    if (!(defined($OSname)));
-	notify($ERRORS{'WARNING'}, $log, "type is not defined")      if (!(defined($type)));
-
-	if ($type eq "lab") {
-		my $identity_keys = get_management_node_info()->{keys};
-
-		my @sshcmd = run_ssh_command($node, $identity_keys, "uptime", "vclstaff", "24");
-		my $l;
-		foreach $l (@{$sshcmd[1]}) {
-			if ($l =~ /(\s*\d*:\d*:\d*\s*up\s*)(\d*)(\s*days,)/) {
-				return $2;
-			}
-			if ($l =~ /^(\s*\d*:\d*)(am|pm)(\s*up\s*)(\d*)(\s*day)/) {
-				return $4;
-			}
-			if ($l =~ /(\s*\d*:\d*:\d*\s*up)/) {
-				return 1;
-			}
-			if ($l =~ /password/) {
-				notify($ERRORS{'WARNING'}, $log, "@{ $sshcmd[1] }");
-				return (0, $l);
-			}
-		} ## end foreach $l (@{$sshcmd[1]})
-
-
-	} ## end if ($type eq "lab")
-	elsif ($type eq "blade") {
-		return 0;
-	}
-	elsif ($type eq "virtualmachine") {
-		return 0;
-	}
-
-} ## end sub check_uptime
-
-#/////////////////////////////////////////////////////////////////////////////
-
-=head2  timefloor15interval
-
- Parameters  : time string(optional)
- Returns     : the nearest 15 minute interval 0,15,30,45 less than the current time and zero seconds
- Description :
-
-=cut
-
-sub timefloor15interval {
-	my $time = $_[0];
-	# we got nothing set to current time
-	if (!defined($time)) {
-		$time = makedatestring;
-	}
-	#we got a null timestamp, set it to current time
-	if ($time =~ /0000-00-00 00:00:00/) {
-		$time = makedatestring;
-	}
-
-	#format received: year-mon-mday hr:min:sec
-	my ($vardate, $vartime) = split(/ /, $time);
-	my ($yr, $mon, $mday) = split(/-/, $vardate);
-	my ($hr, $min, $sec)  = split(/:/, $vartime);
-	$sec = "0";
-	if ($min < 15) {
-		$min = 0;
-	}
-	elsif ($min < 30) {
-		$min = 15;
-	}
-	elsif ($min < 45) {
-		$min = 30;
-	}
-	elsif ($min < 60) {
-		$min = 45;
-	}
-
-	my $datestring = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $yr, $mon, $mday, $hr, $min, $sec);
-	return $datestring;
-
-} ## end sub timefloor15interval
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 insertloadlog
 
  Parameters  : $resid,   $computerid, $loadstatename, $additionalinfo
@@ -3583,39 +3091,6 @@ sub insertloadlog {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 checkonprocess
-
- Parameters  : $state, $requestid
- Returns     : 0 or 1
- Description : checks the process list to confirm the process for given request is actually running
-					in case the process dies for some reason
-
-=cut
-
-
-sub checkonprocess {
-	my ($request_state_name, $request_id) = @_;
-
-	notify($ERRORS{'WARNING'}, 0, "state is not defined")     if (!(defined($request_state_name)));
-	notify($ERRORS{'WARNING'}, 0, "requestid is not defined") if (!(defined($request_id)));
-	return if (!(defined($request_state_name)));
-	return if (!(defined($request_id)));
-
-	# Use the pgrep utility to find processes matching the state and request ID
-	if (open(PGREP, "/bin/pgrep -fl '$request_state_name $request_id' 2>&1 |")) {
-		my @process_list = <PGREP>;
-		close(PGREP);
-		notify($ERRORS{'DEBUG'}, 0, "pgrep found " . scalar @process_list . " processes matching state=$request_state_name and request=$request_id");
-		return scalar @process_list;
-	}
-	else {
-		notify($ERRORS{'WARNING'}, 0, "failed to open handle for pgrep process");
-		return;
-	}
-} ## end sub checkonprocess
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 kill_reservation_process
 
  Parameters  : $request_state_name, $reservation_id
@@ -5248,76 +4723,6 @@ sub write_currentimage_txt {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 vmwareclone
-
- Parameters  : $hostnode, $identity, $srcDisk, $dstDisk, $dstDir
- Returns     : 1 if successful, 0 if error occurred
- Description : using vm tools clone srcdisk to dstdisk
-				  	currently using builtin vmkfstools
-
-=cut
-
-=pod
-
-sub vmwareclone {
-	my ($hostnode, $identity, $srcDisk, $dstDisk, $dstDir) = @_;
-	my ($package, $filename, $line, $sub) = caller(0);
-
-	#TODO - add checks for VI toolkit - then use vmclone.pl instead
-	#vmclone.pl would need additional parameters
-
-	my @list = run_ssh_command($hostnode, $identity, "ls -1 $srcDisk", "root");
-	my $srcDiskexist = 0;
-
-	foreach my $l (@{ $list[1] }) {
-		$srcDiskexist = 1 if ($l =~ /($srcDisk)$/);
-		$srcDiskexist = 0 if ($l =~ /No such file or directory/);
-		notify($ERRORS{'OK'}, 0, "$l");
-	}
-	my @ssh;
-	if ($srcDiskexist) {
-		#make dir for dstdisk
-		my @mkdir = run_ssh_command($hostnode, $identity, "mkdir -m 755 $dstDir", "root");
-		notify($ERRORS{'OK'}, 0, "srcDisk is exists $srcDisk ");
-		notify($ERRORS{'OK'}, 0, "starting clone process vmkfstools -d thin -i $srcDisk $dstDisk");
-		if (open(SSH, "/usr/bin/ssh -x -q -i $identity -l root $hostnode \"vmkfstools -i $srcDisk -d thin $dstDisk\" 2>&1 |")) {
-			#@ssh=<SSH>;
-			#close(SSH);
-			#foreach my $l (@ssh) {
-			#  notify($ERRORS{'OK'},0,"$l");
-			#}
-			while (<SSH>) {
-				notify($ERRORS{'OK'}, 0, "started $_") if ($_ =~ /Destination/);
-				notify($ERRORS{'OK'}, 0, "started $_") if ($_ =~ /Cloning disk/);
-				notify($ERRORS{'OK'}, 0, "status $_")  if ($_ =~ /Clone:/);
-			}
-			close(SSH);
-		} ## end if (open(SSH, "/usr/bin/ssh -x -q -i $identity -l root $hostnode \"vmkfstools  -i $srcDisk -d thin $dstDisk\" 2>&1 |"...
-	} ## end if ($srcDiskexist)
-	else {
-		notify($ERRORS{'OK'}, 0, "srcDisk $srcDisk does not exists");
-	}
-	#confirm
-	@list = 0;
-	@list = run_ssh_command($hostnode, $identity, "ls -1 $dstDisk", "root");
-	my $dstDiskexist = 0;
-	foreach my $l (@{ $list[1] }) {
-		$dstDiskexist = 1 if ($l =~ /($dstDisk)$/);
-		$dstDiskexist = 0 if ($l =~ /No such file or directory/);
-	}
-	if ($dstDiskexist) {
-		return 1;
-	}
-	else {
-		notify($ERRORS{'WARNING'}, 0, "clone process failed dstDisk $dstDisk does not exist");
-		return 0;
-	}
-} ## end sub vmwareclone
-
-=cut
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 get_management_predictive_info
 
  Parameters  : Either a management node hostname or database ID
@@ -6086,86 +5491,6 @@ sub get_computer_current_state_name {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 construct_image_name
-
- Parameters  : $image_name, $specified_version
- Returns     : String containing a new image name.
-					If no number is specified, version is incremented by 1.
-					If number is specified, version is set to that number
- Description :
-
-=cut
-
-
-sub construct_image_name {
-	my ($image_name, $specified_version, $os_name) = @_;
-
-	my ($package, $filename, $line, $sub) = caller(0);
-
-	# Check the passed parameter
-	if (!(defined($image_name))) {
-		notify($ERRORS{'WARNING'}, 0, "image name was not specified");
-		return 0;
-	}
-
-	# If version was specified, check to make sure it's just numerical digits
-	if (defined($specified_version) && $specified_version !~ /^\d+$/) {
-		notify($ERRORS{'WARNING'}, 0, "specified version is not in the correct format: $specified_version");
-		return 0;
-	}
-
-	# Image Name Format: osname-longnameid-v#
-	# Example: winxp-Thisistheimagename23-v0
-
-	# Split the image name by dashes
-	my @name_sections = split(/-/, $image_name);
-	my $section_count = scalar @name_sections;
-
-	# Check to make sure at least 3 sections were found (separated by "-")
-	if ($section_count < 3) {
-		notify($ERRORS{'WARNING'}, 0, "image name is in the wrong format, cannot construct: $image_name");
-		return 0;
-	}
-
-	# The OS should be the first section
-	my $os_section = $name_sections[0];
-
-	# If an OS name was passed as an argument use it, otherwise use the OS name from the previous image name
-	if (defined $os_name && $os_name ne '') {
-		$os_section = $os_name;
-	}
-
-	# The version should be the last section
-	my $version_section = $name_sections[$section_count - 1];
-
-	# Everything in between should be the image name and version
-	my $name_section = join('-', @name_sections[1 .. ($section_count - 2)]);
-
-	# Check to make sure the version number is valid
-	if ($version_section =~ /^([v|V])([0-9]+)/) {
-		my $v              = $1;
-		my $version_number = $2;
-
-		# Increment version number or use the specified version if it was passed
-		if (defined($specified_version)) {
-			$version_number = $specified_version;
-		}
-		else {
-			$version_number++;
-		}
-
-		return $os_section . "-" . "$name_section" . "-" . $v . $version_number;
-	} ## end if ($version_section =~ /^([v|V])([0-9]+)/)
-
-	else {
-		notify($ERRORS{'WARNING'}, 0, "could not detect version number from image name: $image_name");
-		return 0;
-	}
-
-} ## end sub construct_image_name
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 update_log_ending
 
  Parameters  : $log_id, $ending
@@ -6854,57 +6179,6 @@ sub set_logfile_path {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 get_highest_imagerevision_info
-
- Parameters  : $image_id
- Returns     : Hash containing image revision data
- Description :
-
-=cut
-
-
-sub get_highest_imagerevision_info {
-	my ($image_id) = @_;
-	
-	# Check the passed parameter
-	if (!defined($image_id)) {
-		notify($ERRORS{'WARNING'}, 0, "image ID argument was not specified");
-		return;
-	}
-
-	# Select the highest image revision id for the specified image id
-	my $select_statement = <<EOF;
-SELECT
-MAX(imagerevision.id) AS id
-FROM
-imagerevision
-WHERE
-imagerevision.imageid = '$image_id'
-EOF
-
-	# Call the database select subroutine
-	# This will return an array of one or more rows based on the select statement
-	my @selected_rows = database_select($select_statement);
-
-	# Check to make sure 1 row was returned
-	if (!@selected_rows) {
-		notify($ERRORS{'WARNING'}, 0, "image revision data for image ID $image_id was not found in the database, 0 rows were returned");
-		return;
-	}
-	elsif (scalar @selected_rows > 1) {
-		notify($ERRORS{'WARNING'}, 0, scalar @selected_rows . " rows were returned from database select statement:\n$select_statement");
-		return ();
-	}
-
-	# A single row was returned
-	my $row = $selected_rows[0];
-	my $imagerevision_id = $row->{id};
-
-	return get_imagerevision_info($imagerevision_id);
-}
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 switch_state
 
  Parameters  : $request_data, $request_state_name_new, $computer_state_name_new, $request_log_ending, $exit
@@ -7623,62 +6897,6 @@ EOF
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 get_user_affiliation
-
- Parameters  : $user_id
- Returns     : scalar - affiliation name
- Description :
-
-=cut
-
-sub get_user_affiliation {
-	my ($user_id) = shift;
-	
-	if(!defined($user_id)){
-		notify($ERRORS{'WARNING'}, $LOGFILE, "user_id was not supplied");
-		return 0;
-	}
-	
-	my $select_statement = <<EOF;
-SELECT DISTINCT
-affiliation.name
-FROM
-user,
-affiliation
-WHERE
-affiliation.id = user.affiliationid AND
-user.id = $user_id
-EOF
-
-	# Call the database select subroutine
-	# This will return an array of one or more rows based on the select statement
-	my @selected_rows = database_select($select_statement);
-	
-	# Check to make sure 1 row was returned
-	if (scalar @selected_rows == 0) {
-		notify($ERRORS{'WARNING'}, 0, "zero rows were returned from database select");
-		return ();
-	}
-	elsif (scalar @selected_rows > 1) {
-		notify($ERRORS{'WARNING'}, 0, "" . scalar @selected_rows . " rows were returned from database select");
-		return ();
-	}
-	
-	# Get the single returned row
-	# It contains a hash
-	
-	# Make sure we return undef if the column wasn't found
-	if (defined $selected_rows[0]{name}) {
-		my $name = $selected_rows[0]{name};
-		return $name;
-	}
-	else {
-		return undef;
-	}
-}
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 get_local_user_info
 
  Parameters  : none
@@ -9534,82 +8752,6 @@ sub get_current_subroutine_name {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 disablesshd
-
- Parameters  : $hostname, $unityname, $remoteIP, $state, $osname, $log
- Returns     : 1 success 0 failure
- Description : using ssh identity key log into remote lab machine
-					and set flag for vclclientd to disable sshd for  remote user
-
-=cut
-
-sub disablesshd {
-	my ($hostname, $unityname, $remoteIP, $state, $osname, $log) = @_;
-	my ($package, $filename, $line, $sub) = caller(0);
-	$log = 0 if (!(defined($log)));
-	notify($ERRORS{'WARNING'}, $log, "hostname is not defined")  if (!(defined($hostname)));
-	notify($ERRORS{'WARNING'}, $log, "unityname is not defined") if (!(defined($unityname)));
-	notify($ERRORS{'WARNING'}, $log, "remoteIP is not defined")  if (!(defined($remoteIP)));
-	notify($ERRORS{'WARNING'}, $log, "state is not defined")     if (!(defined($state)));
-	notify($ERRORS{'WARNING'}, $log, "osname is not defined")    if (!(defined($osname)));
-
-	if (!(defined($remoteIP))) {
-		$remoteIP = "127.0.0.1";
-	}
-	my @lines;
-	my $l;
-	my $identity_keys = get_management_node_info()->{keys};
-	# create clientdata file
-	my $clientdata = "/tmp/clientdata.$hostname";
-	if (open(CLIENTDATA, ">$clientdata")) {
-		print CLIENTDATA "$state\n";
-		print CLIENTDATA "$unityname\n";
-		print CLIENTDATA "$remoteIP\n";
-		close CLIENTDATA;
-
-		# scp to hostname
-		my $target = "vclstaff\@$hostname:/home/vclstaff/clientdata";
-		if (run_scp_command($clientdata, $target, $identity_keys, "24")) {
-			notify($ERRORS{'OK'}, $log, "Success copied $clientdata to $target");
-			unlink($clientdata);
-
-			# send flag to activate changes
-			my @sshcmd = run_ssh_command($hostname, $identity_keys, "echo 1 > /home/vclstaff/flag", "vclstaff", "24");
-			notify($ERRORS{'OK'}, $log, "setting flag to 1 on $hostname");
-
-			my $nmapchecks = 0;
-			# return nmap check
-
-			NMAPPORT:
-			if (!(nmap_port($hostname, 22))) {
-				return 1;
-			}
-			else {
-				if ($nmapchecks < 5) {
-					$nmapchecks++;
-					sleep 1;
-					notify($ERRORS{'OK'}, $log, "port 22 not closed yet calling NMAPPORT code block");
-					goto NMAPPORT;
-				}
-				else {
-					notify($ERRORS{'WARNING'}, $log, "port 22 never closed on client $hostname");
-					return 0;
-				}
-			} ## end else [ if (!(nmap_port($hostname, 22)))
-		} ## end if (run_scp_command($clientdata, $target, ...
-		else {
-			notify($ERRORS{'OK'}, $log, "could not copy src=$clientdata to target=$target");
-			return 0;
-		}
-	} ## end if (open(CLIENTDATA, ">$clientdata"))
-	else {
-		notify($ERRORS{'WARNING'}, $log, "could not open /tmp/clientdata.$hostname $! ");
-		return 0;
-	}
-} ## end sub disablesshd
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 get_affiliation_info
 
  Parameters  : Affiliation ID (optional)
@@ -10518,51 +9660,6 @@ sub hash_to_xml_string {
 
 #/////////////////////////////////////////////////////////////////////////////
 
-=head2 get_array_summary_string
-
- Parameters  : $array_ref or @array
- Returns     : string
- Description : Formats a string from an array. If there are more than 3 elements
-               in the array, the values are summarized:
-					/vmwarelinux-RHEL54Small2251-v1-s001.vmdk
-               ...14 additional entries...
-               /vmwarelinux-RHEL54Small2251-v1-s016.vmdk
-
-
-=cut
-
-sub get_array_summary_string {
-	my @arguments = @_;
-	if (!@arguments) {
-		return '';
-	}
-	elsif (scalar(@arguments) == 1) {
-		if (!ref($arguments[0])) {
-			return $arguments[0];
-		}
-		elsif (ref($arguments[0]) eq 'ARRAY') {
-			@arguments = @{$arguments[0]};
-		}
-		else {
-			notify($ERRORS{'WARNING'}, 0, "argument is not an array reference: " . ref($arguments[0]));
-			return '';
-		}
-	}
-
-	my $array_size = scalar(@arguments);
-	if ($array_size == 1) {
-		return $arguments[0];
-	}
-	if ($array_size > 3) {
-		return "$arguments[0]\n..." . ($array_size-2) . " additional entries...\n$arguments[-1]";
-	}
-	else {
-		return join("\n", @arguments);
-	}
-}
-
-#/////////////////////////////////////////////////////////////////////////////
-
 =head2 sort_by_file_name
 
  Parameters  : @file_paths