diff --git a/application/classes/Controller/Domain.php b/application/classes/Controller/Domain.php index ce80f07..e1e6465 100644 --- a/application/classes/Controller/Domain.php +++ b/application/classes/Controller/Domain.php @@ -65,8 +65,8 @@ class Controller_Domain extends Controller_TemplateDefault { Block::add(array( 'title'=>sprintf(_('Node Information for Domain %s'),$do->DOMAIN_NAME), - 'body'=>View::factory('domain/detail')->set('do',$do) - )); + 'body'=>View::factory('domain/detail')->set('o',$do) + )); } } ?> diff --git a/application/classes/Controller/Library.php b/application/classes/Controller/Library.php index 302493e..7e3b936 100644 --- a/application/classes/Controller/Library.php +++ b/application/classes/Controller/Library.php @@ -65,10 +65,8 @@ class Controller_Library extends Controller_TemplateDefault { Block::add(array( 'title'=>sprintf(_('Library Information for %s'),$lo->LIBRARY_NAME), - 'body'=>View::factory('library/detail') - ->set('lo',$lo) - ->set('slots',$lo->slots()) - )); + 'body'=>View::factory('library/detail')->set('o',$lo) + )); } } ?> diff --git a/application/classes/Controller/Node.php b/application/classes/Controller/Node.php index 247fe1e..dda1f3d 100644 --- a/application/classes/Controller/Node.php +++ b/application/classes/Controller/Node.php @@ -65,22 +65,22 @@ class Controller_Node extends Controller_TemplateDefault { Block::add(array( 'title'=>sprintf('%s %s',_('Detailed Node Information for'),$no->NODE_NAME), - 'body'=>View::factory('node/detail')->set('node',$no), + 'body'=>View::factory('node/detail')->set('o',$no), )); Block::add(array( 'title'=>_('Protected File System Information'), - 'body'=>View::factory('node/detail_filesystem')->set('node',$no), + 'body'=>View::factory('node/filesystems')->set('o',$no), )); Block::add(array( 'title'=>_('Sequential Volume Usage Information'), - 'body'=>View::factory('node/detail_volumes')->set('node',$no), + 'body'=>View::factory('node/volumes')->set('o',$no), )); Block::add(array( 'title'=>_('Schedule Information'), - 'body'=>View::factory('node/detail_schedule')->set('node',$no), + 'body'=>View::factory('node/schedule')->set('o',$no), )); } } diff --git a/application/classes/Controller/Stgpool.php b/application/classes/Controller/Stgpool.php index 3410f85..ec2eca6 100644 --- a/application/classes/Controller/Stgpool.php +++ b/application/classes/Controller/Stgpool.php @@ -65,7 +65,7 @@ class Controller_Stgpool extends Controller_TemplateDefault { Block::add(array( 'title'=>sprintf(_('Storage Pool Information for %s'),$so->STGPOOL_NAME), - 'body'=>View::factory('stgpool/detail')->set('so',$so) + 'body'=>View::factory('stgpool/detail')->set('o',$so) )); } } diff --git a/application/classes/Database/TSM/Show.php b/application/classes/Database/TSM/Show.php index 3e6bd80..04aab87 100644 --- a/application/classes/Database/TSM/Show.php +++ b/application/classes/Database/TSM/Show.php @@ -18,8 +18,10 @@ class Database_TSM_Show extends Database_Result { $sql = strtolower($sql); - $start = FALSE; $barcodewarn = FALSE; + $eid = $sid = FALSE; + $ec = 0; + foreach ($result as $line) { if (! trim($line)) continue; @@ -28,9 +30,6 @@ class Database_TSM_Show extends Database_Result { $library = strtoupper(preg_replace('/^show slots /','',$sql)); if (preg_match('/^Slot /',$line)) { - if ($start) - $this->_internal_row++; - $slot = array(); foreach ((preg_split('/,\s*/',$line,-1)) as $slotkey => $val) if (preg_match('/^element number\s+/',$val)) @@ -44,9 +43,34 @@ class Database_TSM_Show extends Database_Result { elseif (preg_match('/^barcode\s+/',$val)) $slot['barcode'] = preg_replace('/^barcode /','',$val); + // We assume that the element numbers are sequential + // @todo This routine would miss the first empty slots, there is no way to work this out? + if ($eid AND $eid+1 != $slot['element']) { + while ($eid+1 != $slot['element']) { + if ($ec++ > $this->Slots OR $sid == $slot['slot']) + throw new Kohana_Exception('Had a problem calculating EMPTY slots (:ec, :slots, :sid, :slot)', + array(':ec'=>$ec,':slots'=>$this->Slots,':sid'=>$sid,':slot'=>$slot['slot']) + ); + + $eid++; + $sid++; + $this->_rows[$this->_internal_row++] = new Slot(array( + 'element'=>"$eid", + 'slot'=>"$sid", + 'status'=>'Empty', + 'barcodelabel'=>'', + 'barcode'=>'', + )); + } + } + $slot['library'] = $library; - $this->_rows[$this->_internal_row] = new Slot($slot); - $start = TRUE; + $this->_rows[$this->_internal_row++] = new Slot($slot); + + // Counters to keep track of empty slots + $eid = $slot['element']; + $sid = $slot['slot']; + $ec++; if (! $barcodewarn AND $slot['status'] == 'Allocated' AND $slot['barcode'] == 'not present') { SystemMessage::add(array( diff --git a/application/classes/Model/LIBRARY.php b/application/classes/Model/LIBRARY.php index 1f2a23a..d93e564 100644 --- a/application/classes/Model/LIBRARY.php +++ b/application/classes/Model/LIBRARY.php @@ -56,7 +56,14 @@ class Model_LIBRARY extends TSM_ORM { // Return the number of slots that are empty. public function numemptyslot() { - return $this->slots->Slots-$this->slots->Changers-count($this->slots); + $return = array(); + + foreach ($this->slots() as $slot) + if ($slot->status == 'Empty') + array_push($return,$slot->LIBVOLUME->VOLUME); + + return count($return); + //return $this->slots->Slots-$this->slots->Changers-count($this->slots); } // Return the slots that are used, but not checked in. diff --git a/application/classes/Model/LIBVOLUME.php b/application/classes/Model/LIBVOLUME.php index 3f77f93..2664a83 100644 --- a/application/classes/Model/LIBVOLUME.php +++ b/application/classes/Model/LIBVOLUME.php @@ -25,7 +25,9 @@ class Model_LIBVOLUME extends TSM_ORM { public function usage() { switch (strtolower($this->STATUS)) { + case NULL: return 'empty'; case 'scratch': return strtolower($this->STATUS); + case 'private': if ($this->VOLUME->STATUS == 'EMPTY') return 'empty'; @@ -58,7 +60,6 @@ class Model_LIBVOLUME extends TSM_ORM { switch ($this->usage()) { case 'data': return sprintf('%s/%s',$this->VOLUME->display('STATUS'),$this->VOLUME->display('ACCESS')); case 'dbbackup': return $this->VOLHISTORY->lastuse()->backupid(); - case 'empty': return _('Empty'); default: return ''; } diff --git a/application/classes/Slot.php b/application/classes/Slot.php index 278c293..e408c1e 100644 --- a/application/classes/Slot.php +++ b/application/classes/Slot.php @@ -45,5 +45,9 @@ class Slot { else return $this->barcodelabel; } + + public function usage() { + return $this->status == 'Empty' ? $this->status : $this->LIBVOLUME->volusage(); + } } ?> diff --git a/application/views/domain/detail.php b/application/views/domain/detail.php index a509017..d4b0398 100644 --- a/application/views/domain/detail.php +++ b/application/views/domain/detail.php @@ -1,209 +1,29 @@ - + - + - + - + - +
- - - - - - - - - - - - - - - load('config')->tsmdatatypes as $btype => $ctype) { ?> - - - load('config')->tsmpooltypes as $type) { ?> - - - - NODE->find_all() as $no) { ?> - - - - - - - - load('config')->tsmdatatypes as $btype => $ctype) { ?> - - - load('config')->tsmpooltypes as $type) { ?> - - - - - - -
Nodes in this Domain
 
NodeVersionOSLast AccessLast IP AddrClient Opt(Vol/Fil/Dat)
NODE_NAME,$no->NODE_NAME); ?>tsmclientversion(); ?>platform(); ?>display('LASTACC_TIME'); ?>display('TCP_ADDRESS'); ?>display('OPTION_SET'); ?>hasData($btype) ? 'Y' : 'N'; ?>getStorageTypeVols($type)); ?>getStorageTypeFiles($type); ?>getStorageTypeData($type); ?>
-
set('o',$o); ?>
 
- - - - - - - - - - - - - - - - - - - - - - - load('config')->tsmdatatypes as $btype => $ctype) { ?> - - - - load('config')->tsmpooltypes as $type) { ?> - - - - - getStoragePoolsType($btype,$type) as $spo) { ?> - - - - - - - - - - - - - - - - - - - -
Storage Pools used by nodes in this Domain
 
Storage PoolScr UseScr AvlAccessRec %Util %Migr %High/LowNextNodesVolsFilesMB
 
 STGPOOL_NAME,$spo->display('STGPOOL_NAME')); ?>display('NUMSCRATCHUSED'); ?>display('MAXSCRATCH'); ?>display('ACCESS'); ?>display('RECLAIM'); ?>display('PCT_UTILIZED'); ?>display('PCT_MIGR'); ?>HIGHMIG,$spo->LOWMIG); ?>NEXTSTGPOOL ? HTML::anchor('stgpool/detail/'.$spo->NEXTSTGPOOL,$spo->display('NEXTSTGPOOL')) : ' '; ?>getStorageModeNodes($btype,$type,$spo)); ?>getStorageModeVols($ctype,$type,$spo)); ?>getStorageModeFiles($btype,$type,$spo); ?>getStorageModeData($btype,$type,$spo); ?>
