<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=VI-DB_vmtools.php_v2</id>
	<title>VI-DB vmtools.php v2 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://vwiki.co.uk/index.php?action=history&amp;feed=atom&amp;title=VI-DB_vmtools.php_v2"/>
	<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=VI-DB_vmtools.php_v2&amp;action=history"/>
	<updated>2026-04-19T05:22:42Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=VI-DB_vmtools.php_v2&amp;diff=1410&amp;oldid=prev</id>
		<title>Sstrutt: Initial creation</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=VI-DB_vmtools.php_v2&amp;diff=1410&amp;oldid=prev"/>
		<updated>2011-08-31T14:06:31Z</updated>

		<summary type="html">&lt;p&gt;Initial creation&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html xmlns=&amp;#039;http://www.w3.org/TR/REC-html40&amp;#039;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Version 2.0 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;title&amp;gt;vi-db (vmtools)&amp;lt;/title&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;#039;SHORTCUT ICON&amp;#039; href=&amp;#039;favicon.ico&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;link rel=&amp;#039;stylesheet&amp;#039; type=&amp;#039;text/css&amp;#039; href=&amp;#039;alpha.css&amp;#039; /&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;#039;Author&amp;#039; content=&amp;#039;Simon Strutt&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;meta name=&amp;#039;Description&amp;#039; content=&amp;#039;VI Info&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=iso-8859-1&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;image/jpeg&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;#039;Pragma&amp;#039; content=&amp;#039;no-cache&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;meta http-equiv=&amp;#039;Expires&amp;#039; content=&amp;#039;900&amp;#039;&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
