Added volumes for a node

Added schedules
Added management classes for a node
Added clientopts to nodes
Added schedule and event information
This commit is contained in:
Deon George
2011-05-24 01:04:40 +10:00
parent a244d693b5
commit 58ddb97d87
24 changed files with 650 additions and 171 deletions

View File

@@ -45,7 +45,7 @@
</table>
</td>
<td style="width: 50%; vertical-align: top;">
<table width="100%">
<table class="box-full">
<tr>
<td class="head" colspan="2">Last Session Performance Information</td>
</tr>
@@ -135,7 +135,88 @@
</table>
</td>
<td style="width: 50%; vertical-align: top;">
[PERFORMANCE PIE-GRAPH?]
&nbsp;
</td>
</tr>
<tr>
<td style="width: 50%; vertical-align: top;">
<table class="box-full">
<tr>
<td class="head" colspan="2">Policy Settings</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td class="head" colspan="2">Backup Settings</td>
</tr>
<tr>
<td>MGMT Class</td>
<td>HSM Pool</td>
<td>1st Backup Pool</td>
<td>Ver Exist</td>
<td>Ver Del</td>
<td>Frequency</td>
</tr>
<?php $i=0; foreach ($node->MGMTCLASS->where('SET_NAME','=','ACTIVE')->find_all() as $mco) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $mco->display('CLASS_NAME'); ?><?php echo $mco->DEFAULTMC=='Yes' ? ' <sup>*</sup>' : ''; ?></td>
<td class="head"><?php echo $mco->display('MIGDESTINATION'); ?></td>
<td class="head"><?php echo $mco->COPYGROUP_BU->display('DESTINATION'); ?></td>
<td class="head"><?php printf('%s/%s',$mco->COPYGROUP_BU->display('VEREXISTS'),$mco->COPYGROUP_BU->display('RETEXTRA')); ?></td>
<td class="head"><?php printf('%s/%s',$mco->COPYGROUP_BU->display('VERDELETED'),$mco->COPYGROUP_BU->display('RETONLY')); ?></td>
<td class="head"><?php echo $mco->COPYGROUP_BU->display('FREQUENCY'); ?></td>
</tr>
<?php } ?>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td class="head" colspan="2">Archive Settings</td>
</tr>
<tr>
<td>MGMT Class</td>
<td>Destination</td>
<td>Retain</td>
</tr>
<?php $i=0; foreach ($node->MGMTCLASS->where('SET_NAME','=','ACTIVE')->find_all() as $mco) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $mco->display('CLASS_NAME'); ?><?php echo $mco->DEFAULTMC=='Yes' ? ' <sup>*</sup>' : ''; ?></td>
<td class="head"><?php echo $mco->COPYGROUP_AR->display('DESTINATION'); ?></td>
<td class="head"><?php echo $mco->COPYGROUP_AR->display('RETVER'); ?></td>
</tr>
<?php } ?>
</table>
</td>
<td style="width: 50%; vertical-align: top;">
<table class="box-full">
<tr>
<td class="head" colspan="2">Server Side Client Options</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td>Client Option</td>
<td>Seq #</td>
<td>Setting</td>
<td>Forced</td>
</tr>
<?php if ($node->OPTION_SET) { ?>
<?php $i=0; foreach ($node->CLIENTOPT->find_all() as $coo) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $coo->display('OPTION_NAME'); ?></td>
<td class="head"><?php echo $coo->display('SEQNUMBER'); ?></td>
<td class="head"><?php echo $coo->display('OPTION_VALUE'); ?></td>
<td class="head"><?php echo $coo->display('FORCE'); ?></td>
</tr>
<?php } ?>
<?php } else { ?>
<tr>
<td>This node is not configured for any server side Client Options</td>
</tr>
<?php } ?>
</table>
</td>
</tr>
</table>

View File