-
set('o',$o); ?>
 
- - - - - - - - - - - - - - - - - - - - - load('config')->tsmdatatypes as $btype => $ctype) { ?> - - - - load('config')->tsmpooltypes as $type) { ?> - - - - - getStoragePoolsType($btype,$type) as $spo) { ?> - - - - - getStorageModeVols($ctype,$type,$spo) as $vuo) { ?> - - - - - - - - - - - - - - - - - - -
Sequential Volumes needed to restore Data for Nodes in this Domain
 
VolumeStatusAccessScrPct %Rec %MountedR/W ErrFSNodesLocation
 
 DISPLAY('STGPOOL_NAME'); ?>
 VOLUME_NAME; ?>VOLUME->display('STATUS'); ?>VOLUME->display('ACCESS'); ?>VOLUME->isScratch() ? 'Y' : 'N'; ?>VOLUME->display('PCT_UTILIZED'); ?>VOLUME->display('PCT_RECLAIM'); ?>VOLUME->display('TIMES_MOUNTED'); ?>VOLUME->READ_ERRORS,$vuo->VOLUME->WRITE_ERRORS); ?>VOLUME->getFSOnVol($ctype); ?>VOLUME->getNodesOnVol($ctype); ?>VOLUME->location(); ?>
-
set('o',$o); ?>
 
- set('domain',$do); ?> - set('o',$o); ?>
 
- - - - - - - - - - - - - - - - - SCHEDULE_CLIENT->find_all() as $so) { ?> - - - - - - - - - - -
Schedules used in this Domain
 
ScheduleStart TimeDurationRepeatValid DayPriorityNodes
display('SCHEDULE_NAME'); ?>display('STARTTIME'); ?>DURATION,$so->DURUNITS); ?>PERIOD,$so->PERUNITS); ?>display('DAYOFWEEK'); ?>display('PRIORITY'); ?>getNodes()); ?>
-
set('o',$o); ?>
diff --git a/application/views/domain/nodes.php b/application/views/domain/nodes.php new file mode 100644 index 0000000..e437fa9 --- /dev/null +++ b/application/views/domain/nodes.php @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + load('config')->tsmdatatypes as $btype => $ctype) { ?> + + + load('config')->tsmpooltypes as $type) { ?> + + + + NODE->find_all() as $no) { ?> + + + + + + + + load('config')->tsmdatatypes as $btype => $ctype) { ?> + + + load('config')->tsmpooltypes as $type) { ?> + + + + + + +
Nodes in this Domain
 
NodeVersionOSLast AccessLast IP AddrClient Opt(Vol/Fil/Dat)
NODE_NAME,$no->NODE_NAME); ?>tsmclientversion(); ?>platform(); ?>display('LASTACC_TIME'); ?>display('TCP_ADDRESS'); ?>display('OPTION_SET'); ?>hasData($btype) ? 'Y' : 'N'; ?>getStorageTypeVols($type)); ?>getStorageTypeFiles($type); ?>getStorageTypeData($type); ?>
diff --git a/application/views/node/policy.php b/application/views/domain/policy.php similarity index 87% rename from application/views/node/policy.php rename to application/views/domain/policy.php index 1af1dc6..48b6d9b 100644 --- a/application/views/node/policy.php +++ b/application/views/domain/policy.php @@ -1,3 +1,4 @@ + @@ -16,7 +17,7 @@ - MGMTCLASS->where('SET_NAME','=','ACTIVE')->find_all() as $mco) { ?> + MGMTCLASS->where('SET_NAME','=','ACTIVE')->find_all() as $mco) { ?> @@ -37,7 +38,7 @@ - MGMTCLASS->where('SET_NAME','=','ACTIVE')->find_all() as $mco) { ?> + MGMTCLASS->where('SET_NAME','=','ACTIVE')->find_all() as $mco) { ?> diff --git a/application/views/domain/schedules.php b/application/views/domain/schedules.php new file mode 100644 index 0000000..a64010b --- /dev/null +++ b/application/views/domain/schedules.php @@ -0,0 +1,29 @@ + +
Policy SettingsVer Del Frequency
display('CLASS_NAME'); ?>DEFAULTMC=='Yes' ? ' *' : ''; ?> display('MIGDESTINATION'); ?>Destination Retain
display('CLASS_NAME'); ?>DEFAULTMC=='Yes' ? ' *' : ''; ?> COPYGROUP_AR->display('DESTINATION'); ?>
+ + + + + + + + + + + + + + + + SCHEDULE_CLIENT->find_all() as $so) { ?> + + + + + + + + + + +
Schedules used in this Domain
 
ScheduleStart TimeDurationRepeatValid DayPriorityNodes
display('SCHEDULE_NAME'); ?>display('STARTTIME'); ?>DURATION,$so->DURUNITS); ?>PERIOD,$so->PERUNITS); ?>display('DAYOFWEEK'); ?>display('PRIORITY'); ?>getNodes()); ?>
diff --git a/application/views/domain/stgpools.php b/application/views/domain/stgpools.php new file mode 100644 index 0000000..f69b34b --- /dev/null +++ b/application/views/domain/stgpools.php @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + load('config')->tsmdatatypes as $btype => $ctype) { ?> + + + + load('config')->tsmpooltypes as $type) { ?> + + + + + getStoragePoolsType($btype,$type) as $spo) { ?> + + + + + + + + + + + + + + + + + + + +
Storage Pools used by nodes in this Domain
 
Storage PoolScr UseScr AvlAccessRec %Util %Migr %High/LowNextNodesVolsFilesMB
 
 STGPOOL_NAME,$spo->display('STGPOOL_NAME')); ?>display('NUMSCRATCHUSED'); ?>display('MAXSCRATCH'); ?>display('ACCESS'); ?>display('RECLAIM'); ?>display('PCT_UTILIZED'); ?>display('PCT_MIGR'); ?>HIGHMIG,$spo->LOWMIG); ?>NEXTSTGPOOL ? HTML::anchor('stgpool/detail/'.$spo->NEXTSTGPOOL,$spo->display('NEXTSTGPOOL')) : ' '; ?>getStorageModeNodes($btype,$type,$spo)); ?>getStorageModeVols($ctype,$type,$spo)); ?>getStorageModeFiles($btype,$type,$spo); ?>getStorageModeData($btype,$type,$spo); ?>
