public BaseRecoveryServicesJobResponse DeleteProtectedItem(string rsVaultRgName, string rsVaultName, string fabricName,
                                                                   string containerName, string protectedItemName)
        {
            var customHeader = CommonTestHelper.GetCustomRequestHeaders();

            BaseRecoveryServicesJobResponse response = Client.ProtectedItems.DeleteProtectedItem(rsVaultRgName, rsVaultName,
                                                                                                 fabricName, containerName, protectedItemName, customHeader);

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
            Assert.NotNull(response.Location);
            Assert.NotNull(response.AzureAsyncOperation);
            Assert.NotNull(response.RetryAfter);

            var operationStatusResponse = Client.GetOperationStatusByURLAsync(response.AzureAsyncOperation, customHeader);

            while (operationStatusResponse.Result.OperationStatus.Status == OperationStatusValues.InProgress)
            {
                if (HttpMockServer.Mode == HttpRecorderMode.Record)
                {
                    System.Threading.Thread.Sleep(5 * 1000);
                }
                operationStatusResponse = Client.GetOperationStatusByURLAsync(response.AzureAsyncOperation, customHeader);
            }

            operationStatusResponse = Client.GetOperationStatusByURLAsync(response.AzureAsyncOperation, CommonTestHelper.GetCustomRequestHeaders());
            var operationJobResponse = (OperationStatusJobExtendedInfo)operationStatusResponse.Result.OperationStatus.Properties;

            Assert.NotNull(operationJobResponse.JobId);
            Assert.Equal(OperationStatusValues.Succeeded, operationStatusResponse.Result.OperationStatus.Status);
            return(response);
        }
Beispiel #2
0
        public string GetJobStatus(string vaultRgName, string vaultName, string jobId)
        {
            var result = Client.Jobs.GetAsync(vaultRgName, vaultName, jobId, CommonTestHelper.GetCustomRequestHeaders()).Result;

            Assert.NotNull(result);
            Assert.Equal(result.StatusCode, HttpStatusCode.OK);
            return(((AzureIaaSVMJob)result.Item.Properties).Status);
        }
        public AzureOperationResponse DeleteProtectionPolicy(string rsVaultRgName, string rsVaultName, string policyName)
        {
            AzureOperationResponse response = Client.ProtectionPolicies.DeleteAsync(
                rsVaultRgName, rsVaultName, policyName, CommonTestHelper.GetCustomRequestHeaders()).Result;

            Assert.NotNull(response);
            return(response);
        }
Beispiel #4
0
        public JobResponse GetJob(string rgName, string rName, string jobId)
        {
            var result = Client.Jobs.GetAsync(rgName, rName, jobId, CommonTestHelper.GetCustomRequestHeaders()).Result;

            Assert.NotNull(result);
            Assert.Equal(result.StatusCode, HttpStatusCode.OK);
            return(result);
        }
Beispiel #5
0
        public BaseRecoveryServicesJobResponse CancelJob(string rgName, string rName, string jobId)
        {
            var result = Client.Jobs.BeginCancelJobAsync(rgName, rName, jobId, CommonTestHelper.GetCustomRequestHeaders()).Result;

            Assert.NotNull(result);
            Assert.Equal(result.StatusCode, HttpStatusCode.Accepted);
            return(result);
        }
        public RecoveryPointResource GetRecoveryPointDetails(string resourceGroupName, string resourceName, string containerUri, string itemUri, string recoveryPointId)
        {
            string fabricName = ConfigurationManager.AppSettings["AzureBackupFabricName"];
            var    response   = Client.RecoveryPoints.Get(
                resourceGroupName, resourceName, CommonTestHelper.GetCustomRequestHeaders(), fabricName, containerUri, itemUri, recoveryPointId);

            return(response.RecPoint);
        }
        public string GetDefaultPolicyId(string resourceGroupName, string resourceName)
        {
            string defaultPolicyName = ConfigurationManager.AppSettings["DefaultPolicyName"];

            ProtectionPolicyResponse response = Client.ProtectionPolicies.Get(
                resourceGroupName, resourceName, defaultPolicyName, CommonTestHelper.GetCustomRequestHeaders());

            return(response.Item.Id);
        }
        public ProtectableObjectListResponse ListProtectableObjects(string rsVaultRgName, string rsVaultName, ProtectableObjectListQueryParameters queryParams, PaginationRequest paginationParams)
        {
            ProtectableObjectListResponse response = Client.ProtectableObjects.List(
                rsVaultRgName, rsVaultName, queryParams, paginationParams, CommonTestHelper.GetCustomRequestHeaders());

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotNull(response.ItemList);
            return(response);
        }
