diff --git a/application/classes/controller/domain.php b/application/classes/controller/domain.php
index 5cca653..bd2a9e3 100644
--- a/application/classes/controller/domain.php
+++ b/application/classes/controller/domain.php
@@ -33,14 +33,6 @@ class Controller_DOMAIN extends Controller_TemplateDefault {
$output .= Form::submit('form_submit',_('Go'));
$output .= Form::close();
- Script::add(array(
- 'type'=>'stdin',
- 'data'=>'
-$(document).ready(function () {$("#domain_name").change(function () {
- $("#domain_name").trigger("submit");
- });});'
- ));
-
Block::add(array(
'title'=>_('TSM Domains'),
'body'=>$output,
diff --git a/application/classes/controller/node.php b/application/classes/controller/node.php
index b84df33..47f4c82 100644
--- a/application/classes/controller/node.php
+++ b/application/classes/controller/node.php
@@ -33,14 +33,6 @@ class Controller_NODE extends Controller_TemplateDefault {
$output .= Form::submit('form_submit',_('Go'));
$output .= Form::close();
- Script::add(array(
- 'type'=>'stdin',
- 'data'=>'
-$(document).ready(function () {$("#node_name").change(function () {
- $("#node_detail").trigger("submit");
- });});'
- ));
-
Block::add(array(
'title'=>_('TSM Nodes'),
'body'=>$output,
@@ -71,22 +63,22 @@ $(document).ready(function () {$("#node_name").change(function () {
Block::add(array(
'title'=>sprintf('%s %s',_('Detailed Node Information for'),$no->NODE_NAME),
- 'body'=>View::factory('nodes/detail')->set('node',$no),
+ 'body'=>View::factory('node/detail')->set('node',$no),
));
Block::add(array(
'title'=>_('Protected File System Information'),
- 'body'=>View::factory('nodes/detail_filesystem')->set('node',$no),
+ 'body'=>View::factory('node/detail_filesystem')->set('node',$no),
));
Block::add(array(
'title'=>_('Sequential Volume Usage Information'),
- 'body'=>View::factory('nodes/detail_volumes')->set('node',$no),
+ 'body'=>View::factory('node/detail_volumes')->set('node',$no),
));
Block::add(array(
'title'=>_('Schedule Information'),
- 'body'=>View::factory('nodes/detail_schedule')->set('node',$no),
+ 'body'=>View::factory('node/detail_schedule')->set('node',$no),
));
}
}
diff --git a/application/classes/controller/stgpool.php b/application/classes/controller/stgpool.php
new file mode 100644
index 0000000..769a8bb
--- /dev/null
+++ b/application/classes/controller/stgpool.php
@@ -0,0 +1,70 @@
+%s stgpool pools.'),$so->count_all());
+ $output .= '
';
+ $output .= '
';
+
+ $select = array();
+ $select[NULL] = '';
+
+ foreach ($so->find_all() as $stgpool)
+ $select[$stgpool->STGPOOL_NAME] = $stgpool->STGPOOL_NAME;
+
+ $output .= Form::open('/stgpool/detail',array('id'=>'stgpool_detail'));
+ $output .= sprintf('%s: %s',_('Choose a storage pool to view'),Form::select('stgpool_name',$select,NULL,array('id'=>'stgpool_name')));
+ $output .= Form::submit('form_submit',_('Go'));
+ $output .= Form::close();
+
+ Block::add(array(
+ 'title'=>_('TSM Storage Pools'),
+ 'body'=>$output,
+ ));
+ }
+
+ public function action_detail($stgpool=NULL) {
+ if (is_null($stgpool) AND (empty($_POST['stgpool_name']) OR ! $stgpool = $_POST['stgpool_name'])) {
+ SystemMessage::add(array(
+ 'title'=>_('STGPOOL_NAME is required'),
+ 'type'=>'error',
+ 'body'=>_('The stgpool pool name is required.'),
+ ));
+
+ Request::current()->redirect('stgpool');
+ }
+
+ $so = ORM::factory('stgpool',$stgpool);
+ if (! $so->loaded()) {
+ SystemMessage::add(array(
+ 'title'=>_('Unknown STGPOOL_NAME'),
+ 'type'=>'error',
+ 'body'=>sprintf(_('The stgpool pool [%s] does not exist?.'),$stgpool),
+ ));
+
+ Request::current()->redirect('stgpool');
+ }
+
+ Block::add(array(
+ 'title'=>sprintf(_('Storage Pool Information for %s'),$so->STGPOOL_NAME),
+ 'body'=>View::factory('stgpool/detail')->set('so',$so)
+ ));
+ }
+}
+?>
diff --git a/application/classes/controller/tree.php b/application/classes/controller/tree.php
index 8f45255..ede3e1a 100644
--- a/application/classes/controller/tree.php
+++ b/application/classes/controller/tree.php
@@ -47,6 +47,14 @@ class Controller_Tree extends Controller_lnApp_Tree {
'attr_href'=>URL::Site('server/gantt'),
));
+ array_push($data,array(
+ 'id'=>'stgpool',
+ 'name'=>'Storage Pool Info',
+ 'state'=>'none',
+ 'attr_id'=>'1',
+ 'attr_href'=>URL::Site('stgpool'),
+ ));
+
return parent::action_json($id,$data);
}
}
diff --git a/application/classes/model/stgpool.php b/application/classes/model/stgpool.php
index ff02beb..e1aed06 100644
--- a/application/classes/model/stgpool.php
+++ b/application/classes/model/stgpool.php
@@ -19,5 +19,8 @@ class Model_STGPOOL extends ORMTSM {
protected $_has_one = array(
'DEVCLASSES'=>array('foreign_key'=>'DEVCLASS_NAME','far_key'=>'DEVCLASS'),
);
+ protected $_has_many = array(
+ 'VOLUME'=>array('foreign_key'=>'STGPOOL_NAME','far_key'=>'STGPOOL_NAME'),
+ );
}
?>
diff --git a/application/views/domain/detail.php b/application/views/domain/detail.php
index 3abb276..c002c99 100644
--- a/application/views/domain/detail.php
+++ b/application/views/domain/detail.php
@@ -166,7 +166,7 @@
- set('domain',$do); ?>
+ set('domain',$do); ?>
|
diff --git a/application/views/nodes/detail.php b/application/views/node/detail.php
similarity index 98%
rename from application/views/nodes/detail.php
rename to application/views/node/detail.php
index cae9808..099ae89 100644
--- a/application/views/nodes/detail.php
+++ b/application/views/node/detail.php
@@ -148,7 +148,7 @@
- set('domain',$node->DOMAIN); ?>
+ set('domain',$node->DOMAIN); ?>
|
diff --git a/application/views/nodes/detail_filesystem.php b/application/views/node/detail_filesystem.php
similarity index 100%
rename from application/views/nodes/detail_filesystem.php
rename to application/views/node/detail_filesystem.php
diff --git a/application/views/nodes/detail_schedule.php b/application/views/node/detail_schedule.php
similarity index 100%
rename from application/views/nodes/detail_schedule.php
rename to application/views/node/detail_schedule.php
diff --git a/application/views/nodes/detail_volumes.php b/application/views/node/detail_volumes.php
similarity index 66%
rename from application/views/nodes/detail_volumes.php
rename to application/views/node/detail_volumes.php
index a800ad2..9be763d 100644
--- a/application/views/nodes/detail_volumes.php
+++ b/application/views/node/detail_volumes.php
@@ -25,18 +25,18 @@
volumes($ctype) as $stgpool => $vols) {
$spo = ORM::factory('STGPOOL',$stgpool); ?>
STGPOOL_NAME,$spo->RECLAIM,$spo->NUMSCRATCHUSED,$spo->MAXSCRATCH,$spo->DEVCLASSES->DEVTYPE); ?> |
-
+
- VOLUME_NAME; ?> |
- display('LAST_READ_DATE'); ?> |
- display('LAST_WRITE_DATE'); ?> |
- display('ACCESS'); ?> |
- display('STATUS'); ?> |
- READ_ERRORS,$vol->WRITE_ERRORS); ?> |
- display('EST_CAPACITY_MB'); ?> |
- display('PCT_RECLAIM'); ?> |
- getFSOnVol($ctype); ?> |
- getNodesOnVol($ctype); ?> |
+ VOLUME_NAME; ?> |
+ display('LAST_READ_DATE'); ?> |
+ display('LAST_WRITE_DATE'); ?> |
+ display('ACCESS'); ?> |
+ display('STATUS'); ?> |
+ READ_ERRORS,$vo->WRITE_ERRORS); ?> |
+ display('EST_CAPACITY_MB'); ?> |
+ display('PCT_RECLAIM'); ?> |
+ getFSOnVol($ctype); ?> |
+ getNodesOnVol($ctype); ?> |
diff --git a/application/views/nodes/policy.php b/application/views/node/policy.php
similarity index 100%
rename from application/views/nodes/policy.php
rename to application/views/node/policy.php
diff --git a/application/views/stgpool/detail.php b/application/views/stgpool/detail.php
new file mode 100644
index 0000000..b0f25a9
--- /dev/null
+++ b/application/views/stgpool/detail.php
@@ -0,0 +1,216 @@
+
+
+
+
+
+ Information for this Storage Pool |
+
+
+ |
+
+
+ Description |
+ display('DESCRIPTION'); ?> |
+
+
+ Type |
+ display('POOLTYPE'); ?> |
+
+
+ Est Capacity |
+ display('EST_CAPACITY_MB'); ?> |
+
+
+ Util % |
+ display('PCT_UTILIZED'); ?> |
+
+ DEVCLASS != 'DISK') { ?>
+
+ Scratch Vols |
+ NUMSCRATCHUSED,$so->MAXSCRATCH); ?> |
+
+
+ Volume Reuse Delay |
+ display('REUSEDELAY'); ?> |
+
+
+
+ Access |
+ display('ACCESS'); ?> |
+
+
+ Max Object Size |
+ display('MAXSIZE'); ?> |
+
+
+ Collate |
+ display('COLLOCATE'); ?> |
+
+ DEVCLASS === 'DISK') { ?>
+
+ Cache Migrated Files |
+ display('CACHE'); ?> |
+
+
+
+ Reclaim % |
+ display('RECLAIM'); ?> |
+
+
+ Reclaim Processes |
+ display('RECLAIMPROCESS'); ?> |
+
+
+ Reclaim Storage Pool |
+ display('RECLAIMSTGPOOL'); ?> |
+
+
+
+ |
+
+
+ Next Pool |
+ NEXTSTGPOOL AND $so->POOLTYPE === 'PRIMARY') { ?>
+ display('NEXTSTGPOOL'); ?> |
+
+
+ Migratable % |
+ display('PCT_MIGR'); ?> |
+
+
+ Hi/Low Migration |
+ HIGHMIG,$so->LOWMIG); ?> |
+
+
+ Migration Delay |
+ display('MIGDELAY'); ?> |
+
+
+ Migration Continue |
+ display('MIGCONTINUE'); ?> |
+
+
+ Last Migration Time |
+ display('MIGR_SECONDS'); ?> |
+
+
+ Last Migration Data |
+ display('MIGR_MB'); ?> |
+ NEXTSTGPOOL AND $so->POOLTYPE === 'PRIMARY') { ?>
+ |
+
+
+
+ |
+
+
+ Active Data Pools |
+ display('ACTIVEDATASTGPOOLS'); ?> |
+
+
+ Copy Pools |
+ display('COPYSTGPOOLS'); ?> |
+
+
+ Copy Continue |
+ display('COPYCONTINUE'); ?> |
+
+
+ |
+
+
+
+ Device Class information |
+
+
+ |
+
+
+ Access |
+ DEVCLASSES->display('ACCESS_STRATEGY'); ?> |
+
+
+ Total Storage Pools |
+ DEVCLASSES->display('STGPOOL_COUNT'); ?> |
+
+
+ Device Type |
+ DEVCLASSES->display('DEVTYPE'); ?> |
+
+
+ Format |
+ DEVCLASSES->display('FORMAT'); ?> |
+
+
+ Capacity |
+ DEVCLASSES->display('CAPACITY'); ?> |
+
+
+ Mount Limit |
+ DEVCLASSES->display('MOUNTLIMIT'); ?> |
+
+ DEVCLASSES->DEVTYPE == 'FILE') { ?>
+
+ Directory |
+ DEVCLASSES->display('DIRECTORY'); ?> |
+
+
+
+ Library |
+ DEVCLASSES->display('LIBRARY_NAME'); ?> |
+
+
+ Mount Wait |
+ DEVCLASSES->display('MOUNTWAIT'); ?> |
+
+
+ Mount Retention |
+ DEVCLASSES->display('MOUNTRETENTION'); ?> |
+
+
+
+ |
+
+
+
+
+
+ Volumes in this Storage Pool |
+
+
+ |
+
+
+ Volume |
+ Last Read Date |
+ Last Write Date |
+ Access |
+ Status |
+ Errors R/W |
+ Util % |
+ Reclaim |
+ $ctype) { ?>
+ |
+ |
+
+
+ VOLUME->find_all() as $vo) { ?>
+
+ display('VOLUME_NAME'); ?> |
+ display('LAST_READ_DATE'); ?> |
+ display('LAST_WRITE_DATE'); ?> |
+ display('ACCESS'); ?> |
+ display('STATUS'); ?> |
+ READ_ERRORS,$vo->WRITE_ERRORS); ?> |
+ display('EST_CAPACITY_MB'); ?> |
+ display('PCT_RECLAIM'); ?> |
+ $ctype) { ?>
+ getFSOnVol($ctype); ?> |
+ getNodesOnVol($ctype); ?> |
+
+
+
+
+ |
+
+
|