/// <summary> /// Handle request to get backup configuration info /// </summary> /// <param name="optionsParams"></param> /// <param name="requestContext"></param> /// <returns></returns> public static async Task HandleBackupConfigInfoRequest( DefaultDatabaseInfoParams optionsParams, RequestContext <BackupConfigInfoResponse> requestContext) { try { var response = new BackupConfigInfoResponse(); ConnectionInfo connInfo; DisasterRecoveryService.ConnectionServiceInstance.TryFindConnection( optionsParams.OwnerUri, out connInfo); if (connInfo != null) { DatabaseTaskHelper helper = AdminService.CreateDatabaseTaskHelper(connInfo, databaseExists: true); SqlConnection sqlConn = GetSqlConnection(connInfo); if ((sqlConn != null) && !connInfo.IsSqlDW && !connInfo.IsAzure) { BackupConfigInfo backupConfigInfo = DisasterRecoveryService.Instance.GetBackupConfigInfo(helper.DataContainer, sqlConn, sqlConn.Database); backupConfigInfo.DatabaseInfo = AdminService.GetDatabaseInfo(connInfo); response.BackupConfigInfo = backupConfigInfo; } } await requestContext.SendResult(response); } catch (Exception ex) { await requestContext.SendError(ex.ToString()); } }
/// <summary> /// Handle request to get backup configuration info /// </summary> /// <param name="optionsParams"></param> /// <param name="requestContext"></param> /// <returns></returns> internal async Task HandleBackupConfigInfoRequest( DefaultDatabaseInfoParams optionsParams, RequestContext <BackupConfigInfoResponse> requestContext) { try { var response = new BackupConfigInfoResponse(); ConnectionInfo connInfo; DisasterRecoveryService.ConnectionServiceInstance.TryFindConnection( optionsParams.OwnerUri, out connInfo); if (connInfo != null) { using (DatabaseTaskHelper helper = AdminService.CreateDatabaseTaskHelper(connInfo, databaseExists: true)) { using (SqlConnection sqlConn = ConnectionService.OpenSqlConnection(connInfo, "Backup")) { if (sqlConn != null && !connInfo.IsCloud) { BackupConfigInfo backupConfigInfo = this.GetBackupConfigInfo(helper.DataContainer, sqlConn, sqlConn.Database); response.BackupConfigInfo = backupConfigInfo; } } } } await requestContext.SendResult(response); } catch (Exception ex) { await requestContext.SendError(ex.ToString()); } }
/// <summary> /// Get backup configuration info /// </summary> /// Test is failing in code coverage runs. Reenable when stable. ///[Fact] public async void GetBackupConfigInfoTest() { string databaseName = "testbackup_" + new Random().Next(10000000, 99999999); using (SqlTestDb testDb = SqlTestDb.CreateNew(TestServerType.OnPrem, false, databaseName)) { var liveConnection = LiveConnectionHelper.InitLiveConnectionInfo(databaseName); var requestContext = new Mock <RequestContext <BackupConfigInfoResponse> >(); requestContext.Setup(x => x.SendResult(It.IsAny <BackupConfigInfoResponse>())) .Returns(Task.FromResult(new object())); var dbParams = new DefaultDatabaseInfoParams { OwnerUri = liveConnection.ConnectionInfo.OwnerUri }; DisasterRecoveryService service = new DisasterRecoveryService(); await service.HandleBackupConfigInfoRequest(dbParams, requestContext.Object); requestContext.Verify(x => x.SendResult(It.Is <BackupConfigInfoResponse> (p => p.BackupConfigInfo.RecoveryModel != string.Empty && p.BackupConfigInfo.DefaultBackupFolder != string.Empty))); } }
/// <summary> /// Get a default database info object /// </summary> // [Fact] public async void GetDefaultDatebaseInfoTest() { var result = GetLiveAutoCompleteTestObjects(); var requestContext = new Mock<RequestContext<DefaultDatabaseInfoResponse>>(); requestContext.Setup(x => x.SendResult(It.IsAny<DefaultDatabaseInfoResponse>())).Returns(Task.FromResult(new object())); var dbParams = new DefaultDatabaseInfoParams { OwnerUri = result.ConnectionInfo.OwnerUri }; await AdminService.HandleDefaultDatabaseInfoRequest(dbParams, requestContext.Object); requestContext.VerifyAll(); }
/// <summary> /// Handle a request for the default database prototype info /// </summary> public static async Task HandleDefaultDatabaseInfoRequest( DefaultDatabaseInfoParams optionsParams, RequestContext <DefaultDatabaseInfoResponse> requestContext) { var response = new DefaultDatabaseInfoResponse(); ConnectionInfo connInfo; AdminService.ConnectionServiceInstance.TryFindConnection( optionsParams.OwnerUri, out connInfo); if (taskHelper == null) { taskHelper = CreateDatabaseTaskHelper(connInfo); } response.DefaultDatabaseInfo = DatabaseTaskHelper.DatabasePrototypeToDatabaseInfo(taskHelper.Prototype); await requestContext.SendResult(response); }
/// <summary> /// Handle a request for the default database prototype info /// </summary> public static async Task HandleDefaultDatabaseInfoRequest( DefaultDatabaseInfoParams optionsParams, RequestContext <DefaultDatabaseInfoResponse> requestContext) { try { var response = new DefaultDatabaseInfoResponse(); ConnectionInfo connInfo; AdminService.ConnectionServiceInstance.TryFindConnection( optionsParams.OwnerUri, out connInfo); using (var taskHelper = CreateDatabaseTaskHelper(connInfo)) { response.DefaultDatabaseInfo = DatabaseTaskHelper.DatabasePrototypeToDatabaseInfo(taskHelper.Prototype); await requestContext.SendResult(response); } } catch (Exception ex) { await requestContext.SendError(ex.ToString()); } }