public override void ExecuteCmdlet()
{
base.ExecuteCmdlet();
if (ShouldProcess(VirtualMachineAccessExtensionContext.ExtensionDefaultName, VerbsCommon.Set))
{
ExecuteClientAction(() =>
{
Hashtable publicSettings = new Hashtable();
publicSettings.Add(userNameKey, UserName ?? "");
Hashtable privateSettings = new Hashtable();
privateSettings.Add(passwordKey, Password ?? "");
if (string.IsNullOrEmpty(this.Location))
{
this.Location = GetLocationFromVm(this.ResourceGroupName, this.VMName);
}
var parameters = new VirtualMachineExtension
{
Location = this.Location,
VirtualMachineExtensionType = VirtualMachineAccessExtensionContext.ExtensionDefaultName,
Publisher = VirtualMachineAccessExtensionContext.ExtensionDefaultPublisher,
TypeHandlerVersion = (this.TypeHandlerVersion) ?? VirtualMachineAccessExtensionContext.ExtensionDefaultVersion,
Settings = publicSettings,
ProtectedSettings = privateSettings,
AutoUpgradeMinorVersion = !this.DisableAutoUpgradeMinorVersion.IsPresent,
ForceUpdateTag = this.ForceRerun
};
var op = this.VirtualMachineExtensionClient.CreateOrUpdateWithHttpMessagesAsync(
this.ResourceGroupName,
this.VMName,
this.Name,
parameters).GetAwaiter().GetResult();
var result = Mapper.Map<PSAzureOperationResponse>(op);
WriteObject(result);
});
}
}
}