<?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_index.php_v1.1</id>
	<title>VI-DB index.php v1.1 - 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_index.php_v1.1"/>
	<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=VI-DB_index.php_v1.1&amp;action=history"/>
	<updated>2026-04-19T06:46:17Z</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_index.php_v1.1&amp;diff=1415&amp;oldid=prev</id>
		<title>Sstrutt: Minor correction</title>
		<link rel="alternate" type="text/html" href="http://vwiki.co.uk/index.php?title=VI-DB_index.php_v1.1&amp;diff=1415&amp;oldid=prev"/>
		<updated>2011-09-08T10:42:09Z</updated>

		<summary type="html">&lt;p&gt;Minor correction&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:42, 8 September 2011&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l159&quot;&gt;Line 159:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 159:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &amp;quot;&amp;lt;li&amp;gt;Wildcards etc...\n&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &amp;quot;&amp;lt;li&amp;gt;Wildcards etc...\n&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &amp;quot;    &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;* - matches any character none or more times&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &amp;quot;    &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;* - matches any character none or more times&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &quot;        &amp;lt;li&amp;gt;? - matches any character exactly once &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(eg GWA-SR-MSSQL-?0 would match GWA-SR-MSSQL-10, GWA-SR-MSSQL-20, etc)&lt;/del&gt;&amp;lt;/li&amp;gt;\n&quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &quot;        &amp;lt;li&amp;gt;? - matches any character exactly once&amp;lt;/li&amp;gt;\n&quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &amp;quot;        &amp;lt;li&amp;gt;Fuzzy name searches provide broader results, which will normally find VM&amp;#039;s despite typos etc&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;\n&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &amp;quot;        &amp;lt;li&amp;gt;Fuzzy name searches provide broader results, which will normally find VM&amp;#039;s despite typos etc&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;\n&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &amp;quot;&amp;lt;li&amp;gt;VM IP&amp;#039;s and Hostnames are only known if the VM was up with VM Tools running when a data collection run occurred&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	print &amp;quot;&amp;lt;li&amp;gt;VM IP&amp;#039;s and Hostnames are only known if the VM was up with VM Tools running when a data collection run occurred&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
	<entry>
		<id>http://vwiki.co.uk/index.php?title=VI-DB_index.php_v1.1&amp;diff=1259&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_index.php_v1.1&amp;diff=1259&amp;oldid=prev"/>
		<updated>2011-03-30T12:16:26Z</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 1.1 --&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&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;
