コード例 #1
0
        public void ValidateTestConfiguration(PSNetworkWatcherConnectionMonitorTestConfigurationObject testConfiguration)
        {
            if (string.IsNullOrEmpty(testConfiguration.Name))
            {
                throw new PSArgumentException(Properties.Resources.ConnectionMonitorTestConfigurationMustHaveName);
            }

            this.ValidateProtocolConfiguration(testConfiguration.ProtocolConfiguration);
            this.ValidateTestFrequency(testConfiguration.TestFrequencySec);
            this.ValidateSucessThreshold(testConfiguration.SuccessThreshold);
            this.ValidatePreferredIPVersion(testConfiguration.PreferredIPVersion);
        }
コード例 #2
0
        private ConnectionMonitorSuccessThreshold GetSuccessThreshold(PSNetworkWatcherConnectionMonitorTestConfigurationObject testConfiguration)
        {
            if (testConfiguration.SuccessThreshold == null)
            {
                return(null);
            }

            return(new ConnectionMonitorSuccessThreshold()
            {
                ChecksFailedPercent = testConfiguration.SuccessThreshold.ChecksFailedPercent,
                RoundTripTimeMs = testConfiguration.SuccessThreshold.RoundTripTimeMs
            });
        }
        public override void Execute()
        {
            base.Execute();

            PSNetworkWatcherConnectionMonitorTestConfigurationObject testConfiguration = new PSNetworkWatcherConnectionMonitorTestConfigurationObject()
            {
                Name                  = this.Name,
                TestFrequencySec      = this.TestFrequencySec,
                PreferredIPVersion    = this.PreferredIPVersion,
                SuccessThreshold      = GetSuccessThreshold(),
                ProtocolConfiguration = this.ProtocolConfiguration
            };

            this.ValidateTestConfiguration(testConfiguration);

            WriteObject(testConfiguration);
        }
コード例 #4
0
        private int GetDestinationPort(PSNetworkWatcherConnectionMonitorTestConfigurationObject testConfiguration)
        {
            if (testConfiguration == null)
            {
                return(0);
            }

            if (testConfiguration.ProtocolConfiguration is PSNetworkWatcherConnectionMonitorTcpConfiguration tcpConfiguration)
            {
                return(tcpConfiguration.Port == null ? 0 : (int)tcpConfiguration.Port);
            }

            if (testConfiguration.ProtocolConfiguration is PSNetworkWatcherConnectionMonitorHttpConfiguration httpConfiguration)
            {
                return(httpConfiguration.Port == null ? 0 : (int)httpConfiguration.Port);
            }

            return(0);
        }
