Work on performance improvements with caching

This commit is contained in:
Deon George
2012-12-04 11:52:10 +11:00
parent eafb80f7fc
commit 1bf8a520e2
30 changed files with 877 additions and 495 deletions

View File

@@ -1,29 +1,30 @@
<table width="100%">
<tr>
<td style="width: 100%; vertical-align: top;"><?php echo View::factory('domain/nodes')->set('o',$o); ?></td>
<td style="width: 100%; vertical-align: top;" colspan="2"><?php echo View::factory('domain/nodes')->set('o',$o); ?></td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
<td class="spacer" colspan="2">&nbsp;</td>
</tr>
<tr>
<td style="width: 100%; vertical-align: top;"><?php echo View::factory('domain/stgpools')->set('o',$o); ?></td>
<td style="width: 50%; vertical-align: top;"><?php echo View::factory('domain/stgpool_summary')->set('o',$o); ?></td>
<td>&nbsp;</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
<td class="spacer" colspan="2">&nbsp;</td>
</tr>
<tr>
<td style="width: 100%; vertical-align: top;"><?php echo View::factory('domain/volumes')->set('o',$o); ?></td>
<td colspan="2"><?php echo View::factory('domain/volumes')->set('o',$o); ?></td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
<td class="spacer" colspan="2">&nbsp;</td>
</tr>
<tr>
<td style="width: 100%; vertical-align: top;"><?php echo View::factory('domain/policy')->set('o',$o); ?></td>
<td colspan="2"><?php echo View::factory('domain/policy')->set('o',$o); ?></td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
<td class="spacer" colspan="2">&nbsp;</td>
</tr>
<tr>
<td style="width: 100%; vertical-align: top;"><?php echo View::factory('domain/schedules')->set('o',$o); ?></td>
<td colspan="2"><?php echo View::factory('domain/schedules')->set('o',$o); ?></td>
</tr>
</table>

View File

@@ -14,27 +14,27 @@
<td>Last IP Addr</td>
<td>Client Opt</td>
<?php foreach (Kohana::$config->load('config')->tsmdatatypes as $btype => $ctype) { ?>
<td><?php echo $ctype[0]; ?></td>
<td><?php echo substr($ctype,0,1); ?></td>
<?php } ?>
<?php foreach (Kohana::$config->load('config')->tsmpooltypes as $type) { ?>
<td colspan="3" class="right"><?php echo $type; ?>(Vol/Fil/Dat)</td>
<?php } ?>
</tr>
<?php $i=0; foreach ($o->NODE->find_all() as $no) { ?>
<?php $i=0; foreach ($o->nodes() as $no) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="data"><abbr title="<?php printf('%s (%s)',$no->display('CONTACT'),$no->display('EMAIL_ADDRESS')); ?>"><?php echo HTML::anchor('node/detail/'.$no->NODE_NAME,$no->NODE_NAME); ?></abbr></td>
<td class="data"><?php echo $no->tsmclientversion(); ?></td>
<td class="data"><?php echo $no->version(); ?></td>
<td class="data"><?php echo $no->platform(); ?></td>
<td class="data"><?php echo $no->display('LASTACC_TIME'); ?></td>
<td class="data"><?php echo $no->display('TCP_ADDRESS'); ?></td>
<td class="data"><?php echo $no->display('OPTION_SET'); ?></td>
<?php foreach (Kohana::$config->load('config')->tsmdatatypes as $btype => $ctype) { ?>
<td class="data"><?php echo $no->hasData($btype) ? 'Y' : 'N'; ?></td>
<td class="data"><?php echo $no->hasData($ctype) ? 'Y' : 'N'; ?></td>
<?php } ?>
<?php foreach (Kohana::$config->load('config')->tsmpooltypes as $type) { ?>
<td class="data-right"><?php echo count($no->getStorageTypeVols($type)); ?></td>
<td class="data-right"><?php echo $no->getStorageTypeFiles($type); ?></td>
<td class="data-right"><?php echo $no->getStorageTypeData($type); ?></td>
<td class="data-right"><?php echo count($no->vols_byptype($type)); ?></td>
<td class="data-right"><?php echo number_format($no->file_byptype($type),0); ?></td>
<td class="data-right"><?php echo number_format($no->logmb_byptype($type),0); ?></td>
<?php } ?>
</tr>
<?php } ?>

View File

