Added Node Session
This commit is contained in:
parent
b415296c62
commit
cf7f5256ae
@ -146,7 +146,7 @@ Route::set('default/media', 'media(/<file>)', array('file' => '.+'))
|
||||
* Set the routes. Each route must have a minimum of a name, a URI and a set of
|
||||
* defaults for the URI.
|
||||
*/
|
||||
Route::set('default', '(<controller>(/<action>(/<id>)))', array('id'=>'[a-zA-Z0-9_.\-=]+'))
|
||||
Route::set('default', '(<controller>(/<action>(/<id>)))', array('id'=>'[a-zA-Z0-9_.\-=,]+'))
|
||||
->defaults(array(
|
||||
'controller' => 'welcome',
|
||||
'action' => 'index',
|
||||
|
@ -52,5 +52,41 @@ class Controller_Node extends Controller_TemplateDefault_View {
|
||||
$this->response->headers('Content-Type','application/json');
|
||||
$this->response->body($google->json());
|
||||
}
|
||||
|
||||
/**
|
||||
* Return details of a specific node SESSION in the ACTIVITY LOG
|
||||
* @param $id NODE,SESSION_ID,SESSION_START_DATE
|
||||
*/
|
||||
public function action_session() {
|
||||
$id = $this->request->param('id');
|
||||
|
||||
if (substr_count($id,',') != 2) {
|
||||
SystemMessage::add(array(
|
||||
'title'=>_('Invalid ID'),
|
||||
'body'=>sprintf(_('The session ID %s is invalid'),$id),
|
||||
'type'=>'error',
|
||||
));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
list($nid,$sid,$start) = explode(',',$id,3);
|
||||
|
||||
$no = ORM::factory('NODE',$nid);
|
||||
if (! $no->loaded()) {
|
||||
SystemMessage::add(array(
|
||||
'title'=>_('Invalid Node'),
|
||||
'body'=>sprintf(_('The Node ID %s is invalid'),$nid),
|
||||
'type'=>'error',
|
||||
));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Block::add(array(
|
||||
'title'=>sprintf(_('Session %s Detail for Node %s'),$sid,$no->display('NODE_NAME')),
|
||||
'body'=>View::factory(sprintf('%s/clientsession',strtolower($this->request->controller())))->set('o',$no->actlog_session($sid,$start)),
|
||||
));
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -27,8 +27,25 @@ class Model_ACTLOG extends ORM_TSM {
|
||||
private $_msgno_ba_transfer = array(4963,4966,4967,4964);
|
||||
private $_msgno_ba_reduction = array(4968,4981,4976);
|
||||
|
||||
public function exclude_ba() {
|
||||
/**
|
||||
* Return the timestamp of the record in the ACTLOG
|
||||
*/
|
||||
public function FirstRec() {
|
||||
return DB::query(Database::SELECT,'SELECT min(DATE_TIME) as DATE_TIME from ACTLOG')->cached(86400)->execute()->get('DATE_TIME');
|
||||
}
|
||||
|
||||
/**
|
||||
* Where class to exclude NODE backup messages
|
||||
*/
|
||||
public function ExcludeBA() {
|
||||
return $this->where('MSGNO','NOT IN',array_merge($this->_msgno_ba_objects,$this->_msgno_ba_bytes,$this->_msgno_ba_transfer,$this->_msgno_ba_reduction));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return this ACTIVITY LOG start time in seconds since epoch
|
||||
*/
|
||||
public function start() {
|
||||
return ORM_TSM::date($this->DATE_TIME,'U');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -25,8 +25,25 @@ class Model_ACTSUM extends ORM_TSM {
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* Return if this ACTIVITY SUMMARY would be still in the ACTIVITY LOG
|
||||
*/
|
||||
public function inActLog() {
|
||||
return ORM_TSM::date(ORM::factory('ACTLOG')->FirstRec(),'U') <= $this->start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Return this ACTIVITY SUMMARY in GB
|
||||
*/
|
||||
public function bytes() {
|
||||
return (real)number_format($this->BYTES/1024/1024,0,'','');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return this ACTIVITY SUMMARY start time in seconds since epoch
|
||||
*/
|
||||
public function start() {
|
||||
return ORM_TSM::date($this->START_TIME,'U');
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -115,6 +115,32 @@ class Model_NODE extends ORM_TSM {
|
||||
),
|
||||
);
|
||||
|
||||
/**
|
||||
* Get all the ACTIVITIY LOG for this NODE
|
||||
*/
|
||||
private function _actlog() {
|
||||
Log::instance()->add(LOG::DEBUG,'ENTER :method',array(':method'=>__METHOD__));
|
||||
|
||||
$k = sprintf('%s-%s',__METHOD__,$this->NODE_NAME);
|
||||
$c = Kohana::$config->load('config')->cache;
|
||||
|
||||
if (is_null($result = Cache::instance($c)->get($k))) {
|
||||
$result = array();
|
||||
|
||||
// In the interest of performance, we load all the records and get PHP to process it.
|
||||
// Our ORM caching we reduce the hit on TSM.
|
||||
foreach (ORM::factory('ACTLOG')->find_all() as $o)
|
||||
if ($o->NODENAME == $this->NODE_NAME)
|
||||
array_push($result,$o);
|
||||
|
||||
// @todo Cache time should be configurble
|
||||
Cache::instance($c)->set($k,$result,300);
|
||||
}
|
||||
|
||||
Log::instance()->add(LOG::DEBUG,'EXIT :method',array(':method'=>__METHOD__));
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the ACTIVITY SUMMARY for this NODE
|
||||
*/
|
||||
@ -303,7 +329,7 @@ class Model_NODE extends ORM_TSM {
|
||||
if (is_null($result = Cache::instance($c)->get($k))) {
|
||||
$result = array();
|
||||
|
||||
$result = $this->ACTLOG->exclude_ba()->find_all();
|
||||
$result = $this->ACTLOG->ExcludeBA()->find_all();
|
||||
|
||||
// @todo Cache time should be configurble
|
||||
Cache::instance($c)->set($k,$result,300);
|
||||
@ -313,6 +339,21 @@ class Model_NODE extends ORM_TSM {
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all the ACTIVITY LOG information for a SESSION
|
||||
* @param $sid Session ID
|
||||
* @param $start Session Start Time (to illiminate any duplication session data)
|
||||
*/
|
||||
public function actlog_session($sid,$start) {
|
||||
$result = array();
|
||||
|
||||
foreach ($this->_actlog() as $alo)
|
||||
if ($alo->SESSION == $sid AND $alo->start() >= $start)
|
||||
array_push($result,$alo);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the ACTIVITY of this NODE
|
||||
* @param $type is Bkup/Arch/SpMg
|
||||
@ -340,7 +381,7 @@ class Model_NODE extends ORM_TSM {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the Schedules for all activites of type
|
||||
* Return the Schedules used for all activites of type
|
||||
* @param $type is Bkup/Arch/SpMg
|
||||
*/
|
||||
public function act_schedules($type) {
|
||||
|
19
application/views/node/clientsession.php
Normal file
19
application/views/node/clientsession.php
Normal file
@ -0,0 +1,19 @@
|
||||
<!-- $o = ORM::factory('NODE')->actlog_session() -->
|
||||
<table class="box-full">
|
||||
<tr>
|
||||
<td class="head" colspan="2">Client Session Detail</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="spacer"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Start</td>
|
||||
<td>Message</td>
|
||||
</tr>
|
||||
<?php $i=0; foreach ($o as $alo) { ?>
|
||||
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
|
||||
<td class="data"><?php echo $alo->display('DATE_TIME'); ?></td>
|
||||
<td class="data"><?php echo $alo->display('MESSAGE'); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</table>
|
@ -27,22 +27,22 @@
|
||||
<td class="right">Process</td>
|
||||
<td class="right">Success</td>
|
||||
</tr>
|
||||
<?php $i=0; foreach ($o->act_bybtype($btype) as $ao) { ?>
|
||||
<?php $i=0; foreach ($o->act_bybtype($btype) as $aso) { ?>
|
||||
<tr class="<?php echo $i++%2 ? 'odd' : 'even'; ?>">
|
||||
<td class="data"><?php echo $ao->display('START_TIME'); ?></td>
|
||||
<td class="data"><?php echo $ao->display('END_TIME'); ?></td>
|
||||
<td class="data"><?php echo $ao->display('COMMMETH'); ?></td>
|
||||
<td class="data"><?php echo $ao->display('SCHEDULE_NAME'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('NUMBER'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('EXAMINED'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('AFFECTED'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('FAILED'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->bytes(); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('IDLE'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('MEDIAW'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('COMM_WAIT'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('PROCESSES'); ?></td>
|
||||
<td class="data-right"><?php echo $ao->display('SUCCESSFUL'); ?></td>
|
||||
<td class="data"><?php echo $aso->display('START_TIME'); ?></td>
|
||||
<td class="data"><?php echo $aso->display('END_TIME'); ?></td>
|
||||
<td class="data"><?php echo $aso->display('COMMMETH'); ?></td>
|
||||
<td class="data"><?php echo $aso->display('SCHEDULE_NAME'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->inActLog() ? HTML::anchor(sprintf('node/session/%s,%s,%s',$o->NODE_NAME,$aso->NUMBER,$aso->start()),$aso->display('NUMBER')) : $aso->display('NUMBER'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->display('EXAMINED'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->display('AFFECTED'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->display('FAILED'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->bytes(); ?></td>
|
||||
<td class="data-right"><?php echo $aso->display('IDLE'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->display('MEDIAW'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->display('COMM_WAIT'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->display('PROCESSES'); ?></td>
|
||||
<td class="data-right"><?php echo $aso->display('SUCCESSFUL'); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
|
Reference in New Issue
Block a user