Example #1
0
 /// <summary>
 /// Print the state change of a module in the console.
 /// </summary>
 /// <param name="sender">Sender object, here IServerModule.</param>
 /// <param name="eventArgs">EventArgs with the new state.</param>
 protected void OnModuleStateChanged(object sender, ModuleStateChangedEventArgs eventArgs)
 {
     lock (this)
     {
         var module = (IServerModule)sender;
         Console.WriteLine("{0} changed state to {1}", module.Name, eventArgs.NewState);
     }
 }
Example #2
0
 /// <summary>
 /// Print the state change of the module in the console.
 /// </summary>
 /// <param name="sender">Sender object as IServerModule.</param>
 /// <param name="eventArgs">EventArgs with new state.</param>
 protected void OnModuleStateChanged(object sender, ModuleStateChangedEventArgs eventArgs)
 {
     lock (this)
     {
         ClearCurrentConsoleLine();
         var serverModule = (IServerModule)sender;
         Console.Write(serverModule.Name.PadRight(35) + " changed state to".PadRight(30));
         CommandHelper.PrintState(eventArgs.NewState, true);
         WriteBashPostString();
     }
 }
Example #3
0
 private void StateChangeEvent()
 {
     if (StateChanged != null)
     {
         var args = new ModuleStateChangedEventArgs()
         {
             EStateNOW        = BaseModuleEState.Stopped,
             EStatePrev       = EModuleState,
             StateDescription = "Změna stavu"
         };
         StateChanged(this, args);
     }
 }
 private void OnModuleStateChanged(object sender, ModuleStateChangedEventArgs eventArgs)
 {
     ModuleStateChanged?.Invoke(sender, eventArgs);
 }
Example #5
0
        private void OnModuleStateChanged(object sender, ModuleStateChangedEventArgs stateChanged)
        {
            // Reset NoChangeStep
            _noChangeTimer.Stop();
            _noChangeTimer.Start();

            // Ignore temporary states
            if (stateChanged.NewState.HasFlag(ServerModuleState.Initializing))
            {
                return;
            }

            // Output state change
            if (stateChanged.NewState == ServerModuleState.Failure)
            {
                var module = (IServerModule)sender;
                Console.WriteLine("Module {0} failed with Exception:\n", module.Name);
                Console.WriteLine(ExceptionPrinter.Print(module.Notifications.OrderBy(n => n.Timestamp).Last(n => n.Severity == Severity.Error).Exception));
                _failed = true;
                _awaitStep.Set();
            }

            lock (ModuleManager)
            {
                // If we allready failed skip output
                if (_failed | _timedOut)
                {
                    return;
                }

                var stepDone = false;
                switch (_currentStep)
                {
                case TestStep.StartAll:
                    // Check if all auto start modules are on their feet
                    var autoPlugin = ModuleManager.AllModules.Where(item => ModuleManager.BehaviourAccess <ModuleStartBehaviour>(item).Behaviour == ModuleStartBehaviour.Auto).ToArray();
                    var running    = autoPlugin.Count(item => item.State == ServerModuleState.Running);
                    var allAuto    = autoPlugin.Length;

                    if (running == allAuto)
                    {
                        stepDone = true;
                    }
                    Console.WriteLine("{0} of {1} auto started modules are running", running.ToString("D").PadLeft(_digits), allAuto);
                    break;

                case TestStep.StartManuals:
                case TestStep.ReincarnateSingle:
                    // Check if target service is back running
                    running = ModuleManager.AllModules.Count(item => item.State == ServerModuleState.Running);
                    if (running == _modulesCount)
                    {
                        stepDone = true;
                    }
                    Console.WriteLine("{0} of {1} modules are running", running.ToString("D").PadLeft(_digits), _modulesCount);
                    break;

                case TestStep.StopAll:
                    // Check if all auto start modules are stopped
                    var stopped = ModuleManager.AllModules.Count(item => item.State == ServerModuleState.Stopped);
                    if (stopped == _modulesCount)
                    {
                        stepDone = true;
                    }
                    Console.WriteLine("{0} of {1} modules stopped", stopped.ToString("D").PadLeft(_digits), _modulesCount);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
                if (stepDone)
                {
                    _awaitStep.Set();
                }
            }
        }
Example #6
0
 public static void OnChangeState(object p_sender, ModuleStateChangedEventArgs p_args)
 {
     Console.WriteLine($"{p_args.EStateNOW} a {p_args.EStatePrev}");
 }