@@ -15,7 +15,7 @@
<td>Priority</td>
<td>Nodes</td>
</tr>
<?php $i=0;foreach ($o->SCHEDULE_CLIENT->find_all() as $so) { ?>
<?php $i=0; foreach ($o->SCHEDULE_CLIENT->find_all() as $so) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="data"><?php echo $so->display('SCHEDULE_NAME'); ?></td>
<td class="data"><?php echo $so->display('STARTTIME'); ?></td>

View File

@@ -0,0 +1,36 @@
<!-- $o = ORM::factory('DOMAIN') -->
<table class="box-full">
<tr>
<td class="head" colspan="15">Storage By Pools Summary for Nodes in this Domain</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td colspan="2">Storage Pool and Type</td>
<td class="right">Scr Use</td>
<td class="right">Scr Avl</td>
<td class="right">Nodes</td>
<td class="right">Vols</td>
<td class="right">Files</td>
<td class="right">MB</td>
</tr>
<?php $i=0; foreach ($o->stgpooltypes() as $type) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td colspan="8" class="data"><?php echo $type; ?></td>
</tr>
<?php foreach ($o->stgpools_byptype($type) as $spo) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td>&nbsp;</td>
<td class="data"><?php echo HTML::anchor('stgpool/detail/'.$spo->STGPOOL_NAME,$spo->display('STGPOOL_NAME')); ?></td>
<td class="data-right"><?php echo $spo->display('NUMSCRATCHUSED'); ?></td>
<td class="data-right"><?php echo $spo->display('MAXSCRATCH'); ?></td>
<td class="data-right"><?php echo count($o->nodes_bypool($spo)); ?></td>
<td class="data-right"><?php echo count($o->vols_bypool($spo)); ?></td>
<td class="data-right"><?php echo number_format($o->file_bypool($spo),0); ?></td>
<td class="data-right"><?php echo number_format($o->logmb_bypool($spo),0); ?></td>
</tr>
<?php } ?>
<?php } ?>
</table>

View File

@@ -1,53 +0,0 @@
<!-- $o = ORM::factory('DOMAIN') -->
<table class="box-full">
<tr>
<td class="head" colspan="15">Storage Pools used by nodes in this Domain</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td colspan="3">Storage Pool</td>
<td class="right">Scr Use</td>
<td class="right">Scr Avl</td>
<td class="right">Access</td>
<td class="right">Rec %</td>
<td class="right">Util %</td>
<td class="right">Migr %</td>
<td class="right">High/Low</td>
<td class="right">Next</td>
<td class="right">Nodes</td>
<td class="right">Vols</td>
<td class="right">Files</td>
<td class="right">MB</td>
</tr>
<?php foreach (Kohana::$config->load('config')->tsmdatatypes as $btype => $ctype) { ?>
<tr class="subhead">
<td colspan="15"><?php echo $btype; ?></td>
</tr>
<?php foreach (Kohana::$config->load('config')->tsmpooltypes as $type) { ?>
<tr class="subhead">
<td>&nbsp;</td>
<td colspan="14"><?php echo $type; ?></td>
</tr>
<?php $i=0; foreach ($o->getStoragePoolsType($btype,$type) as $spo) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td colspan="2">&nbsp;</td>
<td class="data"><?php echo HTML::anchor('stgpool/detail/'.$spo->STGPOOL_NAME,$spo->display('STGPOOL_NAME')); ?></td>
<td class="data-right"><?php echo $spo->display('NUMSCRATCHUSED'); ?></td>
<td class="data-right"><?php echo $spo->display('MAXSCRATCH'); ?></td>
<td class="data-right"><?php echo $spo->display('ACCESS'); ?></td>
<td class="data-right"><?php echo $spo->display('RECLAIM'); ?></td>
<td class="data-right"><?php echo $spo->display('PCT_UTILIZED'); ?></td>
<td class="data-right"><?php echo $spo->display('PCT_MIGR'); ?></td>
<td class="data-right"><?php printf('%s/%s',$spo->HIGHMIG,$spo->LOWMIG); ?></td>
<td class="data-right"><?php echo $spo->NEXTSTGPOOL ? HTML::anchor('stgpool/detail/'.$spo->NEXTSTGPOOL,$spo->display('NEXTSTGPOOL')) : '&nbsp;'; ?></td>
<td class="data-right"><?php echo count($o->getStorageModeNodes($btype,$type,$spo)); ?></td>
<td class="data-right"><?php echo count($o->getStorageModeVols($ctype,$type,$spo)); ?></td>
<td class="data-right"><?php echo $o->getStorageModeFiles($btype,$type,$spo); ?></td>
<td class="data-right"><?php echo $o->getStorageModeData($btype,$type,$spo); ?></td>
</tr>
<?php } ?>
<?php } ?>
<?php } ?>
</table>

