Exemplo n.º 1
0
        public void RemoveAzureBackupProtectionTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                string itemUniqueName      = ConfigurationManager.AppSettings["RsVaultIaasV1ContainerUniqueName"];
                string containerUniqueName = ConfigurationManager.AppSettings["RsVaultIaasV1ContainerUniqueName"];
                string containeType        = ConfigurationManager.AppSettings["IaaSVMContainerType"];
                string itemType            = ConfigurationManager.AppSettings["IaaSVMItemType"];
                string containerName       = containeType + ";" + containerUniqueName;
                string itemName            = itemType + ";" + itemUniqueName;
                string fabricName          = ConfigurationManager.AppSettings["AzureBackupFabricName"];

                string rsVaultRgName = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
                string rsVaultName   = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

                ProtectedItemTestHelper protectedItemTestHelper = new ProtectedItemTestHelper(client);

                var response = protectedItemTestHelper.DeleteProtectedItem(fabricName,
                                                                           containerName, itemName);
            }
        }
        public void ListProtectionPolicyTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                string rsVaultRgName     = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
                string rsVaultName       = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);
                PolicyTestHelpers policyTestHelper          = new PolicyTestHelpers(client);
                ProtectionPolicyQueryParameters queryParams = new ProtectionPolicyQueryParameters();
                queryParams.BackupManagementType = ConfigurationManager.AppSettings["ProviderTypeAzureSql"];

                ProtectionPolicyListResponse response = policyTestHelper.ListProtectionPolicy(rsVaultRgName, rsVaultName, queryParams);

                // atleast one default policy is expected
                Assert.NotNull(response.ItemList);
                Assert.NotNull(response.ItemList.Value);

                IList <ProtectionPolicyResource> policyList = response.ItemList.Value;

                // atleast one default policy should be there
                Assert.NotEmpty(policyList);

                foreach (ProtectionPolicyResource resource in policyList)
                {
                    Assert.NotNull(resource.Id);
                    Assert.NotNull(resource.Name);
                    Assert.NotNull(resource.Type);
                    Assert.NotNull(resource.Properties);
                }
            }
        }
Exemplo n.º 3
0
        public void EnableAzureBackupProtectionTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                ProtectedItemCreateOrUpdateRequest     input = new ProtectedItemCreateOrUpdateRequest();
                AzureIaaSClassicComputeVMProtectedItem iaasVmProtectedItem = new AzureIaaSClassicComputeVMProtectedItem();
                iaasVmProtectedItem.PolicyId = ConfigurationManager.AppSettings["RsVaultIaasVMDefaultPolicyId"];

                ProtectedItemResource protectedItemResource = new ProtectedItemResource();
                protectedItemResource.Properties = iaasVmProtectedItem;
                input.Item = protectedItemResource;

                string itemUniqueName      = ConfigurationManager.AppSettings["RsVaultIaasV1ContainerUniqueName"];
                string containerUniqueName = ConfigurationManager.AppSettings["RsVaultIaasV1ContainerUniqueName"];
                string containeType        = ConfigurationManager.AppSettings["IaaSVMContainerType"];
                string itemType            = ConfigurationManager.AppSettings["IaaSVMItemType"];
                string containerName       = containeType + ";" + containerUniqueName;
                string itemName            = itemType + ";" + itemUniqueName;
                string fabricName          = ConfigurationManager.AppSettings["AzureBackupFabricName"];

                string rsVaultRgName = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
                string rsVaultName   = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

                ProtectedItemTestHelper protectedItemTestHelper = new ProtectedItemTestHelper(client);

                var response = protectedItemTestHelper.AddOrUpdateProtectedItem(fabricName,
                                                                                containerName, itemName, input);
            }
        }
