static void ImportLicenseInstall(Session session, MSILogger logger) { logger.Info("Checking for license file"); var licenseFilePropertyValue = session["LICENSEFILE"]; if (string.IsNullOrWhiteSpace(licenseFilePropertyValue)) { return; } logger.Info($"LICENSEFILE: {licenseFilePropertyValue}"); var currentDirectory = session["CURRENTDIRECTORY"]; var licenseFilePath = Environment.ExpandEnvironmentVariables(Path.IsPathRooted(licenseFilePropertyValue) ? licenseFilePropertyValue : Path.Combine(currentDirectory, licenseFilePropertyValue)); logger.Info($"Expanded license filepath to : {licenseFilePropertyValue}"); if (File.Exists(licenseFilePath)) { logger.Info($"File Exists : {licenseFilePropertyValue}"); string errormessage; if (!LicenseManager.TryImportLicense(licenseFilePath, out errormessage)) { logger.Error(errormessage); } } else { logger.Error($"The specified license install file was not found : '{licenseFilePath}'"); } }
public static ActionResult ServiceControlUnattendedInstall(Session session) { var logger = new MSILogger(session); var unattendedInstaller = new UnattendInstaller(logger, session["APPDIR"]); var zipInfo = ServiceControlZipInfo.Find(session["APPDIR"] ?? "."); if (!zipInfo.Present) { logger.Error("Zip file not found. Service Control service instances can not be upgraded or installed"); return(ActionResult.Failure); } UpgradeInstances(session, zipInfo, logger, unattendedInstaller); UnattendedInstall(session, logger, unattendedInstaller); ImportLicenseInstall(session, logger); return(ActionResult.Success); }
public static ActionResult ServiceControlUnattendedRemoval(Session session) { var logger = new MSILogger(session); var removeInstancesPropertyValue = session["REMOVEALLINSTANCESANDDATA"]; if (string.IsNullOrWhiteSpace(removeInstancesPropertyValue)) { return(ActionResult.NotExecuted); } switch (removeInstancesPropertyValue.ToUpper()) { case "YES": case "TRUE": break; default: return(ActionResult.NotExecuted); } if (InstanceFinder.ServiceControlInstances().Count == 0) { return(ActionResult.Success); } var unattendedInstaller = new UnattendServiceControlInstaller(logger, session["APPDIR"]); foreach (var instance in InstanceFinder.ServiceControlInstances()) { try { unattendedInstaller.Delete(instance.Name, true, true); } catch (Exception ex) { logger.Error($"Error thrown when removing instance {instance.Name} - {ex}"); } } return(ActionResult.Success); }
static void UnattendedInstall(Session session, MSILogger logger, UnattendServiceControlInstaller unattendedInstaller) { logger.Info("Checking for unattended file"); var unattendedFilePropertyValue = session["UNATTENDEDFILE"]; if (string.IsNullOrWhiteSpace(unattendedFilePropertyValue)) { return; } var serviceAccount = session["SERVICEACCOUNT"]; var password = session["PASSWORD"]; logger.Info($"UNATTENDEDFILE: {unattendedFilePropertyValue}"); var currentDirectory = session["CURRENTDIRECTORY"]; var unattendedFilePath = Environment.ExpandEnvironmentVariables(Path.IsPathRooted(unattendedFilePropertyValue) ? unattendedFilePropertyValue : Path.Combine(currentDirectory, unattendedFilePropertyValue)); logger.Info($"Expanded unattended filepath to : {unattendedFilePropertyValue}"); if (File.Exists(unattendedFilePath)) { logger.Info($"File Exists : {unattendedFilePropertyValue}"); var instanceToInstallDetails = ServiceControlNewInstance.Load(unattendedFilePath); if (!string.IsNullOrWhiteSpace(serviceAccount)) { instanceToInstallDetails.ServiceAccount = serviceAccount; instanceToInstallDetails.ServiceAccountPwd = password; } unattendedInstaller.Add(instanceToInstallDetails, s => false); } else { logger.Error($"The specified unattended install file was not found : '{unattendedFilePath}'"); } }