public void WarewolfSecurityOperations_AddDomainUserToWarewolfGroup_WhenUserNotPresent_ExpectUserAdded()
        {
            //------------Setup for test--------------------------
            var inDomain = true;

            try
            {
                Domain.GetComputerDomain();
            }
            catch (ActiveDirectoryObjectNotFoundException)
            {
                inDomain = false;
            }
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();
            var myPc = Environment.MachineName;
            var user = (inDomain?"Dev2\\":string.Empty) + "IntegrationTester";

            var userStr = warewolfGroupOps.FormatUserForInsert(user, myPc);

            //------------Execute Test---------------------------
            warewolfGroupOps.AddUserToWarewolf(userStr);
            var result = warewolfGroupOps.IsUserInGroup(user);

            //------------Assert Results-------------------------
            Assert.IsTrue(result);
        }
        public void WarewolfSecurityOperations_AddWarewolfGroupToAdministrators_WhenNotAlreadyMember_ExpectAdministratorsMemberOfWarewolf()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            // Delete warewolf if already a member...
            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();

            //------------Execute Test---------------------------
            try
            {
                warewolfGroupOps.AddAdministratorsGroupToWarewolf();
            }
            catch (COMException e)
            {
                //'The Server service is not started.' error is expected in containers. See: https://github.com/moby/moby/issues/26409#issuecomment-304978309
                if (e.Message != "The Server service is not started.\r\n")
                {
                    throw e;
                }
            }
            var result = warewolfGroupOps.IsAdminMemberOfWarewolf();

            //------------Assert Results-------------------------
            Assert.IsTrue(result);
        }
예제 #3
0
        public void InstallerActionsForDevelopment_ExecuteInstallerActions_WhenGroupExist_ExpectUserNotAdded()
        {
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();
            var currentUser = WindowsIdentity.GetCurrent(false);

            var installerActionsForDevelopment = new InstallerActionsForDevelopment();

            //------------Execute Test---------------------------\
            try
            {
                installerActionsForDevelopment.ExecuteMoqInstallerActions();
            }
            catch (COMException e)
            {
                //'The Server service is not started.' error is expected in containers. See: https://github.com/moby/moby/issues/26409#issuecomment-304978309
                if (e.Message != "The Server service is not started.\r\n")
                {
                    throw e;
                }
            }

            //------------Assert Results-------------------------
            var isGroupCreated = warewolfGroupOps.DoesWarewolfGroupExist();

            Assert.IsTrue(isGroupCreated);
            var isAdminAMember = warewolfGroupOps.IsAdminMemberOfWarewolf();

            Assert.IsTrue(isAdminAMember);
        }
예제 #4
0
        public void WarewolfSecurityOperations_FormatUserForInsert_WhenNullMachineName_ExpectException()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            //------------Execute Test---------------------------
            warewolfGroupOps.FormatUserForInsert("testUser", null);
        }
        public void MoqInstallerActionFactory_CreateSecurityOperationsObject_WhenCreatingNew_ExpectNewObject()
        {
            //------------Execute Test---------------------------
            var result = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            //------------Assert Results-------------------------
            Assert.IsNotNull(result);
        }
예제 #6
0
        public void WarewolfSecurityOperations_IsUserInGroup_WhenUserNotPresent_ExpectException()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            //------------Execute Test---------------------------
            warewolfGroupOps.IsUserInGroup(null);
        }
예제 #7
0
        public void WarewolfSecurityOperations_AddUserToWarewolfGroup_WhenUserNull_ExpectException()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            //------------Execute Test---------------------------
            warewolfGroupOps.AddUserToWarewolf(null);
        }
예제 #8
0
        public void WarewolfSecurityOperations_AddWarewolfGroup_ExpectGroupAdded()
        {
            var grpOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            grpOps.DeleteWarewolfGroup();
            grpOps.AddWarewolfGroup();
            var result = grpOps.DoesWarewolfGroupExist();

            Assert.IsTrue(result);
        }
        public void ExecuteMoqInstallerActions()
        {
            var wso = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            if (!wso.DoesWarewolfGroupExist())
            {
                wso.AddWarewolfGroup();
            }
            AddAdministratorsToWarewolfGroup();
        }
