From 3176370b483cd0ea4b010f89c21ce460c04fdfdd Mon Sep 17 00:00:00 2001 From: Sven Slootweg Date: Sun, 29 Apr 2012 08:30:15 +0200 Subject: [PATCH] Added disk functions to Node class --- frontend/classes/class.node.php | 45 ++++++++++++++++++++++++++++++ frontend/includes/include.base.php | 1 + frontend/test.php | 3 +- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/frontend/classes/class.node.php b/frontend/classes/class.node.php index 42ffb7d..79cd3a0 100644 --- a/frontend/classes/class.node.php +++ b/frontend/classes/class.node.php @@ -66,6 +66,12 @@ class Node extends CPHPDatabaseRecordClass case "sRealHostname": return $this->GetHostname(); break; + case "sDiskFree": + return $this->GetDiskFree(); + break; + case "sDiskUsed": + return $this->GetDiskUsed(); + break; default: return null; break; @@ -76,6 +82,45 @@ class Node extends CPHPDatabaseRecordClass { return $this->ssh->RunCommandCached("hostname", true)->stdout; } + + public function GetDiskFree() + { + $disk = $this->GetDisk(); + return $disk['free']; + } + + public function GetDiskUsed() + { + $disk = $this->GetDisk(); + return $disk['used']; + } + + public function GetDisk() + { + $result = $this->ssh->RunCommandCached("df -l -x tmpfs", true); + $lines = explode("\n", $result->stdout); + array_shift($lines); + + $total_free = 0; + $total_used = 0; + + foreach($lines as $disk) + { + $disk = trim($disk); + + if(!empty($disk)) + { + $values = split_whitespace($disk); + $total_free += (int)$values[3] / 1024; + $total_used += (int)$values[2] / 1024; + } + } + + return array( + 'free' => $total_free, + 'used' => $total_used + ); + } } ?> diff --git a/frontend/includes/include.base.php b/frontend/includes/include.base.php index c60c639..dfb31c7 100644 --- a/frontend/includes/include.base.php +++ b/frontend/includes/include.base.php @@ -14,6 +14,7 @@ $_CPHP = true; require("cphp/base.php"); require("include.exceptions.php"); +require("include.parsing.php"); require("classes/class.controller.php"); require("classes/class.container.php"); require("classes/class.node.php"); diff --git a/frontend/test.php b/frontend/test.php index 5739dc7..8bbf2a2 100644 --- a/frontend/test.php +++ b/frontend/test.php @@ -13,7 +13,6 @@ $settings['master_privkey'] = "/etc/cvm/key"; $settings['master_pubkey'] = "/etc/cvm/key.pub"; $sNode = new Node(1); - -var_dump($sNode->sRealHostname); +var_dump($sNode->sDiskFree, $sNode->sDiskUsed); ?>