Ejemplo n.º 1
0
 /// <summary>
 /// Create client
 /// </summary>
 /// <param name="endpoints"></param>
 /// <param name="jobs"></param>
 /// <param name="serializer"></param>
 public PublisherJobClient(IEndpointRegistry endpoints, IJobScheduler jobs,
                           IJobSerializer serializer)
 {
     _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
     _endpoints  = endpoints ?? throw new ArgumentNullException(nameof(endpoints));
     _jobs       = jobs ?? throw new ArgumentNullException(nameof(jobs));
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Create client
 /// </summary>
 /// <param name="endpoints"></param>
 /// <param name="jobs"></param>
 /// <param name="serializer"></param>
 /// <param name="config"></param>
 public PublisherJobService(IEndpointRegistry endpoints, IJobScheduler jobs,
                            IJobSerializer serializer, IPublishServicesConfig config)
 {
     _serializer = serializer ?? throw new ArgumentNullException(nameof(serializer));
     _endpoints  = endpoints ?? throw new ArgumentNullException(nameof(endpoints));
     _jobs       = jobs ?? throw new ArgumentNullException(nameof(jobs));
     _config     = config ?? throw new ArgumentNullException(nameof(config));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Create certificate request
 /// </summary>
 /// <param name="applications"></param>
 /// <param name="supervisors"></param>
 /// <param name="endpoints"></param>
 /// <param name="groups"></param>
 public EntityInfoResolver(IApplicationRegistry applications,
                           ISupervisorRegistry supervisors, IEndpointRegistry endpoints,
                           IGroupRepository groups)
 {
     _applications = applications ?? throw new ArgumentNullException(nameof(applications));
     _supervisors  = supervisors ?? throw new ArgumentNullException(nameof(supervisors));
     _endpoints    = endpoints ?? throw new ArgumentNullException(nameof(endpoints));
     _groups       = groups ?? throw new ArgumentNullException(nameof(groups));
 }
Ejemplo n.º 4
0
        public SimpleRabbitMQTopology(IEndpointRegistry endpointRegistry, ConnectionFactory connectionFactory)
        {
            _endpointRegistry  = endpointRegistry;
            _connectionFactory = connectionFactory;

            this._eventsExchange = new RabbitMQExchangeEndpoint(EVENTS_EXCHANGE, "direct", this._connectionFactory);
            this._endpointRegistry.Add(this._eventsExchange);
            this._commandsExchange = new RabbitMQExchangeEndpoint(COMMANDS_EXCHANGE, "direct", this._connectionFactory);
            this._endpointRegistry.Add(this._commandsExchange);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Find endpoint.
 /// </summary>
 /// <param name="service"></param>
 /// <param name="endpointId"></param>
 /// <param name="ct"></param>
 /// <returns></returns>
 public static async Task <EndpointInfoModel> FindEndpointAsync(
     this IEndpointRegistry service, string endpointId,
     CancellationToken ct = default)
 {
     try {
         return(await service.GetEndpointAsync(endpointId, false, ct));
     }
     catch (ResourceNotFoundException) {
         return(null);
     }
 }
        public EndpointUpdateFrequencyGuard(IEndpointRegistry endpointRegistry, IContinuousTaskExecutor<Endpoint> taskExecutor, IMonitorSettings monitorSettings, ITimeCoordinator timeCoordinator)
        {
            _endpointRegistry = endpointRegistry;
            _taskExecutor = taskExecutor;
            _monitorSettings = monitorSettings;
            _timeCoordinator = timeCoordinator;

            _maxEndpointDelay = GetEndpointMaxUpdateDelay();

            _endpointRegistry.EndpointAdded += AddEndpoint;
            foreach (var endpoint in _endpointRegistry.Endpoints)
                AddEndpoint(endpoint);
        }
Ejemplo n.º 7
0
        public HealthMonitor(IEndpointRegistry registry, IMonitorSettings settings)
        {
            _registry = registry;
            _settings = settings;
            _registry.NewEndpointAdded += HandleNewEndpoint;
            _cancellation = new CancellationTokenSource();

            foreach (var endpoint in _registry.Endpoints)
                _tasks.AddOrUpdate(endpoint, CreateTaskFor, (e, currentTask) => currentTask);

            _monitor = new Thread(Start) { Name = "Monitor" };
            _monitor.Start();
        }
Ejemplo n.º 8
0
        public EndpointUpdateFrequencyGuard(IEndpointRegistry endpointRegistry, IContinuousTaskExecutor <Endpoint> taskExecutor, IMonitorSettings monitorSettings, ITimeCoordinator timeCoordinator)
        {
            _endpointRegistry = endpointRegistry;
            _taskExecutor     = taskExecutor;
            _monitorSettings  = monitorSettings;
            _timeCoordinator  = timeCoordinator;

            _maxEndpointDelay = GetEndpointMaxUpdateDelay();

            _endpointRegistry.EndpointAdded += AddEndpoint;
            foreach (var endpoint in _endpointRegistry.Endpoints)
            {
                AddEndpoint(endpoint);
            }
        }
Ejemplo n.º 9
0
        public void ListAllTwinsUsingQuery()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);

            using (var mock = AutoMock.GetLoose()) {
                mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices));
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var records = service.QueryEndpointsAsync(null, false, null).Result;

                // Assert
                Assert.True(endpoints.IsSameAs(records.Items));
            }
        }
        /// <summary>
        /// List all endpoints
        /// </summary>
        /// <param name="service"></param>
        /// <param name="onlyServerState"></param>
        /// <returns></returns>
        public static async Task <List <EndpointInfoModel> > ListAllEndpointsAsync(
            this IEndpointRegistry service, bool onlyServerState = false)
        {
            var registrations = new List <EndpointInfoModel>();
            var result        = await service.ListEndpointsAsync(null, onlyServerState);

            registrations.AddRange(result.Items);
            while (result.ContinuationToken != null)
            {
                result = await service.ListEndpointsAsync(result.ContinuationToken,
                                                          onlyServerState);

                registrations.AddRange(result.Items);
            }
            return(registrations);
        }