Exemplo n.º 4
0
        public void ListContainersTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams();
                queryParams.BackupManagementType = CommonTestHelper.GetSetting(TestConstants.ProviderTypeAzureIaasVM);

                ContainerTestHelper             containerTestHelper = new ContainerTestHelper(client);
                ProtectionContainerListResponse response            = containerTestHelper.ListContainers(queryParams);

                string containerName = ConfigurationManager.AppSettings["RsVaultIaasV1ContainerUniqueName"];;
                Assert.True(
                    response.ItemList.ProtectionContainers.Any(
                        protectionContainer =>
                {
                    return(protectionContainer.Properties.GetType().IsSubclassOf(typeof(AzureIaaSVMProtectionContainer)) &&
                           protectionContainer.Name.Contains(containerName));
                }),
                    "Retrieved list of containers doesn't contain AzureIaaSClassicComputeVMProtectionContainer test container");
            }
        }
        public void ListProtectedItemTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                string rsVaultRgName     = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
                string rsVaultName       = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                ProtectedItemListQueryParam queryParams = new ProtectedItemListQueryParam();
                queryParams.BackupManagementType = CommonTestHelper.GetSetting(TestConstants.ProviderTypeAzureSql);
                queryParams.DatasourceType       = CommonTestHelper.GetSetting(TestConstants.WorkloadTypeAzureSqlDb);

                ProtectedItemTestHelpers itemTestHelper = new ProtectedItemTestHelpers(client);
                var response = itemTestHelper.ListProtectedItems(rsVaultRgName, rsVaultName, queryParams);

                string itemName = ConfigurationManager.AppSettings[TestConstants.AzureSqlItemName];
                Assert.True(response.ItemList.Value.Any(item =>
                {
                    return((item.Properties is AzureSqlProtectedItem) &&
                           item.Name.Contains(itemName));
                }),
                            "Retrieved list of items doesn't contain AzureSqlProtectedItem test item");
            }
        }
        public void GetProtectedItemTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                string itemUniqueName      = ConfigurationManager.AppSettings[TestConstants.AzureSqlItemName];
                string containerUniqueName = ConfigurationManager.AppSettings[TestConstants.AzureSqlContainerName];
                string containeType        = ConfigurationManager.AppSettings[TestConstants.ContainerTypeAzureSql];
                string itemType            = ConfigurationManager.AppSettings[TestConstants.WorkloadTypeAzureSqlDb];
                string containerName       = containeType + ";" + containerUniqueName;
                string itemName            = itemType + ";" + itemUniqueName;

                string rsVaultRgName = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
                string rsVaultName   = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

                ProtectedItemTestHelpers protectedItemTestHelper = new ProtectedItemTestHelpers(client);

                var response = protectedItemTestHelper.GetProtectedItem(rsVaultRgName, rsVaultName, containerName, itemName);

                Assert.Equal(itemUniqueName, response.Item.Name);
                Assert.NotNull(response.Item.Properties as AzureSqlProtectedItem);
            }
        }
Exemplo n.º 7
0
        public void ListProtectedItemsTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                ProtectedItemListQueryParam queryParams = new ProtectedItemListQueryParam();
                queryParams.BackupManagementType = CommonTestHelper.GetSetting(TestConstants.ProviderTypeAzureIaasVM);
                queryParams.DatasourceType       = CommonTestHelper.GetSetting(TestConstants.WorkloadTypeVM);

                ProtectedItemTestHelper itemTestHelper = new ProtectedItemTestHelper(client);
                var response = itemTestHelper.ListProtectedItems(queryParams);

                string itemName = ConfigurationManager.AppSettings["RsVaultIaasV1ContainerUniqueName"];
                Assert.True(response.ItemList.Value.Any(item =>
                {
                    return(item.Properties.GetType().IsSubclassOf(typeof(AzureIaaSVMProtectedItem)) &&
                           item.Name.Contains(itemName));
                }),
                            "Retrieved list of items doesn't contain AzureIaaSVMProtectedItem test item");
            }
        }
