protected override void InternalValidate() { TaskLogger.LogEnter(); base.InternalValidate(); DatabaseAvailabilityGroupNetwork dataObject = this.DataObject; IConfigurationSession configSession = this.SetupAdSession(); DatabaseAvailabilityGroup databaseAvailabilityGroup = DagTaskHelper.DagIdParameterToDag(this.DatabaseAvailabilityGroup, configSession); DagTaskHelper.VerifyDagAndServersAreWithinScopes <DatabaseAvailabilityGroupNetwork>(this, databaseAvailabilityGroup, true); if (databaseAvailabilityGroup.IsDagEmpty()) { base.WriteError(new DagNetworkEmptyDagException(databaseAvailabilityGroup.Name), ErrorCategory.InvalidArgument, null); } DagTaskHelper.PreventTaskWhenAutoNetConfigIsEnabled(databaseAvailabilityGroup, this); DagNetworkObjectId identity = new DagNetworkObjectId(databaseAvailabilityGroup.Name, dataObject.Name); dataObject.SetIdentity(identity); DagNetworkConfigDataProvider dagNetworkConfigDataProvider = (DagNetworkConfigDataProvider)base.DataSession; DagNetworkConfiguration dagNetworkConfiguration = dagNetworkConfigDataProvider.ReadNetConfig(databaseAvailabilityGroup); DatabaseAvailabilityGroupNetwork databaseAvailabilityGroupNetwork = dagNetworkConfiguration.FindNetwork(dataObject.Name); if (databaseAvailabilityGroupNetwork != null) { throw new DagNetworkManagementException(ServerStrings.DagNetworkCreateDupName(dataObject.Name)); } DagNetworkValidation.ValidateSwitches(dataObject, new Task.TaskErrorLoggingDelegate(base.WriteError)); if (base.Fields["Subnets"] != null) { DagNetworkValidation.ValidateSubnets(this.Subnets, dagNetworkConfiguration, this.Name, null, new Task.TaskErrorLoggingDelegate(base.WriteError), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose)); dataObject.ReplaceSubnets(this.Subnets); } TaskLogger.LogExit(); }
protected override void InternalValidate() { TaskLogger.LogEnter(); base.InternalValidate(); DatabaseAvailabilityGroupNetwork dataObject = this.DataObject; DagNetworkObjectId dagNetworkObjectId = (DagNetworkObjectId)dataObject.Identity; ExTraceGlobals.CmdletsTracer.TraceError <string>((long)this.GetHashCode(), "Validating SetDAGNetwork({0})", dagNetworkObjectId.FullName); IConfigurationSession configSession = this.SetupAdSession(); DatabaseAvailabilityGroup dag = DagTaskHelper.ReadDagByName(dagNetworkObjectId.DagName, configSession); DagTaskHelper.VerifyDagAndServersAreWithinScopes <DatabaseAvailabilityGroupNetwork>(this, dag, true); DagTaskHelper.PreventTaskWhenAutoNetConfigIsEnabled(dag, this); DagNetworkConfigDataProvider dagNetworkConfigDataProvider = (DagNetworkConfigDataProvider)base.DataSession; DagNetworkConfiguration networkConfig = dagNetworkConfigDataProvider.NetworkConfig; DatabaseAvailabilityGroupNetwork databaseAvailabilityGroupNetwork = (DatabaseAvailabilityGroupNetwork)dataObject.GetOriginalObject(); string name = databaseAvailabilityGroupNetwork.Name; DatabaseAvailabilityGroupNetwork networkBeingChanged = null; foreach (DatabaseAvailabilityGroupNetwork databaseAvailabilityGroupNetwork2 in networkConfig.Networks) { if (databaseAvailabilityGroupNetwork2 == dataObject) { networkBeingChanged = databaseAvailabilityGroupNetwork2; } else if (DatabaseAvailabilityGroupNetwork.NameComparer.Equals(databaseAvailabilityGroupNetwork2.Name, dataObject.Name)) { throw new DagNetworkManagementException(ServerStrings.DagNetworkRenameDupName(name, dataObject.Name)); } } DagNetworkValidation.ValidateSwitches(dataObject, new Task.TaskErrorLoggingDelegate(base.WriteError)); if (base.Fields["Subnets"] != null) { DagNetworkValidation.ValidateSubnets(this.Subnets, networkConfig, dataObject.Name, networkBeingChanged, new Task.TaskErrorLoggingDelegate(base.WriteError), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskVerboseLoggingDelegate(base.WriteVerbose)); dataObject.ReplaceSubnets(this.Subnets); } DagNetworkValidation.WarnIfAllNetsAreDisabled(networkConfig, new Task.TaskWarningLoggingDelegate(this.WriteWarning)); TaskLogger.LogExit(); }