예제 #10
0
        public void AuthorizationServiceBase_IsAuthorizedToConnect_ToLocalServer_AdministratorsMembersOfWarewolfGroup_WhenAdministratorsMembersOfTheGroup_ExpectTrue()
        {
            //------------Setup for test--------------------------

            // permissions setup
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            // Delete warewolf if already a member...
            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();

            Console.WriteLine("BEFOREEntering AddAdministratorsGroupToWarewolf");
            try
            {
                warewolfGroupOps.AddAdministratorsGroupToWarewolf();
            }
            catch (COMException e)
            {
                //'The Server service is not started.' error is expected in containers. See: https://github.com/moby/moby/issues/26409#issuecomment-304978309
                if (e.Message != "The Server service is not started.\r\n")
                {
                    throw e;
                }
            }
            var result = warewolfGroupOps.IsAdminMemberOfWarewolf();

            Assert.IsTrue(result);

            // Setup rest of test ;)
            var resource           = Guid.NewGuid();
            var securityPermission = new WindowsGroupPermission {
                IsServer = false, ResourceID = resource, Permissions = Permissions.View, WindowsGroup = GlobalConstants.WarewolfGroup
            };

            var securityService = new Mock <ISecurityService>();

            securityService.SetupGet(p => p.Permissions).Returns(new List <WindowsGroupPermission> {
                securityPermission
            });

            var user = new Mock <IPrincipal>();

            user.Setup(u => u.Identity.Name).Returns("TestUser");

            var authorizationService = new TestAuthorizationServiceBase(securityService.Object)
            {
                User = user.Object
            };

            //------------Execute Test---------------------------
            var isMember = authorizationService.AreAdministratorsMembersOfWarewolfAdministrators();

            //------------Assert Results-------------------------
            Assert.IsTrue(isMember);
        }
예제 #11
0
        public void WarewolfSecurityOperations_IsUserInGroup_WhenUserNotPresent_ExpectFalse()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            //------------Execute Test---------------------------
            var result = warewolfGroupOps.IsUserInGroup("Dev2\\MyNewUser");

            //------------Assert Results-------------------------
            Assert.IsFalse(result);
        }
        public void WarewolfSecurityOperations_FormatUserForInsert_WhenLocalUser_ExpectUserFormated()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            //------------Execute Test---------------------------
            var result = warewolfGroupOps.FormatUserForInsert("Guest", "MyPC");

            //------------Assert Results-------------------------
            StringAssert.Contains(result, "WinNT://MyPC/Guest");
        }
예제 #13
0
        public void WarewolfSecurityOperations_FormatUserForInsert_WhenDomainUser_ExpectUserFormated()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            // Environment.MachineName
            //------------Execute Test---------------------------
            var result = warewolfGroupOps.FormatUserForInsert("Dev2\\DummyUser", "MyPC");

            //------------Assert Results-------------------------
            StringAssert.Contains(result, "WinNT://Dev2/DummyUser");
        }
예제 #14
0
        public void WarewolfSecurityOperations_AddWarewolfGroupToAdministrators_WhenAlreadyMember_ExpectException()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            // Delete warewolf if already a member...
            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();
            warewolfGroupOps.AddAdministratorsGroupToWarewolf();

            //------------Execute Test---------------------------
            warewolfGroupOps.AddAdministratorsGroupToWarewolf();
        }
예제 #15
0
        public void WarewolfSecurityOperationsDoesWarewolfGroupExistWhenGroupDoesNotExistExpectFalse()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            warewolfGroupOps.DeleteWarewolfGroup();

            //------------Execute Test---------------------------
            var result = warewolfGroupOps.DoesWarewolfGroupExist();

            //------------Assert Results-------------------------
            Assert.IsFalse(result);
        }
예제 #16
0
        public void WarewolfSecurityOperations_AddWarewolfGroupToAdministrators_WhenNotAMember_ExpectNotAdded()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            // Delete warewolf if already a member...
            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();

            //------------Execute Test---------------------------
            var result = warewolfGroupOps.IsAdminMemberOfWarewolf();

            //------------Assert Results-------------------------
            Assert.IsFalse(result);
        }
예제 #17
0
        public void WarewolfSecurityOperations_DeleteGroupWorks_WhenGroupExist_ExpectGroupDeleted()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();

            //------------Execute Test---------------------------
            warewolfGroupOps.DeleteWarewolfGroup();

            //------------Assert Results-------------------------

            // Will throw exception on failure ;)
        }
