Skip to content

Commit cc47e8a

Browse files
committed
Register and Unregister cmdlet
1 parent 9228f99 commit cc47e8a

File tree

2 files changed

+24
-61
lines changed

2 files changed

+24
-61
lines changed

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/RegisterAzureBackupContainer.cs

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -63,26 +63,23 @@ public override void ExecuteCmdlet()
6363
if(isDiscoveryNeed)
6464
{
6565
RefreshContainer();
66-
}
67-
68-
isDiscoveryNeed = IsDiscoveryNeeded(vmName, rgName, out container);
69-
if((isDiscoveryNeed == false) && (container == null))
70-
{
71-
//Container is not discovered. Throw exception
72-
throw new NotImplementedException();
73-
}
74-
else
75-
{
76-
//Container is discovered. Register the container
77-
List<string> containerNameList = new List<string>();
78-
containerNameList.Add(container.Name);
79-
RegisterContainerRequest registrationRequest = new RegisterContainerRequest(containerNameList, AzureBackupContainerType.IaasVMContainer.ToString());
80-
operationResponse = AzureBackupClient.Container.RegisterAsync(registrationRequest, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
81-
82-
//TODO fix the OperationResponse to JobID conversion
83-
jobId = operationResponse.OperationId;
84-
WriteObject(jobId);
85-
}
66+
isDiscoveryNeed = IsDiscoveryNeeded(vmName, rgName, out container);
67+
if ((isDiscoveryNeed == true) || (container == null))
68+
{
69+
//Container is not discovered. Throw exception
70+
throw new NotImplementedException();
71+
}
72+
}
73+
74+
//Container is discovered. Register the container
75+
List<string> containerNameList = new List<string>();
76+
containerNameList.Add(container.Name);
77+
RegisterContainerRequestInput registrationRequest = new RegisterContainerRequestInput(containerNameList, AzureBackupContainerType.IaasVMContainer.ToString());
78+
operationResponse = AzureBackupClient.Container.RegisterAsync(registrationRequest, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
79+
80+
//TODO fix the OperationResponse to JobID conversion
81+
jobId = operationResponse.OperationId;
82+
WriteObject(jobId);
8683
});
8784
}
8885

@@ -144,10 +141,9 @@ private bool IsDiscoveryNeeded(string vmName, string rgName, out ContainerInfo c
144141
bool isDiscoveryNeed = false;
145142
//First check if container is discoverd or not
146143
ListContainerQueryParameter queryParams = new ListContainerQueryParameter();
147-
queryParams.ContainerTypeField = String.Empty; // AzureBackupContainerType.IaasVMContainer.ToString();
144+
queryParams.ContainerTypeField = AzureBackupContainerType.IaasVMContainer.ToString();
148145
queryParams.ContainerStatusField = String.Empty;
149-
// queryParams.ContainerFriendlyNameField = vmName;
150-
queryParams.ContainerFriendlyNameField = String.Empty;
146+
queryParams.ContainerFriendlyNameField = vmName;
151147
string queryString = GetQueryFileter(queryParams);
152148

153149
ListContainerResponse containers = AzureBackupClient.Container.ListAsync(queryString,

src/ResourceManager/AzureBackup/Commands.AzureBackup/Cmdlets/Container/UnregisterAzureBackupContainer.cs

Lines changed: 5 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -33,52 +33,19 @@ namespace Microsoft.Azure.Commands.AzureBackup.Cmdlets
3333
[Cmdlet(VerbsLifecycle.Unregister, "AzureBackupContainer"), OutputType(typeof(Guid))]
3434
public class UnregisterAzureBackupContainer : AzureBackupVaultCmdletBase
3535
{
36-
[Parameter(Position = 2, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.VirtualMachine)]
36+
[Parameter(Position = 2, Mandatory = true, HelpMessage = AzureBackupCmdletHelpMessage.VirtualMachine, ValueFromPipelineByPropertyName = true)]
3737
[ValidateNotNullOrEmpty]
38-
public PSVirtualMachineInstanceView VirtualMachine { get; set; }
38+
public string ContainerUniqueName { get; set; }
3939

4040
public override void ExecuteCmdlet()
4141
{
4242
base.ExecuteCmdlet();
4343

4444
ExecutionBlock(() =>
4545
{
46-
string vmName = VirtualMachine.Name;
47-
string rgName = VirtualMachine.ResourceGroupName;
48-
Guid jobId = Guid.Empty;
49-
50-
ListContainerQueryParameter queryParams = new ListContainerQueryParameter();
51-
queryParams.ContainerTypeField = AzureBackupContainerType.IaasVMContainer.ToString();
52-
queryParams.ContainerStatusField = AzureBackupContainerRegistrationStatus.Registered.ToString();
53-
queryParams.ContainerFriendlyNameField = vmName;
54-
55-
string queryString = GetQueryFileter(queryParams);
56-
57-
ListContainerResponse containers =
58-
AzureBackupClient.Container.ListAsync(queryString, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
59-
if(containers.Objects.Count() == 0)
60-
{
61-
WriteVerbose("Container is not in the registered list");
62-
jobId = Guid.Empty;
63-
}
64-
65-
else
66-
{
67-
//We can havemultiple container with same friendly name.
68-
//Look for resourceGroup name in the ParentFriendlyName
69-
ContainerInfo containerToUnreg = containers.Objects.Where(c => c.ParentContainerFriendlyName.ToLower().Equals(rgName.ToLower())).FirstOrDefault();
70-
if (containerToUnreg == null)
71-
{
72-
//Container is not in list of registered container
73-
jobId = Guid.Empty;
74-
}
75-
else
76-
{
77-
UnregisterContainerRequest unregRequest = new UnregisterContainerRequest(containerToUnreg.Name, AzureBackupContainerType.IaasVMContainer.ToString());
78-
MBS.OperationResponse operationResponse = AzureBackupClient.Container.UnregisterAsync(unregRequest, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
79-
jobId = operationResponse.OperationId; //TODO: Fix it once PiyushKa publish the rest APi to get jobId based on operationId
80-
}
81-
}
46+
UnregisterContainerRequestInput unregRequest = new UnregisterContainerRequestInput(ContainerUniqueName, AzureBackupContainerType.IaasVMContainer.ToString());
47+
MBS.OperationResponse operationResponse = AzureBackupClient.Container.UnregisterAsync(unregRequest, GetCustomRequestHeaders(), CmdletCancellationToken).Result;
48+
Guid jobId = operationResponse.OperationId; //TODO: Fix it once PiyushKa publish the rest APi to get jobId based on operationId
8249

8350
WriteObject(jobId);
8451
});

0 commit comments

Comments
 (0)