From d3dbe7b2312954683ffc5994ca41620e194c9bf8 Mon Sep 17 00:00:00 2001 From: Eric Espie Date: Fri, 17 Apr 2026 14:18:07 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B09514=20-=20End=20user=20device=20cannot?= =?UTF-8?q?=20be=20uninstalled=20(WIP)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Controller/DataFeatureRemovalController.php | 2 +- setup/feature_removal/AbstractSetupAudit.php | 12 ++++++++++-- setup/runtimeenv.class.inc.php | 6 +++--- .../setup/feature_removal/SetupAuditTest.php | 6 +++--- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php b/datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php index 6a992463d0..1917d47e34 100644 --- a/datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php +++ b/datamodels/2.x/combodo-data-feature-removal/src/Controller/DataFeatureRemovalController.php @@ -92,7 +92,7 @@ class DataFeatureRemovalController extends Controller $oDryRemovalRuntimeEnvironment->CompileFrom($sSourceEnv); $oSetupAudit = new SetupAudit($sSourceEnv); - $aGetRemovedClasses = $oSetupAudit->GetIssues(); + $aGetRemovedClasses = $oSetupAudit->RunDataAudit(); IssueLog::Debug(__METHOD__, null, ['aGetRemovedClasses' => $aGetRemovedClasses]); $this->aCountClassesToCleanup = $aGetRemovedClasses; } diff --git a/setup/feature_removal/AbstractSetupAudit.php b/setup/feature_removal/AbstractSetupAudit.php index abe6d142c5..9a85b56cbd 100644 --- a/setup/feature_removal/AbstractSetupAudit.php +++ b/setup/feature_removal/AbstractSetupAudit.php @@ -51,7 +51,15 @@ abstract class AbstractSetupAudit return $this->aRemovedClasses; } - public function GetIssues(bool $bStopDataCheckAtFirstIssue = false): array + /** + * Generate issues when audit detects data to remove + * + * @param bool $bStopDataCheckAtFirstIssue + * + * @return array + * @throws \CoreException + */ + public function RunDataAudit(bool $bStopDataCheckAtFirstIssue = false): array { $this->aFinalClassesToCleanup = []; @@ -64,7 +72,7 @@ abstract class AbstractSetupAudit $iCount = $this->Count($sClass); $this->aFinalClassesToCleanup[$sClass] = $iCount; if ($bStopDataCheckAtFirstIssue && $iCount > 0) { - //setup envt: should raise issue ASAP + //setup env: should raise issue ASAP $this->LogInfoWithProperLogger("Setup audit found data to cleanup", null, $this->aFinalClassesToCleanup); return $this->aFinalClassesToCleanup; } diff --git a/setup/runtimeenv.class.inc.php b/setup/runtimeenv.class.inc.php index 5c91ed50fd..46f58175e7 100644 --- a/setup/runtimeenv.class.inc.php +++ b/setup/runtimeenv.class.inc.php @@ -1329,9 +1329,9 @@ class RunTimeEnvironment $oSetupAudit = new SetupAudit(ITOP_DEFAULT_ENV, $this->sBuildEnv); //Make sure the MetaModel is started before analysing for issues - $sConfFile = utils::GetConfigFilePath($this->sBuildEnv); - MetaModel::Startup($sConfFile, false, false, false, $this->sBuildEnv); - $oSetupAudit->GetIssues(true); + $sConfFile = utils::GetConfigFilePath(ITOP_DEFAULT_ENV); + MetaModel::Startup($sConfFile, false, false); // Start on production environment + $oSetupAudit->RunDataAudit(true); $iCount = $oSetupAudit->GetDataToCleanupCount(); if ($iCount > 0) { diff --git a/tests/php-unit-tests/unitary-tests/setup/feature_removal/SetupAuditTest.php b/tests/php-unit-tests/unitary-tests/setup/feature_removal/SetupAuditTest.php index ec83a13fc0..4404fc1c2d 100644 --- a/tests/php-unit-tests/unitary-tests/setup/feature_removal/SetupAuditTest.php +++ b/tests/php-unit-tests/unitary-tests/setup/feature_removal/SetupAuditTest.php @@ -66,7 +66,7 @@ class SetupAuditTest extends ItopCustomDatamodelTestCase $expected = [ "FinalClassFeature2Module1MyFinalClassFromLocation" => 0, ]; - $this->assertEqualsCanonicalizing($expected, $oSetupAudit->GetIssues()); + $this->assertEqualsCanonicalizing($expected, $oSetupAudit->RunDataAudit()); } public function testGetRemovedClassesFromSetupWizard() @@ -103,7 +103,7 @@ class SetupAuditTest extends ItopCustomDatamodelTestCase "FinalClassFeature1Module1MyFinalClassFromLocation" => 1, "FinalClassFeature2Module1MyFinalClassFromLocation" => 0, ]; - $this->assertEqualsCanonicalizing($expected, $oSetupAudit->GetIssues()); + $this->assertEqualsCanonicalizing($expected, $oSetupAudit->RunDataAudit()); } public function testAuditExtensionsCleanupRulesFailASAP() @@ -128,6 +128,6 @@ class SetupAuditTest extends ItopCustomDatamodelTestCase $expected = [ "FinalClassFeature1Module1MyFinalClassFromLocation" => 1, ]; - $this->assertEqualsCanonicalizing($expected, $oSetupAudit->GetIssues(true)); + $this->assertEqualsCanonicalizing($expected, $oSetupAudit->RunDataAudit(true)); } }