public static PSVirtualMachineExtension ToPSVirtualMachineExtension(this VirtualMachineExtension ext, string rgName, string vmName) { PSVirtualMachineExtension result = new PSVirtualMachineExtension { ResourceGroupName = rgName, VMName = vmName, Name = ext.Name, Location = ext.Location, Etag = JsonConvert.SerializeObject(ext.Tags), Publisher = ext.Publisher, ExtensionType = ext.VirtualMachineExtensionType, TypeHandlerVersion = ext.TypeHandlerVersion, Id = ext.Id, PublicSettings = ext.Settings == null ? null : ext.Settings.ToString(), ProtectedSettings = ext.ProtectedSettings == null ? null : ext.ProtectedSettings.ToString(), ProvisioningState = ext.ProvisioningState, Statuses = ext.InstanceView == null ? null : ext.InstanceView.Statuses, SubStatuses = ext.InstanceView == null ? null : ext.InstanceView.Substatuses, AutoUpgradeMinorVersion = ext.AutoUpgradeMinorVersion, ForceUpdateTag = ext.ForceUpdateTag, EnableAutomaticUpgrade = ext.EnableAutomaticUpgrade }; return(result); }
private VirtualMachineSqlServerExtensionContext GetSqlServerExtensionContext(PSVirtualMachineExtension extension) { SqlServerPublicSettings extensionPublicSettings = null; VirtualMachineSqlServerExtensionContext context = null; try { extensionPublicSettings = string.IsNullOrEmpty(extension.PublicSettings) ? null : JsonConvert.DeserializeObject<SqlServerPublicSettings>(extension.PublicSettings); // #$ISSUE- extension.Statuses is always null, follow up with Azure team context = new VirtualMachineSqlServerExtensionContext { ResourceGroupName = extension.ResourceGroupName, Name = extension.Name, Location = extension.Location, Etag = extension.Etag, Publisher = extension.Publisher, ExtensionType = extension.ExtensionType, TypeHandlerVersion = extension.TypeHandlerVersion, Id = extension.Id, PublicSettings = JsonConvert.SerializeObject(extensionPublicSettings), ProtectedSettings = extension.ProtectedSettings, ProvisioningState = extension.ProvisioningState, AutoBackupSettings = extensionPublicSettings.AutoBackupSettings, AutoPatchingSettings = extensionPublicSettings.AutoPatchingSettings, Statuses = extension.Statuses }; } catch (JsonException e) { ThrowTerminatingError( new ErrorRecord( new JsonException( String.Format( CultureInfo.CurrentUICulture, Properties.Resources.AzureVMSqlServerWrongSettingsFormat, extension.PublicSettings), e), string.Empty, ErrorCategory.ParserError, null)); } return context; }
public AzureDiskEncryptionExtensionContext(PSVirtualMachineExtension psExt) { ResourceGroupName = psExt.ResourceGroupName; Name = psExt.Name; Location = psExt.Location; Etag = psExt.Etag; Publisher = psExt.Publisher; ExtensionType = psExt.ExtensionType; TypeHandlerVersion = psExt.TypeHandlerVersion; Id = psExt.Id; PublicSettings = psExt.PublicSettings; ProtectedSettings = psExt.ProtectedSettings; ProvisioningState = psExt.ProvisioningState; Statuses = psExt.Statuses; InitializeAzureDiskEncryptionMembers(psExt); }
private void InitializeAzureDiskEncryptionMembers(PSVirtualMachineExtension psExt) { AzureDiskEncryptionExtensionPublicSettings publicSettings = string.IsNullOrEmpty(psExt.PublicSettings) ? null : JsonConvert.DeserializeObject<AzureDiskEncryptionExtensionPublicSettings>(psExt.PublicSettings); AzureDiskEncryptionExtensionProtectedSettings protectedSettings = string.IsNullOrEmpty(psExt.ProtectedSettings) ? null : JsonConvert.DeserializeObject<AzureDiskEncryptionExtensionProtectedSettings>(psExt.ProtectedSettings); AadClientID = (publicSettings == null) ? null : publicSettings.AadClientID; KeyVaultURL = (publicSettings == null) ? null : publicSettings.KeyVaultURL; KeyEncryptionKeyURL = (publicSettings == null) ? null : publicSettings.KeyEncryptionKeyURL; KeyEncryptionAlgorithm = (publicSettings == null) ? null : publicSettings.KeyEncryptionAlgorithm; VolumeType = (publicSettings == null) ? null : publicSettings.VolumeType; AadClientCertThumbprint = (publicSettings == null) ? null : publicSettings.AadClientCertThumbprint; SequenceVersion = (publicSettings == null) ? null : publicSettings.SequenceVersion; AadClientSecret = (protectedSettings == null) ? null : ConvertStringToSecureString(protectedSettings.AadClientSecret); Passphrase = (protectedSettings == null) ? null : ConvertStringToSecureString(protectedSettings.Passphrase); }
public VirtualMachineAccessExtensionContext(PSVirtualMachineExtension psExt) { var publicSettings = string.IsNullOrEmpty(psExt.PublicSettings) ? null : JsonConvert.DeserializeObject<VMAccessExtensionPublicSettings>(psExt.PublicSettings); ResourceGroupName = psExt.ResourceGroupName; Name = psExt.Name; Location = psExt.Location; Etag = psExt.Etag; Publisher = psExt.Publisher; ExtensionType = psExt.ExtensionType; TypeHandlerVersion = psExt.TypeHandlerVersion; Id = psExt.Id; PublicSettings = psExt.PublicSettings; ProtectedSettings = psExt.ProtectedSettings; ProvisioningState = psExt.ProvisioningState; Statuses = psExt.Statuses; UserName = (publicSettings == null) ? null : publicSettings.UserName; }
public VirtualMachineAccessExtensionContext(PSVirtualMachineExtension psExt) { var publicSettings = string.IsNullOrEmpty(psExt.PublicSettings) ? null : JsonConvert.DeserializeObject <VMAccessExtensionPublicSettings>(psExt.PublicSettings); ResourceGroupName = psExt.ResourceGroupName; Name = psExt.Name; Location = psExt.Location; Etag = psExt.Etag; Publisher = psExt.Publisher; ExtensionType = psExt.ExtensionType; TypeHandlerVersion = psExt.TypeHandlerVersion; Id = psExt.Id; PublicSettings = psExt.PublicSettings; ProtectedSettings = psExt.ProtectedSettings; ProvisioningState = psExt.ProvisioningState; Statuses = psExt.Statuses; UserName = (publicSettings == null) ? null : publicSettings.UserName; }
public static PSVirtualMachineExtension ToPSVirtualMachineExtension(this VirtualMachineExtension ext, string rgName = null) { PSVirtualMachineExtension result = new PSVirtualMachineExtension { ResourceGroupName = rgName, Name = ext.Name, Location = ext.Location, Etag = null, // TODO: Update CRP library for this field Publisher = ext == null ? null : ext.Publisher, ExtensionType = ext == null ? null : ext.ExtensionType, TypeHandlerVersion = ext == null ? null : ext.TypeHandlerVersion, Id = ext.Id, PublicSettings = ext == null ? null : ext.Settings, ProtectedSettings = ext == null ? null : ext.ProtectedSettings, ProvisioningState = ext == null ? null : ext.ProvisioningState, Statuses = ext == null || ext.InstanceView == null ? null : ext.InstanceView.Statuses }; return(result); }
public VirtualMachineCustomScriptExtensionContext(PSVirtualMachineExtension psExt) { var publicSettings = string.IsNullOrEmpty(psExt.PublicSettings) ? null : JsonConvert.DeserializeObject <CustomScriptExtensionPublicSettings>(psExt.PublicSettings); ResourceGroupName = psExt.ResourceGroupName; Name = psExt.Name; Location = psExt.Location; Etag = psExt.Etag; Publisher = psExt.Publisher; ExtensionType = psExt.ExtensionType; TypeHandlerVersion = psExt.TypeHandlerVersion; Id = psExt.Id; PublicSettings = psExt.PublicSettings; ProtectedSettings = psExt.ProtectedSettings; ProvisioningState = psExt.ProvisioningState; Statuses = psExt.Statuses; CommandToExecute = (publicSettings == null) ? null : publicSettings.commandToExecute; Uri = (publicSettings == null) ? null : publicSettings.fileUris; }
public VirtualMachineCustomScriptExtensionContext(PSVirtualMachineExtension psExt) { var publicSettings = string.IsNullOrEmpty(psExt.PublicSettings) ? null : JsonConvert.DeserializeObject<CustomScriptExtensionPublicSettings>(psExt.PublicSettings); ResourceGroupName = psExt.ResourceGroupName; Name = psExt.Name; Location = psExt.Location; Etag = psExt.Etag; Publisher = psExt.Publisher; ExtensionType = psExt.ExtensionType; TypeHandlerVersion = psExt.TypeHandlerVersion; Id = psExt.Id; PublicSettings = psExt.PublicSettings; ProtectedSettings = psExt.ProtectedSettings; ProvisioningState = psExt.ProvisioningState; Statuses = psExt.Statuses; CommandToExecute = (publicSettings == null) ? null : publicSettings.commandToExecute; Uri = (publicSettings == null) ? null : publicSettings.fileUris; }
public static PSVirtualMachineExtension ToPSVirtualMachineExtension(this VirtualMachineExtension ext, string rgName = null) { PSVirtualMachineExtension result = new PSVirtualMachineExtension { ResourceGroupName = rgName, Name = ext.Name, Location = ext.Location, Etag = null, // TODO: Update CRP library for this field Publisher = ext == null ? null : ext.Publisher, ExtensionType = ext == null ? null : ext.ExtensionType, TypeHandlerVersion = ext == null ? null : ext.TypeHandlerVersion, Id = ext.Id, PublicSettings = ext == null ? null : ext.Settings, ProtectedSettings = ext == null ? null : ext.ProtectedSettings, ProvisioningState = ext == null ? null : ext.ProvisioningState, Statuses = ext == null || ext.InstanceView == null ? null : ext.InstanceView.Statuses }; return result; }
public VirtualMachineADDomainExtensionContext(PSVirtualMachineExtension psExt) { var publicSettings = string.IsNullOrEmpty(psExt.PublicSettings) ? null : JsonConvert.DeserializeObject<ADDomainExtensionPublicSettings>(psExt.PublicSettings); ResourceGroupName = psExt.ResourceGroupName; Name = psExt.Name; Location = psExt.Location; Etag = psExt.Etag; Publisher = psExt.Publisher; ExtensionType = psExt.ExtensionType; TypeHandlerVersion = psExt.TypeHandlerVersion; Id = psExt.Id; PublicSettings = psExt.PublicSettings; ProtectedSettings = psExt.ProtectedSettings; ProvisioningState = psExt.ProvisioningState; Statuses = psExt.Statuses; DomainName = (publicSettings == null) ? null : publicSettings.Name; OUPath = (publicSettings == null) ? null : publicSettings.OUPath; User = (publicSettings == null) ? null : publicSettings.User; JoinOption = (publicSettings == null) ? (uint?) null : publicSettings.Options; Restart = (publicSettings == null) ? (bool?) null : publicSettings.Restart; }
public VirtualMachineADDomainExtensionContext(PSVirtualMachineExtension psExt) { var publicSettings = string.IsNullOrEmpty(psExt.PublicSettings) ? null : JsonConvert.DeserializeObject <ADDomainExtensionPublicSettings>(psExt.PublicSettings); ResourceGroupName = psExt.ResourceGroupName; Name = psExt.Name; Location = psExt.Location; Etag = psExt.Etag; Publisher = psExt.Publisher; ExtensionType = psExt.ExtensionType; TypeHandlerVersion = psExt.TypeHandlerVersion; Id = psExt.Id; PublicSettings = psExt.PublicSettings; ProtectedSettings = psExt.ProtectedSettings; ProvisioningState = psExt.ProvisioningState; Statuses = psExt.Statuses; DomainName = (publicSettings == null) ? null : publicSettings.Name; OUPath = (publicSettings == null) ? null : publicSettings.OUPath; User = (publicSettings == null) ? null : publicSettings.User; JoinOption = (publicSettings == null) ? (uint?)null : publicSettings.Options; Restart = (publicSettings == null) ? (bool?)null : publicSettings.Restart; }
private VirtualMachineDscExtensionContext GetDscExtensionContext(PSVirtualMachineExtension extension) { var context = new VirtualMachineDscExtensionContext { ResourceGroupName = extension.ResourceGroupName, Name = extension.Name, Location = extension.Location, Etag = extension.Etag, Publisher = extension.Publisher, ExtensionType = extension.ExtensionType, TypeHandlerVersion = extension.TypeHandlerVersion, Id = extension.Id, PublicSettings = extension.PublicSettings, ProtectedSettings = extension.ProtectedSettings, ProvisioningState = extension.ProvisioningState, Statuses = extension.Statuses }; DscExtensionPublicSettings extensionPublicSettings = null; try { extensionPublicSettings = DscExtensionSettingsSerializer.DeserializePublicSettings(extension.PublicSettings); } catch (JsonException e) { ThrowTerminatingError( new ErrorRecord( new JsonException( String.Format( CultureInfo.CurrentUICulture, Properties.Resources.AzureVMDscWrongSettingsFormat, extension.PublicSettings), e), string.Empty, ErrorCategory.ParserError, null)); } if (extensionPublicSettings == null) { context.ModulesUrl = string.Empty; context.ConfigurationFunction = string.Empty; context.Properties = null; } else { context.ModulesUrl = extensionPublicSettings.ModulesUrl; context.ConfigurationFunction = extensionPublicSettings.ConfigurationFunction; context.Properties = new Hashtable(extensionPublicSettings.Properties.ToDictionary(x => x.Name, x => x.Value)); } return context; }
public static PSVirtualMachineExtension ToPSVirtualMachineExtension(this VirtualMachineExtension ext, string rgName = null) { PSVirtualMachineExtension result = new PSVirtualMachineExtension { ResourceGroupName = rgName, Name = ext.Name, Location = ext.Location, Etag = JsonConvert.SerializeObject(ext.Tags), Publisher = ext.Publisher, ExtensionType = ext.VirtualMachineExtensionType, TypeHandlerVersion = ext.TypeHandlerVersion, Id = ext.Id, PublicSettings = ext.Settings == null ? null : ext.Settings.ToString(), ProtectedSettings = ext.ProtectedSettings == null ? null : ext.ProtectedSettings.ToString(), ProvisioningState = ext.ProvisioningState, Statuses = ext.InstanceView == null ? null : ext.InstanceView.Statuses, SubStatuses = ext.InstanceView == null ? null : ext.InstanceView.Substatuses, AutoUpgradeMinorVersion = ext.AutoUpgradeMinorVersion, ForceUpdateTag = ext.ForceUpdateTag }; return result; }
private VirtualMachineDscExtensionContext GetDscExtensionContext(PSVirtualMachineExtension extension) { var context = new VirtualMachineDscExtensionContext { ResourceGroupName = extension.ResourceGroupName, Name = extension.Name, Location = extension.Location, Etag = extension.Etag, Publisher = extension.Publisher, ExtensionType = extension.ExtensionType, TypeHandlerVersion = extension.TypeHandlerVersion, Id = extension.Id, PublicSettings = extension.PublicSettings, ProtectedSettings = extension.ProtectedSettings, ProvisioningState = extension.ProvisioningState, Statuses = extension.Statuses }; DscExtensionPublicSettings publicSettings; try { publicSettings = string.IsNullOrEmpty(extension.PublicSettings) ? null : JsonConvert.DeserializeObject<DscExtensionPublicSettings>(extension.PublicSettings); } catch (Exception) { // Try deserialize as version 1.0 try { var publicSettingsV1 = JsonConvert.DeserializeObject<DscExtensionPublicSettings.Version1>(extension.PublicSettings); publicSettings = publicSettingsV1.ToCurrentVersion(); } catch (JsonException) { throw; } } if (publicSettings == null) { context.ModulesUrl = string.Empty; context.ConfigurationFunction = string.Empty; context.Properties = null; } else { context.ModulesUrl = publicSettings.ModulesUrl; context.ConfigurationFunction = publicSettings.ConfigurationFunction; context.Properties = new Hashtable(publicSettings.Properties.ToDictionary( x => x.Name, x => x.Value )); } return context; }