diff --git a/application/views/domain/volumes.php b/application/views/domain/volumes.php new file mode 100644 index 0000000..3b4fe30 --- /dev/null +++ b/application/views/domain/volumes.php @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + load('config')->tsmdatatypes as $btype => $ctype) { ?> + + + + load('config')->tsmpooltypes as $type) { ?> + + + + + getStoragePoolsType($btype,$type) as $spo) { ?> + + + + + getStorageModeVols($ctype,$type,$spo) as $vuo) { ?> + + + + + + + + + + + + + + + + + + +
Sequential Volumes needed to restore Data for Nodes in this Domain
 
VolumeStatusAccessScrPct %Rec %MountedR/W ErrFSNodesLocation
 
 DISPLAY('STGPOOL_NAME'); ?>
 VOLUME_NAME; ?>VOLUME->display('STATUS'); ?>VOLUME->display('ACCESS'); ?>VOLUME->isScratch() ? 'Y' : 'N'; ?>VOLUME->display('PCT_UTILIZED'); ?>VOLUME->display('PCT_RECLAIM'); ?>VOLUME->display('TIMES_MOUNTED'); ?>VOLUME->READ_ERRORS,$vuo->VOLUME->WRITE_ERRORS); ?>VOLUME->getFSOnVol($ctype); ?>VOLUME->getNodesOnVol($ctype); ?>VOLUME->location(); ?>
diff --git a/application/views/library/detail.php b/application/views/library/detail.php index 703c5b8..d2791a1 100644 --- a/application/views/library/detail.php +++ b/application/views/library/detail.php @@ -1,257 +1,15 @@ - - + + - + - + - +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Information for this Library
 
Namedisplay('LIBRARY_NAME'),$slots->ProductId); ?>
Serial Numberdisplay('LIBRARY_SERIAL'); ?>
Typedisplay('LIBRARY_TYPE'); ?>
DrivesDrives; ?>
Slots/ChangersSlots-$slots->Changers,$slots->Changers); ?>
Shareddisplay('SHARED'); ?>
LAN Freedisplay('LANFREE'); ?>
Auto Labeldisplay('AUTOLABEL'); ?>
Paths - - PATH->find_all() as $po) { ?> - - - - - - -
display('SOURCE_NAME'); ?>display('SOURCE_TYPE'); ?>display('DESTINATION_TYPE'); ?>display('DEVICE'); ?>
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - load('config')->tsmvolstatus as $status) { ?> - - - - - - - - - - - - load('config')->tsmdbtypes as $type) { ?> - - - - - - - - - - load('config')->tsmpooltypes as $type) { ?> - - - - load('config')->tsmvolstatus as $status) { ?> - - - - - storagepoolstype($type) as $spo) { ?> - - - - - load('config')->tsmvolstatus as $status) { ?> - - - - - - -
Library Volume Summary
 
Empty Slotsnumemptyslot(); ?>
Not Checked Innotcheckedinvol()); ?>
Scratchscratchvol()); ?>
Read Onlyreadonlyvol()); ?>
¹ Stale Storage Pool Volumes (load('config')->tsmtapeage; ?> days)stalevol()); ?>
² Removable Volumesremovablelibvol()); ?>
 
Storage Pool Volumes for this Library
 
Storage Type
DB VOLSdbvolsloc($inout)); ?> 
 dbvolstype($inout,$type)); ?> 
volstype($type,$inout,$status)); ?>
 libvolstype($inout,$status)); ?>