View File

@@ -1,55 +1,51 @@
<!-- $o = ORM::factory('DOMAIN') -->
<table class="box-full">
<tr>
<td class="head" colspan="14">Sequential Volumes needed to restore Data for Nodes in this Domain</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td colspan="4">Volume</td>
<td>Status</td>
<td>Access</td>
<td>Scr</td>
<td class="right">Pct %</td>
<td class="right">Rec %</td>
<td class="right">Mounted</td>
<td class="right">R/W Err</td>
<td class="right">FS</td>
<td class="right">Nodes</td>
<td class="right">Location</td>
</tr>
<table width="100%">
<?php foreach (Kohana::$config->load('config')->tsmdatatypes as $btype => $ctype) { ?>
<tr class="subhead">
<td colspan="14"><?php echo $btype; ?></td>
<tr>
<td style="width: 100%; vertical-align: top;">
<table class="box-full">
<tr>
<td class="head" colspan="2"><?php echo $ctype.' '._('Volumes'); ?></td>
</tr>
<?php if ($o->vols_bybtype($ctype)) { ?>
<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 class="right">Errors R/W</td>
<td class="right">Util %</td>
<td class="right">Recl %</td>
<td class="right">FS</td>
<td class="right">Nodes</td>
</tr>
<?php $i=0; foreach ($o->stgpools_bybtype($ctype) as $spo) { ?>
<tr class="subhead"><td colspan="10"><?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 ($o->vols_bypoolbybtype($spo->STGPOOL_NAME,$ctype) as $vuo) {
$vo = $vuo->VOLUME; ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="data"><?php echo HTML::anchor('volume/detail/'.$vo->VOLUME_NAME,$vo->display('VOLUME_NAME')); ?></td>
<td class="data"><?php echo $vo->display('LAST_READ_DATE'); ?></td>
<td class="data"><?php echo $vo->display('LAST_WRITE_DATE'); ?></td>
<td class="data"><?php echo $vo->display('ACCESS'); ?></td>
<td class="data"><?php echo $vo->display('STATUS'); ?></td>
<td class="data-right"><?php printf('%s/%s',$vo->READ_ERRORS,$vo->WRITE_ERRORS); ?></td>
<td class="data-right"><?php echo $vo->display('PCT_UTILIZED'); ?></td>
<td class="data-right"><?php echo $vo->display('PCT_RECLAIM'); ?></td>
<td class="data-right"><?php echo count($vo->fs_bybtype($ctype)); ?></td>
<td class="data-right"><?php echo count($vo->nodes_bybtype($ctype)); ?></td>
</tr>
<?php } ?>
<?php } ?>
<?php } else { ?>
<tr><td><?php echo _('There are NO volumes for this Domain.'); ?></td></tr>
<?php } ?>
</table>
</td>
</tr>
<?php foreach (Kohana::$config->load('config')->tsmpooltypes as $type) { ?>
<tr class="subhead">
<td>&nbsp;</td>
<td colspan="13"><?php echo $type; ?></td>
</tr>
<?php $i=0;foreach ($o->getStoragePoolsType($btype,$type) as $spo) { ?>
<tr class="subhead">
<td colspan="2">&nbsp;</td>
<td colspan="13"><?php echo $spo->DISPLAY('STGPOOL_NAME'); ?></td>
</tr>
<?php foreach ($o->getStorageModeVols($ctype,$type,$spo) as $vuo) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td colspan="3">&nbsp;</td>
<td class="data"><?php echo HTML::anchor('volume/detail/'.$vuo->VOLUME_NAME,$vuo->display('VOLUME_NAME')); ?></td>
<td class="data"><?php echo $vuo->VOLUME->display('STATUS'); ?></td>
<td class="data"><?php echo $vuo->VOLUME->display('ACCESS'); ?></td>
<td class="data"><?php echo $vuo->VOLUME->isScratch() ? 'Y' : 'N'; ?></td>
<td class="data-right"><?php echo $vuo->VOLUME->display('PCT_UTILIZED'); ?></td>
<td class="data-right"><?php echo $vuo->VOLUME->display('PCT_RECLAIM'); ?></td>
<td class="data-right"><?php echo $vuo->VOLUME->display('TIMES_MOUNTED'); ?></td>
<td class="data-right"><?php printf('%s/%s',$vuo->VOLUME->READ_ERRORS,$vuo->VOLUME->WRITE_ERRORS); ?></td>
<td class="data-right"><?php echo $vuo->VOLUME->getFSOnVol($ctype); ?></td>
<td class="data-right"><?php echo $vuo->VOLUME->getNodesOnVol($ctype); ?></td>
<td class="data-right"><?php echo $vuo->VOLUME->location(); ?></td>
</tr>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } ?>
</table>

View File

@@ -13,7 +13,7 @@
<td>State</td>
<td>Volume</td>
</tr>
<?php $i=0;foreach ($o->DRIVE->find_all() as $do) { ?>
<?php $i=0; foreach ($o->DRIVE->find_all() as $do) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="data"><?php echo $do->display('DRIVE_NAME'); ?></td>
<td class="data"><?php echo $do->display('DRIVE_SERIAL'); ?></td>

View File

@@ -7,7 +7,7 @@
<tr>
<td class="head" colspan="2"><?php echo $ctype; ?> Information</td>
</tr>
<?php if ($o->getStoragePools($btype)) { ?>
<?php if ($o->vols_bybtype($ctype)) { ?>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
@@ -15,21 +15,17 @@
<td>File Space</td>
<td><?php echo ($btype == 'Bkup') ? 'Last Date' : '&nbsp'; ?></td>
<td class="right">Utilisation</td>
<?php foreach (Kohana::$config->load('config')->tsmpooltypes as $type)
if (count($pools = $o->getStoragePoolsType($btype,$type)))
foreach ($pools as $pool_name) { ?>
<td class="right"><?php echo $pool_name; ?> <span style="vertical-align: super; font-size: 60%;"><?echo $type; ?></span></td>
<?php foreach ($o->stgpools() as $spo) { ?>
<td class="right"><?php echo $spo->display('STGPOOL_NAME'); ?> <span style="vertical-align: super; font-size: 60%;"><?php echo $spo->display('POOLTYPE'); ?></span></td>
<?php } ?>
</tr>
<?php $i=0;foreach ($o->FILESPACE->find_all() as $fso) { ?>
<?php $i=0; foreach ($o->fs() as $fso) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="data"><?php echo $fso->display('FILESPACE_NAME'); ?></td>
<td class="data"><?php echo ($btype == 'Bkup') ? $fso->display('BACKUP_END') : '&nbsp;'; ?></td>
<td class="data-right"><?php echo number_format($fso->utilsation(),2); ?></td>
<?php foreach (Kohana::$config->load('config')->tsmpooltypes as $type)
if (count($pools = $o->getStoragePoolsType($btype,$type)))
foreach ($pools as $pool_name) { ?>
<td class="data-right"><?php echo number_format($fso->pool_logical_util($pool_name,$btype),2); ?> (<?php echo $fso->pool_numvols($pool_name,$ctype); ?>)</td>
<?php foreach ($o->stgpools() as $spo) { ?>
<td class="data-right"><?php echo number_format($fso->pool_logical_util($spo->STGPOOL_NAME,$btype),2); ?> (<?php echo $fso->pool_numvols($spo->STGPOOL_NAME,$ctype); ?>)</td>
<?php } ?>
</tr>
<?php } ?>

View File

@@ -20,7 +20,7 @@
</tr>
<tr>
<td>TSM Client Version</td>
<td class="data"><?php echo $o->tsmclientversion(); ?></td>
<td class="data"><?php echo $o->version(); ?></td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>

View File

@@ -1,32 +1,32 @@
<!-- $o = ORM::factory('NODE') -->
<table class="box-full">
<tr>
<td class="head" colspan="2">Storage Summary</td>
<td class="head" colspan="2">Storage By Pool Summary</td>
</tr>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
<tr>
<td colspan="2">Storage Type</td>
<td colspan="2">Storage Pool and Type</td>
<td class="right">Vols</td>
<td class="right">Files</td>
<td class="right">MB</td>
</tr>
<?php $i=0; foreach (Kohana::$config->load('config')->tsmpooltypes as $type) { ?>
<?php $i=0; foreach ($o->stgpooltypes() as $type) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="data" colspan="2"><?php echo $type; ?></td>
<td class="data-right"><?php echo count($o->getStorageTypeVols($type)); ?></td>
<td class="data-right"><?php echo $o->getStorageTypeFiles($type); ?></td>
<td class="data-right"><?php echo $o->getStorageTypeData($type); ?></td>
<td class="data-right"><?php echo number_format($o->file_byptype($type),0); ?></td>
<td class="data-right"><?php echo number_format($o->logmb_byptype($type),0); ?></td>
</tr>
<?php foreach ($o->getAllStoragePoolsType($type) as $spo) { ?>
<?php foreach ($o->stgpools_byptype($type) as $spo) { ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td>&nbsp;</td>
<td><?php echo $spo; ?></td>
<td class="right"><?php echo count($o->getStorageTypeVols($type,$spo)); ?></td>
<td class="right"><?php echo $o->getStorageTypeFiles($type,$spo); ?></td>
<td class="right"><?php echo $o->getStorageTypeData($type,$spo); ?></td>
<td class="right"><?php echo count($o->vols_bypool($spo)); ?></td>
<td class="right"><?php echo number_format($o->file_bypool($spo),0); ?></td>
<td class="right"><?php echo number_format($o->logmb_bypool($spo),0); ?></td>
</tr>
<?php } ?>
<?php } ?>
<?php } ?>
</table>

View File

@@ -7,7 +7,7 @@
<tr>
<td class="head" colspan="2"><?php echo $ctype.' '._('Volumes'); ?></td>
</tr>
<?php if ($o->volumes($ctype)) { ?>
<?php if ($o->vols_bybtype($ctype)) { ?>
<tr>
<td class="spacer">&nbsp;</td>
</tr>
@@ -19,14 +19,14 @@
<td>Status</td>
<td class="right">Errors R/W</td>
<td class="right">Util %</td>
<td class="right">Reclaim</td>
<td class="right">Recl %</td>
<td class="right">Other FS</td>
<td class="right">Other Node</td>
</tr>
<?php $i=0; foreach ($o->volumes($ctype) as $stgpool => $vols) {
$spo = ORM::factory('STGPOOL',$stgpool); ?>
<?php $i=0; foreach ($o->stgpools_bybtype($ctype) as $spo) { ?>
<tr class="subhead"><td colspan="10"><?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 $vo) { ?>
<?php foreach ($o->vols_bypoolbybtype($spo->STGPOOL_NAME,$ctype) as $vuo) {
$vo = $vuo->VOLUME; ?>
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
<td class="data"><?php echo HTML::anchor('volume/detail/'.$vo->VOLUME_NAME,$vo->display('VOLUME_NAME')); ?></td>
<td class="data"><?php echo $vo->display('LAST_READ_DATE'); ?></td>
@@ -34,21 +34,18 @@
<td class="data"><?php echo $vo->display('ACCESS'); ?></td>
<td class="data"><?php echo $vo->display('STATUS'); ?></td>
<td class="data-right"><?php printf('%s/%s',$vo->READ_ERRORS,$vo->WRITE_ERRORS); ?></td>
<td class="data-right"><?php echo $vo->display('EST_CAPACITY_MB'); ?></td>
<td class="data-right"><?php echo $vo->display('PCT_UTILIZED'); ?></td>
<td class="data-right"><?php echo $vo->display('PCT_RECLAIM'); ?></td>
<td class="data-right"><?php echo $vo->getFSOnVol($ctype); ?></td>
<td class="data-right"><?php echo $vo->getNodesOnVol($ctype); ?></td>
<td class="data-right"><?php echo count($vo->fs_bybtype($ctype))-1; ?></td>
<td class="data-right"><?php echo count($vo->nodes_bybtype($ctype))-1; ?></td>
</tr>
<?php } ?>
<?php } ?>
<?php } ?>
<?php } else { ?>
<tr><td><?php echo _('There are NO volumes for this Node.'); ?></td></tr>
<?php } ?>
</table>
</td>
<td style="width: 50%; vertical-align: top;">
&nbsp;
</td>
</tr>
<?php } ?>
</table>

View File

@@ -31,8 +31,8 @@
<td class="data-right"><abbr title="<?php echo $vo->display('EST_CAPACITY_MB'); ?>"><?php echo $vo->display('PCT_UTILIZED'); ?></abbr></td>
<td class="data-right"><?php echo $vo->display('PCT_RECLAIM'); ?></td>
<?php foreach (Kohana::$config->load('config')->tsmdatatypes as $btype => $ctype) { ?>
<td class="data-right"><?php echo $vo->getFSOnVol($ctype); ?></td>
<td class="data-right"><?php echo $vo->getNodesOnVol($ctype); ?></td>
<td class="data-right"><?php echo count($vo->fs_bybtype($ctype)); ?></td>
<td class="data-right"><?php echo count($vo->nodes_bybtype($ctype)); ?></td>
<?php } ?>
</tr>
<?php } ?>