예제 #18
0
        void Run(bool interactiveMode)
        {
            Tracker.StartServer();

            // ** Perform Moq Installer Actions For Development ( DEBUG config ) **
#if DEBUG
            try
            {
                var miq = MoqInstallerActionFactory.CreateInstallerActions();
                miq.ExecuteMoqInstallerActions();
            }
            catch (Exception e)
            {
                Dev2Logger.Warn("Mocking installer actions for DEBUG config failed to create Warewolf Administrators group and/or to add current user to it [ " + e.Message + " ]", GlobalConstants.WarewolfWarn);
            }
#endif

            try
            {
                SetWorkingDirectory();
                LoadHostSecurityProvider();
                MigrateOldTests();
                InitializeServer();
                LoadSettingsProvider();
                ConfigureLoggging();
                OpenCOMStream();
                var catalog = LoadResourceCatalog();
                _timer = new Timer(PerformTimerActions, null, 1000, GlobalConstants.NetworkComputerNameQueryFreq);
                StartPulseLogger();
                LoadPerformanceCounters();
                LoadServerWorkspace();
                LoadActivityCache(catalog);
                StartWebServer();
                LoadTestCatalog();
                ServerLoop(interactiveMode);
            }
            catch (Exception e)
            {
#pragma warning disable S2228 // Console logging should not be used
#pragma warning disable S2228 // Console logging should not be used
                Console.WriteLine(e);
#pragma warning restore S2228 // Console logging should not be used
#pragma warning restore S2228 // Console logging should not be used
                Dev2Logger.Error("Error Starting Server", e, GlobalConstants.WarewolfError);
                Stop(true, 0);
            }
        }
예제 #19
0
        public void WarewolfSecurityOperations_AddLocalUserToWarewolfGroup_WhenUserNotPresent_ExpectUserAdded()
        {
            //------------Setup for test--------------------------
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();
            var myPc = Environment.MachineName;

            var userStr = warewolfGroupOps.FormatUserForInsert("Guest", myPc);

            //------------Execute Test---------------------------
            warewolfGroupOps.AddUserToWarewolf(userStr);
            var result = warewolfGroupOps.IsUserInGroup("Guest");

            //------------Assert Results-------------------------
            Assert.IsTrue(result);
        }
예제 #20
0
        public void AuthorizationServiceBase_IsAuthorizedToConnect_ToLocalServer_AdministratorsMembersOfWarewolfGroup_WhenAdministratorsAreNotMembersOfTheGroup_ExpectFalse()
        {
            //------------Setup for test--------------------------

            // permissions setup
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            // Delete warewolf if already a member...
            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();

            var result = warewolfGroupOps.IsAdminMemberOfWarewolf();

            Assert.IsFalse(result);

            // Setup rest of test ;)
            var resource           = Guid.NewGuid();
            var securityPermission = new WindowsGroupPermission {
                IsServer = false, ResourceID = resource, Permissions = Permissions.View, WindowsGroup = GlobalConstants.WarewolfGroup
            };

            var securityService = new Mock <ISecurityService>();

            securityService.SetupGet(p => p.Permissions).Returns(new List <WindowsGroupPermission> {
                securityPermission
            });

            var user = new Mock <IPrincipal>();

            user.Setup(u => u.Identity.Name).Returns("TestUser");

            var authorizationService = new TestAuthorizationServiceBase(securityService.Object, true, false, true)
            {
                User = user.Object
            };

            authorizationService.MemberOfAdminOverride = true;

            //------------Execute Test---------------------------
            var isMember = authorizationService.AreAdministratorsMembersOfWarewolfAdministrators();

            //------------Assert Results-------------------------
            Assert.IsFalse(isMember);
        }
        void Run(bool interactiveMode)
        {
            Tracker.StartServer();

            // ** Perform Moq Installer Actions For Development ( DEBUG config ) **
#if DEBUG
            try
            {
                var miq = MoqInstallerActionFactory.CreateInstallerActions();
                miq.ExecuteMoqInstallerActions();
            }
            catch (Exception e)
            {
                throw new Exception("Ensure you are running as an Administrator. Mocking installer actions for DEBUG config failed to create Warewolf Administrators group and/or to add current user to it [ " + e.Message + " ]", e);
            }
#endif

            try
            {
                SetWorkingDirectory();
                LoadHostSecurityProvider();
                MigrateOldTests();
                InitializeServer();
                LoadSettingsProvider();
                ConfigureLoggging();
                _ipcIpcClient = IpcClient.GetIPCExecutor();
                var catalog = LoadResourceCatalog();
                StartWebServer();
                _timer = new Timer(PerformTimerActions, null, 1000, GlobalConstants.NetworkComputerNameQueryFreq);
                StartPulseLogger();
                LoadPerformanceCounters();
                LoadServerWorkspace();
                LoadActivityCache(catalog);
                LoadTestCatalog();
                ServerLoop(interactiveMode);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Dev2Logger.Error("Error Starting Server", e);
                Stop(true, 0);
            }
        }
        public void InstallerActionsForDevelopment_ExecuteInstallerActions_WhenNormalOperation_ExpectGroupCreatedAndUserAdded()
        {
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            warewolfGroupOps.DeleteWarewolfGroup();
            var currentUser = WindowsIdentity.GetCurrent(false);

            var installerActionsForDevelopment = new InstallerActionsForDevelopment();

            //------------Execute Test---------------------------
            installerActionsForDevelopment.ExecuteMoqInstallerActions();

            //------------Assert Results-------------------------
            var isGroupCreated = warewolfGroupOps.DoesWarewolfGroupExist();

            Assert.IsTrue(isGroupCreated);
            var isAdminAMember = warewolfGroupOps.IsAdminMemberOfWarewolf();

            Assert.IsTrue(isAdminAMember);
        }
