N°9370 - use env-production-build for dry removal audit

wip
This commit is contained in:
odain
2026-03-12 15:04:21 +01:00
parent 358c4383f8
commit f2b15554bb
5 changed files with 16 additions and 25 deletions

View File

@@ -92,7 +92,7 @@ class DataFeatureRemovalController extends Controller
$oDryRemovalRuntimeEnvironment->Prepare($sSourceEnv, $this->aSelectedExtensionsForCheck);
$oDryRemovalRuntimeEnvironment->CompileFrom($sSourceEnv);
$oSetupAudit = new SetupAudit($sSourceEnv, DryRemovalRuntimeEnvironment::DRY_REMOVAL_AUDIT_ENV);
$oSetupAudit = new SetupAudit($sSourceEnv);
$aGetRemovedClasses = $oSetupAudit->GetIssues();
IssueLog::Debug(__METHOD__, null, ['aGetRemovedClasses' => $aGetRemovedClasses]);
$this->aCountClassesToCleanup = $aGetRemovedClasses;

View File

@@ -14,19 +14,16 @@ use utils;
class DryRemovalRuntimeEnvironment extends RunTimeEnvironment
{
public const DRY_REMOVAL_AUDIT_ENV = "extension-removal";
protected array $aExtensionsByCode;
/**
* Toolset for building a run-time environment
*
* @param string $sEnvironment (e.g. 'test')
* @param bool $bAutoCommit (make the target environment directly, or build a temporary one)
* @param string $sEnvironment
*/
public function __construct($sEnvironment = self::DRY_REMOVAL_AUDIT_ENV, $bAutoCommit = true)
public function __construct($sEnvironment = 'production')
{
parent::__construct($sEnvironment, $bAutoCommit);
parent::__construct($sEnvironment, false);
$this->aExtensionsByCode = [];
}
@@ -39,8 +36,7 @@ class DryRemovalRuntimeEnvironment extends RunTimeEnvironment
*/
public function Prepare(string $sSourceEnv, array $aExtensionCodesToRemove)
{
$sEnv = $this->sFinalEnv;
$sEnv = $this->sTargetEnv;
$this->aExtensionsByCode = $aExtensionCodesToRemove;
$this->Cleanup();
@@ -48,11 +44,9 @@ class DryRemovalRuntimeEnvironment extends RunTimeEnvironment
$this->DeclareExtensionAsRemoved($aExtensionCodesToRemove);
$oDryRemovalConfig = clone(MetaModel::GetConfig());
$oDryRemovalConfig->ChangeModulesPath($sSourceEnv, $this->sFinalEnv);
$this->WriteConfigFileSafe($oDryRemovalConfig);
SetupUtils::copydir(APPROOT."/conf/$sSourceEnv", APPROOT."/conf/$sEnv");
$sSourceDir = $oDryRemovalConfig->Get('source_dir');
$sSourceDir = MetaModel::GetConfig()->Get('source_dir');
$aSearchDirs = $this->GetExtraDirsToCompile($sSourceDir);
$aModulesToLoad = $this->GetModulesToLoad($sSourceEnv, $aSearchDirs);
@@ -67,7 +61,7 @@ class DryRemovalRuntimeEnvironment extends RunTimeEnvironment
private function DeclareExtensionAsRemoved(array $aExtensionCodes): void
{
$oExtensionsMap = new iTopExtensionsMap($this->sFinalEnv);
$oExtensionsMap = new iTopExtensionsMap($this->sTargetEnv);
$oExtensionsMap->DeclareExtensionAsRemoved($aExtensionCodes);
}
@@ -94,7 +88,7 @@ class DryRemovalRuntimeEnvironment extends RunTimeEnvironment
public function Cleanup()
{
$sEnv = $this->sFinalEnv;
$sEnv = $this->sTargetEnv;
SetupUtils::rrmdir(APPROOT."/data/$sEnv-modules");
SetupUtils::rrmdir(APPROOT."/data/cache-$sEnv");
SetupUtils::rrmdir(APPROOT."/env-$sEnv");

View File

@@ -7,17 +7,14 @@ require_once APPROOT.'setup/feature_removal/ModelReflectionSerializer.php';
class SetupAudit extends AbstractSetupAudit
{
//file used when present to trigger audit exception when testing specific setups
public const GETISSUE_ERROR_MSG_FILE_FORTESTONLY = '.setup_audit_error_msg.txt';
private string $sEnvBefore;
private string $sEnvAfter;
public function __construct(string $sEnvBefore, string $sEnvAfter)
public function __construct(string $sEnvBefore)
{
parent::__construct();
$this->sEnvBefore = $sEnvBefore;
$this->sEnvAfter = $sEnvAfter;
$this->sEnvAfter = "$sEnvBefore-build";
}
public function ComputeClasses(): void

View File

@@ -180,7 +180,7 @@ class DataAuditSequencer extends ApplicationInstallSequencer
$sTargetEnvironment = $this->GetTempEnv();
$sPreviousEnvironment = $this->GetTargetEnv();
$oSetupAudit = new SetupAudit($sPreviousEnvironment, $sTargetEnvironment);
$oSetupAudit = new SetupAudit($sPreviousEnvironment);
//Make sure the MetaModel is started before analysing for issues
$sConfFile = utils::GetConfigFilePath($sPreviousEnvironment);

View File

@@ -51,11 +51,11 @@ class SetupAuditTest extends ItopCustomDatamodelTestCase
public function testComputeDryRemoval()
{
$oDryRemovalRuntimeEnvt = new DryRemovalRuntimeEnvironment();
$oDryRemovalRuntimeEnvt = new DryRemovalRuntimeEnvironment($this->GetTestEnvironment());
$oDryRemovalRuntimeEnvt->Prepare($this->GetTestEnvironment(), ['nominal_ext1', 'finalclass_ext2']);
$oDryRemovalRuntimeEnvt->CompileFrom($this->GetTestEnvironment());
$oSetupAudit = new SetupAudit(MetaModel::GetEnvironment(), DryRemovalRuntimeEnvironment::DRY_REMOVAL_AUDIT_ENV);
$oSetupAudit = new SetupAudit(MetaModel::GetEnvironment());
$expected = [
"Feature1Module1MyClass",
@@ -88,7 +88,7 @@ class SetupAuditTest extends ItopCustomDatamodelTestCase
$oOrg = $this->CreateOrganization($sUID);
$this->createObject('FinalClassFeature1Module1MyFinalClassFromLocation', ['org_id' => $oOrg->GetKey(), 'name' => $sUID, 'name2' => uniqid()]);
$oSetupAudit = new SetupAudit(MetaModel::GetEnvironment(), DryRemovalRuntimeEnvironment::DRY_REMOVAL_AUDIT_ENV);
$oSetupAudit = new SetupAudit(MetaModel::GetEnvironment());
$aRemovedClasses = [
"Feature1Module1MyClass",
"FinalClassFeature1Module1MyClass",
@@ -114,7 +114,7 @@ class SetupAuditTest extends ItopCustomDatamodelTestCase
$this->createObject('FinalClassFeature1Module1MyFinalClassFromLocation', ['org_id' => $oOrg->GetKey(), 'name' => $sUID, 'name2' => uniqid()]);
$this->createObject('FinalClassFeature2Module1MyFinalClassFromLocation', ['org_id' => $oOrg->GetKey(), 'name' => $sUID, 'name2' => uniqid()]);
$oSetupAudit = new SetupAudit(MetaModel::GetEnvironment(), DryRemovalRuntimeEnvironment::DRY_REMOVAL_AUDIT_ENV);
$oSetupAudit = new SetupAudit(MetaModel::GetEnvironment());
$aRemovedClasses = [
"Feature1Module1MyClass",
"FinalClassFeature1Module1MyClass",