コード例 #1
0
        public void Clean(ICommandExecute commandExecute)
        {
            var commandline = "docker rm -f dev-traefik";

            commandExecute.Command(commandline);
            Thread.Sleep(3000);
        }
コード例 #2
0
ファイル: CmdMantis.cs プロジェクト: emallard/ci
        public void CleanMantisNoTls(ICommandExecute execute)
        {
            var commandline = "docker rm -f dev-mantis";

            execute.Command(commandline);
            Thread.Sleep(3000);
        }
コード例 #3
0
        public void CleanVaultNoTls(ICommandExecute execute)
        {
            var commandline = "docker rm -f dev-vault";

            execute.Command(commandline);
            Thread.Sleep(3000);
        }
コード例 #4
0
ファイル: CmdMantis.cs プロジェクト: emallard/ci
        public void InstallMantisTls(ICommandExecute execute)
        {
            // get dockerfile from git

            var volumes     = "";
            var env         = "";
            var commandline = "docker run -d " + env + volumes + " -p 8200:8200 --name=dev-mantis vimagick/mantisbt";

            Console.WriteLine(commandline);
            execute.Command(commandline);
        }
コード例 #5
0
        public void InstallDocker(ICommandExecute execute)
        {
            // How to run sudo commands
            // https://stackoverflow.com/questions/41555597/how-to-run-commands-by-sudo-and-enter-password-by-ssh-net-c-sharp

            var outputInstall = execute.SudoScript(this.script, "installdocker.sh");

            if (execute is ISshClient)
            {
                ((ISshClient)execute).SudoReboot();
            }
        }
コード例 #6
0
        public async Task CloneOrPull(ICommandExecute execute, Uri gitUri, string directory)
        {
            await Task.CompletedTask;
            var cmd = "[ -d \"{directory}\" ] && echo 'Found' || echo 'Not found'";

            if (execute.Command(cmd) == "Not Found")
            {
                Clone(execute, gitUri, directory);
            }
            else
            {
                Pull(execute, directory);
            }
        }
コード例 #7
0
        public void InstallTraefik(ICommandExecute commandExecute, string tomlPath)
        {
            var traefiktoml =
                @"
[api]

[file]
    filename = ""rules.toml""
";
            var traefikTomlFilename = Path.Combine(tomlPath, "traefik.toml");

            commandExecute.WriteFile(traefiktoml, traefikTomlFilename);
            commandExecute.WriteFile("", Path.Combine(tomlPath, "rules.toml"));

            var commandline = "docker run -d -p 8080:8080 -p 80:80 -v " + traefikTomlFilename + ":/etc/traefik/traefik.toml --name=dev-traefik traefik:1.5";

            commandExecute.Command(commandline);
            Thread.Sleep(3000);
        }
コード例 #8
0
        public void Check(ICommandExecute execute)
        {
            StepAssert.Contains("\"initialized\":true,\"sealed\":false", execute.Command("curl http://localhost:8200/v1/sys/health"));

            // login for test user
            var data     = " --data '{\"password\": \"test\"}' ";
            var loginCmd = "curl --request POST " + data + " http://127.0.0.1:8200/v1/auth/userpass/login/test ";

            dynamic loginResponse = JObject.Parse(execute.Command(loginCmd));
            var     token         = (string)loginResponse.auth.client_token;

            StepAssert.IsTrue(!string.IsNullOrWhiteSpace(token));

            /*
             * // Try to read the test value with the test user/password
             * var header = " --header \"X-Vault-Token: " + token + "\" ";
             * var readCmd = "curl " + token + " http://127.0.0.1:8200/v1/secret/test";
             * var readCmdResponse = execute.Command(readCmd);
             * StepAssert.AreEqual("testValue", readCmdResponse);
             */
        }
コード例 #9
0
ファイル: CmdMantis.cs プロジェクト: emallard/ci
 public void Check(ICommandExecute execute)
 {
 }
コード例 #10
0
        public void Check(ICommandExecute commandExecute)
        {
            var cmdResponse = commandExecute.Command("curl -s 127.0.0.1:8080");

            StepAssert.Contains("<a href=\"/dashboard/\">", cmdResponse);
        }
コード例 #11
0
ファイル: RoverManager.cs プロジェクト: hkshambesh/PlutoRover
        public Position Move(Rover rover)
        {
            _commandExecute = _commandFactory.GetCommandHandler(rover.Command.ToString());

            return _commandExecute.ExecuteCommand(rover);
        }
コード例 #12
0
 public myCommand(ICommandExecute onExecuteMethod, ICommandCanExecute onCanExecuteMethod)
 {
     _execute    = onExecuteMethod;
     _canexecute = onCanExecuteMethod;
 }
