public void AvailabilityGroupRepository_RemoveFromAvailabilityGroup() { // Act availabilityGroupRepository.RemoveFromAvailabilityGroup("edds"); // Assert Assert.Pass("no result returned"); }
/// <summary> /// Initiates deployment and indicates results /// </summary> /// <param name="workingDirectory">the working directory to that has the scripts</param> /// <param name="isRetry">indicates if the current install attempt is a retry attempt</param> /// <returns>result set</returns> internal MigrationResultSet Execute(string workingDirectory, bool isRetry = false) { var connectionString = this.connectionFactory.GetTargetConnectionString( deploymentSettings.DatabaseName, deploymentSettings.Server, deploymentSettings.CredentialInfo); var timeout = ReadRoundhouseTimeoutValue(this.configurationRepository); var results = roundHouseManager.Run( connectionString, workingDirectory, deploymentSettings.CreateScriptName, deploymentSettings.DatabaseName, deploymentSettings.Server, timeout); if (isRetry == false && results.Success == false && results.Messages.Any(m => m.Severity == LogSeverity.Error && m.Message.Contains("SqlException") && m.Message.Contains(@"involved in a database mirroring session or an availability group"))) { // remove the database from the availability group and then retry deployment var removed = availabilityGroupRepository.RemoveFromAvailabilityGroup(deploymentSettings.DatabaseName); if (removed) { results = this.RetryDeployment(workingDirectory, results); } } else if (isRetry == false && results.Success == false) { results = this.RetryDeployment(workingDirectory, results); } if (results.Success) { // Mute down the logging on Success results.Messages = results.Messages.Select(m => { // Prepend the messages with their oringinal severity in case we do need them again m.Message = $"[{m.Severity}] -- {m.Message}"; m.Severity = LogSeverity.Debug; return(m); }).ToList(); } //Clean up AppData if (!this.keepWorkingDirectory) { fileService.CleanUpAppDataDirectory(); } //Return migration results return(results); }