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 ProtectedItemListResponse ListProtectedItems(ProtectedItemListQueryParam queryParams, PaginationRequest paginationRequest = null) { string rsVaultRgName = CommonTestHelper.GetSetting(TestConstants.RsVaultRgName); string rsVaultName = CommonTestHelper.GetSetting(TestConstants.RsVaultName); var response = Client.ProtectedItems.List(rsVaultRgName, rsVaultName, queryParams, paginationRequest, CommonTestHelper.GetCustomRequestHeaders()); Assert.NotNull(response); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.NotNull(response.ItemList); return response; }
/// <summary> /// List protected items protected by the Recovery Services vault according to the query params /// and pagination params. /// </summary> /// <param name="queryFilter">Query params</param> /// <param name="paginationParams">Pagination params</param> /// <returns>List of protected items</returns> public ProtectedItemListResponse ListProtectedItem( ProtectedItemListQueryParam queryFilter, PaginationRequest paginationParams = null) { string resourceName = BmsAdapter.GetResourceName(); string resourceGroupName = BmsAdapter.GetResourceGroupName(); return BmsAdapter.Client.ProtectedItems.ListAsync( resourceGroupName, resourceName, queryFilter, paginationParams, BmsAdapter.GetCustomRequestHeaders(), BmsAdapter.CmdletCancellationToken).Result; }
/// <summary> /// Lists protected items protected by the recovery services vault according to the provider data /// </summary> /// <returns>List of protected items</returns> public List<ItemBase> ListProtectedItems() { ContainerBase container = (ContainerBase)this.ProviderData[ItemParams.Container]; string name = (string)this.ProviderData[ItemParams.AzureVMName]; ItemProtectionStatus protectionStatus = (ItemProtectionStatus)this.ProviderData[ItemParams.ProtectionStatus]; ItemProtectionState status = (ItemProtectionState)this.ProviderData[ItemParams.ProtectionState]; Models.WorkloadType workloadType = (Models.WorkloadType)this.ProviderData[ItemParams.WorkloadType]; ProtectedItemListQueryParam queryParams = new ProtectedItemListQueryParam(); queryParams.DatasourceType = ServiceClientModel.WorkloadType.VM; queryParams.BackupManagementType = ServiceClientModel.BackupManagementType.AzureIaasVM.ToString(); List<ProtectedItemResource> protectedItems = new List<ProtectedItemResource>(); string skipToken = null; PaginationRequest paginationRequest = null; do { var listResponse = ServiceClientAdapter.ListProtectedItem(queryParams, paginationRequest); protectedItems.AddRange(listResponse.ItemList.Value); ServiceClientHelpers.GetSkipTokenFromNextLink(listResponse.ItemList.NextLink, out skipToken); if (skipToken != null) { paginationRequest = new PaginationRequest(); paginationRequest.SkipToken = skipToken; } } while (skipToken != null); // 1. Filter by container if (container != null) { protectedItems = protectedItems.Where(protectedItem => { Dictionary<UriEnums, string> dictionary = HelperUtils.ParseUri(protectedItem.Id); string containerUri = HelperUtils.GetContainerUri(dictionary, protectedItem.Id); return containerUri.Contains(container.Name); }).ToList(); } List<ProtectedItemResponse> protectedItemGetResponses = new List<ProtectedItemResponse>(); // 2. Filter by item's friendly name if (!string.IsNullOrEmpty(name)) { protectedItems = protectedItems.Where(protectedItem => { Dictionary<UriEnums, string> dictionary = HelperUtils.ParseUri(protectedItem.Id); string protectedItemUri = HelperUtils.GetProtectedItemUri(dictionary, protectedItem.Id); return protectedItemUri.ToLower().Contains(name.ToLower()); }).ToList(); GetProtectedItemQueryParam getItemQueryParams = new GetProtectedItemQueryParam(); getItemQueryParams.Expand = "extendedinfo"; for (int i = 0; i < protectedItems.Count; i++) { Dictionary<UriEnums, string> dictionary = HelperUtils.ParseUri(protectedItems[i].Id); string containerUri = HelperUtils.GetContainerUri(dictionary, protectedItems[i].Id); string protectedItemUri = HelperUtils.GetProtectedItemUri(dictionary, protectedItems[i].Id); var getResponse = ServiceClientAdapter.GetProtectedItem(containerUri, protectedItemUri, getItemQueryParams); protectedItemGetResponses.Add(getResponse); } } List<ItemBase> itemModels = ConversionHelpers.GetItemModelList(protectedItems); if (!string.IsNullOrEmpty(name)) { for (int i = 0; i < itemModels.Count; i++) { AzureVmItemExtendedInfo extendedInfo = new AzureVmItemExtendedInfo(); var serviceClientExtendedInfo = ((AzureIaaSVMProtectedItem)protectedItemGetResponses[i].Item.Properties).ExtendedInfo; if (serviceClientExtendedInfo.OldestRecoveryPoint.HasValue) { extendedInfo.OldestRecoveryPoint = serviceClientExtendedInfo.OldestRecoveryPoint; } extendedInfo.PolicyState = serviceClientExtendedInfo.PolicyInconsistent.ToString(); extendedInfo.RecoveryPointCount = serviceClientExtendedInfo.RecoveryPointCount; ((AzureVmItem)itemModels[i]).ExtendedInfo = extendedInfo; } } // 3. Filter by item's Protection Status if (protectionStatus != 0) { itemModels = itemModels.Where(itemModel => { return ((AzureVmItem)itemModel).ProtectionStatus == protectionStatus; }).ToList(); } // 4. Filter by item's Protection State if (status != 0) { itemModels = itemModels.Where(itemModel => { return ((AzureVmItem)itemModel).ProtectionState == status; }).ToList(); } // 5. Filter by workload type if (workloadType != 0) { itemModels = itemModels.Where(itemModel => { return itemModel.WorkloadType == workloadType; }).ToList(); } return itemModels; }
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"); } }
/// <summary> /// Lists all the items protected by your Recovery Services Vault /// according to the query and pagination parameters supplied in the /// arguments. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.RecoveryServices.Backup.IProtectedItemOperations. /// </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='queryFilter'> /// Optional. /// </param> /// <param name='paginationParams'> /// Optional. /// </param> /// <param name='customRequestHeaders'> /// Optional. Request header parameters. /// </param> /// <returns> /// List of protected items returned as a response by the list /// protected item API. /// </returns> public static Task<ProtectedItemListResponse> ListAsync(this IProtectedItemOperations operations, string resourceGroupName, string resourceName, ProtectedItemListQueryParam queryFilter, PaginationRequest paginationParams, CustomRequestHeaders customRequestHeaders) { return operations.ListAsync(resourceGroupName, resourceName, queryFilter, paginationParams, customRequestHeaders, CancellationToken.None); }
/// <summary> /// Lists all the items protected by your Recovery Services Vault /// according to the query and pagination parameters supplied in the /// arguments. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.RecoveryServices.Backup.IProtectedItemOperations. /// </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='queryFilter'> /// Optional. /// </param> /// <param name='paginationParams'> /// Optional. /// </param> /// <param name='customRequestHeaders'> /// Optional. Request header parameters. /// </param> /// <returns> /// List of protected items returned as a response by the list /// protected item API. /// </returns> public static ProtectedItemListResponse List(this IProtectedItemOperations operations, string resourceGroupName, string resourceName, ProtectedItemListQueryParam queryFilter, PaginationRequest paginationParams, CustomRequestHeaders customRequestHeaders) { return Task.Factory.StartNew((object s) => { return ((IProtectedItemOperations)s).ListAsync(resourceGroupName, resourceName, queryFilter, paginationParams, customRequestHeaders); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); }
public void ListProtectedItemsTest() { 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 protected items ProtectedItemListQueryParam queryParams = new ProtectedItemListQueryParam(); queryParams.BackupManagementType = CommonTestHelper.GetSetting(TestConstants.ProviderTypeAzureIaasVM); queryParams.DatasourceType = CommonTestHelper.GetSetting(TestConstants.WorkloadTypeVM); var response = protectedItemTestHelper.ListProtectedItems(resourceGroupName, resourceName, queryParams); // VALIDATION: VM should be found in the list Assert.True(response.ItemList.Value.Any(item => { return item.Properties.GetType().IsSubclassOf(typeof(AzureIaaSVMProtectedItem)) && item.Name.Contains(itemUniqueName); }), "Retrieved list of items doesn't contain AzureIaaSVMProtectedItem test item"); } }