@@ -54,7 +54,6 @@ public override void ExecuteCmdlet()
54
54
base . ExecuteCmdlet ( ) ;
55
55
56
56
List < AzureBackupContainer > containers = new List < AzureBackupContainer > ( ) ;
57
- bool uniqueContainer = false ;
58
57
59
58
switch ( Type )
60
59
{
@@ -63,18 +62,15 @@ public override void ExecuteCmdlet()
63
62
containers . AddRange ( GetMachineContainers ( ) ) ;
64
63
break ;
65
64
case AzureBackupContainerType . AzureVM :
66
- uniqueContainer = GetManagedContainers ( containers ) ;
65
+ containers . AddRange ( GetManagedContainers ( ) ) ;
67
66
break ;
68
67
default :
69
68
break ;
70
69
}
71
70
72
- if ( uniqueContainer )
71
+ if ( containers . Count == 1 )
73
72
{
74
- if ( containers . Any ( ) )
75
- {
76
- WriteObject ( containers . First ( ) ) ;
77
- }
73
+ WriteObject ( containers . First ( ) ) ;
78
74
}
79
75
else
80
76
{
@@ -86,6 +82,17 @@ public override void ExecuteCmdlet()
86
82
private List < AzureBackupContainer > GetMachineContainers ( )
87
83
{
88
84
List < MarsContainerResponse > marsContainerResponses = new List < MarsContainerResponse > ( ) ;
85
+
86
+ // Machine containers are always registered.
87
+ // So if requested Status is not Registered, return an empty list.
88
+ // Machine containers don't have a resource group.
89
+ // So, if a resource group is passed, return an empty list.
90
+ if ( Status != AzureBackupContainerRegistrationStatus . Registered ||
91
+ ! string . IsNullOrEmpty ( ManagedResourceGroupName ) )
92
+ {
93
+ return new List < AzureBackupContainer > ( ) ;
94
+ }
95
+
89
96
if ( string . IsNullOrEmpty ( Name ) )
90
97
{
91
98
marsContainerResponses . AddRange ( AzureBackupClient . ListMachineContainers ( ) ) ;
@@ -101,8 +108,10 @@ private List<AzureBackupContainer> GetMachineContainers()
101
108
} ) . Where ( container => container . ContainerType == Type . ToString ( ) ) . ToList ( ) ;
102
109
}
103
110
104
- private bool GetManagedContainers ( List < AzureBackupContainer > managedContainers )
111
+ private List < AzureBackupContainer > GetManagedContainers ( )
105
112
{
113
+ List < AzureBackupContainer > managedContainers = new List < AzureBackupContainer > ( ) ;
114
+
106
115
ContainerQueryParameters parameters = new ContainerQueryParameters ( ) ;
107
116
parameters . ContainerType = ManagedContainerType . IaasVM . ToString ( ) ;
108
117
parameters . FriendlyName = Name ;
@@ -134,9 +143,7 @@ private bool GetManagedContainers(List<AzureBackupContainer> managedContainers)
134
143
return new AzureBackupContainer ( Vault , container ) ;
135
144
} ) ) ;
136
145
137
- // When container resource name and container resource group name are specified, this parameter set
138
- // identifies a container uniquely. Thus, we return just one container instead of a list.
139
- return ! string . IsNullOrEmpty ( Name ) & ! string . IsNullOrEmpty ( ManagedResourceGroupName ) ;
146
+ return managedContainers ;
140
147
}
141
148
}
142
149
}
0 commit comments