Exemplo n.º 8
0
        public static IEnumerable <object[]> TransparentColor_Set_TestData()
        {
            foreach (object[] testData in CommonTestHelper.GetColorWithEmptyTheoryData())
            {
                yield return(testData);
            }

            yield return(new object[] { Color.LightGray });
        }
        public void ListRecoveryPointTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                string resourceGroupName = ConfigurationManager.AppSettings["RsVaultRgNameRP"];
                string resourceName      = ConfigurationManager.AppSettings["RsVaultNameRP"];
                string location          = ConfigurationManager.AppSettings["vaultLocationRP"];
                // TODO: Create VM instead of taking these parameters from config
                string containerUniqueName = ConfigurationManager.AppSettings["RsVaultIaasVMContainerUniqueNameRP"];
                string itemUniqueName      = ConfigurationManager.AppSettings["RsVaultIaasVMItemUniqueNameRP"];
                string containeType        = ConfigurationManager.AppSettings["IaaSVMContainerType"];
                string itemType            = ConfigurationManager.AppSettings["IaaSVMItemType"];
                string containerUri        = containeType + ";" + containerUniqueName;
                string itemUri             = itemType + ";" + itemUniqueName;
                string fabricName          = ConfigurationManager.AppSettings["AzureBackupFabricName"];
                string utcDateTimeFormat   = ConfigurationManager.AppSettings["UTCDateTimeFormat"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                // 1. Create vault
                VaultTestHelpers vaultTestHelper = new VaultTestHelpers(client);
                vaultTestHelper.CreateVault(resourceGroupName, resourceName, location);

                // 2. Get default policy
                PolicyTestHelpers policyTestHelper = new PolicyTestHelpers(client);
                string            policyId         = policyTestHelper.GetDefaultPolicyId(resourceGroupName, resourceName);

                // 3. Enable protection
                ProtectedItemTestHelpers protectedItemTestHelper = new ProtectedItemTestHelpers(client);
                protectedItemTestHelper.EnableProtection(resourceGroupName, resourceName, policyId, containerUri, itemUri);

                // 4. Trigger backup and wait for completion
                BackupTestHelpers backupTestHelper = new BackupTestHelpers(client);
                DateTime          backupStartTime  = DateTime.UtcNow;
                string            jobId            = backupTestHelper.BackupProtectedItem(resourceGroupName, resourceName, containerUri, itemUri);
                JobTestHelpers    jobTestHelper    = new JobTestHelpers(client);
                jobTestHelper.WaitForJob(resourceGroupName, resourceName, jobId);
                DateTime backupEndTime = DateTime.UtcNow;

                // ACTION: Fetch RP
                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);

                // VALIDATION: Should be only one RP
                Assert.NotNull(response.RecoveryPointList);
                Assert.NotNull(response.RecoveryPointList.RecoveryPoints);
                Assert.Equal(1, response.RecoveryPointList.RecoveryPoints.Count);
            }
        }
Exemplo n.º 10
0
        public void ListContainersTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                string resourceGroupName = ConfigurationManager.AppSettings["RsVaultRgNameRP"];
                string resourceName      = ConfigurationManager.AppSettings["RsVaultNameRP"];
                string location          = ConfigurationManager.AppSettings["vaultLocationRP"];
                // TODO: Create VM instead of taking these parameters from config
                string containerUniqueName = ConfigurationManager.AppSettings["RsVaultIaasVMContainerUniqueNameRP"];
                string itemUniqueName      = ConfigurationManager.AppSettings["RsVaultIaasVMItemUniqueNameRP"];
                string containeType        = ConfigurationManager.AppSettings["IaaSVMContainerType"];
                string itemType            = ConfigurationManager.AppSettings["IaaSVMItemType"];
                string containerUri        = containeType + ";" + containerUniqueName;
                string itemUri             = itemType + ";" + itemUniqueName;

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                // 1. Create vault
                VaultTestHelpers vaultTestHelper = new VaultTestHelpers(client);
                vaultTestHelper.CreateVault(resourceGroupName, resourceName, location);

                // 2. Get default policy
                PolicyTestHelpers policyTestHelper = new PolicyTestHelpers(client);
                string            policyId         = policyTestHelper.GetDefaultPolicyId(resourceGroupName, resourceName);

                // 3. Enable protection
                ProtectedItemTestHelpers protectedItemTestHelper = new ProtectedItemTestHelpers(client);
                protectedItemTestHelper.EnableProtection(resourceGroupName, resourceName, policyId, containerUri, itemUri);

                // ACTION: List containers
                ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams();
                queryParams.BackupManagementType = CommonTestHelper.GetSetting(TestConstants.ProviderTypeAzureIaasVM);
                ContainerTestHelper             containerTestHelper = new ContainerTestHelper(client);
                ProtectionContainerListResponse response            = containerTestHelper.ListContainers(resourceGroupName, resourceName, queryParams);

                // VALIDATION: VM should be found in the list
                Assert.True(response.ItemList.ProtectionContainers.Any(
                                protectionContainer =>
                {
                    return(protectionContainer.Properties.GetType().IsSubclassOf(typeof(AzureIaaSVMProtectionContainer)) &&
                           protectionContainer.Name.Contains(containerUniqueName));
                }),
                            "Retrieved list of containers doesn't contain AzureIaaSVMProtectionContainer test container");
            }
        }