@@ -5,7 +5,7 @@
<tr>
<td class="head" colspan="2">Backup Information</td>
</tr>
<?php if ($node->storagepools('Bkup')) { ?>
<?php if ($node->getStoragePools('Bkup')) { ?>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
@@ -14,7 +14,7 @@
<td>Last Date</td>
<td style="text-align: right;">Utilisation</td>
<?php foreach (Kohana::config('config.tsmpooltypes') as $type)
if (count($pools = $node->getStoragePools('Bkup',$type)))
if (count($pools = $node->getStoragePoolsType('Bkup',$type)))
foreach ($pools as $pool_name) { ?>
<td style="text-align: right;"><?php echo $pool_name; ?> <span style="vertical-align: super; font-size: 60%;"><?echo $type; ?></span></td>
<?php } ?>
@@ -25,9 +25,9 @@
<td class="head"><?php echo $fso->display('BACKUP_END'); ?></td>
<td class="head" style="text-align: right;"><?php echo number_format($fso->utilsation(),2); ?></td>
<?php foreach (Kohana::config('config.tsmpooltypes') as $type)
if (count($pools = $node->getStoragePools('Bkup',$type)))
if (count($pools = $node->getStoragePoolsType('Bkup',$type)))
foreach ($pools as $pool_name) { ?>
<td class="head" style="text-align: right; vertical-align: top;"><?php echo number_format($fso->pool_logical_util($pool_name),2); ?> (<?php echo $fso->pool_numvols($pool_name); ?>)</td>
<td class="head" style="text-align: right; vertical-align: top;"><?php echo number_format($fso->pool_logical_util($pool_name,'Bkup'),2); ?> (<?php echo $fso->pool_numvols($pool_name,'BACKUP'); ?>)</td>
<?php } ?>
</tr>
<?php } ?>
@@ -36,8 +36,27 @@
<?php } ?>
</table>
</td>
<td style="width: 50%; vertical-align: top;">
&nbsp;
<td style="width: 50%; vertical-align: top;" rowspan="2">
<table class="box-full">
<tr>
<td class="head" colspan="2">Storage Summary</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td>Storage Type</td>
<td>Files</td>
<td>MB</td>
</tr>
<?php $i=0; foreach (Kohana::config('config.tsmpooltypes') as $type) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $type; ?></td>
<td class="head"><?php echo $node->getStorageTypeFiles($type); ?></td>
<td class="head"><?php echo $node->getStorageTypeData($type); ?></td>
</tr>
<?php } ?>
</table>
</td>
</tr>
<tr>
@@ -46,14 +65,14 @@
<tr>
<td class="head" colspan="2">Archive Information</td>
</tr>
<?php if ($node->storagepools('Arch')) { ?>
<?php if ($node->getStoragePools('Arch')) { ?>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td>File Space</td>
<?php foreach (Kohana::config('config.tsmpooltypes') as $type)
if (count($pools = $node->getStoragePools('Arch',$type)))
if (count($pools = $node->getStoragePoolsType('Arch',$type)))
foreach ($pools as $pool_name) { ?>
<td style="text-align: right;"><?php echo $pool_name; ?> <span style="vertical-align: super; font-size: 60%;"><?echo $type; ?></span></td>
<?php } ?>
@@ -62,9 +81,9 @@
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $fso->display('FILESPACE_NAME'); ?></td>
<?php foreach (Kohana::config('config.tsmpooltypes') as $type)
if (count($pools = $node->getStoragePools('Arch',$type)))
if (count($pools = $node->getStoragePoolsType('Arch',$type)))
foreach ($pools as $pool_name) { ?>
<td class="head" style="text-align: right; vertical-align: top;"><?php echo number_format($fso->pool_logical_util($pool_name),2); ?> (<?php echo $fso->pool_numvols($pool_name); ?>)</td>
<td class="head" style="text-align: right; vertical-align: top;"><?php echo number_format($fso->pool_logical_util($pool_name,'Arch'),2); ?> (<?php echo $fso->pool_numvols($pool_name,'ARCHIVE'); ?>)</td>
<?php } ?>
</tr>
<?php } ?>

View File

@@ -0,0 +1,92 @@
<table width="100%">
<tr>
<td style="width: 50%; vertical-align: top;">
<table class="box-full">
<tr>
<td class="head" colspan="2">TSM Node Schedules</td>
</tr>
<?php if ($node->ASSOCIATION->find_all()) { ?>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td>Schedule</td>
<td>Start Time</td>
<td>Duration</td>
<td>Repeat</td>
<td>Valid Day</td>
<td>Priority</td>
</tr>
<?php $i=0;foreach ($node->ASSOCIATION->find_all() as $ao) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $ao->display('SCHEDULE_NAME'); ?></td>
<td class="head"><?php echo $ao->SCHEDULE_CLIENT->display('STARTTIME'); ?></td>
<td class="head"><?php printf('%s %s',$ao->SCHEDULE_CLIENT->DURATION,$ao->SCHEDULE_CLIENT->DURUNITS); ?></td>
<td class="head"><?php printf('%s %s',$ao->SCHEDULE_CLIENT->PERIOD,$ao->SCHEDULE_CLIENT->PERUNITS); ?></td>
<td class="head"><?php echo $ao->SCHEDULE_CLIENT->display('DAYOFWEEK'); ?></td>
<td class="head"><?php echo $ao->SCHEDULE_CLIENT->display('PRIORITY'); ?></td>
</tr>
<?php } ?>
<?php } else { ?>
<tr><td>There are no TSM schedules define for this Node.</td></tr>
<?php } ?>
</table>
</td>
<td style="width: 50%; vertical-align: top;" rowspan="2">
<table class="box-full">
<tr>
<td class="head" colspan="2">Summary Activity</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td>Start</td>
<td>End</td>
<td>Activity</td>
<td>Schedule</td>
<td>MB</td>
</tr>
<?php $i=0;foreach ($node->SUMMARY->find_all() as $so) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $so->display('START_TIME'); ?></td>
<td class="head"><?php echo $so->display('END_TIME'); ?></td>
<td class="head"><?php echo $so->display('ACTIVITY'); ?></td>
<td class="head"><?php echo $so->display('SCHEDULE_NAME'); ?></td>
<td class="head" style="text-align: right;"><?php printf('%3.2f',round($so->display('BYTES')/1024/1024,2)); ?></td>
</tr>
<?php } ?>
</table>
</td>
</tr>
<tr>
<td style="width: 50%; vertical-align: top;">
<table class="box-full">
<tr>
<td class="head" colspan="2">Schedule Activity</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td>Sched Start</td>
<td>Act Start</td>
<td>Schedule Name</td>
<td>Status</td>
<td>Completed</td>
<td>Result</td>
<tr>
<?php $i=0;foreach ($node->EVENT->find_all() as $eo) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $eo->display('SCHEDULED_START'); ?></td>
<td class="head"><?php echo $eo->ACTUAL_START ? $eo->display('ACTUAL_START') : '&nbsp;'; ?></td>
<td class="head"><?php echo $eo->display('SCHEDULE_NAME'); ?></td>
<td class="head"><?php echo $eo->display('STATUS'); ?></td>
<td class="head"><?php echo $eo->COMPLETED ? $eo->display('COMPLETED') : '&nbsp;'; ?></td>
<td class="head"><?php printf('%s %s',$eo->RESULT,$eo->display('REASON')); ?></td>
</tr>
<?php } ?>
</table>
</td>
</tr>
</table>

