Beispiel #1
0
        public override void ExecuteCmdlet()
        {
            IDictionary <string, string> tagPairs = null;

            if (Tag != null)
            {
                tagPairs = new Dictionary <string, string>();

                foreach (string key in Tag.Keys)
                {
                    tagPairs.Add(key, Tag[key].ToString());
                }
            }

            if (ParameterSetName == ParentObjectParameterSet)
            {
                ResourceGroupName = PoolObject.ResourceGroupName;
                Location          = PoolObject.Location;
                var NameParts = PoolObject.Name.Split('/');
                AccountName = NameParts[0];
                PoolName    = NameParts[1];
            }

            var dataProtection = new PSNetAppFilesVolumeDataProtection
            {
                Replication = ReplicationObject,
                Snapshot    = Snapshot,
                Backup      = Backup
            };

            var volumeBody = new Management.NetApp.Models.Volume()
            {
                ServiceLevel             = ServiceLevel,
                UsageThreshold           = UsageThreshold,
                CreationToken            = CreationToken,
                SubnetId                 = SubnetId,
                Location                 = Location,
                ExportPolicy             = (ExportPolicy != null) ? ModelExtensions.ConvertExportPolicyFromPs(ExportPolicy) : null,
                DataProtection           = (dataProtection.Replication != null) ? ModelExtensions.ConvertDataProtectionFromPs(dataProtection) : null,
                VolumeType               = VolumeType,
                ProtocolTypes            = ProtocolType,
                Tags                     = tagPairs,
                SnapshotId               = SnapshotId,
                SnapshotDirectoryVisible = SnapshotDirectoryVisible,
                SecurityStyle            = SecurityStyle,
                BackupId                 = BackupId,
                ThroughputMibps          = ThroughputMibps,
                KerberosEnabled          = KerberosEnabled
            };

            if (ShouldProcess(Name, string.Format(PowerShell.Cmdlets.NetAppFiles.Properties.Resources.CreateResourceMessage, ResourceGroupName)))
            {
                var anfVolume = AzureNetAppFilesManagementClient.Volumes.CreateOrUpdate(volumeBody, ResourceGroupName, AccountName, PoolName, Name);
                WriteObject(anfVolume.ToPsNetAppFilesVolume());
            }
        }
        public override void ExecuteCmdlet()
        {
            IDictionary <string, string> tagPairs = null;

            if (Tag != null)
            {
                tagPairs = new Dictionary <string, string>();

                foreach (string key in Tag.Keys)
                {
                    tagPairs.Add(key, Tag[key].ToString());
                }
            }

            if (ParameterSetName == ParentObjectParameterSet)
            {
                ResourceGroupName = PoolObject.ResourceGroupName;
                Location          = PoolObject.Location;
                var NameParts = PoolObject.Name.Split('/');
                AccountName = NameParts[0];
                PoolName    = NameParts[1];
            }

            PSNetAppFilesVolumeDataProtection dataProtection = null;

            if (ReplicationObject != null || !string.IsNullOrWhiteSpace(SnapshotPolicyId) || Backup != null)
            {
                dataProtection = new PSNetAppFilesVolumeDataProtection
                {
                    Replication = ReplicationObject,
                    Snapshot    = new PSNetAppFilesVolumeSnapshot()
                    {
                        SnapshotPolicyId = SnapshotPolicyId
                    },
                    Backup = Backup
                };
            }

            var volumeBody = new Management.NetApp.Models.Volume()
            {
                ServiceLevel             = ServiceLevel,
                UsageThreshold           = UsageThreshold,
                CreationToken            = CreationToken,
                SubnetId                 = SubnetId,
                Location                 = Location,
                ExportPolicy             = (ExportPolicy != null) ? ModelExtensions.ConvertExportPolicyFromPs(ExportPolicy) : null,
                DataProtection           = (dataProtection != null) ? ModelExtensions.ConvertDataProtectionFromPs(dataProtection) : null,
                VolumeType               = VolumeType,
                ProtocolTypes            = ProtocolType,
                Tags                     = tagPairs,
                SnapshotId               = SnapshotId,
                SnapshotDirectoryVisible = SnapshotDirectoryVisible,
                SecurityStyle            = SecurityStyle,
                BackupId                 = BackupId,
                ThroughputMibps          = ThroughputMibps,
                KerberosEnabled          = KerberosEnabled.IsPresent,
                SmbEncryption            = SmbEncryption,
                SmbContinuouslyAvailable = SmbContinuouslyAvailable,
                LdapEnabled              = LdapEnabled,
                CoolAccess               = CoolAccess,
                CoolnessPeriod           = CoolnessPeriod,
                UnixPermissions          = UnixPermissions,
                AvsDataStore             = AvsDataStore,
                IsDefaultQuotaEnabled    = IsDefaultQuotaEnabled,
                DefaultUserQuotaInKiBs   = DefaultUserQuotaInKiB,
                DefaultGroupQuotaInKiBs  = DefaultGroupQuotaInKiB,
                NetworkFeatures          = NetworkFeature
            };

            if (ShouldProcess(Name, string.Format(PowerShell.Cmdlets.NetAppFiles.Properties.Resources.CreateResourceMessage, ResourceGroupName)))
            {
                var anfVolume = AzureNetAppFilesManagementClient.Volumes.CreateOrUpdate(volumeBody, ResourceGroupName, AccountName, PoolName, Name);
                WriteObject(anfVolume.ToPsNetAppFilesVolume());
            }
        }