Ejemplo n.º 1
0
        public void DatabaseClearAllInformation()
        {
            Task.Factory.StartNew(() =>
            {
                ManagerDbRepository.TruncateLoggingTable();

                GetData();
            });
        }
Ejemplo n.º 2
0
        public void ClearAllManagerTablesInDatabase()
        {
            Task.Factory.StartNew(() =>
            {
                var managerDbRepository =
                    new ManagerDbRepository(ManagerDbConnectionString);

                managerDbRepository.TruncateJobDetailTable();
                managerDbRepository.TruncateJobTable();
                managerDbRepository.TruncateJobQueueTable();
                managerDbRepository.TruncateWorkerNodeTable();

                GetData();
            });
        }
        public CheckTablesInManagerDbTimer(string connectionString, double interval = 5000)
        {
            ManagerDbRepository = new ManagerDbRepository(connectionString);

            JobQueueTimer          = new Timer(interval);
            JobQueueTimer.Elapsed += JobQueueTimer_Elapsed;

            JobTimer          = new Timer(interval);
            JobTimer.Elapsed += JobTimer_Elapsed;

            JobDetailTimer          = new Timer(interval);
            JobDetailTimer.Elapsed += JobDetailTimer_Elapsed;

            LoggingTimer          = new Timer(interval);
            LoggingTimer.Elapsed += LoggingTimerOnElapsed;

            WorkerNodeTimer          = new Timer(interval);
            WorkerNodeTimer.Elapsed += WorkerNodeTimerOnElapsed;
        }
Ejemplo n.º 4
0
        public void NodeShouldNotGetStuckWhenCancellingOrFailingJobs()
        {
            WaitForNodeToFinishWorking();
            var jobRepository = new ManagerDbRepository(ManagerDbConnectionString);

            var jobQueueItemCancel  = JobHelper.GenerateTestJobRequests(1, 60).First();
            var jobQueueItemFail    = JobHelper.GenerateFailingJobParamsRequests(1).First();
            var jobQueueItemSuccess = JobHelper.GenerateTestJobRequests(1, 2).First();

            var cancelId = HttpRequestManager.AddJob(jobQueueItemCancel);

            WaitForNodeToStartWorking();
            HttpRequestManager.CancelJob(cancelId);
            WaitForNodeToFinishWorking();

            Thread.Sleep(TimeSpan.FromSeconds(2));

            HttpRequestManager.AddJob(jobQueueItemFail);
            Thread.Sleep(TimeSpan.FromSeconds(2));             //might be a risc it ends before we see it is working..
            WaitForNodeToFinishWorking();

            Thread.Sleep(TimeSpan.FromSeconds(2));

            HttpRequestManager.AddJob(jobQueueItemSuccess);
            WaitForNodeToStartWorking();
            WaitForNodeToFinishWorking();

            Thread.Sleep(TimeSpan.FromSeconds(2));

            var queueItems = jobRepository.JobQueueItems;
            var jobs       = jobRepository.Jobs;

            Assert.IsTrue(!queueItems.Any(), "Job queue must be empty.");
            Assert.IsTrue(jobs.Any(), "Jobs must have been added.");
            Assert.IsTrue(jobs.Any(job => job.Result.StartsWith("Canceled", StringComparison.InvariantCultureIgnoreCase)));
            Assert.IsTrue(jobs.Any(job => job.Result.StartsWith("fail", StringComparison.InvariantCultureIgnoreCase)));
            Assert.IsTrue(jobs.Any(job => job.Result.StartsWith("success", StringComparison.InvariantCultureIgnoreCase)));
        }
Ejemplo n.º 5
0
        public MainWindowViewModel()
        {
            ManagerDbConnectionString =
                ConfigurationManager.ConnectionStrings["ManagerConnectionString"].ConnectionString;

            ManagerDbRepository =
                new ManagerDbRepository(ManagerDbConnectionString);

            //---------------------------------------
            // Set up Fiddler.
            //---------------------------------------
            FiddlerCaptureUrlConfiguration = new FiddlerCaptureUrlConfiguration();

            FiddlerCapture = new FiddlerCapture(FiddlerCaptureUrlConfiguration);

            FiddlerCapture.NewDataCapturedEventHandler += NewDataCapturedEventHandler;

            StartFiddlerCaptureCommand = new StartFiddlerCaptureCommand(FiddlerCapture);

            StopFiddlerCaptureCommand = new StopFiddlerCaptureCommand(FiddlerCapture);

            FiddlerCaptureInformation = new ObservableCollection <FiddlerCaptureInformation>();

            InstallCertificateCommand = new InstallCertificateCommand();

            UnInstallCertificateCommand = new UnInstallCertificateCommand();

            //---------------------------------------
            // Manager console host.
            //---------------------------------------
            StartHostCommand    = new StartHostCommand(this);
            ShutDownHostCommand = new ShutDownHostCommand(this);

            NumberOfManagers = Settings.Default.NumberOfManagers;
            NumberOfNodes    = Settings.Default.NumberOfNodes;

            IsConsoleHostStarted = false;

            //---------------------------------------
            // Do the rest.
            //---------------------------------------
            GetData();

            ClearLoggingTableInDatabaseCommand = new ClearLoggingTableInDatabaseCommand(this);

            ClearManagerTablesInDatabaseCommand = new ClearManagerTablesInDatabaseCommand(this);

            ToggleRefreshCommand = new ToggleRefreshCommand(this);

            CreateNewJobCommand   = new CreateNewJobCommand();
            Create20NewJobCommand = new CreateNewJobCommand(20);

            StartUpNewManagerCommand = new StartUpNewManagerCommand();
            StartUpNewNodeCommand    = new StartUpNewNodeCommand();

            StartDurationTestCommand  = new StartDurationTestCommand(this);
            CancelDurationTestCommand = new CancelDurationTestCommand(this);

            RefreshTimer = new Timer(5000);

            RefreshTimer.Elapsed += RefreshTimerOnElapsed;

            RefreshTimer.Start();

            RefreshEnabled = true;

            CheckManagerDbTimer          = new Timer(2000);
            CheckManagerDbTimer.Elapsed += CheckManagerDbTimer_Elapsed;
        }