private bool IsDiscoveryNeeded(string vmName, string rgName, out CSMContainerResponse container) { bool isDiscoveryNeed = false; ContainerQueryParameters parameters = new ContainerQueryParameters() { ContainerType = ManagedContainerType.IaasVM.ToString(), FriendlyName = vmName, Status = AzureBackupContainerRegistrationStatus.NotRegistered.ToString(), }; //First check if container is discovered or not var containers = AzureBackupClient.ListContainers(Vault.ResourceGroupName, Vault.Name, parameters); WriteDebug(String.Format(Resources.ContainerCountFromService, containers.Count())); if (containers.Count() == 0) { //Container is not discover WriteDebug(Resources.ContainerNotDiscovered); container = null; isDiscoveryNeed = true; } else { //We can have multiple container with same friendly name. container = containers.Where(c => ContainerHelpers.GetRGNameFromId(c.Properties.ParentContainerId).Equals(rgName, StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); if (container == null) { //Container is not in list of registered container WriteDebug(String.Format(Resources.DesiredContainerNotFound)); isDiscoveryNeed = true; } } return(isDiscoveryNeed); }
private List <AzureRMBackupContainer> GetManagedContainers(string resourceGroupName, string resourceName) { List <AzureRMBackupContainer> managedContainers = new List <AzureRMBackupContainer>(); ContainerQueryParameters parameters = new ContainerQueryParameters(); parameters.ContainerType = ManagedContainerType.IaasVM.ToString(); parameters.FriendlyName = Name; if (Status != 0) { parameters.Status = Status.ToString(); } List <CSMContainerResponse> containers = new List <CSMContainerResponse>(); containers.AddRange(AzureBackupClient.ListContainers(resourceGroupName, resourceName, parameters)); WriteDebug(string.Format(Resources.FetchedContainer, containers.Count())); // When resource group name is specified, remove all containers whose resource group name // doesn't match the given resource group name if (!string.IsNullOrEmpty(ManagedResourceGroupName)) { containers.RemoveAll(container => { string rgName = ContainerHelpers.GetRGNameFromId(container.Properties.ParentContainerId); return(rgName != ManagedResourceGroupName); }); WriteDebug(string.Format(Resources.ContainerCountAfterFilter, containers.Count)); } // TODO: Container friendly name is not captures in Container response // BUG: Friendly name was previously assigned to ResourceName (vault name) managedContainers.AddRange(containers.ConvertAll(container => { return(new AzureRMBackupContainer(Vault, container)); })); return(managedContainers); }