Beispiel #9
0
        public string RestoreProtectedItem(string rsVaultRgName, string rsVaultName, string containerUri, string protectedItemUri, string sourceResourceId, string storageAccountId, RecoveryPointResource recoveryPointResource)
        {
            string fabricName = CommonTestHelper.GetSetting(TestConstants.ProviderTypeAzureIaasVM);

            RecoveryPoint recoveryPoint = (RecoveryPoint)recoveryPointResource.Properties;

            TriggerRestoreRequest restoreRequest = new TriggerRestoreRequest();

            restoreRequest.Item = new RestoreRequestResource();
            IaasVMRestoreRequest iaasVmRestoreRequest = new IaasVMRestoreRequest();

            if (recoveryPoint.KeyAndSecret != null &&
                recoveryPoint.KeyAndSecret.BekDetails != null &&
                recoveryPoint.KeyAndSecret.KekDetails != null)
            {
                iaasVmRestoreRequest.EncryptionDetails = new EncryptionDetails();
                iaasVmRestoreRequest.EncryptionDetails.EncryptionEnabled = true;
                iaasVmRestoreRequest.EncryptionDetails.KekUrl            = recoveryPoint.KeyAndSecret.KekDetails.KeyUrl;
                iaasVmRestoreRequest.EncryptionDetails.KekVaultId        = recoveryPoint.KeyAndSecret.KekDetails.KeyVaultId;
                iaasVmRestoreRequest.EncryptionDetails.SecretKeyUrl      = recoveryPoint.KeyAndSecret.BekDetails.SecretUrl;
                iaasVmRestoreRequest.EncryptionDetails.SecretKeyVaultId  = recoveryPoint.KeyAndSecret.BekDetails.SecretVaultId;
            }
            iaasVmRestoreRequest.RecoveryPointId  = recoveryPointResource.Name;
            iaasVmRestoreRequest.RecoveryType     = RecoveryType.RestoreDisks.ToString();
            iaasVmRestoreRequest.SourceResourceId = sourceResourceId;
            iaasVmRestoreRequest.StorageAccountId = storageAccountId;
            restoreRequest.Item.Properties        = iaasVmRestoreRequest;

            var response = Client.Restores.TriggerRestore(rsVaultRgName, rsVaultName, CommonTestHelper.GetCustomRequestHeaders(),
                                                          fabricName, containerUri, protectedItemUri, recoveryPointResource.Name, restoreRequest);

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
            Assert.NotNull(response.Location);
            Assert.NotNull(response.AzureAsyncOperation);
            Assert.NotNull(response.RetryAfter);

            var operationResponse = Client.ProtectedItems.GetProtectedItemOperationResultByURLAsync(response.Location, CommonTestHelper.GetCustomRequestHeaders());

            while (operationResponse.Result.StatusCode == HttpStatusCode.Accepted)
            {
                if (HttpMockServer.Mode == HttpRecorderMode.Record)
                {
                    System.Threading.Thread.Sleep(5 * 1000);
                }
                operationResponse = Client.ProtectedItems.GetProtectedItemOperationResultByURLAsync(response.Location, CommonTestHelper.GetCustomRequestHeaders());
            }

            var operationStatusResponse = Client.GetOperationStatusByURLAsync(response.AzureAsyncOperation, CommonTestHelper.GetCustomRequestHeaders());
            var operationJobResponse    = (OperationStatusJobExtendedInfo)operationStatusResponse.Result.OperationStatus.Properties;

            Assert.NotNull(operationJobResponse.JobId);

            return(operationJobResponse.JobId);
        }
        public AzureOperationResponse UnregisterBackupEngine(string name)
        {
            string rsVaultRgName = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
            string rsVaultName   = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

            AzureOperationResponse response = Client.Containers.Unregister(rsVaultRgName, rsVaultName, name, CommonTestHelper.GetCustomRequestHeaders());

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
            return(response);
        }
        public BackupEngineListResponse ListBackupEngine(BackupEngineListQueryParams queryParams, PaginationRequest paginationParam)
        {
            string rsVaultRgName = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
            string rsVaultName   = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

            BackupEngineListResponse response = Client.BackupEngines.List(rsVaultRgName, rsVaultName, queryParams, paginationParam, CommonTestHelper.GetCustomRequestHeaders());

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotNull(response.ItemList);
            return(response);
        }
        public ProtectionContainerListResponse ListMABContainers(ProtectionContainerListQueryParams queryParams)
        {
            string rsVaultRgName = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
            string rsVaultName   = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

            ProtectionContainerListResponse response = Client.Containers.List(rsVaultRgName, rsVaultName, queryParams, CommonTestHelper.GetCustomRequestHeaders());

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotNull(response.ItemList);
            return(response);
        }
        public List <RecoveryPointResource> ListRecoveryPoints(string resourceGroupName, string resourceName, string containerUri, string itemUri, DateTime backupStartTime, DateTime backupEndTime)
        {
            string fabricName        = ConfigurationManager.AppSettings["AzureBackupFabricName"];
            string utcDateTimeFormat = ConfigurationManager.AppSettings["UTCDateTimeFormat"];

            RecoveryPointQueryParameters queryFilter = new RecoveryPointQueryParameters();

            queryFilter.StartDate = backupStartTime.ToString(utcDateTimeFormat);
            queryFilter.EndDate   = backupEndTime.ToString(utcDateTimeFormat);
            var response = Client.RecoveryPoints.List(
                resourceGroupName, resourceName, CommonTestHelper.GetCustomRequestHeaders(), fabricName, containerUri, itemUri, queryFilter);

            return(response.RecoveryPointList.RecoveryPoints.ToList());
        }
        public ProtectedItemResponse GetProtectedItem(string rsVaultRgName, string rsVaultName, string containerName, string protectedItemName)
        {
            string fabricName   = ConfigurationManager.AppSettings["AzureBackupFabricName"];
            var    customHeader = CommonTestHelper.GetCustomRequestHeaders();

            GetProtectedItemQueryParam queryFilter = new GetProtectedItemQueryParam()
            {
                Expand = "extendedinfo"
            };
            ProtectedItemResponse response = Client.ProtectedItems.Get(rsVaultRgName, rsVaultName,
                                                                       fabricName, containerName, protectedItemName, queryFilter, customHeader);

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotNull(response.Item);

            return(response);
        }
