コード例 #1
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");
            }
        }
コード例 #2
0
        public ProtectionContainerListResponse ListContainers(string rsVaultRgName, string rsVaultName, ProtectionContainerListQueryParams queryParams)
        {
            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;
        }
コード例 #3
0
 /// <summary>
 /// Fetches protection containers in the vault according to the query params
 /// </summary>
 /// <param name="parameters">Query parameters</param>
 /// <returns>List of protection containers</returns>
 public IEnumerable<ProtectionContainerResource> ListContainers(
     ProtectionContainerListQueryParams queryParams)
 {
     var listResponse = BmsAdapter.Client.Containers.ListAsync(
                                 BmsAdapter.GetResourceGroupName(), 
                                 BmsAdapter.GetResourceName(), 
                                 queryParams,
                                 BmsAdapter.GetCustomRequestHeaders(), 
                                 BmsAdapter.CmdletCancellationToken).Result;
     return listResponse.ItemList.ProtectionContainers;
 }
コード例 #4
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");
            }
        }
コード例 #5
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);
            }
        }
コード例 #6
0
        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);
            }
        }
コード例 #7
0
 /// <summary>
 /// Lists all the containers registered to your Recovery Services Vault
 /// according to the query parameters supplied in the arguments.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.RecoveryServices.Backup.IContainerOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. Resource group name of your recovery services vault.
 /// </param>
 /// <param name='resourceName'>
 /// Required. Name of your recovery services vault.
 /// </param>
 /// <param name='queryParams'>
 /// Required. Query parameters for listing protection containers.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Required. Request header parameters.
 /// </param>
 /// <returns>
 /// List of protection containers returned as a response by the list
 /// protection containers API.
 /// </returns>
 public static Task<ProtectionContainerListResponse> ListAsync(this IContainerOperations operations, string resourceGroupName, string resourceName, ProtectionContainerListQueryParams queryParams, CustomRequestHeaders customRequestHeaders)
 {
     return operations.ListAsync(resourceGroupName, resourceName, queryParams, customRequestHeaders, CancellationToken.None);
 }
コード例 #8
0
 /// <summary>
 /// Lists all the containers registered to your Recovery Services Vault
 /// according to the query parameters supplied in the arguments.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.RecoveryServices.Backup.IContainerOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. Resource group name of your recovery services vault.
 /// </param>
 /// <param name='resourceName'>
 /// Required. Name of your recovery services vault.
 /// </param>
 /// <param name='queryParams'>
 /// Required. Query parameters for listing protection containers.
 /// </param>
 /// <param name='customRequestHeaders'>
 /// Required. Request header parameters.
 /// </param>
 /// <returns>
 /// List of protection containers returned as a response by the list
 /// protection containers API.
 /// </returns>
 public static ProtectionContainerListResponse List(this IContainerOperations operations, string resourceGroupName, string resourceName, ProtectionContainerListQueryParams queryParams, CustomRequestHeaders customRequestHeaders)
 {
     return Task.Factory.StartNew((object s) => 
     {
         return ((IContainerOperations)s).ListAsync(resourceGroupName, resourceName, queryParams, customRequestHeaders);
     }
     , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult();
 }
コード例 #9
0
        /// <summary>
        /// Lists protection containers according to the provider data
        /// </summary>
        /// <returns>List of protection containers</returns>
        public List<ContainerBase> ListProtectionContainers()
        {
            Models.ContainerType containerType = 
                (Models.ContainerType)this.ProviderData[ContainerParams.ContainerType];
            Models.BackupManagementType? backupManagementTypeNullable = 
                (Models.BackupManagementType?)this.ProviderData[ContainerParams.BackupManagementType];
            string name = (string)this.ProviderData[ContainerParams.Name];
            string friendlyName = (string)this.ProviderData[ContainerParams.FriendlyName];
            string resourceGroupName = (string)this.ProviderData[ContainerParams.ResourceGroupName];
            ContainerRegistrationStatus status = 
                (ContainerRegistrationStatus)this.ProviderData[ContainerParams.Status];

            if (backupManagementTypeNullable.HasValue)
            {
                ValidateAzureVMBackupManagementType(backupManagementTypeNullable.Value);
            }

            string nameQueryFilter = friendlyName;

            if (!string.IsNullOrEmpty(name))
            {
                Logger.Instance.WriteWarning(Resources.GetContainerNameParamDeprecated);

                if (string.IsNullOrEmpty(friendlyName))
                {
                    nameQueryFilter = name;
                }
            }

            ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams();

            // 1. Filter by Name
            queryParams.FriendlyName = nameQueryFilter;

            // 2. Filter by ContainerType
            queryParams.BackupManagementType =
                ServiceClientModel.BackupManagementType.AzureIaasVM.ToString();

            // 3. Filter by Status
            if (status != 0)
            {
                queryParams.RegistrationStatus = status.ToString();
            }

            var listResponse = ServiceClientAdapter.ListContainers(queryParams);

            List<ContainerBase> containerModels = ConversionHelpers.GetContainerModelList(listResponse);

            // 4. Filter by RG Name
            if (!string.IsNullOrEmpty(resourceGroupName))
            {
                containerModels = containerModels.Where(
                    containerModel =>
                    {
                        return string.Compare(
                            (containerModel as AzureVmContainer).ResourceGroupName, 
                            resourceGroupName, 
                            true) == 0;
                    }).ToList();
            }

            return containerModels;
        }
コード例 #10
0
        /// <summary>
        /// Lists protection containers according to the provider data
        /// </summary>
        /// <returns>List of protection containers</returns>
        public List<Models.ContainerBase> ListProtectionContainers()
        {
            string name = (string)this.ProviderData[ContainerParams.Name];

            ProtectionContainerListQueryParams queryParams =
                new ProtectionContainerListQueryParams();

            queryParams.BackupManagementType =
                ServiceClientModel.BackupManagementType.AzureSql.ToString();

            var listResponse = ServiceClientAdapter.ListContainers(queryParams);

            List<ContainerBase> containerModels =
                ConversionHelpers.GetContainerModelList(listResponse);

            if (!string.IsNullOrEmpty(name))
            {
                if (containerModels != null)
                {
                    containerModels = containerModels.Where(x => x.Name == name).ToList();
                }
            }

            return containerModels;
        }
コード例 #11
0
        /// <summary>
        /// Lists containers registered to the recovery services vault according to the provider data
        /// </summary>
        /// <returns>List of protection containers</returns>
        public List<Models.ContainerBase> ListProtectionContainers()
        {
            string name = (string)this.ProviderData[ContainerParams.Name];

            ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams();

            // 1. Filter by Name
            queryParams.FriendlyName = name;

            // 2. Filter by ContainerType
            queryParams.BackupManagementType = ServiceClientModel.BackupManagementType.MAB.ToString();

            var listResponse = ServiceClientAdapter.ListContainers(queryParams);

            List<ContainerBase> containerModels = ConversionHelpers.GetContainerModelList(listResponse);

            return containerModels;
        }