Ejemplo n.º 11
0
        public void GetTwinThatDoesNotExist()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);

            using (var mock = AutoMock.GetLoose()) {
                mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices));
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var t = service.GetEndpointAsync("test", false);

                // Assert
                Assert.NotNull(t.Exception);
                Assert.IsType <AggregateException>(t.Exception);
                Assert.IsType <ResourceNotFoundException>(t.Exception.InnerException);
            }
        }
Ejemplo n.º 12
0
        public void QueryTwinsBySecurityPolicyDifferentCase()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);

            using (var mock = AutoMock.GetLoose()) {
                mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices));
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var records = service.QueryEndpointsAsync(new EndpointRegistrationQueryModel {
                    SecurityPolicy = endpoints.First().Registration.Endpoint.SecurityPolicy.ToUpperInvariant()
                }, false, null).Result;

                // Assert
                Assert.True(records.Items.Count == 0);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Find endpoints using query
        /// </summary>
        /// <param name="service"></param>
        /// <param name="query"></param>
        /// <param name="onlyServerState"></param>
        /// <param name="ct"></param>
        /// <returns></returns>
        public static async Task <List <EndpointInfoModel> > QueryAllEndpointsAsync(
            this IEndpointRegistry service, EndpointRegistrationQueryModel query,
            bool onlyServerState = false, CancellationToken ct = default)
        {
            var registrations = new List <EndpointInfoModel>();
            var result        = await service.QueryEndpointsAsync(query, onlyServerState, null, ct);

            registrations.AddRange(result.Items);
            while (result.ContinuationToken != null)
            {
                result = await service.ListEndpointsAsync(result.ContinuationToken,
                                                          onlyServerState, null, ct);

                registrations.AddRange(result.Items);
            }
            return(registrations);
        }
Ejemplo n.º 14
0
        public void QueryTwinsBySignSecurityMode()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);
            var count = endpoints.Count(x => x.Registration.Endpoint.SecurityMode == SecurityMode.Sign);

            using (var mock = AutoMock.GetLoose()) {
                mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices));
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var records = service.QueryEndpointsAsync(new EndpointRegistrationQueryModel {
                    SecurityMode = SecurityMode.Sign
                }, false, null).Result;

                // Assert
                Assert.Equal(count, records.Items.Count);
            }
        }
Ejemplo n.º 15
0
        public void GetTwinThatExists()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);
            var first = endpoints.First();
            var id    = EndpointInfoModelEx.CreateEndpointId(first.ApplicationId,
                                                             first.Registration.EndpointUrl, first.Registration.Endpoint.SecurityMode,
                                                             first.Registration.Endpoint.SecurityPolicy);

            using (var mock = AutoMock.GetLoose()) {
                mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices));
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var result = service.GetEndpointAsync(id, false).Result;

                // Assert
                Assert.True(result.IsSameAs(endpoints.First()));
            }
        }
        public EndpointMonitor(IEndpointRegistry registry, IHealthSampler sampler, IMonitorSettings settings)
        {
            _registry = registry;
            _sampler  = sampler;
            _settings = settings;
            _registry.NewEndpointAdded += HandleNewEndpoint;
            _cancellation = new CancellationTokenSource();

            foreach (var endpoint in _registry.Endpoints)
            {
                _tasks.AddOrUpdate(endpoint, CreateTaskFor, (e, currentTask) => currentTask);
            }

            _monitor = new Thread(Start)
            {
                Name = "Monitor"
            };
            _monitor.Start();
        }