-
set('o',$o); ?>set('o',$o); ?>
- - - - - - - - - - - - - - - DRIVE->find_all() as $do) { ?> - - - - - - - - PATH->find_all() as $po) { ?> - - - - - - - - - -
Drives in this Library
 
NameSerial NumberOnlineStateVolume
display('DRIVE_NAME'); ?>display('DRIVE_SERIAL'); ?>display('ONLINE'); ?>display('DRIVE_STATE'); ?>display('VOLUME_NAME'); ?>
 display('SOURCE_NAME'); ?>display('SOURCE_TYPE'); ?>display('DESTINATION_TYPE'); ?>display('DEVICE'); ?>
-
set('o',$o); ?>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Volumes in this Library
 
BarcodeUsageStatus/AccessUtilisationReclaimLast ReadLast WriteSlotLibrary Access
barcodelabel().($slot->LIBVOLUME->VOLUME->recycle() ? ' ¹' : '').($slot->LIBVOLUME->removable() ? ' ²' : '')); ?>LIBVOLUME->volusage(); ?>LIBVOLUME->status()); ?>LIBVOLUME->VOLUME->display('PCT_UTILIZED'); ?>LIBVOLUME->VOLUME->display('PCT_RECLAIM'); ?>LIBVOLUME->VOLUME->display('LAST_READ_DATE'); ?>LIBVOLUME->lastwrite()); ?>LIBVOLUME->access()); ?>
-
set('o',$o); ?>
- - - - - - - - - - - - - - - - - - volsnotinlib() as $vo) { ?> - - - - - - - - - - - -
Volumes out of this Library
 
VolumeUsageStatus/AccessUtilisationReclaimLast ReadLast WriteLocation
recycle() ? ' ¹' : ''); ?>STGPOOL_NAME; ?>display('STATUS'),$vo->display('ACCESS')); ?>display('PCT_UTILIZED'); ?>display('PCT_RECLAIM'); ?>display('LAST_READ_DATE'); ?>display('LAST_WRITE_DATE'); ?>display('LOCATION'); ?>
-
set('o',$o); ?>
diff --git a/application/views/library/drives.php b/application/views/library/drives.php new file mode 100644 index 0000000..9c068c6 --- /dev/null +++ b/application/views/library/drives.php @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + DRIVE->find_all() as $do) { ?> + + + + + + + + PATH->find_all() as $po) { ?> + + + + + + + + + +
Drives in this Library
 
NameSerial NumberOnlineStateVolume
display('DRIVE_NAME'); ?>display('DRIVE_SERIAL'); ?>display('ONLINE'); ?>display('DRIVE_STATE'); ?>display('VOLUME_NAME'); ?>
 display('SOURCE_NAME'); ?>display('SOURCE_TYPE'); ?>display('DESTINATION_TYPE'); ?>display('DEVICE'); ?>
diff --git a/application/views/library/info.php b/application/views/library/info.php new file mode 100644 index 0000000..e2ac66c --- /dev/null +++ b/application/views/library/info.php @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Information for this Library
 
Namedisplay('LIBRARY_NAME'),$slots->ProductId); ?>
Serial Numberdisplay('LIBRARY_SERIAL'); ?>
Typedisplay('LIBRARY_TYPE'); ?>
DrivesDrives; ?>
Slots/ChangersSlots-$slots->Changers,$slots->Changers); ?>
Shareddisplay('SHARED'); ?>
LAN Freedisplay('LANFREE'); ?>
Auto Labeldisplay('AUTOLABEL'); ?>
Paths + + PATH->find_all() as $po) { ?> + + + + + + +
display('SOURCE_NAME'); ?>display('SOURCE_TYPE'); ?>display('DESTINATION_TYPE'); ?>display('DEVICE'); ?>
+
diff --git a/application/views/library/summary.php b/application/views/library/summary.php new file mode 100644 index 0000000..892a9c9 --- /dev/null +++ b/application/views/library/summary.php @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + load('config')->tsmvolstatus as $status) { ?> + + + + + + + + + + + + load('config')->tsmdbtypes as $type) { ?> + + + + + + + + + + load('config')->tsmpooltypes as $type) { ?> + + + + load('config')->tsmvolstatus as $status) { ?> + + + + + storagepoolstype($type) as $spo) { ?> + + + + + load('config')->tsmvolstatus as $status) { ?> + + + + + + +
Library Volume Summary
 
Empty Slotsnumemptyslot(); ?>
Not Checked Innotcheckedinvol()); ?>
Scratchscratchvol()); ?>
Read Onlyreadonlyvol()); ?>
¹ Stale Volumes (load('config')->tsmtapeage; ?> days)stalevol()); ?>
² Removable Volumesremovablelibvol()); ?>
 
Storage Pool Volumes for this Library
 
Storage Type
DB VOLSdbvolsloc($inout)); ?> 
 dbvolstype($inout,$type)); ?> 
volstype($type,$inout,$status)); ?>
 libvolstype($inout,$status)); ?>
diff --git a/application/views/library/volumes-in.php b/application/views/library/volumes-in.php new file mode 100644 index 0000000..ce50893 --- /dev/null +++ b/application/views/library/volumes-in.php @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + slots() as $slot) { ?> + + + + + + + + + + + + +
Volumes in this Library
 
BarcodeUsageStatus/AccessUtilisationReclaimLast ReadLast WriteSlotLibrary Access
barcodelabel().($slot->LIBVOLUME->VOLUME->recycle() ? ' ¹' : '').($slot->LIBVOLUME->removable() ? ' ²' : '')); ?>usage(); ?>LIBVOLUME->status()); ?>LIBVOLUME->VOLUME->display('PCT_UTILIZED'); ?>LIBVOLUME->VOLUME->display('PCT_RECLAIM'); ?>LIBVOLUME->VOLUME->display('LAST_READ_DATE'); ?>LIBVOLUME->lastwrite()); ?>LIBVOLUME->access()); ?>
diff --git a/application/views/library/volumes-out.php b/application/views/library/volumes-out.php new file mode 100644 index 0000000..bb8611a --- /dev/null +++ b/application/views/library/volumes-out.php @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + volsnotinlib() as $vo) { ?> + + + + + + + + + + + +
Volumes out of this Library
 
VolumeUsageStatus/AccessUtilisationReclaimLast ReadLast WriteLocation
recycle() ? ' ¹' : ''); ?>STGPOOL_NAME; ?>display('STATUS'),$vo->display('ACCESS')); ?>display('PCT_UTILIZED'); ?>display('PCT_RECLAIM'); ?>display('LAST_READ_DATE'); ?>display('LAST_WRITE_DATE'); ?>display('LOCATION'); ?>
diff --git a/application/views/node/cloptset.php b/application/views/node/cloptset.php new file mode 100644 index 0000000..a0f5005 --- /dev/null +++ b/application/views/node/cloptset.php @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + OPTION_SET) { ?> + CLIENTOPT->find_all() as $coo) { ?> + + + + + + + + + + + + +
Server Side Client Options
 
Client OptionSeq #SettingForced
display('OPTION_NAME'); ?>display('SEQNUMBER'); ?>display('OPTION_VALUE'); ?>display('FORCE'); ?>
This node is not configured for any server side Client Options
diff --git a/application/views/node/detail.php b/application/views/node/detail.php index 099ae89..d69295d 100644 --- a/application/views/node/detail.php +++ b/application/views/node/detail.php @@ -1,184 +1,14 @@ - - + + - - + + - - + +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Node Information
 
Node Namedisplay('NODE_NAME'); ?> (URL ? HTML::anchor($node->URL,$node->display('TCP_ADDRESS')) : $node->display('TCP_ADDRESS'); ?>)
Node Contactdisplay('CONTACT'); echo $node->EMAIL_ADDRESS ? ' ('.HTML::mailto($node->EMAIL_ADDRESS).')' : ''; ?>
Operating Sytemplatform(); ?>
TSM Client Versiontsmclientversion(); ?>
 
Date Registereddisplay('REG_TIME'); ?> (by display('REG_ADMIN'); ?>)
Date Last Password Changedisplay('PWSET_TIME'); ?>
 
Password Expirypassexp(); ?>
Invalid Password Countdisplay('INVALID_PW_COUNT'); ?> (LOCKED == 'NO' ? _('Not Locked') : _('Locked'); ?>)
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Last Session Performance Information
 
Last Accessdisplay('LASTACC_TIME'); ?>
Last SentLASTSESS_SENT/1024/1024,2); ?> MB
Last ReceiveLASTSESS_RECVD/1024/1024,2); ?> MB
Last DurationLASTSESS_DURATION/60,2); ?> min
Last Session Idle Wait Percentdisplay('LASTSESS_IDLEWAIT'); ?>% (LASTSESS_DURATION*($node->LASTSESS_IDLEWAIT/100),2); ?>s)
Last Session Comm Wait Percentdisplay('LASTSESS_COMMWAIT'); ?>% (LASTSESS_DURATION*($node->LASTSESS_COMMWAIT/100),2); ?>s)
Last Session Media Wait Percentdisplay('LASTSESS_MEDIAWAIT'); ?>% (LASTSESS_DURATION*($node->LASTSESS_MEDIAWAIT/100),2); ?>s)
Last Session Transfer Percentlasttransferpercent(),2); ?>% (lasttransfertime(),2); ?>s)
Last Session Send Performancelastsendperformance(),2); ?> MB/s (lastsendaggperformance(),2); ?> MB/s Aggregate)
Last Session Receive Performancelastreceiveperformance(),2); ?> MB/s (lastreceiveaggperformance(),2); ?> MB/s Aggregate)
-
set('o',$o); ?>set('o',$o); ?>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Backup Settings
 
