/// <summary> /// Uninstalls the WDPT. /// </summary> /// <param name="configuration">The configuration.</param> public static void UninstallWdpt(BuildControlParameters configuration) { ProcessOperations.KillSwanProcesses(); UninstallYdr(configuration); Console.WriteLine("Beginning uninstall of Wpdt ..."); GeneralFileOperations.WriteProgramStatusFile(ExecutionStatus.UninstallWdpt); string swanController = Path.Combine(configuration.SwanPath, BuildControlParameters.SwanControllerExeName); string swanArguments = "/f " + Path.Combine(configuration.SwanTestCasePath, configuration.WpdtUninstallTestCase); ProcessOperations.RunProcess(swanController, configuration.SwanTestCasePath, swanArguments, false); }
/// <summary> /// Installs the WDPT. /// </summary> /// <param name="configuration">The configuration.</param> /// <param name="results">The results.</param> public static void InstallWdpt( BuildControlParameters configuration, DailyBuildFullResults results) { ProcessOperations.KillSwanProcesses(); Console.WriteLine("Starting Wpdt installation ...."); GeneralFileOperations.WriteProgramStatusFile(ExecutionStatus.InstallWdpt); string swanController = Path.Combine(configuration.SwanPath, BuildControlParameters.SwanControllerExeName); string swanArguments = "/f " + Path.Combine(configuration.SwanTestCasePath, configuration.WpdtInstallTestCase); Console.WriteLine("SwanController = " + swanController); Console.WriteLine("SwanArguments = " + swanArguments); ProcessOperations.RunProcess(swanController, configuration.SwanTestCasePath, swanArguments, false); Console.WriteLine("Waiting " + configuration.WpdtInstallationTimeMinutes.ToString() + " minutes for install to complete"); bool wpdtInstalled = false; for (Int32 i = 0; i < configuration.WpdtInstallationTimeMinutes; i++) { for (Int32 j = 0; j < 12; j++) { Thread.Sleep(5000); Console.Write("."); } // Wait one more minute after we detect the product is installed to be sure // of any final cleanup required. if (wpdtInstalled) { break; } Console.WriteLine(""); Console.WriteLine("Waited " + (i + 1).ToString() + " minutes"); } wpdtInstalled = IsWpdtInstalled(configuration); if (wpdtInstalled) { results.InstallWdpt.SetResults(true, ""); Console.WriteLine("Completed Install of Wpdt!"); } else { results.InstallWdpt.SetResults(false, "Wpdt did not install int the alloted time!"); Console.WriteLine("Wpdt did not install int the alloted time!"); } ProcessOperations.KillSwanProcesses(); ProcessOperations.KillSetupProcesses(); results.WpdtVersion = WpdtOperations.DetermineWdptInstalledVersion(configuration); results.YdrVersion = "Same as Wpdt"; }
/// <summary> /// WPDTs the ops uninstall. /// </summary> /// <param name="configuration">The configuration.</param> /// <param name="results">The results.</param> private static void WpdtOpsUninstall( BuildControlParameters configuration, DailyBuildFullResults results) { ExecutionStatus status = GeneralFileOperations.ReadProgramStatusFile(); results.WpdtVersion = WpdtOperations.DetermineWdptInstalledVersion(configuration); results.YdrVersion = "Same as Wpdt"; if (status != ExecutionStatus.UninstallWdpt && configuration.UpdateWpdt) { if (WpdtOperations.IsWpdtInstalled(configuration)) { if (!WpdtOperations.IsInstalledWpdtVersionSameAsLkg(configuration)) { WpdtOperations.UninstallWdpt(configuration); // Just show some time on the console before we exit for (Int32 i = 0; i < 10; i++) { Console.Write("."); Thread.Sleep(1000); } Console.WriteLine("Exiting process, waiting for Wpdt Uninstall to complete and reboot"); // Just show some more time on the console for (Int32 i = 0; i < 10; i++) { Console.Write("."); Thread.Sleep(1000); } Environment.Exit(0); } } else { Console.WriteLine("Requested to Uninstall Wpdt, but it was not installed!"); ProgramExecutionLog.AddEntry( "Requested to uninstall Wpdt, but it was not installed"); } } if (status == ExecutionStatus.UninstallWdpt) { results.UninstallWdpt.SetResults(true, ""); ProcessOperations.KillSwanProcesses(); Console.WriteLine("Continuing build process after reboot from Wpdt uninstall ..."); GeneralFileOperations.WriteProgramStatusFile(ExecutionStatus.Running); } }