Exemple #1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            var config = new LoadBalancerSettings();

            Configuration.Bind("BalancerSettings", config);
        }
Exemple #2
0
 public static Props Props(IBatchLoader batchLoader,
                           IBatchSender batchSender,
                           LoadBalancerSettings loadBalancerSettings,
                           IRawPacketBatchParserActorFactory rawPacketBatchParserActorFactory) =>
 Akka.Actor.Props.Create(
     () => new OfflineLoadBalancerActor(batchLoader, batchSender, loadBalancerSettings,
                                        rawPacketBatchParserActorFactory));
        public SimpleOnlineLoadBalancerActor(LoadBalancerSettings settings, IPcapLoader pcapLoader)
        {
            this._pcapLoader = pcapLoader;
            this._settings   = settings;

            this.Become(this.WaitingForCaptureProcessingRequestsBehaviour);
        }
Exemple #4
0
        public async Task <IProcessingResult> OpenCaptureAsync(Uri uri)
        {
            IProcessingResult processingResult;

            var captureInfo = new CaptureInfo(uri);

            var settings = new LoadBalancerSettings(BaseConfig);

            var config = this.ClusterSettings.Config.WithFallback(BaseConfig);

//      var seedNodes     = config.GetStringList("akka.cluster.seed-nodes");
            using (var system = ActorSystem.Create("NTPAC-Cluster", config))
            {
                var loadBalancerActor      = this._onlineLoadBalancerActorFactory.Create(system, settings);
                var startProcessingRequest = new CaptureProcessingRequest {
                    CaptureInfo = captureInfo
                };

                processingResult = await loadBalancerActor.Ask <ProcessingResult>(startProcessingRequest).ConfigureAwait(false);

                await Akka.Cluster.Cluster.Get(system).LeaveAsync();

                await system.Terminate();
            }

            return(processingResult);
        }
Exemple #5
0
        public async Task <IProcessingResult> OpenCaptureAsync(Uri uri)
        {
            IProcessingResult processingResult;

            var captureInfo = new CaptureInfo(uri);

            var settings = new LoadBalancerSettings(BaseConfig);

            var config    = this.ClusterSettings.Config.WithFallback(BaseConfig);
            var seedNodes = config.GetStringList("akka.cluster.seed-nodes");

            using (var system = ActorSystem.Create("NTPAC-Cluster", config))
            {
                var loadBalancerActor      = this._onlineLoadBalancerActorFactory.Create(system, settings);
                var startProcessingRequest = new CaptureProcessingRequest {
                    CaptureInfo = captureInfo
                };

                processingResult = await loadBalancerActor.Ask <ProcessingResult>(startProcessingRequest).ConfigureAwait(false);

                await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false);

                await CoordinatedShutdown.Get(system).Run(CoordinatedShutdown.ClusterLeavingReason.Instance).ConfigureAwait(false);

//        Console.WriteLine("Pre-dispose delay");
                await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false);
            }

//      Console.WriteLine("Post-dispose delay");
            await Task.Delay(TimeSpan.FromSeconds(1)).ConfigureAwait(false);

            return(processingResult);
        }
Exemple #6
0
        public static IOptionsSnapshot <LoadBalancerSettings> GetRamdomBalancingAlgorithmSettings()
        {
            IOptionsSnapshot <LoadBalancerSettings> settings = Substitute.For <IOptionsSnapshot <LoadBalancerSettings> >();
            var result = new LoadBalancerSettings
            {
                BalancingAlgorithm = "Random",
                Instances          = GetInstances()
            };

            settings.Value.Returns(result);

            return(settings);
        }
Exemple #7
0
        public OfflineLoadBalancerActor(IBatchLoader batchLoader,
                                        IBatchSender batchSender,
                                        LoadBalancerSettings loadBalancerSettings,
                                        IRawPacketBatchParserActorFactory rawPacketBatchParserActorFactory)
        {
            this._batchLoader                      = batchLoader;
            this._loadBalancerSettings             = loadBalancerSettings;
            this._rawPacketBatchParserActorFactory = rawPacketBatchParserActorFactory;
            this._batchSender                      = batchSender;

            this.StartWith(OfflineLoadBalancerStates.WaitingForProcessingRequest, null);

            this.SetupFSMWhen();
            this.SetupFSMTransitions();
            this.SetupPeriodicalGarbageCollecting();
        }