DomainDOMAIN,$node->display('DOMAIN')); ?>
Client Option Setdisplay('OPTION_SET'); ?>
Collocation GroupCOLLOCGROUP_NAME ? $node->display('COLLOCGROUP_NAME') : 'Not Set'; ?>
Client Compressiondisplay('COMPRESSION'); ?>
TXN Group Maxtxngroupmax(); ?>
Delete Archivesdisplay('ARCHDELETE'); ?>
Delete Backupsdisplay('BACKDELETE'); ?>
Keep Mount Pointsdisplay('KEEP_MP'); ?> (display('MAX_MP_ALLOWED'); ?>)
-
-   - set('o',$o); ?> 
- set('domain',$node->DOMAIN); ?> - - - - - - - - - - - - - - - OPTION_SET) { ?> - CLIENTOPT->find_all() as $coo) { ?> - - - - - - - - - - - - -
Server Side Client Options
 
Client OptionSeq #SettingForced
display('OPTION_NAME'); ?>display('SEQNUMBER'); ?>display('OPTION_VALUE'); ?>display('FORCE'); ?>
This node is not configured for any server side Client Options
-
set('o',$o->DOMAIN); ?>set('o',$o); ?>
diff --git a/application/views/node/detail_filesystem.php b/application/views/node/detail_filesystem.php deleted file mode 100644 index 04eec55..0000000 --- a/application/views/node/detail_filesystem.php +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - -
- - - - - getStoragePools('Bkup')) { ?> - - - - - - - - load('config')->tsmpooltypes as $type) - if (count($pools = $node->getStoragePoolsType('Bkup',$type))) - foreach ($pools as $pool_name) { ?> - - - - FILESPACE->find_all() as $fso) { ?> - - - - - load('config')->tsmpooltypes as $type) - if (count($pools = $node->getStoragePoolsType('Bkup',$type))) - foreach ($pools as $pool_name) { ?> - - - - - - - -
Backup Information
 
File SpaceLast DateUtilisation
display('FILESPACE_NAME'); ?>display('BACKUP_END'); ?>utilsation(),2); ?>pool_logical_util($pool_name,'Bkup'),2); ?> (pool_numvols($pool_name,'BACKUP'); ?>)
There is NO Backup Data for this Node.
-
- - - - - - - - - - - - - - load('config')->tsmpooltypes as $type) { ?> - - - - - - - getAllStoragePoolsType($type) as $spo) { ?> - - - - - - - - - -
Storage Summary
 
Storage TypeVolsFilesMB
getStorageTypeVols($type)); ?>getStorageTypeFiles($type); ?>getStorageTypeData($type); ?>
 getStorageTypeVols($type,$spo)); ?>getStorageTypeFiles($type,$spo); ?>getStorageTypeData($type,$spo); ?>
-
- - - - - getStoragePools('Arch')) { ?> - - - - - - load('config')->tsmpooltypes as $type) - if (count($pools = $node->getStoragePoolsType('Arch',$type))) - foreach ($pools as $pool_name) { ?> - - - - FILESPACE->find_all() as $fso) { ?> - - - load('config')->tsmpooltypes as $type) - if (count($pools = $node->getStoragePoolsType('Arch',$type))) - foreach ($pools as $pool_name) { ?> - - - - - - - -
Archive Information
 
File Space
display('FILESPACE_NAME'); ?>pool_logical_util($pool_name,'Arch'),2); ?> (pool_numvols($pool_name,'ARCHIVE'); ?>)
There is NO Archive Data for this Node.
-
-   -
- - - - - getStoragePools('SpMg')) { ?> - - - - - - load('config')->tsmpooltypes as $type) - if (count($pools = $node->getStoragePoolsType('SpMg',$type))) - foreach ($pools as $pool_name) { ?> - - - - FILESPACE->find_all() as $fso) { ?> - - - load('config')->tsmpooltypes as $type) - if (count($pools = $node->getStoragePoolsType('SpMg',$type))) - foreach ($pools as $pool_name) { ?> - - - - - - - -
HSM Information
 
File Space
display('FILESPACE_NAME'); ?>pool_logical_util($pool_name,'SpMg'),2); ?> (pool_numvols($pool_name,'SPACE MANAGED'); ?>)
There is NO HSM Data for this Node.
-
-   -
diff --git a/application/views/node/detail_schedule.php b/application/views/node/detail_schedule.php deleted file mode 100644 index 3ad8b66..0000000 --- a/application/views/node/detail_schedule.php +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - -
- - - - - ASSOCIATION->find_all()) { ?> - - - - - - - - - - - - ASSOCIATION->find_all() as $ao) { ?> - - - - - - - - - - - - -
TSM Node Schedules
 
ScheduleStart TimeDurationRepeatValid DayPriority
display('SCHEDULE_NAME'); ?>SCHEDULE_CLIENT->display('STARTTIME'); ?>SCHEDULE_CLIENT->DURATION,$ao->SCHEDULE_CLIENT->DURUNITS); ?>SCHEDULE_CLIENT->PERIOD,$ao->SCHEDULE_CLIENT->PERUNITS); ?>SCHEDULE_CLIENT->display('DAYOFWEEK'); ?>SCHEDULE_CLIENT->display('PRIORITY'); ?>
There are no TSM schedules define for this Node.
-
- - - - - - - - - - - - - - - SUMMARY->find_all() as $so) { ?> - - - - - - - - -
Summary Activity
 
StartEndActivityScheduleMB
display('START_TIME'); ?>display('END_TIME'); ?>display('ACTIVITY'); ?>display('SCHEDULE_NAME'); ?>display('BYTES')/1024/1024,2)); ?>
-
- - - - - - - - - - - - - - - - EVENT->find_all() as $eo) { ?> - - - - - - - - - -
Schedule Activity
 
Sched StartAct StartSchedule NameStatusCompletedResult
display('SCHEDULED_START'); ?>display('ACTUAL_START')); ?>display('SCHEDULE_NAME'); ?>display('STATUS'); ?>display('COMPLETED')); ?>RESULT,$eo->display('REASON')); ?>
-
diff --git a/application/views/node/filesystems.php b/application/views/node/filesystems.php new file mode 100644 index 0000000..7b4297d --- /dev/null +++ b/application/views/node/filesystems.php @@ -0,0 +1,45 @@ + + + + + + +
+ load('config')->tsmdatatypes as $btype => $ctype) { ?> + + + + + getStoragePools($btype)) { ?> + + + + + + + + load('config')->tsmpooltypes as $type) + if (count($pools = $o->getStoragePoolsType($btype,$type))) + foreach ($pools as $pool_name) { ?> + + + + FILESPACE->find_all() as $fso) { ?> + + + + + load('config')->tsmpooltypes as $type) + if (count($pools = $o->getStoragePoolsType($btype,$type))) + foreach ($pools as $pool_name) { ?> + + + + + + + +
Information
 
File SpaceUtilisation
display('FILESPACE_NAME'); ?>display('BACKUP_END') : ' '; ?>utilsation(),2); ?>pool_logical_util($pool_name,$btype),2); ?> (pool_numvols($pool_name,$ctype); ?>)
There is no Data for this Node.
+
+ +
set('o',$o); ?>
diff --git a/application/views/node/info.php b/application/views/node/info.php new file mode 100644 index 0000000..07f1338 --- /dev/null +++ b/application/views/node/info.php @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Node Information
 
