diff options
Diffstat (limited to 'modules-available/dnbd3/inc')
-rw-r--r-- | modules-available/dnbd3/inc/dnbd3.inc.php | 11 | ||||
-rw-r--r-- | modules-available/dnbd3/inc/dnbd3rpc.inc.php | 10 | ||||
-rw-r--r-- | modules-available/dnbd3/inc/dnbd3util.inc.php | 12 |
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); } /** |