コード例 #5
0
        public PSConnectionMonitorResultV2 MapConnectionMonitorResultToPSConnectionMonitorResultV2(ConnectionMonitorResult connectionMonitor)
        {
            PSConnectionMonitorResultV2 psConnectionMonitor = new PSConnectionMonitorResultV2()
            {
                Name = connectionMonitor.Name,
                Id   = connectionMonitor.Id,
                Etag = connectionMonitor.Etag,
                ProvisioningState = connectionMonitor.ProvisioningState,
                Type                  = connectionMonitor.Type,
                Location              = connectionMonitor.Location,
                StartTime             = connectionMonitor.StartTime,
                Tags                  = new Dictionary <string, string>(),
                ConnectionMonitorType = connectionMonitor.ConnectionMonitorType,
                Notes                 = connectionMonitor.Notes,
                TestGroups            = new List <PSNetworkWatcherConnectionMonitorTestGroupObject>()
            };

            if (connectionMonitor.Tags != null)
            {
                foreach (KeyValuePair <string, string> KeyValue in connectionMonitor.Tags)
                {
                    psConnectionMonitor.Tags.Add(KeyValue.Key, KeyValue.Value);
                }
            }

            if (connectionMonitor.Outputs != null)
            {
                psConnectionMonitor.Outputs = new List <PSNetworkWatcherConnectionMonitorOutputObject>();
                foreach (ConnectionMonitorOutput output in connectionMonitor.Outputs)
                {
                    psConnectionMonitor.Outputs.Add(
                        new PSNetworkWatcherConnectionMonitorOutputObject()
                    {
                        Type = output.Type,
                        WorkspaceSettings = new PSConnectionMonitorWorkspaceSettings()
                        {
                            WorkspaceResourceId = output.WorkspaceSettings?.WorkspaceResourceId
                        }
                    });
                }
            }

            if (connectionMonitor.TestGroups != null)
            {
                foreach (ConnectionMonitorTestGroup testGroup in connectionMonitor.TestGroups)
                {
                    PSNetworkWatcherConnectionMonitorTestGroupObject testGroupObject = new PSNetworkWatcherConnectionMonitorTestGroupObject()
                    {
                        Name               = testGroup.Name,
                        Disable            = testGroup.Disable,
                        TestConfigurations = new List <PSNetworkWatcherConnectionMonitorTestConfigurationObject>(),
                        Sources            = new List <PSNetworkWatcherConnectionMonitorEndpointObject>(),
                        Destinations       = new List <PSNetworkWatcherConnectionMonitorEndpointObject>()
                    };

                    if (testGroup.Sources != null)
                    {
                        foreach (string sourceEndpointName in testGroup.Sources)
                        {
                            ConnectionMonitorEndpoint sourceEndpoint = GetEndpoinByName(connectionMonitor.Endpoints, sourceEndpointName);

                            PSNetworkWatcherConnectionMonitorEndpointObject EndpointObject =
                                NetworkResourceManagerProfile.Mapper.Map <PSNetworkWatcherConnectionMonitorEndpointObject>(sourceEndpoint);

                            testGroupObject.Sources.Add(EndpointObject);
                        }
                    }

                    if (testGroup.Destinations != null)
                    {
                        foreach (string destinationEndpointName in testGroup.Destinations)
                        {
                            ConnectionMonitorEndpoint destinationEndpoint = GetEndpoinByName(connectionMonitor.Endpoints, destinationEndpointName);

                            PSNetworkWatcherConnectionMonitorEndpointObject EndpointObject =
                                NetworkResourceManagerProfile.Mapper.Map <PSNetworkWatcherConnectionMonitorEndpointObject>(destinationEndpoint);

                            testGroupObject.Destinations.Add(EndpointObject);
                        }
                    }

                    // Test Configuration
                    if (testGroup.TestConfigurations != null)
                    {
                        foreach (string testConfigurationName in testGroup.TestConfigurations)
                        {
                            ConnectionMonitorTestConfiguration testConfiguration = GetTestConfigurationByName(connectionMonitor.TestConfigurations, testConfigurationName);

                            PSNetworkWatcherConnectionMonitorTestConfigurationObject testConfigurationObject = new PSNetworkWatcherConnectionMonitorTestConfigurationObject()
                            {
                                Name = testConfiguration.Name,
                                PreferredIPVersion = testConfiguration.PreferredIPVersion,
                                TestFrequencySec   = testConfiguration.TestFrequencySec,
                                SuccessThreshold   = testConfiguration.SuccessThreshold == null ? null :
                                                     new PSNetworkWatcherConnectionMonitorSuccessThreshold()
                                {
                                    ChecksFailedPercent = testConfiguration.SuccessThreshold.ChecksFailedPercent,
                                    RoundTripTimeMs     = testConfiguration.SuccessThreshold.RoundTripTimeMs
                                },
                                ProtocolConfiguration = this.GetPSProtocolConfiguration(testConfiguration)
                            };

                            testGroupObject.TestConfigurations.Add(testConfigurationObject);
                        }
                    }

                    psConnectionMonitor.TestGroups.Add(testGroupObject);
                }
            }

            return(psConnectionMonitor);
        }