Node Namedisplay('NODE_NAME'); ?> (URL ? HTML::anchor($o->URL,$o->display('TCP_ADDRESS')) : $o->display('TCP_ADDRESS'); ?>)
Node Contactdisplay('CONTACT'); echo $o->EMAIL_ADDRESS ? ' ('.HTML::mailto($o->EMAIL_ADDRESS).')' : ''; ?>
Operating Sytemplatform(); ?>
TSM Client Versiontsmclientversion(); ?>
 
Date Registereddisplay('REG_TIME'); ?> (by display('REG_ADMIN'); ?>)
Date Last Password Changedisplay('PWSET_TIME'); ?>
 
Password Expirypassexp(); ?>
Invalid Password Countdisplay('INVALID_PW_COUNT'); ?> (LOCKED == 'NO' ? _('Not Locked') : _('Locked'); ?>)
 
Proxy TargetPROXY_TARGET,$o->display('PROXY_TARGET')); ?>
Proxy Agent(s)display('PROXY_AGENT'); ?>
diff --git a/application/views/node/schedule.php b/application/views/node/schedule.php new file mode 100644 index 0000000..cd36ffb --- /dev/null +++ b/application/views/node/schedule.php @@ -0,0 +1,10 @@ + + + + + + + + + +
set('o',$o); ?>set('o',$o); ?>
set('o',$o); ?>
diff --git a/application/views/node/schedule_activity.php b/application/views/node/schedule_activity.php new file mode 100644 index 0000000..7f6f73c --- /dev/null +++ b/application/views/node/schedule_activity.php @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + EVENT->find_all() as $eo) { ?> + + + + + + + + + +
Schedule Activity
 
Sched StartAct StartSchedule NameStatusCompletedResult
display('SCHEDULED_START'); ?>display('ACTUAL_START')); ?>display('SCHEDULE_NAME'); ?>display('STATUS'); ?>display('COMPLETED')); ?>RESULT,$eo->display('REASON')); ?>
diff --git a/application/views/node/schedule_list.php b/application/views/node/schedule_list.php new file mode 100644 index 0000000..17d6fb7 --- /dev/null +++ b/application/views/node/schedule_list.php @@ -0,0 +1,31 @@ + + + + + + ASSOCIATION->find_all()) { ?> + + + + + + + + + + + + ASSOCIATION->find_all() as $ao) { ?> + + + + + + + + + + + + +
TSM Node Schedules
 
ScheduleStart TimeDurationRepeatValid DayPriority
display('SCHEDULE_NAME'); ?>SCHEDULE_CLIENT->display('STARTTIME'); ?>SCHEDULE_CLIENT->DURATION,$ao->SCHEDULE_CLIENT->DURUNITS); ?>SCHEDULE_CLIENT->PERIOD,$ao->SCHEDULE_CLIENT->PERUNITS); ?>SCHEDULE_CLIENT->display('DAYOFWEEK'); ?>SCHEDULE_CLIENT->display('PRIORITY'); ?>
There are no TSM schedules define for this Node.
diff --git a/application/views/node/schedule_summary.php b/application/views/node/schedule_summary.php new file mode 100644 index 0000000..cc4f3d9 --- /dev/null +++ b/application/views/node/schedule_summary.php @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + SUMMARY->find_all() as $so) { ?> + + + + + + + + +
Summary Activity
 
StartEndActivityScheduleMB
display('START_TIME'); ?>display('END_TIME'); ?>display('ACTIVITY'); ?>display('SCHEDULE_NAME'); ?>display('BYTES')/1024/1024,2)); ?>
diff --git a/application/views/node/session.php b/application/views/node/session.php new file mode 100644 index 0000000..ff86d30 --- /dev/null +++ b/application/views/node/session.php @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Last Session Performance Information
 
Last Accessdisplay('LASTACC_TIME'); ?>
Last SentLASTSESS_SENT/1024/1024,2); ?> MB
Last ReceiveLASTSESS_RECVD/1024/1024,2); ?> MB
Last DurationLASTSESS_DURATION/60,2); ?> min
Last Session Idle Wait Percentdisplay('LASTSESS_IDLEWAIT'); ?>% (LASTSESS_DURATION*($o->LASTSESS_IDLEWAIT/100),2); ?>s)
Last Session Comm Wait Percentdisplay('LASTSESS_COMMWAIT'); ?>% (LASTSESS_DURATION*($o->LASTSESS_COMMWAIT/100),2); ?>s)
Last Session Media Wait Percentdisplay('LASTSESS_MEDIAWAIT'); ?>% (LASTSESS_DURATION*($o->LASTSESS_MEDIAWAIT/100),2); ?>s)
Last Session Transfer Percentlasttransferpercent(),2); ?>% (lasttransfertime(),2); ?>s)
Last Session Send Performancelastsendperformance(),2); ?> MB/s (lastsendaggperformance(),2); ?> MB/s Aggregate)
Last Session Receive Performancelastreceiveperformance(),2); ?> MB/s (lastreceiveaggperformance(),2); ?> MB/s Aggregate)
diff --git a/application/views/node/settings.php b/application/views/node/settings.php new file mode 100644 index 0000000..bff6ce4 --- /dev/null +++ b/application/views/node/settings.php @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Backup Settings
 
