summaryrefslogtreecommitdiffstats
path: root/modules-available/dnbd3/inc
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/dnbd3/inc')
-rw-r--r--modules-available/dnbd3/inc/dnbd3.inc.php11
-rw-r--r--modules-available/dnbd3/inc/dnbd3rpc.inc.php10
-rw-r--r--modules-available/dnbd3/inc/dnbd3util.inc.php12
3 files changed, 28 insertions, 5 deletions
diff --git a/modules-available/dnbd3/inc/dnbd3.inc.php b/modules-available/dnbd3/inc/dnbd3.inc.php
index eb41c000..9607c544 100644
--- a/modules-available/dnbd3/inc/dnbd3.inc.php
+++ b/modules-available/dnbd3/inc/dnbd3.inc.php
@@ -3,6 +3,7 @@
class Dnbd3 {
const PROP_ENABLED = 'dnbd3.enabled';
+ const PROP_NFS_FALLBACK = 'dnbd3.nfs-fallback';
public static function isEnabled()
{
@@ -19,6 +20,16 @@ class Dnbd3 {
return $task;
}
+ public static function hasNfsFallback()
+ {
+ return Property::get(self::PROP_NFS_FALLBACK, 0) ? true : false;
+ }
+
+ public static function setNfsFallback($bool)
+ {
+ Property::set(self::PROP_NFS_FALLBACK, $bool ? 1 : 0);
+ }
+
public static function getLocalStatus()
{
diff --git a/modules-available/dnbd3/inc/dnbd3rpc.inc.php b/modules-available/dnbd3/inc/dnbd3rpc.inc.php
index 35d79a31..cdcda508 100644
--- a/modules-available/dnbd3/inc/dnbd3rpc.inc.php
+++ b/modules-available/dnbd3/inc/dnbd3rpc.inc.php
@@ -15,9 +15,11 @@ class Dnbd3Rpc {
* @param bool $clients include client list
* @param bool $images include image list
* @param bool $diskSpace include disk space stats
+ * @param bool $config get config
+ * @param bool $altservers list of alt servers with status
* @return int|array the queried data as an array, or false on error
*/
- public static function query($server, $port, $stats, $clients, $images, $diskSpace)
+ public static function query($server, $port, $stats, $clients, $images, $diskSpace = false, $config = false, $altservers = false)
{
// Special case - local server
if ($server === '<self>') {
@@ -36,6 +38,12 @@ class Dnbd3Rpc {
if ($diskSpace) {
$url .= 'q=space&';
}
+ if ($config) {
+ $url .= 'q=config&';
+ }
+ if ($altservers) {
+ $url .= 'q=altservers&';
+ }
$str = Download::asString($url, 3, $code);
if ($str === false)
return self::QUERY_UNREACHABLE;
diff --git a/modules-available/dnbd3/inc/dnbd3util.inc.php b/modules-available/dnbd3/inc/dnbd3util.inc.php
index a9b9241e..95b6ffe2 100644
--- a/modules-available/dnbd3/inc/dnbd3util.inc.php
+++ b/modules-available/dnbd3/inc/dnbd3util.inc.php
@@ -11,10 +11,10 @@ class Dnbd3Util {
FROM dnbd3_server s
LEFT JOIN machine m USING (machineuuid)');
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
- if (!is_null($row['clientip'])) {
- $ip = $row['clientip'];
- } elseif (!is_null($row['fixedip'])) {
+ if (!is_null($row['fixedip'])) {
$ip = $row['fixedip'];
+ } elseif (!is_null($row['clientip'])) {
+ $ip = $row['clientip'];
} else {
continue; // Huh?
}
@@ -25,6 +25,9 @@ class Dnbd3Util {
RunMode::setRunMode($row['machineuuid'], 'dnbd3', null, null, null);
continue;
}
+ } elseif ($ip === $satServerIp) {
+ // Manually configured sat server as dnbd3 server - makes no sense
+ continue;
}
$server = array(
'serverid' => $row['serverid'],
@@ -141,7 +144,7 @@ class Dnbd3Util {
$self = Property::getServerIp();
$public[$self] = $self;
while ($row = $res->fetch(PDO::FETCH_ASSOC)) {
- $ip = $row['clientip'] ? $row['clientip'] : $row['fixedip'];
+ $ip = $row['fixedip'] ? $row['fixedip'] : $row['clientip'];
if ($ip === '<self>') {
continue;
}
@@ -171,6 +174,7 @@ class Dnbd3Util {
ConfigHolder::add('SLX_SHUTDOWN_SCHEDULE', '', 1000);
ConfigHolder::add('SLX_REBOOT_TIMEOUT', '', 1000);
ConfigHolder::add('SLX_REBOOT_SCHEDULE', '', 1000);
+ ConfigHolder::add('SLX_SYSTEM_STANDBY_TIMEOUT', '', 1000);
}
/**