public static PSVirtualMachineExtension ToPSVirtualMachineExtension(this VirtualMachineExtensionGetResponse response, string rgName = null) { if (response == null) { return(null); } return(response.VirtualMachineExtension.ToPSVirtualMachineExtension(rgName)); }
private bool ExtensionProvisioningSucceeded(AzureDiskEncryptionExtensionContext adeExtension) { VirtualMachineExtensionGetResponse extensionStatusViewresult = this.VirtualMachineExtensionClient.GetWithInstanceView(this.ResourceGroupName, this.VMName, adeExtension.Name); PSVirtualMachineExtension extensionStatusView = extensionStatusViewresult.ToPSVirtualMachineExtension(this.ResourceGroupName); AzureDiskEncryptionExtensionContext adeExtensionWithStatus = new AzureDiskEncryptionExtensionContext(extensionStatusView); if (adeExtensionWithStatus.ProvisioningState.Equals(AzureDiskEncryptionExtensionContext.StatusSucceeded, StringComparison.InvariantCultureIgnoreCase)) { return(true); } return(false); }
public override void ExecuteCmdlet() { base.ExecuteCmdlet(); ExecuteClientAction(() => { if (string.IsNullOrEmpty(this.Name)) { var virtualMachine = ComputeClient.ComputeManagementClient.VirtualMachines.Get(this.ResourceGroupName, this.VMName).VirtualMachine; var diagnosticsExtension = virtualMachine.Extensions != null ? virtualMachine.Extensions.FirstOrDefault(extension => extension.Publisher.Equals(DiagnosticsExtensionConstants.ExtensionPublisher, StringComparison.InvariantCultureIgnoreCase) && extension.ExtensionType.Equals(DiagnosticsExtensionConstants.ExtensionType, StringComparison.InvariantCultureIgnoreCase)) : null; if (diagnosticsExtension == null) { WriteObject(null); return; } else { this.Name = diagnosticsExtension.Name; } } VirtualMachineExtensionGetResponse virtualMachineExtensionGetResponse = null; if (Status.IsPresent) { virtualMachineExtensionGetResponse = this.VirtualMachineExtensionClient.GetWithInstanceView(this.ResourceGroupName, this.VMName, this.Name); } else { virtualMachineExtensionGetResponse = this.VirtualMachineExtensionClient.Get(this.ResourceGroupName, this.VMName, this.Name); } var returnedExtension = virtualMachineExtensionGetResponse.ToPSVirtualMachineExtension(this.ResourceGroupName); WriteObject(returnedExtension); }); }
protected override void ProcessRecord() { base.ProcessRecord(); ExecuteClientAction(() => { VirtualMachineExtensionGetResponse virtualMachineExtensionGetResponse = null; if (Status.IsPresent) { virtualMachineExtensionGetResponse = this.VirtualMachineExtensionClient.GetWithInstanceView(this.ResourceGroupName, this.VMName, this.Name); } else { virtualMachineExtensionGetResponse = this.VirtualMachineExtensionClient.Get(this.ResourceGroupName, this.VMName, this.Name); } var returnedExtension = virtualMachineExtensionGetResponse.ToPSVirtualMachineExtension(this.ResourceGroupName); WriteObject(returnedExtension); }); }
private string GetExtensionStatusMessage() { VirtualMachineExtensionGetResponse extensionResult = this.VirtualMachineExtensionClient.GetWithInstanceView(this.ResourceGroupName, this.VMName, this.Name); if (extensionResult == null) { ThrowTerminatingError(new ErrorRecord(new ApplicationFailedException(string.Format(CultureInfo.CurrentUICulture, "Failed to retrieve extension status")), "InvalidResult", ErrorCategory.InvalidResult, null)); } PSVirtualMachineExtension returnedExtension = extensionResult.ToPSVirtualMachineExtension(this.ResourceGroupName); if ((returnedExtension == null) || (string.IsNullOrWhiteSpace(returnedExtension.Publisher)) || (string.IsNullOrWhiteSpace(returnedExtension.ExtensionType))) { ThrowTerminatingError(new ErrorRecord(new ApplicationFailedException(string.Format(CultureInfo.CurrentUICulture, "Missing extension publisher and type info")), "InvalidResult", ErrorCategory.InvalidResult, null)); } bool publisherMatch = false; if (string.Equals(currentOSType, "Linux", StringComparison.InvariantCultureIgnoreCase)) { if (returnedExtension.Publisher.Equals(AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultPublisher, StringComparison.InvariantCultureIgnoreCase) && returnedExtension.ExtensionType.Equals(AzureDiskEncryptionExtensionContext.LinuxExtensionDefaultName, StringComparison.InvariantCultureIgnoreCase)) { publisherMatch = true; } } else if (string.Equals(currentOSType, "Windows", StringComparison.InvariantCultureIgnoreCase)) { if (returnedExtension.Publisher.Equals(AzureDiskEncryptionExtensionContext.ExtensionDefaultPublisher, StringComparison.InvariantCultureIgnoreCase) && returnedExtension.ExtensionType.Equals(AzureDiskEncryptionExtensionContext.ExtensionDefaultName, StringComparison.InvariantCultureIgnoreCase)) { publisherMatch = true; } } if (publisherMatch) { AzureDiskEncryptionExtensionContext context = new AzureDiskEncryptionExtensionContext(returnedExtension); if ((context == null) || (context.Statuses == null) || (context.Statuses.Count < 1) || (string.IsNullOrWhiteSpace(context.Statuses[0].Message))) { ThrowTerminatingError(new ErrorRecord(new ApplicationFailedException(string.Format(CultureInfo.CurrentUICulture, "Invalid extension status")), "InvalidResult", ErrorCategory.InvalidResult, null)); } return(context.Statuses[0].Message); } else { ThrowTerminatingError(new ErrorRecord(new ApplicationFailedException(string.Format(CultureInfo.CurrentUICulture, "Extension publisher and type mismatched")), "InvalidResult", ErrorCategory.InvalidResult, null)); } return(null); }