コード例 #1
0
        static void Main(string[] args)
        {
            var nodeConfig = NodeConfiguration.GetDefault();

            nodeConfig.NodeId   = "ServerA";
            nodeConfig.NodeName = "StitchIntegration.ServerA";
            using (var core = new CrossStitchCore(nodeConfig))
            {
                Console.Title = core.Name;
                _testLog      = new ModuleLog(core.MessageBus, "ServerA");
                core.AddModule(new BackplaneModule(core));
                core.AddModule(new StitchesModule(core));
                var logger = new LoggerFactory().AddConsole(LogLevel.Debug).CreateLogger <Program>();
                core.AddModule(new LoggingModule(core, logger));

                core.Start();

                _testLog.LogInformation("Waiting for ServerB");
                // Wait until we get a node joined event with ServerB. Kick off the test and unsubscribe
                core.MessageBus.Subscribe <ClusterMemberEvent>(b => b
                                                               .WithTopic(ClusterMemberEvent.EnteringEvent)
                                                               .Invoke(m => TestStep1(core.MessageBus, m.NodeId, m.NetworkNodeId))
                                                               .OnThreadPool()
                                                               .MaximumEvents(1));

                Console.ReadKey();

                core.Stop();
            }
        }
コード例 #2
0
 public StitchHeartbeatService(IDataRepository data, IModuleLog log, IHeartbeatSender sender)
 {
     _data        = data;
     _log         = log;
     _sender      = sender;
     _heartbeatId = 0;
 }
コード例 #3
0
 public BuiltInClassV1StitchAdaptor(PackageFile packageFile, StitchInstance instance, IStitchEventObserver observer, IModuleLog log)
 {
     Observer    = observer;
     _instance   = instance;
     _log        = log;
     _parameters = new BuiltInClassV1Parameters(packageFile.Adaptor.Parameters);
 }
コード例 #4
0
 public StitchHeartbeatService(IModuleLog log, IHeartbeatSender sender, IStitchHealthNotifier notifier, StitchHealthCalculator calculator)
 {
     _log        = log;
     _sender     = sender;
     _sequence   = new HeartbeatSequence();
     _calculator = calculator;
     _tracker    = new StitchStateTracker(notifier, _calculator);
 }
コード例 #5
0
 public StitchAdaptorFactory(CrossStitchCore core, StitchesConfiguration configuration, StitchFileSystem fileSystem, IModuleLog log, IStitchEventObserver observer)
 {
     _core          = core;
     _configuration = configuration;
     _fileSystem    = fileSystem;
     _log           = log;
     _observer      = observer;
 }
コード例 #6
0
        public StitchesService(CrossStitchCore core, IDataRepository data, StitchFileSystem fileSystem, StitchInstanceManager stitchInstanceManager, IModuleLog log, IStitchEventNotifier notifier)
        {
            _fileSystem = fileSystem;
            _data       = data;
            _core       = core;
            _notifier   = notifier;
            _log        = log;

            _stitchInstanceManager = stitchInstanceManager;
        }
コード例 #7
0
        public StitchesService(CrossStitchCore core, IDataRepository data, StitchFileSystem fileSystem, StitchInstanceManager stitchInstanceManager, StitchEventObserver observer, IModuleLog log, IStitchEventNotifier notifier)
        {
            _fileSystem = fileSystem;
            _data       = data;
            _core       = core;
            _notifier   = notifier;
            _log        = log;

            _stitchInstanceManager = stitchInstanceManager;
            _stitchInstanceManager.StitchStateChange       += observer.StitchInstancesOnStitchStateChanged;
            _stitchInstanceManager.HeartbeatReceived       += observer.StitchInstanceManagerOnHeartbeatReceived;
            _stitchInstanceManager.LogsReceived            += observer.StitchInstanceManagerOnLogsReceived;
            _stitchInstanceManager.RequestResponseReceived += observer.StitchInstanceManagerOnRequestResponseReceived;
            _stitchInstanceManager.DataMessageReceived     += observer.StitchInstanceManagerOnDataMessageReceived;
        }
コード例 #8
0
ファイル: MasterService.cs プロジェクト: DrLeh/CrossStitch
        public MasterService(CrossStitchCore core, IModuleLog log, MasterDataRepository data, IStitchRequestHandler stitches, IClusterMessageSender clusterSender)
        {
            _core          = core;
            _log           = log;
            _data          = data;
            _stitches      = stitches;
            _clusterSender = clusterSender;
            _clusterZones  = new string[0];
            _jobManager    = new JobManager(_core.MessageBus, _data, _log);

            _commandHandlers = new Dictionary <CommandType, ICommandHandler>
            {
                { CommandType.Ping, new PingCommandHandler(_core.NodeId, data, _jobManager, _clusterSender) },
                { CommandType.StartStitchInstance, new StartStitchCommandHandler(data, _jobManager, stitches, _clusterSender) },
                { CommandType.StopStitchInstance, new StopStitchCommandHandler(data, _jobManager, stitches, _clusterSender) },
                { CommandType.RemoveStitchInstance, new RemoveStitchCommandHandler(data, _jobManager, stitches, _clusterSender) },
                { CommandType.StartStitchGroup, new StartAllStitchGroupCommandHandler(core.NodeId, data, _jobManager, stitches, _clusterSender) },
                { CommandType.StopStitchGroup, new StopAllStitchGroupCommandHandler(core.NodeId, data, _jobManager, stitches, _clusterSender) }
            };
        }
コード例 #9
0
        public ProcessStitchAdaptor(CrossStitchCore core, StitchesConfiguration configuration, StitchInstance stitchInstance, IStitchEventObserver observer, ProcessParameters parameters, IModuleLog log)
        {
            Assert.ArgNotNull(core, nameof(core));
            Assert.ArgNotNull(configuration, nameof(configuration));
            Assert.ArgNotNull(stitchInstance, nameof(stitchInstance));
            Assert.ArgNotNull(observer, nameof(observer));
            Assert.ArgNotNull(parameters, nameof(parameters));
            Assert.ArgNotNull(log, nameof(log));

            _core           = core;
            _stitchInstance = stitchInstance;
            _observer       = observer;
            _parameters     = parameters;
            _log            = log;

            _channelFactory    = new CoreMessageChannelFactory(core.NodeId, stitchInstance.Id);
            _serializerFactory = new MessageSerializerFactory();
            _processFactory    = new ProcessFactory(stitchInstance, core, log);
            _stopRequested     = false;
        }
コード例 #10
0
 public StitchEventObserver(IMessageBus messageBus, IModuleLog log)
 {
     _messageBus = messageBus;
     _log        = log;
 }
コード例 #11
0
 public DataService(IDataStorage storage, IModuleLog log)
 {
     _storage = storage;
     _log     = log;
 }
コード例 #12
0
ファイル: JobManager.cs プロジェクト: Whiteknight/CrossStitch
 public JobManager(IMessageBus messageBus, MasterDataRepository data, IModuleLog log)
 {
     _messageBus = messageBus;
     _data       = data;
     _log        = log;
 }
コード例 #13
0
 public ProcessFactory(StitchInstance stitchInstance, CrossStitchCore core, IModuleLog log)
 {
     _stitchInstance = stitchInstance;
     _core           = core;
     _log            = log;
 }
コード例 #14
0
 public StitchEventObserver(IMessageBus messageBus, IDataRepository data, IModuleLog log)
 {
     _messageBus = messageBus;
     _data       = data;
     _log        = log;
 }