diff options
author | Frank Bergkemper <frank.bergkemper@bareos.com> | 2017-12-06 19:08:24 +0300 |
---|---|---|
committer | Frank Bergkemper <frank.bergkemper@bareos.com> | 2017-12-14 14:09:30 +0300 |
commit | ff76fa215a7d5f69d54afb0b7d272785f322fa23 (patch) | |
tree | c00742cc3bafcd693910e03fe68816db26ba71ae | |
parent | baab892cc55ace826b01aa83d44f2d81241d1c25 (diff) |
Fix webui freezing under different circumstancesRelease/17.2.4
-rw-r--r-- | module/Dashboard/view/dashboard/dashboard/index.phtml | 38 | ||||
-rw-r--r-- | module/Job/src/Job/Model/JobModel.php | 12 | ||||
-rw-r--r-- | module/Media/src/Media/Model/MediaModel.php | 3 | ||||
-rw-r--r-- | module/Pool/src/Pool/Model/PoolModel.php | 3 | ||||
-rw-r--r-- | module/Restore/src/Restore/Model/RestoreModel.php | 10 |
5 files changed, 60 insertions, 6 deletions
diff --git a/module/Dashboard/view/dashboard/dashboard/index.phtml b/module/Dashboard/view/dashboard/dashboard/index.phtml index 71e69d7..9cd72b7 100644 --- a/module/Dashboard/view/dashboard/dashboard/index.phtml +++ b/module/Dashboard/view/dashboard/dashboard/index.phtml @@ -73,7 +73,9 @@ $this->headTitle($title); $.ajax({ url : '<?php echo $this->url('dashboard', array('action' => 'getData'), null) . '?data=jobspast24h'; ?>', dataType: 'json', - timeout: 10000, + timeout: function() { + console.log('jobpast24h: timeout'); + }, success: function(data) { $('.waiting-jobs-field').empty(); $('.waiting-jobs-field').append( @@ -91,6 +93,12 @@ $this->headTitle($title); $('.failed-jobs-field').append( data.failed ); + }, + error: function() { + console.log('jobspast24h: error'); + }, + parseerror: function() { + console.log('jobspast24h: parse error'); } }); } @@ -114,7 +122,18 @@ $this->headTitle($title); return formatBytes(value); } } - ] + ], + ajaxOptions: { + timeout: function() { + console.log('jobtotals: timeout'); + }, + error: function() { + console.log('jobtotals: error'); + }, + parseerror: function() { + console.log('jobtotals: parse error'); + } + } }); } @@ -188,7 +207,18 @@ $this->headTitle($title); return formatBytes(value); } }, - ] + ], + ajaxOptions: { + timeout: function() { + console.log('joblaststatus: timeout'); + }, + error: function() { + console.log('jobslaststatus: error'); + }, + parseerror: function() { + console.log('jobslaststatus: parse error'); + } + } }); } @@ -237,7 +267,7 @@ $this->headTitle($title); }, parsererror: function() { $('.running-jobs-container').empty(); - $('.running-jobs-container').append('Parsererror'); + $('.running-jobs-container').append('Error parsing data.'); } }); } diff --git a/module/Job/src/Job/Model/JobModel.php b/module/Job/src/Job/Model/JobModel.php index 47e95d2..a120a5a 100644 --- a/module/Job/src/Job/Model/JobModel.php +++ b/module/Job/src/Job/Model/JobModel.php @@ -62,6 +62,9 @@ class JobModel return $error['result']['error']; } else { $jobs = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); + if ( empty($jobs['result']) ) { + return false; // No matching records found + } if ( empty($jobs['result']['jobs']) && $jobs['result']['meta']['range']['filtered'] === 0 ) { return $retval; } else { @@ -144,7 +147,11 @@ class JobModel $cmd = 'llist jobid='.$id.''; $result = $bsock->send_command($cmd, 2, null); $job = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); - return $job['result']['jobs']; + if ( empty($job['result']) ) { + return false; // No matching records found + } else { + return $job['result']['jobs']; + } } else { throw new \Exception('Missing argument.'); @@ -174,6 +181,9 @@ class JobModel } else { $log = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); + if ( empty($log['result']) ) { + return false; // No matching records found + } if ( empty($log['result']['joblog']) && $log['result']['meta']['range']['filtered'] === 0 ) { return $retval; } else { diff --git a/module/Media/src/Media/Model/MediaModel.php b/module/Media/src/Media/Model/MediaModel.php index 7e7530e..ef4b233 100644 --- a/module/Media/src/Media/Model/MediaModel.php +++ b/module/Media/src/Media/Model/MediaModel.php @@ -49,6 +49,9 @@ class MediaModel return $error['result']['error']; } else { $volumes = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); + if ( empty($volumes['result']) ) { + return false; // No matching records found + } if ( empty($volumes['result']['volumes']) && $volumes['result']['meta']['range']['filtered'] === 0 ) { return $retval; } else { diff --git a/module/Pool/src/Pool/Model/PoolModel.php b/module/Pool/src/Pool/Model/PoolModel.php index 11795ef..8cae21b 100644 --- a/module/Pool/src/Pool/Model/PoolModel.php +++ b/module/Pool/src/Pool/Model/PoolModel.php @@ -117,6 +117,9 @@ class PoolModel return $error['result']['error']; } else { $media = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); + if ( empty($media['result']) ) { + return false; // No matching records found + } if ( empty($media['result']['volumes']) && $media['result']['meta']['range']['filtered'] === 0 ) { return $retval; } else { diff --git a/module/Restore/src/Restore/Model/RestoreModel.php b/module/Restore/src/Restore/Model/RestoreModel.php index 1c43368..8af494c 100644 --- a/module/Restore/src/Restore/Model/RestoreModel.php +++ b/module/Restore/src/Restore/Model/RestoreModel.php @@ -56,6 +56,10 @@ class RestoreModel $result = $bsock->send_command($cmd_1, 2, $jobid); $directories = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); + if ( empty($directories['result']) ) { + return $retval; + } + if(empty($directories['result']['directories'])) { $cmd_2 = '.bvfs_lsdirs jobid='.$jobid.' path=@ limit='.$limit; $result = $bsock->send_command($cmd_2, 2, $jobid); @@ -125,6 +129,10 @@ class RestoreModel $result = $bsock->send_command($cmd_1, 2, $jobid); $files = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); + if ( empty($files['result']) ) { + return $retval; + } + if(empty($files['result']['files'])) { $cmd_2 = '.bvfs_lsfiles jobid='.$jobid.' path=@ limit='.$limit.' offset='.$offset; $result = $bsock->send_command($cmd_2, 2, $jobid); @@ -173,8 +181,8 @@ class RestoreModel } $result = $bsock->send_command($cmd, 2, null); $jobids = \Zend\Json\Json::decode($result, \Zend\Json\Json::TYPE_ARRAY); + $result = ""; if(!empty($jobids['result'])) { - $result = ""; $i = count($jobids['result']['jobids']); foreach($jobids['result']['jobids'] as $jobid) { $result .= $jobid['id']; |