View File

@@ -0,0 +1,51 @@
<table width="100%">
<?php foreach (array('BACKUP','ARCHIVE') as $dtype) { ?>
<tr>
<td style="width: 100%; vertical-align: top;">
<table class="box-full">
<tr>
<td class="head" colspan="2"><?php echo $dtype=='BACKUP' ? _('Backup Volumes') : _('Archive Volumes'); ?></td>
</tr>
<?php if ($node->volumes($dtype)) { ?>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td>Volume</td>
<td>Last Read Date</td>
<td>Last Write Date</td>
<td>Access</td>
<td>Status</td>
<td>Errors R/W</td>
<td>Utilisation</td>
<td>Reclaim</td>
<td>Nodes on Vol</td>
</tr>
<?php $i=0; foreach ($node->volumes($dtype) as $stgpool => $vols) {
$spo = ORM::factory('STGPOOL',$stgpool); ?>
<tr class="subhead"><td colspan="9"><?php printf('%s: Reclaim: %s%%, Scratch Usage: %s/%s, Device Type: %s',$spo->STGPOOL_NAME,$spo->RECLAIM,$spo->NUMSCRATCHUSED,$spo->MAXSCRATCH,$spo->DEVCLASSES->DEVTYPE); ?></td></tr>
<?php foreach ($vols as $vol) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="head"><?php echo $vol->VOLUME_NAME; ?></td>
<td class="head"><?php echo $vol->display('LAST_READ_DATE'); ?></td>
<td class="head"><?php echo $vol->display('LAST_WRITE_DATE'); ?></td>
<td class="head"><?php echo $vol->display('ACCESS'); ?></td>
<td class="head"><?php echo $vol->display('STATUS'); ?></td>
<td class="head"><?php printf('%s/%s',$vol->READ_ERRORS,$vol->WRITE_ERRORS); ?></td>
<td class="head"><?php echo $vol->display('EST_CAPACITY_MB'); ?></td>
<td class="head"><?php echo $vol->display('PCT_RECLAIM'); ?></td>
<td class="head"><?php echo $vol->getNodesOnVol($dtype); ?></td>
</tr>
<?php } ?>
<?php } ?>
<?php } else { ?>
<tr><td><?php echo $dtype=='BACKUP' ? _('There are NO Backup Volumes for this Node.') : _('There are NO Archive Volumes for this Node.'); ?></td></tr>
<?php } ?>
</table>
</td>
<td style="width: 50%; vertical-align: top;">
&nbsp;
</td>
</tr>
<? } ?>
</table>