예제 #23
0
        // ReSharper disable InconsistentNaming
        public void InstallerActionsForDevelopment_ExecuteInstallerActions_WhenGroupExist_ExpectUserNotAdded()
        {
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();
            var currentUser = System.Security.Principal.WindowsIdentity.GetCurrent(false);

            var installerActionsForDevelopment = new InstallerActionsForDevelopment();

            //------------Execute Test---------------------------
            installerActionsForDevelopment.ExecuteMoqInstallerActions();

            //------------Assert Results-------------------------
            var isGroupCreated = warewolfGroupOps.DoesWarewolfGroupExist();

            Assert.IsTrue(isGroupCreated);
            var result = warewolfGroupOps.IsUserInGroup(currentUser.Name);

            Assert.IsTrue(result);
            var isAdminAMember = warewolfGroupOps.IsAdminMemberOfWarewolf();

            Assert.IsTrue(isAdminAMember);
        }
예제 #24
0
        public void AuthorizationServiceBase_IsAuthorizedToConnect_ToLocalServer_AdministratorsMembersOfWarewolfGroup_WhenMemberOfAdministrator_ExpectTrue()
        {
            //------------Setup for test--------------------------
            var getPassword = TestEnvironmentVariables.GetVar("dev2\\IntegrationTester");
            // permissions setup
            var warewolfGroupOps = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            //Delete warewolf if already a member...
            warewolfGroupOps.DeleteWarewolfGroup();
            warewolfGroupOps.AddWarewolfGroup();

            var result = warewolfGroupOps.IsAdminMemberOfWarewolf();

            Assert.IsFalse(result);

            // Setup rest of test
            var resource           = Guid.NewGuid();
            var securityPermission = new WindowsGroupPermission {
                IsServer = false, ResourceID = resource, Permissions = Permissions.View, WindowsGroup = GlobalConstants.WarewolfGroup
            };
            var securityService = new Mock <ISecurityService>();
            var user            = new Mock <IPrincipal>();
            var actualGChildren = new List <Mock <IDirectoryEntry> > {
                new Mock <IDirectoryEntry>()
            };
            var gChildren      = new Mock <IDirectoryEntries>();
            var actualChildren = new List <Mock <IDirectoryEntry> > {
                new Mock <IDirectoryEntry>()
            };
            var children = new Mock <IDirectoryEntries>();
            var dir      = new Mock <IDirectoryEntryFactory>();

            securityService.SetupGet(p => p.Permissions).Returns(new List <WindowsGroupPermission> {
                securityPermission
            });
            user.Setup(u => u.Identity.Name).Returns("TestUser");
            actualGChildren.ForEach(b => b.Setup(a => a.Name).Returns("Warewolf Administrators"));
            actualGChildren.ForEach(b => b.Setup(a => a.SchemaClassName).Returns("Computer"));

            gChildren.Setup(a => a.GetEnumerator()).Returns(actualGChildren.Select(a => a.Object).GetEnumerator());
            actualChildren.First().Setup(a => a.Children).Returns(gChildren.Object);
            children.Setup(a => a.GetEnumerator()).Returns(actualChildren.Select(a => a.Object).GetEnumerator());
            SchemaNameCollection filterList = new DirectoryEntry("LDAP://dev2.local", "IntegrationTester", getPassword).Children.SchemaFilter;

            children.Setup(a => a.SchemaFilter).Returns(filterList);
            var ss = "WinNT://" + Environment.MachineName + ",computer";

            dir.Setup(a => a.Create(ss)).Returns(new TestDirectoryEntry(ss));

            var authorizationService = new TestAuthorizationServiceBase(dir.Object, securityService.Object, true, true, false)
            {
                User = user.Object
            };

            authorizationService.MemberOfAdminOverride = true;
            //------------Execute Test---------------------------
            var isMember = authorizationService.AreAdministratorsMembersOfWarewolfAdministrators();

            //------------Assert Results-------------------------
            Assert.IsTrue(isMember);
        }
