summaryrefslogtreecommitdiffstats
path: root/modules-available/dozmod
diff options
context:
space:
mode:
authorSimon Rettberg2019-02-22 17:27:49 +0100
committerSimon Rettberg2019-02-22 17:27:49 +0100
commit5661290d8583b28517e01c2f797ee56eea830152 (patch)
treef9c598b13f34ec8198bbb7b4a0f2f9efad4a82d4 /modules-available/dozmod
parent[dnbd3] Show image idle time in proxy details (diff)
downloadslx-admin-5661290d8583b28517e01c2f797ee56eea830152.tar.gz
slx-admin-5661290d8583b28517e01c2f797ee56eea830152.tar.xz
slx-admin-5661290d8583b28517e01c2f797ee56eea830152.zip
[dozmod] Add ServerSideCopy config option
Diffstat (limited to 'modules-available/dozmod')
-rw-r--r--modules-available/dozmod/lang/de/template-tags.json6
-rw-r--r--modules-available/dozmod/lang/en/template-tags.json6
-rw-r--r--modules-available/dozmod/pages/runtimeconfig.inc.php13
-rw-r--r--modules-available/dozmod/templates/runtimeconfig.html28
4 files changed, 40 insertions, 13 deletions
diff --git a/modules-available/dozmod/lang/de/template-tags.json b/modules-available/dozmod/lang/de/template-tags.json
index 3e000676..81c4b9da 100644
--- a/modules-available/dozmod/lang/de/template-tags.json
+++ b/modules-available/dozmod/lang/de/template-tags.json
@@ -106,10 +106,16 @@
"lang_scriptsIntro": "Hier k\u00f6nnen Sie Startskripte definieren, die entweder global bei jedem Start einer Veranstaltung ausgef\u00fchrt werden, oder den Nutzerinnen der bwLehrpool-Suite zur Vorauswahl zur Verf\u00fcgung gestellt werden.",
"lang_senderAddress": "Absenderadresse",
"lang_senderName": "Absender Anzeigename",
+ "lang_serverSideCopy": "Serverseitiges Kopieren",
+ "lang_serverSideCopyDescription": "Wenn aktiviert, werden bei VM-Uploads solche Bl\u00f6cke, die bereits in anderen VM-Abbildern vorhanden sind, nicht erneut vom Client hochgeladen, sondern durch den Satelliten-Server vom verwendeten Fileserver gelesen und kopiert. Abh\u00e4ngig von der Netzwerkinfrastruktur und Hardwareausstattung des Fileservers kann dies den Uploadvorgang merklich beschleunigen. Da diese Funktion allerdings zus\u00e4tzliche I\/O-Last auf dem Fileserver erzeugt, ist ihre Verwendung u.U. nicht erw\u00fcnscht.",
"lang_shareDeleteConfirm": "Wollen Sie dieses Netzlaufwerk wirklich l\u00f6schen?",
"lang_size": "Gr\u00f6\u00dfe",
"lang_spaceWastedDuplication": "Potentiell durch mehrfach vorkommende Bl\u00f6cke belegter Speicherplatz",
"lang_specificUser": "Spezifischer Nutzer",
+ "lang_sscAuto": "Automatisch (Uploadgeschwindigkeit < 10MB\/s)",
+ "lang_sscOff": "Aus",
+ "lang_sscOn": "An",
+ "lang_sscUser": "Vom Benutzer zuschaltbar",
"lang_ssl": "SSL-Modus",
"lang_sslExplicit": "Explizites SSL (\"STARTTLS\")",
"lang_sslImplicit": "Implizites SSL",
diff --git a/modules-available/dozmod/lang/en/template-tags.json b/modules-available/dozmod/lang/en/template-tags.json
index c33d872b..1e75f24c 100644
--- a/modules-available/dozmod/lang/en/template-tags.json
+++ b/modules-available/dozmod/lang/en/template-tags.json
@@ -106,10 +106,16 @@
"lang_scriptsIntro": "Here you can define scripts that will either forcefully run at startup of a lecture, or are selectable by bwLehrpool-Suite users.",
"lang_senderAddress": "Sender address",
"lang_senderName": "Sender's display name",
+ "lang_serverSideCopy": "Server-side copy",
+ "lang_serverSideCopyDescription": "If enabled, the satellite server tries to copy identical chunks that already exist in other virtual machine images, instead of requesting them from the client. Depending on the network infrastructure and file server hardware, this can make uploads of updated images, where the virtual disk contents only changed slightly, significantly faster. However, since this can create significant I\/O load on the file server, this might actually not be desired.",
"lang_shareDeleteConfirm": "Do you really want to delete this network share?",
"lang_size": "Size",
"lang_spaceWastedDuplication": "Potentially wasted space by duplicate blocks",
"lang_specificUser": "Specific User",
+ "lang_sscAuto": "Auto (upload speed < 10MiB\/s)",
+ "lang_sscOff": "Off",
+ "lang_sscOn": "On",
+ "lang_sscUser": "Controlled by user",
"lang_ssl": "SSL mode",
"lang_sslExplicit": "Explicit SSL (\"STARTTLS\")",
"lang_sslImplicit": "Implicit SSL",
diff --git a/modules-available/dozmod/pages/runtimeconfig.inc.php b/modules-available/dozmod/pages/runtimeconfig.inc.php
index 63ba4650..ab8500f2 100644
--- a/modules-available/dozmod/pages/runtimeconfig.inc.php
+++ b/modules-available/dozmod/pages/runtimeconfig.inc.php
@@ -31,14 +31,13 @@ class SubPage
'maxTransfers' => array('min' => 1, 'max' => 10),
],
'bool' => [
- 'allowLoginByDefault' => array('default' => true)
+ 'allowLoginByDefault' => array('default' => false)
],
];
foreach ($params as $type => $list) {
foreach ($list as $field => $limits) {
$default = isset($limits['default']) ? $limits['default'] : false;
- $value = Request::post($field, $default);
- settype($value, $type);
+ $value = Request::post($field, $default, $type);
if (isset($limits['min']) && $value < $limits['min']) {
$value = $limits['min'];
}
@@ -48,6 +47,11 @@ class SubPage
$data[$field] = $value;
}
}
+ // ServerSide Copy
+ $data['serverSideCopy'] = Request::post('serverSideCopy', 'OFF', 'string');
+ if (!in_array($data['serverSideCopy'], ['OFF', 'ON', 'AUTO', 'USER'])) {
+ $data['serverSideCopy'] = 'OFF';
+ }
/* ensure types */
settype($data['defaultLecturePermissions']['edit'], 'boolean');
@@ -99,6 +103,9 @@ class SubPage
if ($runtimeConf['allowLoginByDefault']) {
$runtimeConf['allowLoginByDefault'] = 'checked';
}
+ if (isset($runtimeConf['serverSideCopy'])) {
+ $runtimeConf[$runtimeConf['serverSideCopy'] . '_selected'] = 'selected';
+ }
}
$runtimeConf['allowedSave'] = User::hasPermission("runtimeconfig.save");
Render::addTemplate('runtimeconfig', $runtimeConf);
diff --git a/modules-available/dozmod/templates/runtimeconfig.html b/modules-available/dozmod/templates/runtimeconfig.html
index 6ea65ad4..44fb4106 100644
--- a/modules-available/dozmod/templates/runtimeconfig.html
+++ b/modules-available/dozmod/templates/runtimeconfig.html
@@ -5,14 +5,13 @@
{{lang_runtimeConfig}}
</div>
<div class="panel-body">
- <legend>{{lang_defaultPermissions}}</legend>
- <p><i>{{lang_descriptionPermissionConfig}}</i></p>
<form action="?do=DozMod" method="post" id="runtimeconf" role="form">
<input type="text" name="prevent_autofill" id="prevent_autofill" value="" style="position:absolute;top:-2000px" tabindex="-1">
<input type="password" name="password_fake" id="password_fake" value="" style="position:absolute;top:-2000px" tabindex="-1">
+ <fieldset>
+ <legend>{{lang_defaultPermissions}}</legend>
+ <p><i>{{lang_descriptionPermissionConfig}}</i></p>
-
- <fieldset class="form-group">
<h4>{{lang_defaultLecturePermissions}}</h4>
<input type="hidden" name="defaultLecturePermissions[edit]" value="0"/>
@@ -31,9 +30,6 @@
</label>
</div>
- </fieldset>
-
- <fieldset class="form-group">
<h4>{{lang_defaultImagePermissions}}</h4>
<input type="hidden" name="defaultImagePermissions[edit]" value="0"/>
<input type="hidden" name="defaultImagePermissions[admin]" value="0"/>
@@ -65,7 +61,7 @@
</label>
</div>
</fieldset>
-
+ <br>
<fieldset>
<legend>{{lang_runtimeConfigLimits}}</legend>
<p><i>{{lang_descriptionRuntimeLimits}}</i></p>
@@ -100,17 +96,29 @@
</tr>
</table>
</fieldset>
- <br/>
+ <br>
<fieldset>
<legend>{{lang_miscOptions}}</legend>
<div class="checkbox">
- <input type="hidden" name="allowLoginByDefault" value="0">
<input type="checkbox" name="allowLoginByDefault" value="1" {{allowLoginByDefault}} id="allowLoginByDefault" class="form-control">
<label for="allowLoginByDefault">
{{lang_allowLoginByDefault}}
</label>
<p><i>{{lang_allowLoginDescription}}</i></p>
</div>
+ <br>
+ <div>
+ <label for="serverSideCopy">
+ {{lang_serverSideCopy}}
+ </label>
+ <select name="serverSideCopy" id="serverSideCopy" class="form-control">
+ <option value="OFF" {{OFF_selected}}>{{lang_sscOff}}</option>
+ <option value="ON" {{ON_selected}}>{{lang_sscOn}}</option>
+ <option value="AUTO" {{AUTO_selected}}>{{lang_sscAuto}}</option>
+ <option value="USER" {{USER_selected}}>{{lang_sscUser}}</option>
+ </select>
+ <p><i>{{lang_serverSideCopyDescription}}</i></p>
+ </div>
</fieldset>
<br>