Exemple #8
0
        public static void Initialize()
        {
            AppSettingsReader reader = new AppSettingsReader();

            LoadBalancerSettings settings = new LoadBalancerSettings();
            settings.MonoscapeAccessKey = (string)reader.GetValue("MonoscapeAccessKey", typeof(string));
            settings.MonoscapeSecretKey = (string)reader.GetValue("MonoscapeSecretKey", typeof(string));
            settings.ApplicationGridServiceURL = (string)reader.GetValue("ApplicationGridServiceURL", typeof(string));
            settings.DashboardServiceURL = (string)reader.GetValue("DashboardServiceURL", typeof(string));
            settings.LoadBalancerWebServiceURL = (string)reader.GetValue("LoadBalancerWebServiceURL", typeof(string));

            Settings.MonoscapeAccessKey = settings.MonoscapeAccessKey;
            Settings.MonoscapeSecretKey = settings.MonoscapeSecretKey;
            Settings.LbApplicationGridServiceURL = settings.ApplicationGridServiceURL;
            Settings.LbDashboardServiceURL = settings.DashboardServiceURL;
            Settings.LbLoadBalancerWebServiceURL = settings.LoadBalancerWebServiceURL;
        }
Exemple #9
0
        public static void Initialize()
        {
            AppSettingsReader reader = new AppSettingsReader();

            LoadBalancerSettings settings = new LoadBalancerSettings();

            settings.MonoscapeAccessKey        = (string)reader.GetValue("MonoscapeAccessKey", typeof(string));
            settings.MonoscapeSecretKey        = (string)reader.GetValue("MonoscapeSecretKey", typeof(string));
            settings.ApplicationGridServiceURL = (string)reader.GetValue("ApplicationGridServiceURL", typeof(string));
            settings.DashboardServiceURL       = (string)reader.GetValue("DashboardServiceURL", typeof(string));
            settings.LoadBalancerWebServiceURL = (string)reader.GetValue("LoadBalancerWebServiceURL", typeof(string));

            Settings.MonoscapeAccessKey          = settings.MonoscapeAccessKey;
            Settings.MonoscapeSecretKey          = settings.MonoscapeSecretKey;
            Settings.LbApplicationGridServiceURL = settings.ApplicationGridServiceURL;
            Settings.LbDashboardServiceURL       = settings.DashboardServiceURL;
            Settings.LbLoadBalancerWebServiceURL = settings.LoadBalancerWebServiceURL;
        }
        public OfflineLoadBalancerActorTests()
        {
            this._loadBalancerSettings = new LoadBalancerSettings();

            this._rawPacketBatchActorTestProbe = this.CreateTestProbe("RawPacketBatch");

            this._batchLoaderMock = new Mock <IBatchLoader>();
            this._batchSenderMock = new Mock <IBatchSender>();
            this._rawPacketBatchParserFactoryMock = new Mock <IRawPacketBatchParserActorFactory>();
            this._rawPacketBatchParserFactoryMock
            .Setup(factory => factory.Create(It.IsAny <IActorContext>(), It.IsAny <IActorRef>(), It.IsAny <CaptureInfo>()))
            .Returns(this._rawPacketBatchActorTestProbe);


            this._offlineLoadBalancerActorRefSUT =
                this.Sys.ActorOf(Props.Create(() => new OfflineLoadBalancerActor(this._batchLoaderMock.Object,
                                                                                 this._batchSenderMock.Object, this._loadBalancerSettings,
                                                                                 this._rawPacketBatchParserFactoryMock.Object)));

            this._batchSenderMock.Setup(sender => sender.Complete())
            .Callback(() => this._offlineLoadBalancerActorRefSUT.Tell(new CaptureTrackingCompleted()));
        }
Exemple #11
0
 protected OnlineLoadBalancerBenchmarkActorBase(LoadBalancerSettings settings, IPcapLoader pcapLoader) : base(
         settings, pcapLoader)
 {
     this.MaxNumberOfShards = 1;
 }
 public new static Props Props(LoadBalancerSettings settings, IPcapLoader pcapLoader) =>
 Akka.Actor.Props.Create(() => new OnlineLoadBalancerGroupedWithinTunnedActor(settings, pcapLoader));
 public OnlineLoadBalancerGroupedWithinTunnedActor(LoadBalancerSettings settings, IPcapLoader pcapLoader) : base(
         settings, pcapLoader)
 {
 }
 public OnlineLoadBalancerCompleteActor(LoadBalancerSettings settings, IPcapLoader pcapLoader) : base(settings, pcapLoader)
 {
 }
Exemple #15
0
 public OnlineLoadBalancerActor(LoadBalancerSettings settings, IPcapLoader pcapLoader)
 {
     this.PcapLoader = pcapLoader;
     this.Settings   = settings;
     this.Become(this.WaitingForCaptureBehaviour);
 }
Exemple #16
0
 public static Props Props(LoadBalancerSettings settings, IPcapLoader pcapLoader) =>
 Akka.Actor.Props.Create(() => new OnlineLoadBalancerActor(settings, pcapLoader));
 public OnlineLoadBalancerOnlyPacketParseActor(LoadBalancerSettings settings, IPcapLoader pcapLoader) : base(
         settings, pcapLoader)
 {
 }