diff --git a/src/SIM.Pipelines/Delete/CleanUp.cs b/src/SIM.Pipelines/Delete/CleanUp.cs index 8f36f98b..8cfa7d3d 100644 --- a/src/SIM.Pipelines/Delete/CleanUp.cs +++ b/src/SIM.Pipelines/Delete/CleanUp.cs @@ -9,6 +9,8 @@ using System.Text; using System.Threading.Tasks; using SIM.Sitecore9Installer; +using System.Threading; +using Sitecore.Diagnostics.Logging; namespace SIM.Pipelines.Delete { @@ -24,12 +26,39 @@ protected override void Process([NotNull] ProcessorArgs args) return; } - Directory.Delete(arguments.Tasker.UnInstallParamsPath, true); InstallParam param = arguments.Tasker.GlobalParams.FirstOrDefault(p => p.Name == "DeployRoot"); - if (param!=null&&!Directory.GetFileSystemEntries(param.Value).Any()) + if (param!=null) { - Directory.Delete(param.Value, true); + int retriesNumber = 3; + for (int i=0;i<= retriesNumber; i++) + { + if (Directory.Exists(param.Value)) + { + try + { + Directory.Delete(param.Value, true); + } + catch(System.IO.IOException ex) + { + Log.Warn($"Can't remove directory: {param.Value}. {ex.Message}"); + } + if (Directory.Exists(param.Value)) + { + if (retriesNumber == i) + { + throw new Exception($"Can't remove directory: {param.Value}"); + } + Thread.Sleep(10000); + } + else + { + break; + } + } + } } + + Directory.Delete(arguments.Tasker.UnInstallParamsPath, true); } } } diff --git a/src/SIM.Pipelines/PipelinesConfig.cs b/src/SIM.Pipelines/PipelinesConfig.cs index 002ef12d..763543bb 100644 --- a/src/SIM.Pipelines/PipelinesConfig.cs +++ b/src/SIM.Pipelines/PipelinesConfig.cs @@ -83,6 +83,8 @@ public static class PipelinesConfig + + diff --git a/src/SIM.Tool.Windows/UserControls/Solr/SolrDetails.xaml.cs b/src/SIM.Tool.Windows/UserControls/Solr/SolrDetails.xaml.cs index 0ec550db..2553af2f 100644 --- a/src/SIM.Tool.Windows/UserControls/Solr/SolrDetails.xaml.cs +++ b/src/SIM.Tool.Windows/UserControls/Solr/SolrDetails.xaml.cs @@ -71,7 +71,19 @@ public bool OnMovingNext(WizardArgs wizardArgs) tasker.GlobalParams.First(p => p.Name == "SolrInstallRoot").Value = this.solrFolderSelector.Text; } - tasker.GlobalParams.First(p => p.Name == "JavaHome").Value = Environment.GetEnvironmentVariable("JAVA_HOME"); + string javaHomeVariable = Environment.GetEnvironmentVariable("JAVA_HOME"); + if (string.IsNullOrEmpty(javaHomeVariable)) + { + MessageBox.Show("Required JAVA_HOME system variable was not found.\nIt seems Java Runtime Environment (JRE) has not been installed.", "Warning"); + return false; + } + else if(!Directory.Exists(Path.Combine(javaHomeVariable, "bin")) || Directory.GetFiles(Path.Combine(javaHomeVariable, "bin"),"java.exe").Length==0) + { + MessageBox.Show($"The 'JAVA_HOME' system variable does not point to the proper JRE folder: {javaHomeVariable}", "Warning"); + return false; + } + + tasker.GlobalParams.First(p => p.Name == "JavaHome").Value = javaHomeVariable; Install9WizardArgs args = (Install9WizardArgs)wizardArgs; args.Tasker = this.tasker; return true; diff --git a/src/SIM.Tool/GlobalParamsConfig/GlobalSettings.json b/src/SIM.Tool/GlobalParamsConfig/GlobalSettings.json index 76e55c6a..9aafb163 100644 --- a/src/SIM.Tool/GlobalParamsConfig/GlobalSettings.json +++ b/src/SIM.Tool/GlobalParamsConfig/GlobalSettings.json @@ -1,5 +1,6 @@ { "GlobalFilesMap": { + "10.1.\\d.* XM1": "GlobalParams_10.0_XM1.json", "10.0.\\d.* XM1": "GlobalParams_10.0_XM1.json", "9.3.\\d.* XM1": "GlobalParams_9.3_XM1.json", "9.2.\\d.* XM1": "GlobalParams_9.2_XM1.json", @@ -7,8 +8,11 @@ "9.1.\\d.* XM1": "GlobalParams_9.1_XM1.json", "9.0.\\d.* XM1": "GlobalParams_9.0_XM1.json", + "10.1.\\d.* XP0 Developer": "GlobalParams_10.0_XP0_SXA.json", "10.0.\\d.* XP0 Developer": "GlobalParams_10.0_XP0_SXA.json", + "10.1.\\d.* XP0": "GlobalParams_10.0_XP0.json", "10.0.\\d.* XP0": "GlobalParams_10.0_XP0.json", + "10.1.\\d.* XP1": "GlobalParams_10.1_XP1.json", "10.0.\\d.* XP1": "GlobalParams_10.0_XP1.json", "9.3.\\d.* XP1": "GlobalParams_9.3_XP1.json", "9.3.\\d.* XP0 Developer": "GlobalParams_9.3_XP0_SXA.json", diff --git a/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.0_XP0.json b/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.0_XP0.json index 806cec69..7259c510 100644 --- a/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.0_XP0.json +++ b/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.0_XP0.json @@ -70,7 +70,6 @@ "TelerikEncryptionKey": "", "SqlMessagingUser": "", - //"CertificateName": "$GlobalParams.SqlDbPrefix+\"xconnect_client\"", "XConnectCert": "$GlobalParams.SqlDbPrefix+\"xconnect_client\"", "XConnectCollectionSearchService": "https://\"+$GlobalParams.SqlDbPrefix+\"XConnect.local", "XConnectCollectionService": "https://\"+$GlobalParams.SqlDbPrefix+\"XConnect.local", diff --git a/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.0_XP0_SXA.json b/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.0_XP0_SXA.json index 59cc33f7..d25ea38f 100644 --- a/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.0_XP0_SXA.json +++ b/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.0_XP0_SXA.json @@ -70,7 +70,6 @@ "TelerikEncryptionKey": "", "SqlMessagingUser": "", - //"CertificateName": "$GlobalParams.SqlDbPrefix+\"xconnect_client\"", "XConnectCert": "$GlobalParams.SqlDbPrefix+\"xconnect_client\"", "XConnectCollectionSearchService": "https://\"+$GlobalParams.SqlDbPrefix+\"XConnect.local", "XConnectCollectionService": "https://\"+$GlobalParams.SqlDbPrefix+\"XConnect.local", diff --git a/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.1_XP1.json b/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.1_XP1.json new file mode 100644 index 00000000..7bdb9fd0 --- /dev/null +++ b/src/SIM.Tool/GlobalParamsConfig/XP/GlobalParams_10.1_XP1.json @@ -0,0 +1,218 @@ +{ + "Parameters": { + //global + "SIFVersion": "2.3.0", + "SqlServer": "", + "SqlAdminUser": "", + "SqlAdminPassword": "", + "SqlDbPrefix": "", + "LicenseFile": "", + "DnsName": "$installParams.SiteName", + //solr + "SolrUrl": "", + "SolrRoot": "", + "SolrService": "", + "CorePrefix": "$GlobalParams.SqlDbPrefix", + "BaseConfig": "", + //cert + "CertPath": "c:/certificates", + "RootCertFileName": "SIM_SIF230Root", + //xConnect + "XConnectCert": "$GlobalParams.SqlDbPrefix+\"xconnect_client\"", + "SqlMarketingAutomationUser": "", + "SqlMarketingAutomationPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlReferenceDataUser": "", + "SqlReferenceDataPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlProcessingPoolsUser": "", + "SqlProcessingPoolsPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlCollectionUser": "$GlobalParams.SqlDbPrefix+\"collectionuser\"", + "SqlCollectionPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "XConnectEnvironment": "", + "XConnectLogLevel": "", + //cortex + "XConnectSearchService": "$GlobalParams.XConnectCollectionSearchService", + "CortexReportingService": "https://\"+$GlobalParams.SqlDbPrefix+\"CortexRep.local", + "SqlProcessingEngineUser": "", + "SqlProcessingEnginePassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + //identity + "ClientSecret": "SIF-Default", + "AllowedCorsOrigins": "https://\"+$GlobalParams.SqlDbPrefix+\"CM.local", + "PasswordRecoveryUrl": "https://\"+$GlobalParams.SqlDbPrefix+\"CM.local", + "SqlCoreDbName": "", + "SitecoreIdentityCert": "$GlobalParams.SqlDbPrefix+\"Id.local\"", + "SitecoreIdentityAuthority": "https://\"+$GlobalParams.SqlDbPrefix+\"Id.local", + //Sitecore + "SitecoreIdentitySecret": "$GlobalParams.ClientSecret", + "EXMInternalApiKey": "", + "SqlSecurityPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlSecurityUser": "", + "SitecoreAdminPassword": "b", + "SolrCorePrefix": "$GlobalParams.SqlDbPrefix", + "SqlCoreUser": "", + "SqlCorePassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlWebUser": "", + "SqlWebPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlFormsUser": "", + "SqlFormsPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlMasterUser": "", + "SqlMasterPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlReportingUser": "", + "SqlReportingPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlProcessingTasksUser": "", + "SqlProcessingTasksPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "SqlExmMasterUser": "", + "SqlExmMasterPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]", + "ExmEdsProvider": "", + "EXMCryptographicKey": "", + "EXMAuthenticationKey": "", + "SolrZookeeperUrl": "", + "XConnectCollectionService": "https://\"+$GlobalParams.SqlDbPrefix+\"XColl.local", + "XConnectCollectionSearchService": "https://\"+$GlobalParams.SqlDbPrefix+\"XSear.local", + "XConnectReferenceDataService": "https://\"+$GlobalParams.SqlDbPrefix+\"Xref.local", + "MarketingAutomationOperationsService": "https://\"+$GlobalParams.SqlDbPrefix+\"XMA.local", + "MarketingAutomationReportingService": "https://\"+$GlobalParams.SqlDbPrefix+\"XMAR.local", + "ProcessingService": "https://\"+$GlobalParams.SqlDbPrefix+\"PRC.local", + "ReportingServiceApiKey": "abcde111112222233333444445555566", + "TelerikEncryptionKey": "", + "SqlMessagingUser": "", + "SqlMessagingPassword": "[Invoke-RandomStringConfigFunction -Length 20 -DisAllowSpecial -EnforceComplexity]" + }, + "PackageMapping": { + "sitecore-XP1-cd": "* (OnPrem)_cd.scwdp.zip", + "sitecore-XP1-cm": "* (OnPrem)_cm.scwdp.zip", + "sitecore-XP1-prc": "* (OnPrem)_prc.scwdp.zip", + "xconnect-XP1-collection": "* (onPrem)_xp1collection.scwdp.zip", + "xconnect-xp1-collectionsearch": "* (onPrem)_xp1collectionsearch.scwdp.zip", + "xconnect-xp1-MarketingAutomation": "* (onPrem)_xp1marketingautomation.scwdp.zip", + "xconnect-xp1-MarketingAutomationReporting": "* (onPrem)_xp1marketingautomationreporting.scwdp.zip", + "xconnect-xp1-ReferenceData": "* (onPrem)_xp1referencedata.scwdp.zip", + "sitecore-xp1-dds": "* (OnPrem)_dds.scwdp.zip", + "xconnect-xp1-CortexProcessing": "* (OnPrem)_xp1cortexprocessing.scwdp.zip", + "xconnect-xp1-CortexReporting": "* (OnPrem)_xp1cortexreporting.scwdp.zip", + "IdentityServer": "* (OnPrem)_identityserver.scwdp.zip", + "sitecore-XP1-cm-dds-patch": "Sitecore.Patch.EXM (OnPrem)_CM.zip" + }, + + "Validators": [ + "list|Basic", + "list|DDS", + "list|DDS_Patch", + "list|Sitecore_10.0" + ], + + "ExecSequense": { + "InstallSIF": { + "Type": "SIM.Sitecore9Installer.Tasks.InstallSIFTask, SIM.Sitecore9Installer", + "TaskOptions": { + "InstallVersion": "2.3.0", + "Repository": "https://sitecore.myget.org/F/sc-powershell/api/v2", + "ExecutionOrder": "-100" + } + }, + "Prerequisites": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer" + }, + "IdentityServerCertificates": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "RealName": "createcert", + "CertificateName": "$SitecoreIdentityCert" + } + }, + "IdentityServer": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"Id.local\"" + } + }, + "XConnectCertificates": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "RealName": "createcert", + "CertificateName": "$XConnectCert" + } + }, + "xconnect-solr": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer" + }, + "xconnect-xp1-collection": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"XColl.local\"" + } + }, + "xconnect-xp1-collectionsearch": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"XSear.local\"" + } + }, + "xconnect-xp1-referencedata": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"XRef.local\"" + } + }, + "xconnect-xp1-marketingautomation": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"XMA.local\"" + } + }, + "xconnect-xp1-marketingautomationreporting": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"XMar.local\"" + } + }, + "xconnect-xp1-cortexprocessing": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"CorPrc.local\"" + } + }, + "xconnect-xp1-cortexreporting": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"CorRep.local\"" + } + }, + "Sitecore-solr": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer" + }, + "Sitecore-xp1-cd": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"CD.local\"" + } + }, + "Sitecore-xp1-prc": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"Prc.local\"" + } + }, + "Sitecore-xp1-cm": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"CM.local\"" + } + }, + "sitecore-xp1-dds": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"DDS.local\"" + } + }, + "sitecore-XP1-cm-dds-patch": { + "Type": "SIM.Sitecore9Installer.Tasks.SitecoreTask, SIM.Sitecore9Installer", + "Parameters": { + "SiteName": "$SqlDbPrefix+\"CM.local\"", + "DedicatedServerHostName": "https://\"+$SqlDbPrefix+\"DDS.local" + }, + "TaskOptions": { + "SupportsUninstall": "false" + } + } + } +} diff --git a/src/SIM.Tool/SIM.Tool.csproj b/src/SIM.Tool/SIM.Tool.csproj index 25a27fd5..4a542ca6 100644 --- a/src/SIM.Tool/SIM.Tool.csproj +++ b/src/SIM.Tool/SIM.Tool.csproj @@ -526,6 +526,9 @@ Always + + Always + Always