コード例 #13
0
ファイル: GitCloneOrPull.cs プロジェクト: emallard/ci
 public void SetCommandExecute(ICommandExecute commandExecute)
 {
     this.commandExecute = commandExecute;
 }
コード例 #14
0
 public myCommand(ICommandExecute onExecuteMethod, ICommandCanExecute onCanExecuteMethod)
 {
     _execute = onExecuteMethod;
     _canexecute = onCanExecuteMethod;
 }
コード例 #15
0
        public void Pull(ICommandExecute execute, string directory)
        {
            var cmd = $"git --git-dir=\"{directory}\" pull";

            execute.Command(cmd);
        }
コード例 #16
0
        public void InstallVaultNoTls(ICommandExecute execute, IVaultSealKeys vaultSealKeys)
        {
            var vaultLocalConfig = "{\"backend\":{\"file\":{\"path\":\"/vault/file\"}}, \"listener\":{\"tcp\":{\"address\":\"0.0.0.0:8200\", \"tls_disable\":\"1\"}}}";

            var env =
                " -e 'VAULT_LOCAL_CONFIG=" + vaultLocalConfig + "'"
                + " -e 'VAULT_ADDR=http://127.0.0.1:8200'"
                + " -e 'VAULT_REDIRECT_ADDR=http://127.0.0.1:8201' ";

            var volumes = "";

            //var commandline = "docker run --cap-add=IPC_LOCK -d " + env + " -p 127.0.0.1:8200:8200 --name=dev-vault vault server";
            var commandline = "docker run --cap-add=IPC_LOCK -d " + env + volumes + " -p 8200:8200 --name=dev-vault vault server";

            Console.WriteLine(commandline);
            execute.Command(commandline);

            Thread.Sleep(3000);

            var initResponse = execute.Command("curl --request PUT --data '{\"secret_shares\":5, \"secret_threshold\":3}' http://localhost:8200/v1/sys/init");

            dynamic initResult = JObject.Parse(initResponse);
            //var lines = initResult.Split(new string[]{"\n"}, StringSplitOptions.RemoveEmptyEntries);

            //var sealkeysLines = lines.Where(l => l.StartsWith("Unseal Key")).ToList();
            //var sealkeys = sealkeysLines.Select(s => s.Substring("Unseal Key 1: ".Length)).ToList();

            var sealkeys = new List <string>();

            for (var i = 0; i < 5; ++i)
            {
                sealkeys.Add((string)initResult.keys[i]);
            }
            vaultSealKeys.SetSealKeys(sealkeys);

            //var rootTokenLine = lines.First(l => l.StartsWith("Initial Root Token: "));
            //var rootToken = rootTokenLine.Substring("Initial Root Token: ".Length);

            var rootToken = (string)initResult.root_token;

            vaultSealKeys.SetRootToken(rootToken);

            string unseal = "";

            for (var i = 0; i < 3; ++i)
            {
                //var cmd = "docker exec dev-vault vault operator unseal " + sealkeys[i];
                var key = sealkeys[i];
                unseal = execute.Command("curl --request PUT --data '{\"key\": \"" + key + "\"}' http://localhost:8200/v1/sys/unseal");
            }

            var header = " --header \"X-Vault-Token: " + rootToken + "\" ";


            // create a test user password
            var data          = " --data '{\"type\": \"userpass\", \"description\": \"Login with user password\"}' ";
            var enableAuthCmd = "curl " + header + " --request PUT " + data + " http://127.0.0.1:8200/v1/sys/auth/userpass ";

            Console.WriteLine(enableAuthCmd);
            var enableAuthResponse = execute.Command(enableAuthCmd);


            var capabilities = "capabilities = [\\\"create\\\", \\\"read\\\", \\\"update\\\", \\\"delete\\\", \\\"list\\\"]";

            data = " --data '{\"policy\": \"path \\\"secret/test\\\" { " + capabilities + " }\"}' ";
            var policyCmd = "curl " + header + " --request PUT " + data + " http://127.0.0.1:8200/v1/sys/policy/test-policy ";

            Console.WriteLine(policyCmd);
            var policyResponse = execute.Command(policyCmd);

            data = " --data '{\"password\": \"test\", \"policies\": \"test-policy\" }' ";
            var userCmd = "curl " + header + " --request POST " + data + " http://127.0.0.1:8200/v1/auth/userpass/users/test ";

            Console.WriteLine(userCmd);
            execute.Command(userCmd);
        }
コード例 #17
0
 public void Build(ICommandExecute execute, string directory)
 {
     execute.Command("docker build " + directory);
 }
コード例 #18
0
        public void Clone(ICommandExecute execute, Uri gitUri, string directory)
        {
            var cmd = "git clone " + "\"" + gitUri.ToString() + "\" \"" + directory + "\"";

            execute.Command(cmd);
        }