예제 #25
0
        /// <summary>
        /// Starts up the server with relevant workers.
        /// NOTE: This must return a task as in Windows Server 2008 and Windows Server 2012 there is an issue
        /// with the WMI Performance Adapter that causes it to prevent the Warewolf Server Service to need a double restart.
        /// </summary>
        /// <param name="initWorkers">Initilization Workers</param>
        /// <returns>A Task that starts up the Warewolf Server.</returns>
        public Task Run(IEnumerable <IServerLifecycleWorker> initWorkers)
        {
            void OpenCOMStream(INamedPipeClientStreamWrapper clientStreamWrapper)
            {
                _writer.Write("Opening named pipe client stream for COM IPC... ");
                _ipcClient = _ipcClient.GetIpcExecutor(clientStreamWrapper);
                _writer.WriteLine("done.");
            }

            return(Task.Run(LoadPerformanceCounters)
                   .ContinueWith((t) =>
            {
                // ** Perform Moq Installer Actions For Development ( DEBUG config ) **
#if DEBUG
                try
                {
                    var miq = MoqInstallerActionFactory.CreateInstallerActions();
                    miq.ExecuteMoqInstallerActions();
                }
                catch (Exception e)
                {
                    Dev2Logger.Warn("Mocking installer actions for DEBUG config failed to create Warewolf Administrators group and/or to add current user to it [ " + e.Message + " ]", GlobalConstants.WarewolfWarn);
                }
#endif

                try
                {
                    foreach (var worker in initWorkers)
                    {
                        worker.Execute();
                    }
                    _loggingProcessMonitor.Start();
                    var loggingServerCheckDelay = Task.Delay(TimeSpan.FromSeconds(300));

                    _loadResources = new LoadResources("Resources", _writer, _startUpDirectory, _startupResourceCatalogFactory);
                    LoadHostSecurityProvider();
                    _loadResources.CheckExampleResources();
                    _loadResources.MigrateOldTests();
                    var webServerConfig = _webServerConfiguration;
                    webServerConfig.Execute();
                    new LoadRuntimeConfigurations(_writer).Execute();
                    OpenCOMStream(null);
                    _loadResources.LoadResourceCatalog();
                    _timer = new Timer((state) => GetComputerNames.GetComputerNamesList(), null, 1000, GlobalConstants.NetworkComputerNameQueryFreq);
                    _loadResources.LoadServerWorkspace();
                    _loadResources.LoadActivityCache(_assemblyLoader);
                    LoadTestCatalog();
                    LoadTriggersCatalog();

                    _startWebServer.Execute(webServerConfig, _pauseHelper);
                    _queueProcessMonitor.Start();

                    _hangfireServerMonitor.Start();

                    var checkLogServerConnectionTask = CheckLogServerConnection();
                    var result = Task.WaitAny(new [] { checkLogServerConnectionTask, loggingServerCheckDelay });
                    var isConnectedOkay = !checkLogServerConnectionTask.IsCanceled && !checkLogServerConnectionTask.IsFaulted && checkLogServerConnectionTask.Result == true;
                    var logServerConnectedOkayNoTimeout = result == 0 && isConnectedOkay;
                    if (!logServerConnectedOkayNoTimeout)
                    {
                        _writer.WriteLine("unable to connect to logging server");
                        if (checkLogServerConnectionTask.IsFaulted)
                        {
                            _writer.WriteLine("error: " + checkLogServerConnectionTask.Exception?.Message);
                        }
                        Stop(false, 0, true);
                    }

                    LogWarewolfVersion();
                    if (EnvironmentVariables.IsServerOnline)
                    {
                        SetAsStarted();
                    }
                }
                catch (Exception e)
                {
#pragma warning disable S2228 // Console logging should not be used
                    Console.WriteLine(e);
#pragma warning restore S2228 // Console logging should not be used
                    Dev2Logger.Error("Error Starting Server", e, GlobalConstants.WarewolfError);
                    Stop(true, 0, false);
                }
            }));
        }
        void AddAdministratorsToWarewolfGroup()
        {
            var wso = MoqInstallerActionFactory.CreateSecurityOperationsObject();

            wso.AddAdministratorsGroupToWarewolf();
        }