DomainDOMAIN,$o->display('DOMAIN')); ?>
Client Option Setdisplay('OPTION_SET'); ?>
Collocation GroupCOLLOCGROUP_NAME ? $o->display('COLLOCGROUP_NAME') : 'Not Set'; ?>
Client Compressiondisplay('COMPRESSION'); ?>
TXN Group Maxtxngroupmax(); ?>
Delete Archivesdisplay('ARCHDELETE'); ?>
Delete Backupsdisplay('BACKDELETE'); ?>
Keep Mount Pointsdisplay('KEEP_MP'); ?> (display('MAX_MP_ALLOWED'); ?>)
diff --git a/application/views/node/stgpool_summary.php b/application/views/node/stgpool_summary.php new file mode 100644 index 0000000..11ae4d5 --- /dev/null +++ b/application/views/node/stgpool_summary.php @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + load('config')->tsmpooltypes as $type) { ?> + + + + + + + getAllStoragePoolsType($type) as $spo) { ?> + + + + + + + + + +
Storage Summary
 
Storage TypeVolsFilesMB
getStorageTypeVols($type)); ?>getStorageTypeFiles($type); ?>getStorageTypeData($type); ?>
 getStorageTypeVols($type,$spo)); ?>getStorageTypeFiles($type,$spo); ?>getStorageTypeData($type,$spo); ?>
diff --git a/application/views/node/detail_volumes.php b/application/views/node/volumes.php similarity index 93% rename from application/views/node/detail_volumes.php rename to application/views/node/volumes.php index 49b73f2..88dc041 100644 --- a/application/views/node/detail_volumes.php +++ b/application/views/node/volumes.php @@ -1,3 +1,4 @@ + load('config')->tsmdatatypes as $btype => $ctype) { ?> @@ -6,7 +7,7 @@ - volumes($ctype)) { ?> + volumes($ctype)) { ?> @@ -22,7 +23,7 @@ - volumes($ctype) as $stgpool => $vols) { + volumes($ctype) as $stgpool => $vols) { $spo = ORM::factory('STGPOOL',$stgpool); ?> diff --git a/application/views/stgpool/detail.php b/application/views/stgpool/detail.php index fb819f8..55334a3 100644 --- a/application/views/stgpool/detail.php +++ b/application/views/stgpool/detail.php @@ -1,305 +1,15 @@
 
Other FS Other Node
STGPOOL_NAME,$spo->RECLAIM,$spo->NUMSCRATCHUSED,$spo->MAXSCRATCH,$spo->DEVCLASSES->DEVTYPE); ?>
- - + + - + - + - +
- - - - - - - - - - - - - - - - - - - - - - - - DEVCLASS != 'DISK') { ?> - - - - - - - - - - - - - - - - - - - - - - DEVCLASS === 'DISK') { ?> - - - - - - - - - - - - - - - - - - - - - - - - NEXTSTGPOOL AND $so->POOLTYPE === 'PRIMARY') { ?> - - - - - - - - - - - - - - - - - - - - - - - - - - NEXTSTGPOOL AND $so->POOLTYPE === 'PRIMARY') { ?> - - - - - - - - - - - - - - - - - - -
Information for this Storage Pool
 
Descriptiondisplay('DESCRIPTION'); ?>
Typedisplay('POOLTYPE'); ?>
Est Capacitydisplay('EST_CAPACITY_MB'); ?>
Util %display('PCT_UTILIZED'); ?>
Scratch VolsNUMSCRATCHUSED,$so->MAXSCRATCH); ?>
Volume Reuse Delaydisplay('REUSEDELAY'); ?>
Accessdisplay('ACCESS'); ?>
Max Object Sizedisplay('MAXSIZE'); ?>
Collatedisplay('COLLOCATE'); ?>
Cache Migrated Filesdisplay('CACHE'); ?>
Reclaim %display('RECLAIM'); ?>
Reclaim Processesdisplay('RECLAIMPROCESS'); ?>
Reclaim Storage Pooldisplay('RECLAIMSTGPOOL'); ?>
 
Next PoolNEXTSTGPOOL,$so->display('NEXTSTGPOOL')); ?>
Migratable %display('PCT_MIGR'); ?>
Hi/Low MigrationHIGHMIG,$so->LOWMIG); ?>
Migration Delaydisplay('MIGDELAY'); ?>
Migration Continuedisplay('MIGCONTINUE'); ?>
Last Migration Timedisplay('MIGR_SECONDS'); ?>
Last Migration Datadisplay('MIGR_MB'); ?>
 
Active Data Poolsdisplay('ACTIVEDATASTGPOOLS'); ?>
Copy Poolsdisplay('COPYSTGPOOLS'); ?>
Copy Continuedisplay('COPYCONTINUE'); ?>
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - DEVCLASSES->DEVTYPE == 'FILE') { ?> - - - - - - - - - - - - - - - - - - -
Device Class information
 
AccessDEVCLASSES->display('ACCESS_STRATEGY'); ?>
Device TypeDEVCLASSES->display('DEVTYPE'); ?>
FormatDEVCLASSES->display('FORMAT'); ?>
CapacityDEVCLASSES->display('CAPACITY'); ?>
Mount LimitDEVCLASSES->display('MOUNTLIMIT'); ?>
DirectoryDEVCLASSES->display('DIRECTORY'); ?>
LibraryDEVCLASSES->display('LIBRARY_NAME'); ?>
Mount WaitDEVCLASSES->display('MOUNTWAIT'); ?>
Mount RetentionDEVCLASSES->display('MOUNTRETENTION'); ?>
-
set('o',$o); ?>set('o',$o); ?>
- - - - - - - - - - - - - - - - COPYGROUP_BU->where('SET_NAME','=','ACTIVE')->find_all() as $cgo) { ?> - - - - - - - - - - - - - - - - - - COPYGROUP_AR->where('SET_NAME','=','ACTIVE')->find_all() as $cgo) { ?> - - - - - - - - - - - - - - - - - MGMTCLASS->where('SET_NAME','=','ACTIVE')->find_all() as $mo) { ?> - - - - - -
Management classes that directly store here
 
Backup Management Classes
DomainMgmtClassCopy Group
DOMAIN_NAME,$cgo->display('DOMAIN_NAME')); ?>display('CLASS_NAME'); ?>display('COPYGROUP_NAME'); ?>
 
Archive Management Classes
DomainMgmtClassCopy Group
display('DOMAIN_NAME'); ?>display('CLASS_NAME'); ?>display('COPYGROUP_NAME'); ?>
 
