diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs index 025ac6a20fad..54d03adbd282 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/GetAzureBackupContainer.cs @@ -12,6 +12,9 @@ // limitations under the License. // ---------------------------------------------------------------------------------- +using BCI = Microsoft.BackupManagementService.CommonInterface; +using BMI = Microsoft.BackupManagementService.ManagementInterface; +using Microsoft.Azure.Management.BackupServices.Models; using System; using System.Collections.Generic; using System.Linq; @@ -29,11 +32,7 @@ public class GetAzureBackupContainer : AzureBackupVaultCmdletBase { [Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerName)] [ValidateNotNullOrEmpty] - public string Name { get; set; } - - [Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerId)] - [ValidateNotNullOrEmpty] - public string Id { get; set; } + public string VirtualMachine { get; set; } [Parameter(Position = 2, Mandatory = false, HelpMessage = AzureBackupCmdletHelpMessage.ContainerRegistrationStatus)] [ValidateNotNullOrEmpty] @@ -49,12 +48,75 @@ public override void ExecuteCmdlet() ExecutionBlock(() => { - IEnumerable containers = new List(); + string queryFilterString = string.Empty; + // TODO: Construct query filter string based on input filters. + //queryFilterString = ConstructQueryFilterString(); - // TODO: Call Hydra + ListContainerResponse listContainerResponse = AzureBackupClient.Container.ListAsync(queryFilterString, + GetCustomRequestHeaders(), CmdletCancellationToken).Result; + + IEnumerable containers = listContainerResponse.Objects.ToList().ConvertAll(containerInfo => + { + return new AzureBackupContainer() + { + ContainerType = containerInfo.ContainerType, + FriendlyName = containerInfo.FriendlyName, + HealthStatus = containerInfo.HealthStatus, + InstanceId = containerInfo.InstanceId, + Name = containerInfo.Name, + ParentContainerFriendlyName = containerInfo.ParentContainerFriendlyName, + ParentContainerName = containerInfo.ParentContainerName, + RegistrationStatus = containerInfo.RegistrationStatus, + ResourceGroupName = ResourceGroupName, + ResourceName = ResourceName, + }; + }); WriteObject(containers); }); } + + private string ConstructQueryFilterString() + { + string queryFilterString = string.Empty; + BMI.ContainerQueryObject containerQueryObject = new BMI.ContainerQueryObject(); + + if (Type != null) + { + switch (Type) + { + case AzureBackupContainerType.AzureVirtualMachine: + containerQueryObject.Type = BCI.ContainerType.IaasVMContainer.ToString(); + break; + default: + break; + } + } + + if (Status != null) + { + switch (Status) + { + case AzureBackupContainerStatus.Registered: + containerQueryObject.Status = BCI.RegistrationStatus.Registered.ToString(); + break; + case AzureBackupContainerStatus.Registering: + containerQueryObject.Status = BCI.RegistrationStatus.Registering.ToString(); + break; + case AzureBackupContainerStatus.NotRegistered: + containerQueryObject.Status = BCI.RegistrationStatus.NotRegistered.ToString(); + break; + default: + break; + } + } + + if (VirtualMachine != null) + { + + } + + return queryFilterString; + } } } diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj index d844b2eabb8f..eb23de5d0238 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Commands.AzureBackup.csproj @@ -43,6 +43,14 @@ false + + False + Resources\BackupManagementInterface.dll + + + False + Resources\BMSCommonInterface.dll + ..\..\..\packages\Hyak.Common.1.0.2\lib\portable-net403+win+wpa81\Hyak.Common.dll @@ -169,6 +177,8 @@ + + diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs index 428ac72cb0bc..cdf29939106c 100644 --- a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs +++ b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Models/AzureBackupContainer.cs @@ -60,11 +60,6 @@ public class AzureBackupContainer : AzureBackupContainerContextObject /// public string ParentContainerName { get; set; } - /// - /// Region where this container is present - /// - public string Region { get; set; } - /// /// Status of registration of the container /// diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/BMSCommonInterface.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/BMSCommonInterface.dll new file mode 100644 index 000000000000..eefd5479ee44 Binary files /dev/null and b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/BMSCommonInterface.dll differ diff --git a/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/BackupManagementInterface.dll b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/BackupManagementInterface.dll new file mode 100644 index 000000000000..3c3ab6d62c08 Binary files /dev/null and b/src/ResourceManager/AzureBackup/Commands.AzureBackup/Resources/BackupManagementInterface.dll differ