Ejemplo n.º 17
0
        public void ListAllTwinsUsingQuery()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(devices);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var records = service.QueryEndpointsAsync(null, false, null).Result;

                // Assert
                Assert.True(endpoints.IsSameAs(records.Items));
            }
        }
Ejemplo n.º 18
0
        public void GetTwinThatDoesNotExist()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(devices);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var t = service.GetEndpointAsync("test", false);

                // Assert
                Assert.NotNull(t.Exception);
                Assert.IsType <AggregateException>(t.Exception);
                Assert.IsType <ResourceNotFoundException>(t.Exception.InnerException);
            }
        }
Ejemplo n.º 19
0
        public void QueryTwinsBySecurityPolicyDifferentCase()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(devices);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var records = service.QueryEndpointsAsync(new EndpointRegistrationQueryModel {
                    SecurityPolicy = endpoints.First().Registration.Endpoint.SecurityPolicy.ToUpperInvariant()
                }, false, null).Result;

                // Assert
                Assert.True(records.Items.Count == 0);
            }
        }
Ejemplo n.º 20
0
        public void QueryTwinsByDisconnectivity()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);
            var count = endpoints.Count(x => !x.IsTwinConnected());

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(devices);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var records = service.QueryEndpointsAsync(new EndpointRegistrationQueryModel {
                    Connected = false
                }, false, null).Result;

                // Assert
                Assert.Equal(count, records.Items.Count);
            }
        }
Ejemplo n.º 21
0
        public void GetTwinThatExists()
        {
            CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices);
            var first = endpoints.First();
            var id    = EndpointInfoModelEx.CreateEndpointId(first.ApplicationId,
                                                             first.Registration.EndpointUrl, first.Registration.Endpoint.SecurityMode,
                                                             first.Registration.Endpoint.SecurityPolicy);

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(devices);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                IEndpointRegistry service = mock.Create <EndpointRegistry>();

                // Run
                var result = service.GetEndpointAsync(id, false).Result;

                // Assert
                Assert.True(result.IsSameAs(endpoints.First()));
            }
        }
Ejemplo n.º 22
0
 /// <summary>
 /// Create controller for endpoints services
 /// </summary>
 /// <param name="endpoints"></param>
 public EndpointsController(IEndpointRegistry endpoints)
 {
     _endpoints = endpoints;
 }
 public AuthenticationFilter(IEndpointRegistry endpointRegistry, ICredentialsProvider credentialsProvider)
 {
     CredentialsProvider = credentialsProvider;
     EndpointRegistry = endpointRegistry;
 }
 /// <summary>
 /// Create controller for endpoints services
 /// </summary>
 /// <param name="endpoints"></param>
 /// <param name="activation"></param>
 public EndpointsController(IEndpointRegistry endpoints, IEndpointActivation activation)
 {
     _activation = activation;
     _endpoints  = endpoints;
 }
 public EndpointsController(IEndpointRegistry endpointRegistry, IEndpointStatsRepository endpointStatsRepository, ITimeCoordinator timeCoordinator)
 {
     _endpointRegistry = endpointRegistry;
     _endpointStatsRepository = endpointStatsRepository;
     _timeCoordinator = timeCoordinator;
 }
 public EndpointsController(IEndpointRegistry endpointRegistry, IEndpointStatsRepository endpointStatsRepository, ITimeCoordinator timeCoordinator)
 {
     _endpointRegistry        = endpointRegistry;
     _endpointStatsRepository = endpointStatsRepository;
     _timeCoordinator         = timeCoordinator;
 }
 public AuthenticationFilter(IEndpointRegistry endpointRegistry, ICredentialsProvider credentialsProvider)
 {
     CredentialsProvider = credentialsProvider;
     EndpointRegistry    = endpointRegistry;
 }
Ejemplo n.º 28
0
 public EndpointsController(IEndpointRegistry endpointRegistry, IEndpointStatsRepository endpointStatsRepository)
 {
     _endpointRegistry        = endpointRegistry;
     _endpointStatsRepository = endpointStatsRepository;
 }
Ejemplo n.º 29
0
 /// <summary>
 /// Create controller for endpoints services
 /// </summary>
 /// <param name="endpoints"></param>
 /// <param name="events"></param>
 public EndpointsController(IEndpointRegistry endpoints,
                            IGroupRegistration events)
 {
     _endpoints = endpoints;
     _events    = events;
 }
 public EndpointsController(IEndpointRegistry endpointRegistry, IEndpointStatsRepository endpointStatsRepository)
 {
     _endpointRegistry = endpointRegistry;
     _endpointStatsRepository = endpointStatsRepository;
 }