/// <summary> /// Checks the virtual machine already has the Managed Service Identity extension installed if so return it. /// </summary> /// <param name="virtualMachine">The virtual machine.</param> /// <param name="typeName">The Managed Service Identity extension type name.</param> /// <return>An observable that emits MSI extension if exists.</return> private async Task <IVirtualMachineExtension> GetMSIExtensionAsync(IVirtualMachine virtualMachine, string typeName, CancellationToken cancellationToken = default(CancellationToken)) { var installedExtensions = await virtualMachine.ListExtensionsAsync(cancellationToken); return(installedExtensions.FirstOrDefault(extension => extension.PublisherName.Equals(MSI_EXTENSION_PUBLISHER_NAME, System.StringComparison.OrdinalIgnoreCase) && extension.TypeName.Equals(typeName, System.StringComparison.OrdinalIgnoreCase))); }
/// <summary> /// Retrieves encryption extension installed in the virtual machine, if the extension is /// not installed then return an empty observable. /// </summary> /// <return>An observable that emits the encryption extension installed in the virtual machine.</return> ///GENMHASH:9E0CF934F182F50D2FE7A72E02617F94:324B026FB14C16BEDA7B060212E59DE0 private async Task <Microsoft.Azure.Management.Compute.Fluent.IVirtualMachineExtension> GetEncryptionExtensionInstalledInVMAsync(CancellationToken cancellationToken = default(CancellationToken)) { var extensions = await virtualMachine.ListExtensionsAsync(cancellationToken); IVirtualMachineExtension encryptionExtension = extensions .FirstOrDefault(e => e.PublisherName.Equals(encryptionExtensionPublisher, StringComparison.OrdinalIgnoreCase) && e.TypeName.Equals(EncryptionExtensionType(), StringComparison.OrdinalIgnoreCase)); return(encryptionExtension); }