Beispiel #15
0
        public string BackupProtectedItem(string rsVaultRgName, string rsVaultName, string containerUri, string protectedItemUri)
        {
            string fabricName = CommonTestHelper.GetSetting(TestConstants.ProviderTypeAzureIaasVM);

            TriggerBackupRequest backupRequest = new TriggerBackupRequest();

            backupRequest.Item = new BackupRequestResource();
            IaaSVMBackupRequest iaasVmBackupRequest = new IaaSVMBackupRequest();

            iaasVmBackupRequest.RecoveryPointExpiryTimeInUTC = DateTime.UtcNow.AddDays(2);
            backupRequest.Item.Properties = iaasVmBackupRequest;

            var response = Client.Backups.TriggerBackup(rsVaultRgName, rsVaultName, CommonTestHelper.GetCustomRequestHeaders(),
                                                        fabricName, containerUri, protectedItemUri, backupRequest);

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
            Assert.NotNull(response.Location);
            Assert.NotNull(response.AzureAsyncOperation);
            Assert.NotNull(response.RetryAfter);

            var operationResponse = Client.ProtectedItems.GetProtectedItemOperationResultByURLAsync(response.Location, CommonTestHelper.GetCustomRequestHeaders());

            while (operationResponse.Result.StatusCode == HttpStatusCode.Accepted)
            {
                if (HttpMockServer.Mode == HttpRecorderMode.Record)
                {
                    System.Threading.Thread.Sleep(5 * 1000);
                }
                operationResponse = Client.ProtectedItems.GetProtectedItemOperationResultByURLAsync(response.Location, CommonTestHelper.GetCustomRequestHeaders());
            }

            var operationStatusResponse = Client.GetOperationStatusByURLAsync(response.AzureAsyncOperation, CommonTestHelper.GetCustomRequestHeaders());
            var operationJobResponse    = (OperationStatusJobExtendedInfo)operationStatusResponse.Result.OperationStatus.Properties;

            Assert.NotNull(operationJobResponse.JobId);

            return(operationJobResponse.JobId);
        }