&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;
print &amp;quot;&amp;lt;!--[if IE]&amp;gt;\n&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;span style=&amp;#039;color:red;&amp;#039;&amp;gt;&amp;lt;b&amp;gt;Internet Explorer is not supported - the search form will not work properly due to a long standing IE bug, use any other browser&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;\n&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;![endif]--&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ----------------- Layout table --------------------------------&lt;br /&gt;
print &amp;quot;&amp;lt;table align=&amp;#039;center&amp;#039; cellspacing=10&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;#039;top&amp;#039;&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ----------------- vCentre table -------------------------------&lt;br /&gt;
print &amp;quot;&amp;lt;h1&amp;gt;Virtual Infrastructure Summary&amp;lt;/h1&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$result = mysql_query(&amp;quot;SELECT site, name, ver, build, last_pass, vcid FROM vc ORDER BY site, name;&amp;quot;);&lt;br /&gt;
if (mysql_num_rows($result) == 0) {&lt;br /&gt;
	die (&amp;quot;No VC&amp;#039;s found in db!!! Unexpected error!&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
$tot_esx = 0;&lt;br /&gt;
$tot_vm= 0;&lt;br /&gt;
$tot_vm_on = 0;&lt;br /&gt;
print &amp;quot;&amp;lt;table class=&amp;#039;BasicTable&amp;#039; align=&amp;#039;center&amp;#039; valign=&amp;#039;top&amp;#039;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Site&amp;lt;th&amp;gt;vCentre&amp;lt;th&amp;gt;ESXs&amp;lt;th&amp;gt;VMs&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(all)&amp;lt;/small&amp;gt;&amp;lt;th&amp;gt;VMs&amp;lt;br&amp;gt;&amp;lt;small&amp;gt;(on)&amp;lt;/small&amp;gt;&amp;lt;th&amp;gt;Ver&amp;lt;th&amp;gt;Build&amp;lt;th&amp;gt;Last Check\n&amp;quot;;&lt;br /&gt;
while ($row = mysql_fetch_assoc($result)) {&lt;br /&gt;
	$num_esx = mysql_result(mysql_query(&amp;quot;SELECT COUNT(*) FROM esx WHERE vcid=&amp;quot;. $row[&amp;#039;vcid&amp;#039;] .&amp;quot; AND exist=1;&amp;quot;), 0);&lt;br /&gt;
	$num_vm = mysql_result(mysql_query(&amp;quot;SELECT COUNT(*) FROM vm WHERE vcid=&amp;quot;. $row[&amp;#039;vcid&amp;#039;] .&amp;quot; AND exist=1;&amp;quot;), 0);&lt;br /&gt;
	$num_vm = mysql_fetch_assoc(mysql_query(&amp;quot;SELECT COUNT(*) AS total, SUM(IF(is_on=1,1,0)) AS is_on FROM vm WHERE vcid=&amp;quot;.$row[&amp;#039;vcid&amp;#039;].&amp;quot; AND exist=1;&amp;quot;));&lt;br /&gt;
	print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;site&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#039;vc-detail.php?vcid=&amp;quot;.$row[&amp;#039;vcid&amp;#039;].&amp;quot;&amp;#039;&amp;gt;&amp;lt;b&amp;gt;&amp;quot;.$row[&amp;#039;name&amp;#039;].&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;td align=&amp;#039;right&amp;#039;&amp;gt;$num_esx&amp;lt;td align=&amp;#039;right&amp;#039;&amp;gt;&amp;quot;.$num_vm[&amp;#039;total&amp;#039;];&lt;br /&gt;
	print &amp;quot;&amp;lt;td align=&amp;#039;right&amp;#039;&amp;gt;&amp;quot;.$num_vm[&amp;#039;is_on&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;ver&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;build&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;last_pass&amp;#039;].&amp;quot;\n&amp;quot;;&lt;br /&gt;
	$tot_esx += $num_esx;&lt;br /&gt;
	$tot_vm += $num_vm[&amp;#039;total&amp;#039;];&lt;br /&gt;
	$tot_vm_on += $num_vm[&amp;#039;is_on&amp;#039;];&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;th colspan = 2&amp;gt;Total for all sites:&amp;lt;td align=&amp;#039;right&amp;#039;&amp;gt;$tot_esx&amp;lt;td align=&amp;#039;right&amp;#039;&amp;gt;$tot_vm&amp;lt;td align=&amp;#039;right&amp;#039;&amp;gt;$tot_vm_on&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;td colspan=3&amp;gt;&amp;lt;i&amp;gt;&amp;quot;.round($tot_vm/$tot_esx).&amp;quot; (&amp;quot;. round($tot_vm_on/$tot_esx) .&amp;quot; powered) per ESX&amp;lt;/i&amp;gt;\n&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ------------------ Layout table cell --------------------------&lt;br /&gt;
print &amp;quot;\n&amp;lt;td valign=&amp;#039;top&amp;#039;&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ------------------- VM Search Form ----------------------------&lt;br /&gt;
print &amp;quot;&amp;lt;h1&amp;gt;VM Search&amp;lt;/h1&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;&amp;lt;table class=&amp;#039;SearchTable&amp;#039; align=&amp;#039;center&amp;#039;&amp;gt;&amp;lt;form method=&amp;#039;GET&amp;#039;&amp;gt;\n&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;By Name:&amp;lt;td&amp;gt;&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;input type=&amp;#039;text&amp;#039; name=&amp;#039;name&amp;#039; size=20&amp;quot;;&lt;br /&gt;
if (array_key_exists(&amp;#039;name&amp;#039;, $_REQUEST)) {&lt;br /&gt;
	print &amp;quot; value=&amp;#039;&amp;quot;.$_REQUEST[&amp;quot;name&amp;quot;].&amp;quot;&amp;#039;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
print	&amp;quot;&amp;gt; &amp;amp;nbsp&amp;lt;button type=&amp;#039;submit&amp;#039; name=&amp;#039;search&amp;#039; value=&amp;#039;name&amp;#039;&amp;gt;Find VM&amp;lt;/button&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=2 align=&amp;#039;center&amp;#039;&amp;gt;&amp;quot;;&lt;br /&gt;
if ((array_key_exists(&amp;#039;fuzz&amp;#039;, $_REQUEST)) and ($_REQUEST[&amp;quot;fuzz&amp;quot;] == 1)) {&lt;br /&gt;
	print &amp;quot;&amp;lt;input type=&amp;#039;checkbox&amp;#039; name=&amp;#039;fuzz&amp;#039; value=1 checked&amp;gt;Fuzzy name search&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
	print &amp;quot;&amp;lt;input type=&amp;#039;checkbox&amp;#039; name=&amp;#039;fuzz&amp;#039; value=1&amp;gt;Fuzzy name search&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;By IP:&amp;lt;td&amp;gt;&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;input type=&amp;#039;text&amp;#039; name=&amp;#039;ip&amp;#039; size=20&amp;quot;;&lt;br /&gt;
if (array_key_exists(&amp;#039;ip&amp;#039;, $_REQUEST)) {&lt;br /&gt;
	print &amp;quot; value=&amp;#039;&amp;quot;.$_REQUEST[&amp;quot;ip&amp;quot;].&amp;quot;&amp;#039;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;gt; &amp;amp;nbsp&amp;lt;button type=&amp;#039;submit&amp;#039; name=&amp;#039;search&amp;#039; value=&amp;#039;ip&amp;#039;&amp;gt;Find VM&amp;lt;/button&amp;gt;\n&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;By VC Folder:&amp;lt;td&amp;gt;&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;input type=&amp;#039;text&amp;#039; name=&amp;#039;folder&amp;#039; size=20&amp;quot;;&lt;br /&gt;
if (array_key_exists(&amp;#039;folder&amp;#039;, $_REQUEST)) {&lt;br /&gt;
	print &amp;quot; value=&amp;#039;&amp;quot;.$_REQUEST[&amp;quot;folder&amp;quot;].&amp;quot;&amp;#039;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;gt; &amp;amp;nbsp&amp;lt;button type=&amp;#039;submit&amp;#039; name=&amp;#039;search&amp;#039; value=&amp;#039;folder&amp;#039;&amp;gt;Find VM&amp;lt;/button&amp;gt;\n&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=2 align=&amp;#039;center&amp;#039;&amp;gt;&amp;quot;;&lt;br /&gt;
if ((array_key_exists(&amp;#039;vm_on&amp;#039;, $_REQUEST)) and ($_REQUEST[&amp;quot;vm_on&amp;quot;] == 1)) {&lt;br /&gt;
	print &amp;quot;&amp;lt;input type=&amp;#039;checkbox&amp;#039; name=&amp;#039;vm_on&amp;#039; value=1 checked&amp;gt;Only Powered On&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
	print &amp;quot;&amp;lt;input type=&amp;#039;checkbox&amp;#039; name=&amp;#039;vm_on&amp;#039; value=1&amp;gt;Only Powered On&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
if ((array_key_exists(&amp;#039;vm_gone&amp;#039;, $_REQUEST)) and ($_REQUEST[&amp;quot;vm_gone&amp;quot;] == 1)) {&lt;br /&gt;
	print &amp;quot;&amp;amp;nbsp&amp;lt;input type=&amp;#039;checkbox&amp;#039; name=&amp;#039;vm_gone&amp;#039; value=1 checked&amp;gt;Include old/deleted&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
	print &amp;quot;&amp;amp;nbsp&amp;lt;input type=&amp;#039;checkbox&amp;#039; name=&amp;#039;vm_gone&amp;#039; value=1&amp;gt;Include old/deleted&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=2 align=&amp;#039;center&amp;#039;&amp;gt;&amp;quot;;&lt;br /&gt;
if ((array_key_exists(&amp;#039;show&amp;#039;, $_REQUEST)) and ($_REQUEST[&amp;quot;show&amp;quot;] == &amp;#039;vm&amp;#039;)) {&lt;br /&gt;
	print &amp;quot;&amp;lt;input type=&amp;#039;radio&amp;#039; name=&amp;#039;show&amp;#039; value=&amp;#039;esx&amp;#039;&amp;gt;Show Cluster ESXs &amp;amp;nbsp&amp;lt;input type=&amp;#039;radio&amp;#039; name=&amp;#039;show&amp;#039; value=&amp;#039;vm&amp;#039; checked&amp;gt;Show VM Detail&amp;quot;;&lt;br /&gt;
} else {&lt;br /&gt;
	print &amp;quot;&amp;lt;input type=&amp;#039;radio&amp;#039; name=&amp;#039;show&amp;#039; value=&amp;#039;esx&amp;#039; checked&amp;gt;Show Cluster ESXs &amp;amp;nbsp&amp;lt;input type=&amp;#039;radio&amp;#039; name=&amp;#039;show&amp;#039; value=&amp;#039;vm&amp;#039;&amp;gt;Show VM Detail&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=2&amp;gt;&amp;lt;span style=&amp;#039;font-size:8pt;&amp;#039;&amp;gt;Wildcards (* and ?) are supported&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
print &amp;quot;&amp;lt;/form&amp;gt;&amp;lt;/table&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ------------------- Layout table cell ----------------------&lt;br /&gt;
print &amp;quot;\n&amp;lt;td valign=&amp;#039;top&amp;#039;&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ----------------- Last Passes table ----------------------------&lt;br /&gt;
print &amp;quot;&amp;lt;h1&amp;gt;Last Data Collection Runs&amp;lt;/h1&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
$result = mysql_query(&amp;quot;SELECT start, end, version, error, warn FROM script_run ORDER BY start DESC LIMIT 7;&amp;quot;);&lt;br /&gt;
print &amp;quot;&amp;lt;table class=&amp;#039;BasicTable&amp;#039; align=&amp;#039;center&amp;#039; valign=&amp;#039;top&amp;#039;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Run start&amp;lt;th&amp;gt;Run end&amp;lt;th&amp;gt;Ver&amp;lt;th&amp;gt;Errors&amp;lt;th&amp;gt;Warns\n&amp;quot;;&lt;br /&gt;
while ($row = mysql_fetch_assoc($result)) {&lt;br /&gt;
	if (is_null($row[&amp;#039;end&amp;#039;])) {&lt;br /&gt;
		print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;start&amp;#039;].&amp;quot;&amp;lt;td colspan=4&amp;gt;Script run did not complete (fatal error)\n&amp;quot;;&lt;br /&gt;
	} else {&lt;br /&gt;
		print &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;start&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;end&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;version&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;error&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;warn&amp;#039;].&amp;quot;\n&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
print &amp;quot;&amp;lt;/table&amp;gt;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ------------------- Layout table new row ------------------------&lt;br /&gt;
print &amp;quot;\n&amp;lt;tr&amp;gt;&amp;lt;td colspan=3&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ------------------- Handle seach request ------------------------&lt;br /&gt;
// perform any required db actions&lt;br /&gt;
if (array_key_exists(&amp;#039;search&amp;#039;, $_REQUEST)) {&lt;br /&gt;
	print &amp;quot;&amp;lt;h1&amp;gt;Search results...&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
	find_vm();&lt;br /&gt;
} else {&lt;br /&gt;
	print &amp;quot;&amp;lt;h1&amp;gt;Hints and Tips&amp;lt;/h1&amp;gt;&amp;quot;;&lt;br /&gt;
	print &amp;quot;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;Both VM names and OS hostnames are searched\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;&amp;lt;li&amp;gt;Wildcards etc...\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;    &amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;* - matches any character none or more times&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;        &amp;lt;li&amp;gt;? - matches any character exactly once (eg GWA-SR-MSSQL-?0 would match GWA-SR-MSSQL-10, GWA-SR-MSSQL-20, etc)&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;        &amp;lt;li&amp;gt;Fuzzy name searches provide broader results, which will normally find VM&amp;#039;s despite typos etc&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;&amp;lt;li&amp;gt;VM IP&amp;#039;s and Hostnames are only known if the VM was up with VM Tools running when a data collection run occurred&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;&amp;lt;li&amp;gt;To bookmark the page with your preferred options pre-selected, tick the boxes, do a blank search, then bookmark the URL&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;&amp;lt;li&amp;gt;Errors are generally caused by the data collection script not being able to connect to a vCentre&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;&amp;lt;li&amp;gt;Warns are generally caused by the data collection script not being able to link bits of data together (around 100 or so is normal)&amp;lt;/li&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;&amp;lt;/ul&amp;gt;\n&amp;quot;;&lt;br /&gt;
}	&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
// ------------------- Layout table end ------------------------------&lt;br /&gt;
print &amp;quot;&amp;lt;/table&amp;gt;\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ------------------- Footer -----------------------------------------&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--[if IE]&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;#039;color:red;&amp;#039;&amp;gt;&amp;lt;b&amp;gt;Internet Explorer is not supported - the search form will not work properly, use any other browser&amp;lt;/b&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;![endif]--&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&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;Search page &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;&lt;br /&gt;
&amp;lt;table class=&amp;#039;NavTableSub&amp;#039; align=&amp;#039;center&amp;#039; valign=&amp;#039;top&amp;#039;&amp;gt;&amp;lt;th&amp;gt;Reports:&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#039;snaps.php&amp;#039;&amp;gt;Snapshots&amp;lt;/a&amp;gt;&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&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 find_vm() {&lt;br /&gt;
	global $debug;&lt;br /&gt;
	&lt;br /&gt;
	$query = &amp;quot;SELECT vm.name AS vm, INET_NTOA(vm2ip.ip) AS ip, vc.name AS vc, cluster.name AS cluster, cluster.clid, vm.vmid, vm.exist, vm.is_on&amp;quot;;&lt;br /&gt;
	if ($_REQUEST[&amp;quot;show&amp;quot;] == &amp;#039;esx&amp;#039;) {&lt;br /&gt;
		//nada&lt;br /&gt;
	} elseif ($_REQUEST[&amp;quot;show&amp;quot;] == &amp;#039;vm&amp;#039;) {&lt;br /&gt;
		$query .= &amp;quot;, vm_ext.cpu, vm_ext.mem, vm_ext.vc_path &amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	$query .= &amp;quot; FROM vm JOIN vm_ext USING (vmid) LEFT JOIN vm2ip USING (vmid) JOIN vc USING (vcid) JOIN cluster USING (clid) &amp;quot;;&lt;br /&gt;
	if ($_REQUEST[&amp;quot;search&amp;quot;] == &amp;#039;name&amp;#039;) {&lt;br /&gt;
		if ((array_key_exists(&amp;#039;fuzz&amp;#039;, $_REQUEST)) and ($_REQUEST[&amp;quot;fuzz&amp;quot;] == 1)) {&lt;br /&gt;
			$query .= &amp;quot;WHERE MATCH (vm.name,vm.hostname) AGAINST (&amp;#039;&amp;quot;. search_char($_REQUEST[&amp;quot;name&amp;quot;]).&amp;quot;&amp;#039;) &amp;quot;;&lt;br /&gt;
		} else {&lt;br /&gt;
			$query .= &amp;quot;WHERE (vm.name LIKE &amp;#039;&amp;quot;. search_char($_REQUEST[&amp;quot;name&amp;quot;]) .&amp;quot;&amp;#039; OR vm.hostname LIKE &amp;#039;&amp;quot;. search_char($_REQUEST[&amp;quot;name&amp;quot;]).&amp;quot;%&amp;#039;) &amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
	} elseif ($_REQUEST[&amp;quot;search&amp;quot;] == &amp;#039;ip&amp;#039;) {&lt;br /&gt;
		$query .= &amp;quot;WHERE INET_NTOA(vm2ip.ip) LIKE &amp;#039;&amp;quot;. search_char($_REQUEST[&amp;quot;ip&amp;quot;]) .&amp;quot;&amp;#039; &amp;quot;;&lt;br /&gt;
	} elseif ($_REQUEST[&amp;quot;search&amp;quot;] == &amp;#039;folder&amp;#039;) {&lt;br /&gt;
		$query .= &amp;quot;WHERE vm_ext.vc_path LIKE &amp;#039;&amp;quot;. search_char($_REQUEST[&amp;quot;folder&amp;quot;]) .&amp;quot;&amp;#039; &amp;quot;;&lt;br /&gt;
	} else {&lt;br /&gt;
		die (&amp;quot;Unexpected params ...!!&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if ((array_key_exists(&amp;#039;vm_on&amp;#039;, $_REQUEST)) and ($_REQUEST[&amp;quot;vm_on&amp;quot;] == 1)) {&lt;br /&gt;
		$query .= &amp;quot;AND vm.is_on = 1 &amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	if (!((array_key_exists(&amp;#039;vm_gone&amp;#039;, $_REQUEST)) and (!$_REQUEST[&amp;quot;vm_gone&amp;quot;] == 0))) {&lt;br /&gt;
			$query .= &amp;quot;AND vm.exist = 1 &amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	$query .= &amp;quot;GROUP BY vm.vmid ORDER BY vc.name, cluster.name, vm.name;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
	if ($debug) {&lt;br /&gt;
		print ($query);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	$result = mysql_query($query);&lt;br /&gt;
	if (!$result) {&lt;br /&gt;
		print (&amp;quot;&amp;lt;b&amp;gt;Query failed !!!!&amp;lt;br&amp;gt;Query:&amp;lt;/b&amp;gt; $query&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;Error:&amp;lt;/b&amp;gt; &amp;quot;. mysql_error());&lt;br /&gt;
	}&lt;br /&gt;
	if (mysql_num_rows($result) == 0) {&lt;br /&gt;
		print (&amp;quot;No results found....&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if ($_REQUEST[&amp;quot;show&amp;quot;] == &amp;#039;esx&amp;#039;) {&lt;br /&gt;
		print &amp;quot;&amp;lt;table class=&amp;#039;BasicTable&amp;#039; align=&amp;#039;center&amp;#039; valign=&amp;#039;top&amp;#039;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Name&amp;lt;th&amp;gt;IP&amp;lt;th&amp;gt;State&amp;lt;th&amp;gt;vCentre&amp;lt;th&amp;gt;Cluster&amp;lt;th&amp;gt;ESXs\n&amp;quot;;&lt;br /&gt;
	} elseif ($_REQUEST[&amp;quot;show&amp;quot;] == &amp;#039;vm&amp;#039;) {&lt;br /&gt;
		print &amp;quot;&amp;lt;table class=&amp;#039;BasicTable&amp;#039; align=&amp;#039;center&amp;#039; valign=&amp;#039;top&amp;#039;&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Name&amp;lt;th&amp;gt;IP&amp;lt;th&amp;gt;State&amp;lt;th&amp;gt;Cluster&amp;lt;th&amp;gt;vCPU&amp;lt;th&amp;gt;Mem(MB)&amp;lt;th&amp;gt;Folder&amp;lt;th&amp;gt;Cluster\n&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
	$current_vmid = 0;&lt;br /&gt;
	$odd_row = false;&lt;br /&gt;
	while ($row = mysql_fetch_assoc($result)) {&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;
		if ($row[&amp;#039;exist&amp;#039;]) {&lt;br /&gt;
			if ($row[&amp;#039;is_on&amp;#039;]) {&lt;br /&gt;
				$vm_state = &amp;quot;ON&amp;quot;;&lt;br /&gt;
			} else {&lt;br /&gt;
				$vm_state = &amp;quot;OFF&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
			$vm_state = &amp;quot;gone&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		print &amp;quot;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#039;vm-detail.php?vmid=&amp;quot;.$row[&amp;#039;vmid&amp;#039;].&amp;quot;&amp;#039;&amp;gt;&amp;lt;b&amp;gt;&amp;quot;.$row[&amp;#039;vm&amp;#039;].&amp;quot;&amp;lt;/b&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;ip&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;$vm_state&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;vc&amp;#039;];&lt;br /&gt;
		if ($_REQUEST[&amp;quot;show&amp;quot;] == &amp;#039;esx&amp;#039;) {&lt;br /&gt;
			$esxs = mysql_result(mysql_query(&amp;quot;SELECT GROUP_CONCAT(name SEPARATOR &amp;#039;, &amp;#039;) FROM esx WHERE clid=&amp;quot;. $row[&amp;#039;clid&amp;#039;] .&amp;quot;;&amp;quot;), 0);&lt;br /&gt;
			$res = mysql_query(&amp;quot;SELECT esx.name FROM vm JOIN esx USING (esxid) WHERE vmid=&amp;quot;. $row[&amp;#039;vmid&amp;#039;] .&amp;quot;;&amp;quot;);&lt;br /&gt;
			if (mysql_num_rows($res) &amp;gt; 0) {&lt;br /&gt;
				$esx = mysql_result($res, 0);&lt;br /&gt;
				$esxs = str_replace($esx, &amp;quot;&amp;lt;span class=&amp;#039;current_esx&amp;#039;&amp;gt;$esx&amp;lt;/span&amp;gt;&amp;quot;, $esxs);&lt;br /&gt;
			}&lt;br /&gt;
			print &amp;quot;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#039;cluster-detail.php?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;/a&amp;gt;&amp;lt;td&amp;gt;$esxs\n&amp;quot;;&lt;br /&gt;
		} elseif ($_REQUEST[&amp;quot;show&amp;quot;] == &amp;#039;vm&amp;#039;) {&lt;br /&gt;
			print &amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;cpu&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;mem&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;quot;.$row[&amp;#039;vc_path&amp;#039;].&amp;quot;&amp;lt;td&amp;gt;&amp;lt;a href=&amp;#039;cluster-detail.php?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;/a&amp;gt;\n&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
	print &amp;quot;&amp;lt;/table&amp;gt;\n&amp;quot;;&lt;br /&gt;
	print &amp;quot;Found &amp;quot;. mysql_num_rows($result) .&amp;quot; VMs&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function search_char ($text) {&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;
&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;br /&gt;
&lt;br /&gt;
[[Category:PHP]]&lt;/div&gt;</summary>
		<author><name>Sstrutt</name></author>
	</entry>
</feed>