Exemplo n.º 11
0
        public void ListContainersTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);
                ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams();
                queryParams.BackupManagementType = BackupManagementType.MAB.ToString();

                ContainerTestHelper             containerTestHelper = new ContainerTestHelper(client);
                ProtectionContainerListResponse response            = containerTestHelper.ListMABContainers(queryParams);

                string containerUniqueName       = CommonTestHelper.GetSetting(TestConstants.RsVaultMabContainerUniqueName);
                MabProtectionContainer container = response.ItemList.ProtectionContainers[0].Properties as MabProtectionContainer;
                Assert.NotNull(container);
                Assert.Equal(containerUniqueName, container.FriendlyName);
            }
        }
Exemplo n.º 12
0
        public void ListDPMBakcupEngineTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);
                BackupEngineHelpers         backupEngineTestHelper = new BackupEngineHelpers(client);
                BackupEngineListQueryParams queryParam             = new BackupEngineListQueryParams();
                //queryParam.ProviderType = "DPM";
                PaginationRequest paginationParam = new PaginationRequest();
                paginationParam.Top = "200";
                AzureOperationResponse   response             = backupEngineTestHelper.ListBackupEngine(queryParam, paginationParam);
                BackupEngineListResponse backupEngineResponse = response as BackupEngineListResponse;
                string backupEngineUniqueName = CommonTestHelper.GetSetting(TestConstants.RsVaultDpmContainerUniqueName);
                Assert.NotNull(backupEngineResponse.ItemList.BackupEngines[0].Properties as BackupEngineBase);
                Assert.Equal(backupEngineUniqueName, backupEngineResponse.ItemList.BackupEngines[0].Name);
            }
        }
        public void LoadGooglePage()
        {
            _driver.NavigateUrl();
            test = extent.CreateTest("LoadGooglePage");
            List <string> searches = CommonTestHelper.GetTestData("LoadGooglePage");

            test.Log(Status.Info, "This step shows usage of log(status, details)");

            foreach (var search in searches)
            {
                _driver.FindElement(By.Name("q")).SendKeys(search);

                Thread.Sleep(1000);

                IWebElement searchBtn = _driver.FindElement(By.ClassName("gNO89b"));
                searchBtn.Click();
                test.Info("Search with " + search);
                _driver.Navigate().Back();
                Thread.Sleep(1000);
                test.Pass("Search with " + search);
            }
        }
        public void ListContainersTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                string rsVaultRgName     = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
                string rsVaultName       = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);
                ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams();
                queryParams.BackupManagementType = BackupManagementType.AzureSql.ToString();

                ContainerTestHelper             containerTestHelper = new ContainerTestHelper(client);
                ProtectionContainerListResponse response            = containerTestHelper.ListContainers(rsVaultRgName, rsVaultName, queryParams);

                string containerUniqueName = ConfigurationManager.AppSettings["ContainerTypeAzureSql"] + ";" + ConfigurationManager.AppSettings["AzureSqlContainerName"];
                var    container           = response.ItemList.ProtectionContainers[0];
                Assert.NotNull(container);
                Assert.Equal(containerUniqueName, container.Name);
            }
        }
        public void GetRecoveryPointDetailTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                var    client            = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                string resourceGroupName = ConfigurationManager.AppSettings["RsVaultRgName"];
                string resourceName      = ConfigurationManager.AppSettings["RsVaultName"];
                string fabricName        = ConfigurationManager.AppSettings["AzureBackupFabricName"];

                string containerUniqueName = ConfigurationManager.AppSettings[TestConstants.AzureSqlContainerName];
                string containeType        = ConfigurationManager.AppSettings[TestConstants.ContainerTypeAzureSql];
                string containerUri        = containeType + ";" + containerUniqueName;

                string itemUniqueName = ConfigurationManager.AppSettings[TestConstants.AzureSqlItemName];
                string itemType       = ConfigurationManager.AppSettings[TestConstants.WorkloadTypeAzureSqlDb];
                string itemUri        = itemType + ";" + itemUniqueName;
                string rpId           = ConfigurationManager.AppSettings[TestConstants.AzureSqlRpId];

                var response = client.RecoveryPoints.Get(resourceGroupName, resourceName, CommonTestHelper.GetCustomRequestHeaders(),
                                                         fabricName, containerUri, itemUri, rpId);

                var rpo = response.RecPoint;
                Assert.NotNull(rpo);
                Assert.True(!string.IsNullOrEmpty(rpo.Name), "RP Id cant be null");
                GenericRecoveryPoint rp = rpo.Properties as GenericRecoveryPoint;
                Assert.True(!string.IsNullOrEmpty(rp.RecoveryPointTime), "RecoveryPointTime can't be null or empty");
            }
        }
        public void PolicyCrudTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                string rsVaultRgName     = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName);
                string rsVaultName       = CommonTestHelper.GetSetting(TestConstants.RsVaultName);

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);
                PolicyTestHelpers policyTestHelper = new PolicyTestHelpers(client);
                string            policyName       = ConfigurationManager.AppSettings["AzureSqlPolicyName"];

                //create policy request
                SimpleRetentionPolicy retPolicy = new SimpleRetentionPolicy();
                retPolicy.RetentionDuration = new RetentionDuration()
                {
                    DurationType = "Weeks",
                    Count        = 6
                };

                AzureSqlProtectionPolicy sqlPolicy = new AzureSqlProtectionPolicy()
                {
                    RetentionPolicy = retPolicy
                };

                ProtectionPolicyRequest policyRequest = new ProtectionPolicyRequest()
                {
                    Item = new ProtectionPolicyResource()
                    {
                        Properties = sqlPolicy
                    }
                };

                //create policy
                ProtectionPolicyResponse response = policyTestHelper.AddOrUpdateProtectionPolicy(rsVaultRgName, rsVaultName, policyName, policyRequest);

                // get policy
                response = policyTestHelper.GetProtectionPolicy(rsVaultRgName, rsVaultName, policyName);
                Assert.NotNull(response.Item.Name);
                Assert.Equal(response.Item.Name, policyName);
                Assert.NotNull(response.Item.Id);
                Assert.NotNull(response.Item.Type);
                Assert.NotNull(response.Item.Properties);
                Assert.NotNull(response.Item.Properties as AzureSqlProtectionPolicy);
                AzureSqlProtectionPolicy resultPolicy   = response.Item.Properties as AzureSqlProtectionPolicy;
                SimpleRetentionPolicy    resultRetetion = resultPolicy.RetentionPolicy as SimpleRetentionPolicy;
                Assert.Equal(resultRetetion.RetentionDuration.DurationType, "Weeks");
                Assert.Equal(resultRetetion.RetentionDuration.Count, 6);

                //update policy request
                retPolicy.RetentionDuration = new RetentionDuration()
                {
                    DurationType = "Months",
                    Count        = 2
                };

                sqlPolicy = new AzureSqlProtectionPolicy()
                {
                    RetentionPolicy = retPolicy
                };

                policyRequest = new ProtectionPolicyRequest()
                {
                    Item = new ProtectionPolicyResource()
                    {
                        Properties = sqlPolicy
                    }
                };


                // update policy
                response = policyTestHelper.AddOrUpdateProtectionPolicy(rsVaultRgName, rsVaultName, policyName, policyRequest);
                // validations
                Assert.NotNull(response.Item.Name);
                Assert.Equal(response.Item.Name, policyName);
                Assert.NotNull(response.Item.Id);
                Assert.NotNull(response.Item.Type);
                Assert.NotNull(response.Item.Properties);
                Assert.NotNull(response.Item.Properties as AzureSqlProtectionPolicy);
                resultPolicy   = response.Item.Properties as AzureSqlProtectionPolicy;
                resultRetetion = resultPolicy.RetentionPolicy as SimpleRetentionPolicy;
                Assert.Equal(resultRetetion.RetentionDuration.DurationType, "Months");
                Assert.Equal(resultRetetion.RetentionDuration.Count, 2);


                // delete the policy
                AzureOperationResponse deleteResponse = policyTestHelper.DeleteProtectionPolicy(rsVaultRgName, rsVaultName, policyName);
                Assert.Equal(deleteResponse.StatusCode, HttpStatusCode.OK);
            }
        }
        public void GetRecoveryPointDetailTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                var    client            = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                // 1. Create vault
                string           resourceGroupName = ConfigurationManager.AppSettings["RsVaultRgNameRP"];
                string           resourceName      = ConfigurationManager.AppSettings["RsVaultNameRP"];
                string           location          = ConfigurationManager.AppSettings["vaultLocationRP"];
                VaultTestHelpers vaultTestHelper   = new VaultTestHelpers(client);
                vaultTestHelper.CreateVault(resourceGroupName, resourceName, location);

                // 2. Get default policy
                PolicyTestHelpers policyTestHelper = new PolicyTestHelpers(client);
                string            policyId         = policyTestHelper.GetDefaultPolicyId(resourceGroupName, resourceName);

                // 3. Enable protection
                // TODO: Create VM instead of taking these parameters from config
                string containerUniqueName = ConfigurationManager.AppSettings["RsVaultIaasVMContainerUniqueNameRP"];
                string itemUniqueName      = ConfigurationManager.AppSettings["RsVaultIaasVMItemUniqueNameRP"];
                string containeType        = ConfigurationManager.AppSettings["IaaSVMContainerType"];
                string itemType            = ConfigurationManager.AppSettings["IaaSVMItemType"];
                string containerUri        = containeType + ";" + containerUniqueName;
                string itemUri             = itemType + ";" + itemUniqueName;
                ProtectedItemTestHelpers protectedItemTestHelper = new ProtectedItemTestHelpers(client);
                protectedItemTestHelper.EnableProtection(resourceGroupName, resourceName, policyId, containerUri, itemUri);

                // 4. Trigger backup and wait for completion
                BackupTestHelpers backupTestHelper = new BackupTestHelpers(client);
                DateTime          backupStartTime  = DateTime.UtcNow;
                string            jobId            = backupTestHelper.BackupProtectedItem(resourceGroupName, resourceName, containerUri, itemUri);
                JobTestHelpers    jobTestHelper    = new JobTestHelpers(client);
                jobTestHelper.WaitForJob(resourceGroupName, resourceName, jobId);
                DateTime backupEndTime = DateTime.UtcNow;

                // 5. Get latest RP
                RecoveryPointTestHelpers recoveryPointTestHelper = new RecoveryPointTestHelpers(client);
                var recoveryPoints = recoveryPointTestHelper.ListRecoveryPoints(
                    resourceGroupName, resourceName, containerUri, itemUri, backupStartTime, backupEndTime);
                var recoveryPointResource = recoveryPoints[0];
                var recoveryPoint         = (RecoveryPoint)recoveryPointResource.Properties;

                // ACTION: Get RP details
                string fabricName = ConfigurationManager.AppSettings["AzureBackupFabricName"];
                var    response   = client.RecoveryPoints.Get(
                    resourceGroupName, resourceName, CommonTestHelper.GetCustomRequestHeaders(),
                    fabricName, containerUri, itemUri, recoveryPointResource.Name);

                // VALIDATION: Should be valid RP
                Assert.NotNull(response);
                Assert.NotNull(response.RecPoint);
                Assert.True(!string.IsNullOrEmpty(response.RecPoint.Name), "RP Id cant be null");
                Assert.True(!string.IsNullOrEmpty(((RecoveryPoint)response.RecPoint.Properties).RecoveryPointTime),
                            "RecoveryPointTime can't be null or empty");
                Assert.True(!string.IsNullOrEmpty(((RecoveryPoint)response.RecPoint.Properties).SourceVMStorageType),
                            "SourceVMStorageType can't be null or empty");
            }
        }