Beispiel #16
0
        public JobResponse GetJobOperationStatus(string rgName, string rName, string jobId, string opId)
        {
            var result = Client.Jobs.GetOperationResultAsync(rgName, rName, jobId, opId, CommonTestHelper.GetCustomRequestHeaders()).Result;

            return(result);
        }
        public BaseRecoveryServicesJobResponse RefreshContainer(string rsVaultRgName, string rsVaultName, string fabricName)
        {
            BaseRecoveryServicesJobResponse response = Client.Containers.BeginRefresh(rsVaultRgName, rsVaultName, CommonTestHelper.GetCustomRequestHeaders(), fabricName);

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);

            while (response.StatusCode == HttpStatusCode.Accepted)
            {
                response = Client.Containers.GetRefreshOperationResultByURL(response.Location);
                if (HttpMockServer.Mode == HttpRecorderMode.Record)
                {
                    System.Threading.Thread.Sleep(5 * 1000);
                }
            }

            Assert.Equal(HttpStatusCode.NoContent, response.StatusCode);
            return(response);
        }
Beispiel #18
0
        public JobListResponse ListJobs(string rgName, string rName, CommonJobQueryFilters queryFilters, PaginationRequest paginationReq)
        {
            var response = Client.Jobs.ListAsync(rgName, rName, queryFilters, paginationReq, CommonTestHelper.GetCustomRequestHeaders()).Result;

            Assert.NotNull(response);
            Assert.NotNull(response.ItemList);
            Assert.Equal(response.StatusCode, HttpStatusCode.OK);

            return(response);
        }
Beispiel #19
0
 public JobTestHelpers(RecoveryServicesBackupManagementClient client)
 {
     this.rgName = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
     this.rName  = CommonTestHelper.GetSetting(TestConstants.RsVaultName);
     this.Client = client;
 }
        public ProtectionPolicyResponse AddOrUpdateProtectionPolicy(string rsVaultRgName, string rsVaultName, string policyName, ProtectionPolicyRequest request)
        {
            ProtectionPolicyResponse response = Client.ProtectionPolicies.CreateOrUpdateAsync(rsVaultRgName, rsVaultName,
                                                                                              policyName, request, CommonTestHelper.GetCustomRequestHeaders()).Result;

            Assert.NotNull(response);
            if (response.StatusCode == HttpStatusCode.OK)
            {
                Assert.Null(response.Location);
                Assert.Null(response.AzureAsyncOperation);
                Assert.Null(response.RetryAfter);
                Assert.NotNull(response.Item);
                Assert.NotNull(response.Item.Id);
                Assert.NotNull(response.Item.Name);
                Assert.NotNull(response.Item.Type);
            }
            else
            {
                Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
                Assert.NotNull(response.Location);
                Assert.NotNull(response.AzureAsyncOperation);
                Assert.NotNull(response.RetryAfter);
            }

            return(response);
        }
        public ProtectionPolicyResponse GetProtectionPolicy(string rsVaultRgName, string rsVaultName, string policyName)
        {
            ProtectionPolicyResponse response = Client.ProtectionPolicies.GetAsync(rsVaultRgName, rsVaultName,
                                                                                   policyName, CommonTestHelper.GetCustomRequestHeaders()).Result;

            Assert.NotNull(response);
            Assert.Null(response.Location);
            Assert.Null(response.AzureAsyncOperation);
            Assert.Null(response.RetryAfter);
            Assert.Equal(response.Item.Name, policyName);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);

            return(response);
        }
        public ProtectionPolicyListResponse ListProtectionPolicy(string rsVaultRgName, string rsVaultName, ProtectionPolicyQueryParameters queryParams)
        {
            ProtectionPolicyListResponse response = Client.ProtectionPolicies.ListAsync(rsVaultRgName, rsVaultName,
                                                                                        queryParams, CommonTestHelper.GetCustomRequestHeaders()).Result;

            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            return(response);
        }