N°8981: repair previous setup cleanup (broken setups)

This commit is contained in:
odain
2025-12-29 07:47:06 +01:00
parent 85e28931f5
commit 83973d102f
4 changed files with 8 additions and 13 deletions

View File

@@ -155,7 +155,6 @@ final class CoreUpdater
APPROOT.'extensions',
];
$aAvailableModules = $oRuntimeEnv->AnalyzeInstallation($oConfig, $aDirsToScanForModules);
$aSelectedModules = [];
$oRuntimeEnv->CallInstallerHandlers($aAvailableModules, 'BeforeDatabaseCreation');
$oRuntimeEnv->CreateDatabaseStructure($oConfig, 'upgrade');
$oRuntimeEnv->CallInstallerHandlers($aAvailableModules, 'AfterDatabaseCreation');
@@ -180,7 +179,7 @@ final class CoreUpdater
$oRuntimeEnv->RecordInstallation(
$oConfig,
$sDataModelVersion,
$aSelectedModules,
array_keys($aAvailableModules),
$aSelectedExtensionCodes,
'Done by the iTop Core Updater'
);

View File

@@ -209,7 +209,7 @@ class HubController
$aSelectedExtensionCodes[] = $oExtension->sCode;
}
$aSelectedExtensions = $oExtensionsMap->GetChoices();
$oRuntimeEnv->RecordInstallation($oConfig, $sDataModelVersion, $aAvailableModules, $aSelectedExtensionCodes, 'Done by the iTop Hub Connector');
$oRuntimeEnv->RecordInstallation($oConfig, $sDataModelVersion, array_keys($aAvailableModules), $aSelectedExtensionCodes, 'Done by the iTop Hub Connector');
// Report the success in a way that will be detected by the ajax caller
SetupLog::Info('Deployment successfully completed.');

View File

@@ -548,7 +548,7 @@ class RunTimeEnvironment
// Record installed modules and extensions
//
$aAvailableModules = $this->AnalyzeInstallation($oConfig, $this->GetBuildDir());
foreach ($aSelectedModuleCodes as $sModuleId => $aData) {
foreach ($aSelectedModuleCodes as $sModuleId) {
if (($sModuleId == ROOT_MODULE) || ($sModuleId == DATAMODEL_MODULE)) {
continue;
}
@@ -869,7 +869,7 @@ class RunTimeEnvironment
if (is_null($aSelectedModules) || in_array($sModuleId, $aSelectedModules)) {
$aArgs = [MetaModel::GetConfig(), $aModule['installed_version'], $aModule['available_version']];
RunTimeEnvironment::CallInstallerHandler($aAvailableModules[$sModuleId], $sHandlerName, $aArgs);
RunTimeEnvironment::CallInstallerHandler($aModule, $sHandlerName, $aArgs);
}
}
}
@@ -896,6 +896,7 @@ class RunTimeEnvironment
try {
call_user_func_array($aCallSpec, $aArgs);
} catch (Exception $e) {
$sModuleId = isset($sModuleId) ? $sModuleId : "";
$sErrorMessage = "Module $sModuleId : error when calling module installer class $sModuleInstallerClass for $sHandlerName handler";
$aExceptionContextData = [
'ModulelId' => $sModuleId,

View File

@@ -33,22 +33,16 @@ class HubControllerTest extends ItopDataTestCase
$this->CopyProductionModulesIntoHubExtensionDir();
touch(MFCompiler::USE_SYMBOLIC_LINKS_FILE_PATH);
HubController::GetInstance()->SetOutputHeaders(false);
try {
HubController::GetInstance()->LaunchCompile();
} catch (DOMFormatException $e) {
SetupLog::Error(__METHOD__, null, [ 'production.delta.xml' => @file_get_contents(APPROOT.'data/production.delta.xml')]);
throw $e;
}
HubController::GetInstance()->LaunchCompile();
$this->CheckReport('{"code":0,"message":"Ok","fields":[]}');
}
public function testLaunchDeploy(): void
{
$this->PrepareCompileAuthent();
$this->testLaunchCompile();
HubController::GetInstance()->LaunchDeploy();
$this->CheckReport('{"code":0,"message":"Compilation successful.","fields":[]}');
}
@@ -78,6 +72,7 @@ class HubControllerTest extends ItopDataTestCase
$this->aFileToClean[] = $sExtensionDir;
SetupUtils::rrmdir($sExtensionDir);
@mkdir($sExtensionDir);
SetupUtils::copydir($sExtensionDir, $sProdModules);
}
}