HSM Management Classes
DomainMgmtClass
display('DOMAIN_NAME'); ?>display('CLASS_NAME'); ?>DEFAULTMC == 'Yes' ? '*' : ''; ?>
-
set('o',$o); ?>
- - - - - - - - - - - - - - - - - load('config')->tsmdatatypes as $btype => $ctype) { ?> - - - - - VOLUME->find_all() as $vo) { ?> - - - - - - - - - - load('config')->tsmdatatypes as $btype => $ctype) { ?> - - - - - -
Volumes in this Storage Pool
 
VolumeLast Read DateLast Write DateAccessStatusErrors R/WUtil %Reclaim
display('VOLUME_NAME'); ?>display('LAST_READ_DATE'); ?>display('LAST_WRITE_DATE'); ?>display('ACCESS'); ?>display('STATUS'); ?>READ_ERRORS,$vo->WRITE_ERRORS); ?>display('PCT_UTILIZED'); ?>display('PCT_RECLAIM'); ?>getFSOnVol($ctype); ?>getNodesOnVol($ctype); ?>
-
set('o',$o); ?>
- - - - - - - - - - - - - - - - - OCC->find_all() as $oo) { ?> - - - - - - - - - - -
Nodes with data in this Storage Pool
 
NodeTypeFile SpaceNum FilesPhysicalLogicalReporting
NODE_NAME,$oo->NODE_NAME); ?>display('TYPE'); ?>display('FILESPACE_NAME'); ?>display('NUM_FILES'); ?>display('PHYSICAL_MB'); ?>display('LOGICAL_MB'); ?>display('REPORTING_MB'); ?>
-
set('o',$o); ?>
diff --git a/application/views/stgpool/devclass.php b/application/views/stgpool/devclass.php new file mode 100644 index 0000000..b896e90 --- /dev/null +++ b/application/views/stgpool/devclass.php @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DEVCLASSES->DEVTYPE == 'FILE') { ?> + + + + + + + + + + + + + + + + + + +
Device Class information
 
AccessDEVCLASSES->display('ACCESS_STRATEGY'); ?>
Device TypeDEVCLASSES->display('DEVTYPE'); ?>
FormatDEVCLASSES->display('FORMAT'); ?>
CapacityDEVCLASSES->display('CAPACITY'); ?>
Mount LimitDEVCLASSES->display('MOUNTLIMIT'); ?>
DirectoryDEVCLASSES->display('DIRECTORY'); ?>
LibraryDEVCLASSES->display('LIBRARY_NAME'); ?>
Mount WaitDEVCLASSES->display('MOUNTWAIT'); ?>
Mount RetentionDEVCLASSES->display('MOUNTRETENTION'); ?>
diff --git a/application/views/stgpool/info.php b/application/views/stgpool/info.php new file mode 100644 index 0000000..bc65dcc --- /dev/null +++ b/application/views/stgpool/info.php @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + DEVCLASS != 'DISK') { ?> + + + + + + + + + + + + + + + + + + + + + + DEVCLASS === 'DISK') { ?> + + + + + + + + + + + + + + + + + + + + + + + + NEXTSTGPOOL AND $o->POOLTYPE === 'PRIMARY') { ?> + + + + + + + + + + + + + + + + + + + + + + + + + + NEXTSTGPOOL AND $o->POOLTYPE === 'PRIMARY') { ?> + + + + + + + + + + + + + + + + + + +
Information for this Storage Pool
 
Descriptiondisplay('DESCRIPTION'); ?>
Typedisplay('POOLTYPE'); ?>
Est Capacitydisplay('EST_CAPACITY_MB'); ?>
Util %display('PCT_UTILIZED'); ?>
Scratch VolsNUMSCRATCHUSED,$o->MAXSCRATCH); ?>
Volume Reuse Delaydisplay('REUSEDELAY'); ?>
Accessdisplay('ACCESS'); ?>
Max Object Sizedisplay('MAXSIZE'); ?>
Collatedisplay('COLLOCATE'); ?>
Cache Migrated Filesdisplay('CACHE'); ?>
Reclaim %display('RECLAIM'); ?>
Reclaim Processesdisplay('RECLAIMPROCESS'); ?>
Reclaim Storage Pooldisplay('RECLAIMSTGPOOL'); ?>
 
Next PoolNEXTSTGPOOL,$o->display('NEXTSTGPOOL')); ?>
Migratable %display('PCT_MIGR'); ?>
Hi/Low MigrationHIGHMIG,$o->LOWMIG); ?>
Migration Delaydisplay('MIGDELAY'); ?>
Migration Continuedisplay('MIGCONTINUE'); ?>
Last Migration Timedisplay('MIGR_SECONDS'); ?>
Last Migration Datadisplay('MIGR_MB'); ?>
 
Active Data Poolsdisplay('ACTIVEDATASTGPOOLS'); ?>
Copy Poolsdisplay('COPYSTGPOOLS'); ?>
Copy Continuedisplay('COPYCONTINUE'); ?>
diff --git a/application/views/stgpool/mgmtclasses.php b/application/views/stgpool/mgmtclasses.php new file mode 100644 index 0000000..05222af --- /dev/null +++ b/application/views/stgpool/mgmtclasses.php @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + COPYGROUP_BU->where('SET_NAME','=','ACTIVE')->find_all() as $cgo) { ?> + + + + + + + + + + + + + + + + + + COPYGROUP_AR->where('SET_NAME','=','ACTIVE')->find_all() as $cgo) { ?> + + + + + + + + + + + + + + + + + MGMTCLASS->where('SET_NAME','=','ACTIVE')->find_all() as $mo) { ?> + + + + + +
Management classes that directly store here
 
Backup Management Classes
DomainMgmtClassCopy Group
DOMAIN_NAME,$cgo->display('DOMAIN_NAME')); ?>display('CLASS_NAME'); ?>display('COPYGROUP_NAME'); ?>
 
Archive Management Classes
DomainMgmtClassCopy Group
display('DOMAIN_NAME'); ?>display('CLASS_NAME'); ?>display('COPYGROUP_NAME'); ?>
 
HSM Management Classes
DomainMgmtClass
display('DOMAIN_NAME'); ?>display('CLASS_NAME'); ?>DEFAULTMC == 'Yes' ? '*' : ''; ?>
diff --git a/application/views/stgpool/nodes.php b/application/views/stgpool/nodes.php new file mode 100644 index 0000000..da12ecf --- /dev/null +++ b/application/views/stgpool/nodes.php @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + OCC->find_all() as $oo) { ?> + + + + + + + + + + +
Nodes with data in this Storage Pool
 
NodeTypeFile SpaceNum FilesPhysicalLogicalReporting
NODE_NAME,$oo->NODE_NAME); ?>display('TYPE'); ?>display('FILESPACE_NAME'); ?>display('NUM_FILES'); ?>display('PHYSICAL_MB'); ?>display('LOGICAL_MB'); ?>display('REPORTING_MB'); ?>
diff --git a/application/views/stgpool/volumes.php b/application/views/stgpool/volumes.php new file mode 100644 index 0000000..f5492fa --- /dev/null +++ b/application/views/stgpool/volumes.php @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + load('config')->tsmdatatypes as $btype => $ctype) { ?> + + + + + VOLUME->find_all() as $vo) { ?> + + + + + + + + + + load('config')->tsmdatatypes as $btype => $ctype) { ?> + + + + + +
Volumes in this Storage Pool
 
VolumeLast Read DateLast Write DateAccessStatusErrors R/WUtil %Reclaim
display('VOLUME_NAME'); ?>display('LAST_READ_DATE'); ?>display('LAST_WRITE_DATE'); ?>display('ACCESS'); ?>display('STATUS'); ?>READ_ERRORS,$vo->WRITE_ERRORS); ?>display('PCT_UTILIZED'); ?>display('PCT_RECLAIM'); ?>getFSOnVol($ctype); ?>getNodesOnVol($ctype); ?>