/// <summary> /// Constructor. Takes the service client object representing the container /// and converts it in to the PS container model /// </summary> /// <param name="protectionContainerResource">Service client object representing the container</param> public AzureVmWorkloadContainer(ProtectionContainerResource protectionContainerResource) : base(protectionContainerResource) { AzureVMAppContainerProtectionContainer protectionContainer = (AzureVMAppContainerProtectionContainer)protectionContainerResource.Properties; Id = protectionContainerResource.Id; SourceResourceId = protectionContainer.SourceResourceId; HealthStatus = protectionContainer.HealthStatus; if (protectionContainer.ExtendedInfo != null) { ServerName = protectionContainer.ExtendedInfo.HostServerName; } ExtendedInfo = new List <AzureVmWorkloadContainerExtendedInfo>(); WorkloadsPresent = ""; foreach (var inquiryDetail in protectionContainer.ExtendedInfo.InquiryInfo.InquiryDetails) { ExtendedInfo.Add(new AzureVmWorkloadContainerExtendedInfo() { InquiryStatus = inquiryDetail.InquiryValidation.Status, WorkloadItems = inquiryDetail.ItemCount, WorkloadType = inquiryDetail.Type }); WorkloadsPresent += inquiryDetail.Type + ","; } WorkloadsPresent = WorkloadsPresent.Remove(WorkloadsPresent.Length - 1); }
public void RegisterContainer() { string vaultName = (string)ProviderData[VaultParams.VaultName]; string vaultResourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName]; string containerName = (string)ProviderData[ContainerParams.Name]; string backupManagementType = (string)ProviderData[ContainerParams.BackupManagementType]; string workloadType = (string)ProviderData[ContainerParams.ContainerType]; ContainerBase containerBase = (ContainerBase)ProviderData[ContainerParams.Container]; AzureVmWorkloadContainer container = (AzureVmWorkloadContainer)ProviderData[ContainerParams.Container]; ProtectionContainerResource protectionContainerResource = null; //Trigger Discovery ODataQuery <BMSRefreshContainersQueryObject> queryParam = new ODataQuery <BMSRefreshContainersQueryObject>( q => q.BackupManagementType == ServiceClientModel.BackupManagementType.AzureWorkload); AzureWorkloadProviderHelper.RefreshContainer(vaultName, vaultResourceGroupName, queryParam); List <ProtectableContainerResource> unregisteredVmContainers = GetUnRegisteredVmContainers(vaultName, vaultResourceGroupName); ProtectableContainerResource unregisteredVmContainer = unregisteredVmContainers.Find( vmContainer => string.Compare(vmContainer.Name.Split(';').Last(), containerName, true) == 0); if (unregisteredVmContainer != null || container != null) { protectionContainerResource = new ProtectionContainerResource(container != null ? container.Id : unregisteredVmContainer.Id, container != null ? container.Name : unregisteredVmContainer.Name); AzureVMAppContainerProtectionContainer azureVMContainer = new AzureVMAppContainerProtectionContainer( friendlyName: containerName, backupManagementType: backupManagementType, sourceResourceId: container != null ? container.SourceResourceId : unregisteredVmContainer.Properties.ContainerId, workloadType: workloadType.ToString(), operationType: container != null ? OperationType.Reregister : OperationType.Register); protectionContainerResource.Properties = azureVMContainer; AzureWorkloadProviderHelper.RegisterContainer(container != null ? container.Name : unregisteredVmContainer.Name, protectionContainerResource, vaultName, vaultResourceGroupName); } else { throw new ArgumentException(string.Format(Resources.AzureWorkloadAlreadyRegisteredException)); } }