<?php // // Copyright (C) 2004-2011 by Autodesk, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of version 2.1 of the GNU Lesser // General Public License as published by the Free Software Foundation. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA // try { include 'resizableadmin.php'; LoadSessionVars(); // Time Units define( 'MILLISECONDS', "milliseconds" ); define( 'SECONDS', "seconds" ); define( 'MINUTES', "minutes" ); define( 'HOURS', "hours" ); define( 'DAYS', "days" ); define( 'WEEKS', "weeks" ); class TimeUnitFormattingData { var $divisor; var $nextUnit; function TimeUnitFormattingData( $divisor, $nextUnit ) { $this->divisor = $divisor; $this->nextUnit = $nextUnit; } } $timeFormattingData = array(); $timeFormattingData[ MILLISECONDS ] = new TimeUnitFormattingData( 1000, SECONDS ); $timeFormattingData[ SECONDS ] = new TimeUnitFormattingData( 60, MINUTES ); $timeFormattingData[ MINUTES ] = new TimeUnitFormattingData( 60, HOURS ); $timeFormattingData[ HOURS ] = new TimeUnitFormattingData( 24, DAYS ); $timeFormattingData[ DAYS ] = new TimeUnitFormattingData( 7, WEEKS ); function FormatTime( $originalTime, $originalUnit ) { global $timeFormattingData; $formattedTime = $originalTime; $formattedUnit = $originalUnit; $timeFormattingStr = "%f %s"; foreach ( $timeFormattingData as $unit => $data ) { if ( $formattedUnit == $unit && $formattedTime > $data->divisor ) { $formattedTime /= $data->divisor; $formattedUnit = $data->nextUnit; } } return sprintf( $timeFormattingStr, $formattedTime, $formattedUnit ); } class ServerHealthPageRecord { var $timeStamp; var $cpuUtilization; var $upTime; var $adminOpsQueueSize; var $clientOpsQueueSize; var $siteOpsQueueSize; var $avgClientOpTime; var $totalOpTime; var $totalPhysicalMemory; var $physicalMemoryUsed; var $totalVirtualMemory; var $virtualMemoryUsed; function ServerHealthPageRecord() { $this->timeStamp = 0; $this->cpuUtilization = 0; $this->upTime = 0; $this->adminOpsQueueSize = 0; $this->clientOpsQueueSize = 0; $this->siteOpsQueueSize = 0; $this->avgClientOpTime = 0; $this->totalOpTime = 0; $this->totalPhysicalMemory = 0; $this->physicalMemoryUsed = 0; $this->totalVirtualMemory = 0; $this->virtualMemoryUsed = 0; } function GetProps( $serverAdmin ) { $this->timeStamp = date( "D, j M Y, g:i:s a T" ); $props = $serverAdmin->GetInformationProperties(); $prop = $props->GetItem( MgServerInformationProperties::CpuUtilization ); $this->cpuUtilization = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::Uptime ); $this->upTime = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::AdminOperationsQueueCount ); $this->adminOpsQueueSize = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::ClientOperationsQueueCount ); $this->clientOpsQueueSize = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::SiteOperationsQueueCount ); $this->siteOpsQueueSize = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::AverageOperationTime ); $this->avgClientOpTime = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::TotalOperationTime ); $this->totalOpTime = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::TotalProcessedOperations ); $this->totalOpsProcessed = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::TotalReceivedOperations ); $this->totalOpsReceived = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::TotalPhysicalMemory ); $this->totalPhysicalMemory = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::AvailablePhysicalMemory ); $physicalMemoryAvailable = $prop->GetValue(); $this->physicalMemoryUsed = $this->totalPhysicalMemory - $physicalMemoryAvailable; $prop = $props->GetItem( MgServerInformationProperties::TotalVirtualMemory ); $this->totalVirtualMemory = $prop->GetValue(); $prop = $props->GetItem( MgServerInformationProperties::AvailableVirtualMemory ); $virtualMemoryAvailable = $prop->GetValue(); $this->virtualMemoryUsed = $this->totalVirtualMemory - $virtualMemoryAvailable; } function DisplayValsOnPage() { $formattedUpTime = FormatTime( $this->upTime, SECONDS ); echo ' <table width="100%" border="0" cellspacing="2" cellpadding="2" class="dataTable">', "\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Time of status check:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->timeStamp,'</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td colspan="2"> </td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">CPU usage:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->cpuUtilization,'%</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Up time:</td>',"\n"; echo ' <td class="serverStatusValue">',$formattedUpTime,'</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td colspan="2"> </td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Admin operations queued:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->adminOpsQueueSize,'</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Client operations queued:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->clientOpsQueueSize,'</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Site operations queued:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->siteOpsQueueSize,'</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Average client operation time:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->avgClientOpTime,' milliseconds</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Total operation time:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->totalOpTime,' seconds</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Total operations processed:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->totalOpsProcessed,'</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Total operations received:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->totalOpsReceived,'</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td colspan="2"> </td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Total physical memory:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->totalPhysicalMemory/1024,' KB</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Physical memory used:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->physicalMemoryUsed/1024,' KB</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Total virtual memory:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->totalVirtualMemory/1024,' KB</td>',"\n"; echo ' </tr>',"\n"; echo ' <tr>',"\n"; echo ' <td class="serverStatusLabel">Virtual memory used:</td>',"\n"; echo ' <td class="serverStatusValue">',$this->virtualMemoryUsed/1024,' KB</td>',"\n"; echo ' </tr>',"\n"; echo ' </table>',"\n"; } } // Define Local values $pageTitle = ""; $pageName = 'ViewServerBottomPage'; $formName = 'ViewServerBottomForm'; $confirmationMsg = ""; $errorMsg = ""; $serverStatus = new ServerHealthPageRecord(); // Get Server $serverRec = GetDataForServer( $selectedServer ); if ( $serverRec == NULL ) throw new Exception( sprintf( $errNotFound, $selectedServer ) ); if ( !$serverRec->poweredUp ) throw new Exception( sprintf( $errServerIsDown, $selectedServer ) ); // Get Server Status $serverAdmin = new MgServerAdmin(); $serverAdmin->Open( $selectedServer, $userInfo ); $serverStatus->GetProps( $serverAdmin ); $serverAdmin->Close(); } catch ( MgException $e ) { CheckForFatalMgException( $e ); if ( empty( $errorMsg ) ) $errorMsg = $e->GetExceptionMessage(); } catch ( Exception $e ) { if ( empty( $errorMsg ) ) $errorMsg = $e->getMessage(); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <?php OutputHeader( $pageTitle ); ?> </head> <?php if ( $autoRefresh ) { $onLoadFmt = 'onLoad="window.setTimeout('."'document.".$formName.".submit();', %d);".'"'; $onLoadStr = sprintf( $onLoadFmt, $autoRefreshFrequency * 1000 ); } else $onLoadStr = ""; ?> <body class="ViewServerStatusBottom" <?php echo $onLoadStr; ?> > <?php BeginContentArea( $formName ); DeclareHiddenVars( $pageName ); ?> <?php if ( !empty( $errorMsg ) ) DisplayErrorMsg( $errorMsg ); else { ?> <div class="ViewCurrentLogBottomTimestamp"> <?php if ( $autoRefresh ) { ?> This window is in auto refresh mode.<br> <?php } else { ?> This window is in manual refresh mode.<br> <?php } ?> </div> <pre><?php echo $serverStatus->DisplayValsOnPage(); ?></pre> <?php } ?> <?php EndContentArea( true, $formName, NULL ); ?> </body> </html>