public static PSNetAppFilesActiveDirectory ConvertToPs(this Management.NetApp.Models.ActiveDirectory activeDirectory, string resourceGroupName, string accountName) { var psActiveDirectory = new PSNetAppFilesActiveDirectory { ResourceGroupName = resourceGroupName, AccountName = accountName, ActiveDirectoryId = activeDirectory.ActiveDirectoryId, Username = activeDirectory.Username, Password = activeDirectory.Password, Domain = activeDirectory.Domain, Dns = activeDirectory.Dns, Status = activeDirectory.Status, StatusDetails = activeDirectory.StatusDetails, SmbServerName = activeDirectory.SmbServerName, OrganizationalUnit = activeDirectory.OrganizationalUnit, Site = activeDirectory.Site, BackupOperators = activeDirectory.BackupOperators, KdcIP = activeDirectory.KdcIP, AdName = activeDirectory.AdName, ServerRootCACertificate = activeDirectory.ServerRootCACertificate, AesEncryption = activeDirectory.AesEncryption, LdapSigning = activeDirectory.LdapSigning, SecurityOperators = activeDirectory.SecurityOperators, LdapOverTLS = activeDirectory.LdapOverTLS, AllowLocalNfsUsersWithLdap = activeDirectory.AllowLocalNfsUsersWithLdap }; return(psActiveDirectory); }
public override void ExecuteCmdlet() { if (ParameterSetName == ParentObjectParameterSet) { ResourceGroupName = AccountObject.ResourceGroupName; var NameParts = AccountObject.Name.Split('/'); AccountName = NameParts[0]; } if (ShouldProcess($"{AccountName}.ActiveDirectory", string.Format(PowerShell.Cmdlets.NetAppFiles.Properties.Resources.CreateResourceMessage, ResourceGroupName))) { var anfAccount = AzureNetAppFilesManagementClient.Accounts.Get(ResourceGroupName, AccountName); if (anfAccount == null) { throw new ArgumentException($"Specified NetAppAccount with name '{this.AccountName}' does not extist in Resource Group '{this.ResourceGroupName}'"); } var activeDirectory = new Management.NetApp.Models.ActiveDirectory { AdName = AdName, Dns = string.Join(",", Dns), Domain = Domain, SmbServerName = SmbServerName, Username = Username, Password = Password.ConvertToString(), Site = Site, OrganizationalUnit = OrganizationalUnit, BackupOperators = BackupOperator, KdcIP = KdcIP, ServerRootCACertificate = ServerRootCACertificate, SecurityOperators = SecurityOperator, AesEncryption = AesEncryption, LdapSigning = LdapSigning, LdapOverTLS = LdapOverTLS, AllowLocalNfsUsersWithLdap = AllowLocalNfsUsersWithLdap, Administrators = Administrator, EncryptDCConnections = EncryptDCConnection }; if (anfAccount.ActiveDirectories == null) { anfAccount.ActiveDirectories = new List <Management.NetApp.Models.ActiveDirectory>(); } anfAccount.ActiveDirectories.Add(activeDirectory); var netAppAccountBody = new NetAppAccountPatch() { ActiveDirectories = anfAccount.ActiveDirectories }; var updatedAnfAccount = AzureNetAppFilesManagementClient.Accounts.Update(netAppAccountBody, ResourceGroupName, AccountName); var updatedActiveDirectory = updatedAnfAccount.ActiveDirectories.FirstOrDefault <Management.NetApp.Models.ActiveDirectory>(e => e.SmbServerName == SmbServerName); WriteObject(updatedActiveDirectory.ConvertToPs(ResourceGroupName, AccountName)); } }
public override void ExecuteCmdlet() { if (ParameterSetName == ParentObjectParameterSet) { ResourceGroupName = AccountObject.ResourceGroupName; var NameParts = AccountObject.Name.Split('/'); AccountName = NameParts[0]; } else if (ParameterSetName == ObjectParameterSet) { ResourceGroupName = InputObject.ResourceGroupName; AccountName = InputObject.AccountName; ActiveDirectoryId = InputObject.ActiveDirectoryId; } if (ShouldProcess(ActiveDirectoryId, string.Format(PowerShell.Cmdlets.NetAppFiles.Properties.Resources.CreateResourceMessage, ResourceGroupName))) { var anfAccount = AzureNetAppFilesManagementClient.Accounts.Get(ResourceGroupName, AccountName); if (anfAccount == null) { throw new ArgumentException($"Specified NetAppAccount with name '{this.AccountName}' does not extist in Resource Group '{this.ResourceGroupName}'"); } string dnsStr = null; if (Dns != null) { dnsStr = string.Join(",", Dns); } Management.NetApp.Models.ActiveDirectory anfADConfig = null; if (string.IsNullOrWhiteSpace(ActiveDirectoryId)) { anfADConfig = new Management.NetApp.Models.ActiveDirectory(); } else { anfADConfig = anfAccount.ActiveDirectories?.FirstOrDefault(a => a.ActiveDirectoryId == ActiveDirectoryId); if (anfADConfig == null) { throw new ArgumentException($"ActiveDirectory configuration with ID '{this.ActiveDirectoryId}' in account '{this.AccountName}' is not found. Please use New-AzNetAppFilesActiveDirectory to Create a new ActiveDirectory configuration."); } } anfADConfig.AdName = AdName ?? anfADConfig.AdName; anfADConfig.Dns = dnsStr ?? anfADConfig.Dns; anfADConfig.Domain = Domain ?? anfADConfig.Domain; anfADConfig.SmbServerName = SmbServerName ?? anfADConfig.SmbServerName; anfADConfig.Username = Username ?? anfADConfig.Username; anfADConfig.Password = Password.ConvertToString(); anfADConfig.Site = Site ?? anfADConfig.Site; anfADConfig.OrganizationalUnit = OrganizationalUnit ?? anfADConfig.Site; anfADConfig.BackupOperators = BackupOperator ?? anfADConfig.BackupOperators; anfADConfig.KdcIP = KdcIP ?? anfADConfig.KdcIP; anfADConfig.ServerRootCACertificate = ServerRootCACertificate ?? anfADConfig.ServerRootCACertificate; anfADConfig.SecurityOperators = SecurityOperator ?? anfADConfig.SecurityOperators; if (AesEncryption) { anfADConfig.AesEncryption = AesEncryption; } if (LdapSigning) { anfADConfig.LdapSigning = LdapSigning; } if (LdapOverTLS) { anfADConfig.LdapOverTLS = LdapOverTLS; } if (AllowLocalNfsUsersWithLdap) { anfADConfig.AllowLocalNfsUsersWithLdap = AllowLocalNfsUsersWithLdap; } anfADConfig.Administrators = Administrator ?? anfADConfig.Administrators; if (EncryptDCConnection) { anfADConfig.EncryptDCConnections = EncryptDCConnection; } var netAppAccountBody = new NetAppAccountPatch() { ActiveDirectories = anfAccount.ActiveDirectories }; var updatedAnfAccount = AzureNetAppFilesManagementClient.Accounts.Update(netAppAccountBody, ResourceGroupName, AccountName); var updatedActiveDirectory = updatedAnfAccount.ActiveDirectories.FirstOrDefault <Management.NetApp.Models.ActiveDirectory>(e => e.ActiveDirectoryId == ActiveDirectoryId); WriteObject(updatedActiveDirectory.ConvertToPs(ResourceGroupName, AccountName)); } }