summaryrefslogtreecommitdiffstats
path: root/modules-available/sysconfig/inc/configtgz.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/sysconfig/inc/configtgz.inc.php')
-rw-r--r--modules-available/sysconfig/inc/configtgz.inc.php17
1 files changed, 11 insertions, 6 deletions
diff --git a/modules-available/sysconfig/inc/configtgz.inc.php b/modules-available/sysconfig/inc/configtgz.inc.php
index ff9e306d..98f29753 100644
--- a/modules-available/sysconfig/inc/configtgz.inc.php
+++ b/modules-available/sysconfig/inc/configtgz.inc.php
@@ -56,7 +56,9 @@ class ConfigTgz
{
if (!is_array($moduleIds))
return false;
- $this->configTitle = $title;
+ if (!empty($title)) {
+ $this->configTitle = $title;
+ }
$this->modules = array();
// Get all modules to put in config
$idstr = '0'; // Passed directly in query. Make sure no SQL injection is possible
@@ -77,7 +79,7 @@ class ConfigTgz
// Update name
Database::exec("UPDATE configtgz SET title = :title, status = :status, dateline = :now WHERE configid = :configid LIMIT 1", array(
'configid' => $this->configId,
- 'title' => $title,
+ 'title' => $this->configTitle,
'status' => 'OUTDATED',
'now' => time(),
));
@@ -88,9 +90,10 @@ class ConfigTgz
*
* @param bool $deleteOnError
* @param int $timeoutMs
+ * @param string|null $parentTask parent task to order this rebuild after
* @return string|bool true=success, false=error, string=taskid, still running
*/
- public function generate($deleteOnError = false, $timeoutMs = 0)
+ public function generate($deleteOnError = false, $timeoutMs = 0, $parentTask = null)
{
if (!($this->configId > 0) || !is_array($this->modules) || $this->file === false)
Util::traceError ('configId <= 0 or modules not array in ConfigTgz::rebuild()');
@@ -103,7 +106,7 @@ class ConfigTgz
}
}
- $task = self::recompress($files, $this->file);
+ $task = self::recompress($files, $this->file, $parentTask);
// Wait for completion
if ($timeoutMs > 0 && !Taskmanager::isFailed($task) && !Taskmanager::isFinished($task)) {
@@ -215,7 +218,7 @@ class ConfigTgz
* @param string $destFile where to store final result
* @return false|array taskmanager task
*/
- private static function recompress($files, $destFile)
+ private static function recompress($files, $destFile, $parentTask = null)
{
// Get stuff other modules want to inject
$handler = function($hook) {
@@ -232,7 +235,9 @@ class ConfigTgz
// Hand over to tm
return Taskmanager::submit('RecompressArchive', array(
'inputFiles' => $files,
- 'outputFile' =>$destFile
+ 'outputFile' =>$destFile,
+ 'parentTask' => $parentTask,
+ 'failOnParentFail' => false,
));
}