@@ -31,26 +31,21 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
31
31
[ Cmdlet ( VerbsCommon . Get , "AzureBackupContainer" ) , OutputType ( typeof ( List < AzureBackupContainer > ) ) ]
32
32
public class GetAzureBackupContainer : AzureBackupVaultCmdletBase
33
33
{
34
- private const string MachineContainerParamSet = "MachineContainer" ;
35
- private const string ManagedContainerParamSet = "ManagedContainer" ;
36
-
37
- [ Parameter ( Mandatory = false , ParameterSetName = MachineContainerParamSet , HelpMessage = AzureBackupCmdletHelpMessage . ManagedResourceName ) ]
38
- [ Parameter ( Mandatory = false , ParameterSetName = ManagedContainerParamSet , HelpMessage = AzureBackupCmdletHelpMessage . ManagedResourceName ) ]
34
+ [ Parameter ( Mandatory = false , HelpMessage = AzureBackupCmdletHelpMessage . ManagedResourceName ) ]
39
35
[ ValidateNotNullOrEmpty ]
40
36
public string Name { get ; set ; }
41
37
42
- [ Parameter ( Mandatory = true , ParameterSetName = MachineContainerParamSet , HelpMessage = AzureBackupCmdletHelpMessage . ContainerType ) ]
43
- [ Parameter ( Mandatory = true , ParameterSetName = ManagedContainerParamSet , HelpMessage = AzureBackupCmdletHelpMessage . ContainerType ) ]
38
+ [ Parameter ( Mandatory = true , HelpMessage = AzureBackupCmdletHelpMessage . ContainerType ) ]
44
39
[ ValidateNotNullOrEmpty ]
45
40
public AzureBackupContainerType Type { get ; set ; }
46
41
47
- [ Parameter ( Mandatory = false , ParameterSetName = ManagedContainerParamSet , HelpMessage = AzureBackupCmdletHelpMessage . ManagedResourceGroupName ) ]
42
+ [ Parameter ( Mandatory = false , HelpMessage = AzureBackupCmdletHelpMessage . ManagedResourceGroupName ) ]
48
43
[ ValidateNotNullOrEmpty ]
49
44
public string ManagedResourceGroupName { get ; set ; }
50
45
51
- [ Parameter ( Mandatory = false , ParameterSetName = ManagedContainerParamSet , HelpMessage = AzureBackupCmdletHelpMessage . ContainerRegistrationStatus ) ]
46
+ [ Parameter ( Mandatory = false , HelpMessage = AzureBackupCmdletHelpMessage . ContainerRegistrationStatus ) ]
52
47
[ ValidateNotNullOrEmpty ]
53
- public AzureBackupContainerStatusInput Status { get ; set ; }
48
+ public AzureBackupContainerRegistrationStatus Status { get ; set ; }
54
49
55
50
public override void ExecuteCmdlet ( )
56
51
{
@@ -108,70 +103,40 @@ private List<AzureBackupContainer> GetMachineContainers()
108
103
109
104
private bool GetManagedContainers ( List < AzureBackupContainer > managedContainers )
110
105
{
111
- string queryFilterString = string . Empty ;
112
- queryFilterString = ConstructQueryFilterString ( ) ;
113
- var containerList = AzureBackupClient . ListContainers ( queryFilterString ) ;
114
-
115
- WriteDebug ( string . Format ( "Fetched {0} containers" , containerList . Count ( ) ) ) ;
106
+ ContainerQueryParameters parameters = new ContainerQueryParameters ( ) ;
107
+ parameters . ContainerType = ManagedContainerType . IaasVM . ToString ( ) ;
108
+ parameters . FriendlyName = Name ;
109
+ if ( Status != 0 )
110
+ {
111
+ parameters . Status = Status . ToString ( ) ;
112
+ }
116
113
117
- List < CSMContainerResponse > containerInfos = containerList . ToList ( ) ;
114
+ List < CSMContainerResponse > containers = new List < CSMContainerResponse > ( ) ;
115
+ containers . AddRange ( AzureBackupClient . ListContainers ( parameters ) ) ;
116
+ WriteDebug ( string . Format ( "Fetched {0} containers" , containers . Count ( ) ) ) ;
118
117
119
118
// When resource group name is specified, remove all containers whose resource group name
120
119
// doesn't match the given resource group name
121
120
if ( ! string . IsNullOrEmpty ( ManagedResourceGroupName ) )
122
121
{
123
- containerInfos . RemoveAll ( containerInfo =>
122
+ containers . RemoveAll ( container =>
124
123
{
125
- string rgName = ContainerHelpers . GetRGNameFromId ( containerInfo . Properties . ParentContainerId ) ;
124
+ string rgName = ContainerHelpers . GetRGNameFromId ( container . Properties . ParentContainerId ) ;
126
125
return rgName != ManagedResourceGroupName ;
127
126
} ) ;
128
- WriteDebug ( string . Format ( "Count of containers after resource group filter = {0}" , containerInfos . Count ) ) ;
127
+ WriteDebug ( string . Format ( "Count of containers after resource group filter = {0}" , containers . Count ) ) ;
129
128
}
130
129
131
130
// TODO: Container friendly name is not captures in Container response
132
131
// BUG: Friendly name was previously assigned to ResourceName (vault name)
133
- List < AzureBackupContainer > containers = containerInfos . ConvertAll ( containerInfo =>
132
+ managedContainers . AddRange ( containers . ConvertAll ( container =>
134
133
{
135
- return new AzureBackupContainer ( Vault , containerInfo ) ;
136
- } ) ;
137
- managedContainers . AddRange ( containers ) ;
134
+ return new AzureBackupContainer ( Vault , container ) ;
135
+ } ) ) ;
138
136
139
137
// When container resource name and container resource group name are specified, this parameter set
140
138
// identifies a container uniquely. Thus, we return just one container instead of a list.
141
139
return ! string . IsNullOrEmpty ( Name ) & ! string . IsNullOrEmpty ( ManagedResourceGroupName ) ;
142
140
}
143
-
144
- private string ConstructQueryFilterString ( )
145
- {
146
- var containerQueryObject = new ListContainerQueryParameter ( ) ;
147
-
148
- switch ( Type )
149
- {
150
- case AzureBackupContainerType . AzureVM :
151
- containerQueryObject . ContainerTypeField = ManagedContainerType . IaasVMContainer . ToString ( ) ;
152
- break ;
153
- default :
154
- break ;
155
- }
156
-
157
- switch ( Status )
158
- {
159
- case AzureBackupContainerStatusInput . Registered :
160
- containerQueryObject . ContainerStatusField = AzureBackupContainerRegistrationStatus . Registered . ToString ( ) ;
161
- break ;
162
- case AzureBackupContainerStatusInput . Registering :
163
- containerQueryObject . ContainerStatusField = AzureBackupContainerRegistrationStatus . Registering . ToString ( ) ;
164
- break ;
165
- default :
166
- break ;
167
- }
168
-
169
- if ( ! string . IsNullOrEmpty ( Name ) )
170
- {
171
- containerQueryObject . ContainerFriendlyNameField = Name ;
172
- }
173
-
174
- return ContainerHelpers . GetQueryFilter ( containerQueryObject ) ;
175
- }
176
141
}
177
142
}
0 commit comments