/// <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 resourceGroupName = (string)this.ProviderData[ContainerParams.ResourceGroupName]; ContainerRegistrationStatus status = (ContainerRegistrationStatus)this.ProviderData[ContainerParams.Status]; if (backupManagementTypeNullable.HasValue) { ValidateAzureVMBackupManagementType(backupManagementTypeNullable.Value); } ProtectionContainerListQueryParams queryParams = new ProtectionContainerListQueryParams(); // 1. Filter by Name queryParams.FriendlyName = name; // 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 => (containerModel as AzureVmContainer).ResourceGroupName == resourceGroupName).ToList(); } return(containerModels); }
/// <summary> /// Lists protection containers according to the provider data /// </summary> /// <returns>List of protection containers</returns> public List <ContainerBase> ListProtectionContainers() { ContainerType containerType = (ContainerType)ProviderData[ContainerParams.ContainerType]; CmdletModel.BackupManagementType?backupManagementTypeNullable = (CmdletModel.BackupManagementType?) ProviderData[ContainerParams.BackupManagementType]; string name = (string)ProviderData[ContainerParams.Name]; string friendlyName = (string)ProviderData[ContainerParams.FriendlyName]; string resourceGroupName = (string)ProviderData[ContainerParams.ResourceGroupName]; ContainerRegistrationStatus status = (ContainerRegistrationStatus)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; } } ODataQuery <BMSContainerQueryObject> queryParams = null; if (status == 0) { queryParams = new ODataQuery <BMSContainerQueryObject>( q => q.FriendlyName == nameQueryFilter && q.BackupManagementType == ServiceClientModel.BackupManagementType.AzureIaasVM); } else { var statusString = status.ToString(); queryParams = new ODataQuery <BMSContainerQueryObject>( q => q.FriendlyName == nameQueryFilter && q.BackupManagementType == ServiceClientModel.BackupManagementType.AzureIaasVM && q.Status == statusString); } 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); }