Exemplo n.º 18
0
        public void RestoreDiskTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace   = ConfigurationManager.AppSettings["ResourceNamespace"];
                string vaultLocation       = ConfigurationManager.AppSettings["vaultLocation"];
                string fabricName          = ConfigurationManager.AppSettings["AzureBackupFabricName"];
                string containerUniqueName = ConfigurationManager.AppSettings["RsVaultIaasVMContainerUniqueNameRestore"];
                string containeType        = ConfigurationManager.AppSettings["IaaSVMContainerType"];
                string itemUniqueName      = ConfigurationManager.AppSettings["RsVaultIaasVMItemUniqueNameRestore"];
                string itemType            = ConfigurationManager.AppSettings["IaaSVMItemType"];
                string recoveryPointId     = ConfigurationManager.AppSettings["RecoveryPointName"];
                string storageAccountId    = ConfigurationManager.AppSettings["StorageAccountId"];

                var client = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                string resourceGroupName = ConfigurationManager.AppSettings["RsVaultRgNameRestore"];
                string resourceName      = ConfigurationManager.AppSettings["RsVaultNameRestore"];
                string containerUri      = containeType + ";" + containerUniqueName;
                string itemUri           = itemType + ";" + itemUniqueName;

                IaasVMRestoreRequest restoreRequest = new IaasVMRestoreRequest()
                {
                    AffinityGroup = String.Empty,
                    CloudServiceOrResourceGroup = String.Empty,
                    CreateNewCloudService       = false,
                    RecoveryPointId             = recoveryPointId,
                    RecoveryType       = RecoveryType.RestoreDisks,
                    Region             = vaultLocation,
                    StorageAccountId   = storageAccountId,
                    SubnetId           = string.Empty,
                    VirtualMachineName = string.Empty,
                    VirtualNetworkId   = string.Empty,
                };

                TriggerRestoreRequest triggerRestoreRequest = new TriggerRestoreRequest();
                triggerRestoreRequest.Item            = new RestoreRequestResource();
                triggerRestoreRequest.Item.Properties = new RestoreRequest();
                triggerRestoreRequest.Item.Properties = restoreRequest;

                var response = client.Restores.TriggerRestore(resourceGroupName, resourceName, CommonTestHelper.GetCustomRequestHeaders(),
                                                              fabricName, containerUri, itemUri, recoveryPointId, triggerRestoreRequest);

                Assert.Equal(HttpStatusCode.Accepted, response.StatusCode);
                Assert.True(!string.IsNullOrEmpty(response.Location), "Location cant be null");
            }
        }
        public void ListRecoveryPointTest()
        {
            using (UndoContext context = UndoContext.Current)
            {
                context.Start();

                string resourceNamespace = ConfigurationManager.AppSettings["ResourceNamespace"];
                var    client            = GetServiceClient <RecoveryServicesBackupManagementClient>(resourceNamespace);

                string resourceGroupName = ConfigurationManager.AppSettings["RsVaultRgName"];
                string resourceName      = ConfigurationManager.AppSettings["RsVaultName"];
                string fabricName        = ConfigurationManager.AppSettings["AzureBackupFabricName"];

                string containerUniqueName = ConfigurationManager.AppSettings[TestConstants.AzureSqlContainerName];
                string containeType        = ConfigurationManager.AppSettings[TestConstants.ContainerTypeAzureSql];
                string containerUri        = containeType + ";" + containerUniqueName;

                string itemUniqueName = ConfigurationManager.AppSettings[TestConstants.AzureSqlItemName];
                string itemType       = ConfigurationManager.AppSettings[TestConstants.WorkloadTypeAzureSqlDb];
                string itemUri        = itemType + ";" + itemUniqueName;

                DateTime startTime = new DateTime(2016, 6, 13, 15, 25, 9, DateTimeKind.Utc);
                DateTime endTime   = new DateTime(2016, 6, 16, 19, 25, 9, DateTimeKind.Utc);

                RecoveryPointQueryParameters queryFilter = new RecoveryPointQueryParameters();
                queryFilter.StartDate = startTime.ToString("yyyy-MM-dd hh:mm:ss tt");
                queryFilter.EndDate   = endTime.ToString("yyyy-MM-dd hh:mm:ss tt");

                var response = client.RecoveryPoints.List(resourceGroupName, resourceName, CommonTestHelper.GetCustomRequestHeaders(),
                                                          fabricName, containerUri, itemUri, queryFilter);

                Assert.NotNull(response.RecoveryPointList);
                Assert.NotNull(response.RecoveryPointList.RecoveryPoints);

                foreach (var rpo in response.RecoveryPointList.RecoveryPoints)
                {
                    Assert.True(!string.IsNullOrEmpty(rpo.Name), "RP Id cant be null");
                    GenericRecoveryPoint rp = rpo.Properties as GenericRecoveryPoint;
                    Assert.True(!string.IsNullOrEmpty(rp.RecoveryPointTime), "RecoveryPointTime can't be null or empty");
                }
            }
        }