From 6824a7db849fcbfa1f279496cd60afbbb3b60317 Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Thu, 15 Nov 2012 23:01:32 +0100 Subject: [PATCH] Have some default values if a command fails to run --- frontend/classes/class.container.php | 111 +++++++++++++++--------- frontend/classes/class.sshconnector.php | 4 +- frontend/module.vps.overview.php | 4 +- 3 files changed, 72 insertions(+), 47 deletions(-) diff --git a/frontend/classes/class.container.php b/frontend/classes/class.container.php index a479f9f..04e6ab6 100644 --- a/frontend/classes/class.container.php +++ b/frontend/classes/class.container.php @@ -98,23 +98,30 @@ class Container extends CPHPDatabaseRecordClass } else { - $command = array("vzctl", "status", $this->sInternalId); - - $result = $this->sNode->ssh->RunCommandCached($command, false); - - if($result->returncode == 0) + try { - $values = split_whitespace($result->stdout); + $command = array("vzctl", "status", $this->sInternalId); - if($values[4] == "running") - { - return CVM_STATUS_STARTED; - } - else + $result = $this->sNode->ssh->RunCommandCached($command, false); + + if($result->returncode == 0) { - return CVM_STATUS_STOPPED; + $values = split_whitespace($result->stdout); + + if($values[4] == "running") + { + return CVM_STATUS_STARTED; + } + else + { + return CVM_STATUS_STOPPED; + } } } + catch (SshCommandException $e) + { + return CVM_STATUS_STOPPED; + } } } @@ -154,26 +161,35 @@ class Container extends CPHPDatabaseRecordClass public function GetRam() { - $result = $this->RunCommandCached("free -m", true); - $lines = explode("\n", $result->stdout); - array_shift($lines); - - $total_free = 0; - $total_used = 0; - $total_total = 0; - - foreach($lines as $line) + try { - $line = trim($line); - $values = split_whitespace($line); + $result = $this->RunCommandCached("free -m", true); + $lines = explode("\n", $result->stdout); + array_shift($lines); - if(trim($values[0]) == "Mem:") + $total_free = 0; + $total_used = 0; + $total_total = 0; + + foreach($lines as $line) { - $total_total = $values[1]; - $total_used = $values[2]; - $total_free = $values[3]; + $line = trim($line); + $values = split_whitespace($line); + + if(trim($values[0]) == "Mem:") + { + $total_total = $values[1]; + $total_used = $values[2]; + $total_free = $values[3]; + } + } - + } + catch (SshCommandException $e) + { + $total_free = 0; + $total_used = 0; + $total_total = 0; } return array( @@ -197,26 +213,35 @@ class Container extends CPHPDatabaseRecordClass public function GetDisk() { - $result = $this->RunCommandCached("df -l -x tmpfs", true); - $lines = explode("\n", $result->stdout); - array_shift($lines); - - $total_free = 0; - $total_used = 0; - $total_total = 0; - - foreach($lines as $disk) + try { - $disk = trim($disk); + $result = $this->RunCommandCached("df -l -x tmpfs", true); + $lines = explode("\n", $result->stdout); + array_shift($lines); + + $total_free = 0; + $total_used = 0; + $total_total = 0; - if(!empty($disk)) + foreach($lines as $disk) { - $values = split_whitespace($disk); - $total_free += (int)$values[3] / 1024; - $total_used += (int)$values[2] / 1024; - $total_total += ((int)$values[2] + (int)$values[3]) / 1024; + $disk = trim($disk); + + if(!empty($disk)) + { + $values = split_whitespace($disk); + $total_free += (int)$values[3] / 1024; + $total_used += (int)$values[2] / 1024; + $total_total += ((int)$values[2] + (int)$values[3]) / 1024; + } } } + catch (SshCommandException $e) + { + $total_free = 0; + $total_used = 0; + $total_total = 0; + } return array( 'free' => $total_free, diff --git a/frontend/classes/class.sshconnector.php b/frontend/classes/class.sshconnector.php index f32b00d..0b98cda 100644 --- a/frontend/classes/class.sshconnector.php +++ b/frontend/classes/class.sshconnector.php @@ -44,7 +44,7 @@ class SshConnector extends CPHPBaseClass catch (SshConnectException $e) { $error = $e->getMessage(); - throw new SshCommandException("Could not run command {$command}: Failed to connect: {$error}"); + throw new SshConnectException("Could not run command {$command}: Failed to connect: {$error}"); } } @@ -68,7 +68,7 @@ class SshConnector extends CPHPBaseClass 'hostkey' => $this->keytype ); - if($this->connection = ssh2_connect($this->host, $this->port, $options)) + if($this->connection = @ssh2_connect($this->host, $this->port, $options)) { $this->connected = true; diff --git a/frontend/module.vps.overview.php b/frontend/module.vps.overview.php index a2b2212..a7fc8d1 100644 --- a/frontend/module.vps.overview.php +++ b/frontend/module.vps.overview.php @@ -61,7 +61,7 @@ try $sVariables = array_merge($sVariables, array( 'disk-used' => number_format($sContainer->sDiskUsed / 1024, 2), 'disk-total' => number_format($sContainer->sDiskTotal / 1024, 2), - 'disk-percentage' => number_format(($sContainer->sDiskUsed / $sContainer->sDiskTotal) * 100, 2), + 'disk-percentage' => ($sContainer->sDiskTotal == 0) ? 0 : number_format(($sContainer->sDiskUsed / $sContainer->sDiskTotal) * 100, 2), 'disk-unit' => "GB" )); } @@ -80,7 +80,7 @@ try $sVariables = array_merge($sVariables, array( 'ram-used' => $sContainer->sRamUsed, 'ram-total' => $sContainer->sRamTotal, - 'ram-percentage' => number_format(($sContainer->sRamUsed / $sContainer->sRamTotal) * 100, 2), + 'ram-percentage' => ($sContainer->sRamTotal == 0) ? 0 : number_format(($sContainer->sRamUsed / $sContainer->sRamTotal) * 100, 2), 'ram-unit' => "MB" )); }