$time_start = microtime(true);&lt;br /&gt;
&lt;br /&gt;
//Local variables etc&lt;br /&gt;
require &amp;#039;config.php&amp;#039;;&lt;br /&gt;
$self = $_SERVER[&amp;#039;PHP_SELF&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
// open connection and select database&lt;br /&gt;
$connection = mysql_connect($host, $user, $pass) or die (&amp;quot;Unable to connect to database!&amp;quot;);&lt;br /&gt;
mysql_select_db($db) or die (&amp;quot;Unable to select database!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
//Set debug on if required&lt;br /&gt;
if (array_key_exists(&amp;#039;debug&amp;#039;, $_REQUEST) and ($_REQUEST[&amp;quot;debug&amp;quot;] == 1)) {&lt;br /&gt;
	$debug = 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// show parameters and errors&lt;br /&gt;
if ($debug) {&lt;br /&gt;
	error_reporting(-1);&lt;br /&gt;
	print_r($_REQUEST);&lt;br /&gt;
	print &amp;quot;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;DISCLAIMER: Please use all information gained from here with caution - I haven&amp;#039;t performed exhaustive validation and testing of any of the information that may be presented.&amp;lt;br&amp;gt;\n&amp;quot;;&lt;br /&gt;
print &amp;quot;If you&amp;#039;re making changes or decisions, please double check with the reality of what is displayed by the vCentre servers.  You retain full responsibility for your actions...!\n &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;&amp;lt;h1&amp;gt;VM&amp;#039;s with Problematic VMTools&amp;lt;/h1&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
if (array_key_exists(&amp;#039;clid&amp;#039;, $_REQUEST)) {&lt;br /&gt;
	$cl_link = &amp;quot;&amp;amp;clid=&amp;quot;.$_REQUEST[&amp;quot;clid&amp;quot;];&lt;br /&gt;
	$clid=$_REQUEST[&amp;quot;clid&amp;quot;];&lt;br /&gt;
} else {&lt;br /&gt;
	$cl_link = &amp;quot;&amp;quot;;&lt;br /&gt;
	$clid=0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//Initial summary query&lt;br /&gt;
$query = &amp;quot;SELECT vc.name AS vc, cluster.clid, cluster.name AS cluster, COUNT(vmid) AS VMs, SUM(IF(tools=&amp;#039;toolsOld&amp;#039;,1,0)) AS old, SUM(IF(tools=&amp;#039;toolsNotRunning&amp;#039;,1,0)) AS stop, &amp;quot;;&lt;br /&gt;
$query .= &amp;quot;SUM(IF(tools=&amp;#039;toolsNotInstalled&amp;#039;,1,0)) AS noinstall FROM vm JOIN vc USING (vcid) JOIN cluster USING (clid) JOIN vm_ext USING (vmid) WHERE vm.exist=1 AND vm.is_on=1 &amp;quot;;&lt;br /&gt;
$query .= &amp;quot;AND tools!=&amp;#039;ToolsOK&amp;#039; GROUP BY clid ORDER BY vc, cluster.name;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$result = mysql_query($query);&lt;br /&gt;
//print $query;&lt;br /&gt;
if (mysql_num_rows($result) == 0) {&lt;br /&gt;
	die (&amp;quot;No machines found...!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;&amp;lt;table class=&amp;#039;BasicTable&amp;#039; align=&amp;#039;center&amp;#039;&amp;gt;\n&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;vCentre&amp;lt;th&amp;gt;Cluster&amp;lt;th&amp;gt;Out of&amp;lt;br&amp;gt;Date&amp;lt;th&amp;gt;Not&amp;lt;br&amp;gt;Running&amp;lt;th&amp;gt;Not&amp;lt;br&amp;gt;Installed&amp;lt;th&amp;gt;Total\n&amp;quot;;&lt;br /&gt;
while ($row = mysql_fetch_assoc($result)) {&lt;br /&gt;
	print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;vc&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#039;$self?clid=&amp;quot;.$row[&amp;#039;clid&amp;#039;].&amp;quot;&amp;#039;&amp;gt;&amp;quot;.$row[&amp;#039;cluster&amp;#039;].&amp;quot;&amp;lt;td class=&amp;#039;num&amp;#039;&amp;gt;&amp;quot;.$row[&amp;#039;old&amp;#039;].&amp;quot;&amp;lt;td class=&amp;#039;num&amp;#039;&amp;gt;&amp;quot;.$row[&amp;#039;stop&amp;#039;].&amp;quot;&amp;lt;td class=&amp;#039;num&amp;#039;&amp;gt;&amp;quot;.$row[&amp;#039;noinstall&amp;#039;].&amp;quot;&amp;lt;td class=&amp;#039;num&amp;#039;&amp;gt;&amp;quot;.$row[&amp;#039;VMs&amp;#039;];&lt;br /&gt;
}&lt;br /&gt;
if (array_key_exists(&amp;#039;clid&amp;#039;, $_REQUEST)) {&lt;br /&gt;
	print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;#039;center&amp;#039; colspan=6&amp;gt;&amp;lt;a href=$self&amp;gt;For All Clusters&amp;lt;/a&amp;gt;\n&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
	print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td align=&amp;#039;center&amp;#039; colspan=6&amp;gt;&amp;lt;b&amp;gt;&amp;amp;uarr; &amp;amp;uarr;&amp;lt;/b&amp;gt; Filter On Cluster\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// Detail query&lt;br /&gt;
$query = &amp;quot;SELECT vc.name AS vc, cluster.name AS cl, vm.vmid, vm.name AS vm, vm_ext.vc_path, vm_ext.tools FROM vm JOIN vc USING (vcid) JOIN cluster USING (clid) JOIN vm_ext USING (vmid) &amp;quot;;&lt;br /&gt;
$query .= &amp;quot;WHERE vm.exist=1 AND vm.is_on=1 AND tools!=&amp;#039;ToolsOK&amp;#039; &amp;quot;;&lt;br /&gt;
if ($clid &amp;gt; 0) {&lt;br /&gt;
	$query .= &amp;quot;AND cluster.clid=$clid ORDER BY cl, vc_path, vm.name;&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
	$query .= &amp;quot;ORDER BY cl, vc_path, vm.name;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
if ($debug == 1) {print ($query);}&lt;br /&gt;
$result = mysql_query($query);&lt;br /&gt;
&lt;br /&gt;
if (mysql_num_rows($result) == 0) {&lt;br /&gt;
	die (&amp;quot;None...!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;lt;table class=&amp;#039;BasicTable&amp;#039; align=&amp;#039;center&amp;#039;&amp;gt;\n&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;vCentre&amp;lt;th&amp;gt;Cluster&amp;lt;th&amp;gt;Folder&amp;lt;th&amp;gt;VM Name&amp;lt;th&amp;gt;Tools State\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$vms = mysql_fetch_all($result, MYSQL_ASSOC);&lt;br /&gt;
$odd_row = false;&lt;br /&gt;
foreach ($vms as $vm) {&lt;br /&gt;
	$odd_row = !$odd_row;&lt;br /&gt;
	if ($odd_row) {&lt;br /&gt;
		print &amp;quot;&amp;lt;tr class=&amp;#039;odd&amp;#039;&amp;gt;&amp;quot;;&lt;br /&gt;
	} else {&lt;br /&gt;
		print &amp;quot;&amp;lt;tr&amp;gt;&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	print &amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$vm[&amp;#039;vc&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$vm[&amp;#039;cl&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$vm[&amp;#039;vc_path&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;lt;a href=vm-detail.php?vmid=&amp;quot;.$vm[&amp;#039;vmid&amp;#039;].&amp;quot;&amp;gt;&amp;quot;.$vm[&amp;#039;vm&amp;#039;].&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;td&amp;gt;&amp;quot;;&lt;br /&gt;
	if ($vm[&amp;#039;tools&amp;#039;] == &amp;#039;toolsOld&amp;#039;) {&lt;br /&gt;
		$vm[&amp;#039;tools&amp;#039;] = &amp;#039;Out of Date&amp;#039;;&lt;br /&gt;
	} elseif ($vm[&amp;#039;tools&amp;#039;] == &amp;#039;toolsNotRunning&amp;#039;) {&lt;br /&gt;
		$vm[&amp;#039;tools&amp;#039;] = &amp;#039;Not Running&amp;#039;;&lt;br /&gt;
	} elseif ($vm[&amp;#039;tools&amp;#039;] == &amp;#039;toolsNotInstalled&amp;#039;) {&lt;br /&gt;
		$vm[&amp;#039;tools&amp;#039;] = &amp;#039;Not Installed&amp;#039;;&lt;br /&gt;
	}&lt;br /&gt;
	print $vm[&amp;#039;tools&amp;#039;].&amp;quot;\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;&amp;lt;br&amp;gt;&amp;lt;table class=&amp;#039;NavTable&amp;#039; align=&amp;#039;center&amp;#039; valign=&amp;#039;top&amp;#039;&amp;gt;&amp;lt;th&amp;gt;Main Pages:&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#039;index.php&amp;#039;&amp;gt;Search page&amp;lt;/a&amp;gt;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#039;status.php&amp;#039;&amp;gt;Status page&amp;lt;/a&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;\n&amp;quot;;&lt;br /&gt;
	&lt;br /&gt;
$time = round((microtime(true) - $time_start)*1000);&lt;br /&gt;
print &amp;quot;Page took $time msecs to execute on server&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ------------------- End of HTML ---------------------------------&lt;br /&gt;
print &amp;quot;&amp;lt;/body&amp;gt;&amp;lt;html&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ================ FUNCTIONS ============================&lt;br /&gt;
&lt;br /&gt;
function search_char ($text) {&lt;br /&gt;
	&lt;br /&gt;
	return (str_replace(array(&amp;quot;*&amp;quot;, &amp;quot;?&amp;quot;), array(&amp;quot;%&amp;quot;, &amp;quot;_&amp;quot;), trim($text)));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function mysql_fetch_all($result) {&lt;br /&gt;
   while($row=mysql_fetch_array($result, MYSQL_ASSOC)) {&lt;br /&gt;
       $return[] = $row;&lt;br /&gt;
   }&lt;br /&gt;
   return $return;&lt;br /&gt;
}&lt;br /&gt;
	&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
</feed>