Exemplo n.º 1
0
        private int HandleFileOptions(string fileType, string fileName, eVerboseLevel verboseLevel)
        {
            try
            {
                SetVerboseLevel(verboseLevel);
                Reporter.ToLog(eLogLevel.INFO, string.Format("Running with " + fileType + " file = '{0}'", fileName));
                switch (fileType)
                {
                case "config":
                    mCLIHandler = new CLIConfigFile();
                    break;

                case "dynamic":
                    if (Path.GetExtension(fileName).ToLower() == ".xml")
                    {
                        mCLIHandler = new CLIDynamicFile(CLIDynamicFile.eFileType.XML);
                    }
                    else if (Path.GetExtension(fileName).ToLower() == ".json")
                    {
                        mCLIHandler = new CLIDynamicFile(CLIDynamicFile.eFileType.JSON);
                    }
                    else
                    {
                        Reporter.ToLog(eLogLevel.ERROR, string.Format("Dynamic file type is not supported, file path: '{0}'", fileName));
                        Environment.ExitCode = 1;     //failure
                        return(Environment.ExitCode);
                    }
                    break;

                case "script":
                    mCLIHandler = new CLIScriptFile();
                    break;
                }

                string fileContent = ReadFile(fileName);
                mCLIHandler.LoadGeneralConfigurations(fileContent, mCLIHelper);

                if (fileType == "config" || fileType == "dynamic")  // not needed for script
                {
                    if (!CLILoadAndPrepare(runsetConfigs: fileContent))
                    {
                        Reporter.ToLog(eLogLevel.WARN, "Issue occured while doing CLI Load and Prepare so aborting execution");
                        Environment.ExitCode = 1;
                        return(Environment.ExitCode);
                    }
                }

                ExecuteRunSet();

                return(Environment.ExitCode);
            }
            catch (Exception ex)
            {
                Reporter.ToLog(eLogLevel.ERROR, "Exception occured while Handling File Option", ex);
                Environment.ExitCode = 1;
                return(1);//error
            }
        }
Exemplo n.º 2
0
        private async Task <int> HandleRunOptions(RunOptions runOptions)
        {
            WorkSpace.Instance.GingerCLIMode = eGingerCLIMode.run;
            SetVerboseLevel(runOptions.VerboseLevel);

            Reporter.ToLog(eLogLevel.INFO, string.Format("######## Starting Automatic {0} Execution Process ########", GingerDicser.GetTermResValue(eTermResKey.RunSet)));
            Reporter.ToLog(eLogLevel.INFO, string.Format("Parsing {0} execution arguments...", GingerDicser.GetTermResValue(eTermResKey.RunSet)));
            Reporter.ToLog(eLogLevel.INFO, $"Solution: '{runOptions.Solution}'");
            Reporter.ToLog(eLogLevel.INFO, $"Runset: '{runOptions.Runset}'");
            Reporter.ToLog(eLogLevel.INFO, $"Environment: '{runOptions.Environment}'");
            Reporter.ToLog(eLogLevel.INFO, "Loading Configurations...");

            mCLIHandler         = new CLIArgs();
            mCLIHelper.Solution = runOptions.Solution;
            mCLIHelper.SetEncryptionKey(runOptions.EncryptionKey);
            mCLIHelper.Runset              = runOptions.Runset;
            mCLIHelper.Env                 = runOptions.Environment;
            mCLIHelper.RunAnalyzer         = !runOptions.DoNotAnalyze;
            mCLIHelper.ShowAutoRunWindow   = runOptions.ShowUI;
            mCLIHelper.TestArtifactsFolder = runOptions.TestArtifactsPath;

            mCLIHelper.SourceControlURL           = runOptions.URL;
            mCLIHelper.SourcecontrolUser          = runOptions.User;
            mCLIHelper.sourceControlType          = runOptions.SCMType;
            mCLIHelper.sourceControlPass          = runOptions.Pass;
            mCLIHelper.sourceControlPassEncrypted = runOptions.PasswordEncrypted;
            mCLIHelper.SourceControlProxyServer(runOptions.SourceControlProxyServer);
            mCLIHelper.SourceControlProxyPort(runOptions.SourceControlProxyPort);
            mCLIHelper.SelfHealingCheckInConfigured = runOptions.SelfHealingCheckInConfigured;

            if (!string.IsNullOrEmpty(runOptions.RunSetExecutionId))
            {
                if (!Guid.TryParse(runOptions.RunSetExecutionId, out Guid temp))
                {
                    Reporter.ToLog(eLogLevel.ERROR, string.Format("The provided ExecutionID '{0}' is not valid.", runOptions.RunSetExecutionId));
                    Environment.ExitCode = 1;
                    return(Environment.ExitCode);
                }
                else
                {
                    mCLIHelper.ExecutionId = runOptions.RunSetExecutionId;
                    Reporter.ToLog(eLogLevel.INFO, string.Format("Using provided ExecutionID '{0}'.", mCLIHelper.ExecutionId.ToString()));
                }
            }

            if (WorkSpace.Instance.UserProfile == null)
            {
                WorkSpace.Instance.UserProfile = new UserProfile();
                UserProfileOperations userProfileOperations = new UserProfileOperations(WorkSpace.Instance.UserProfile);
                WorkSpace.Instance.UserProfile.UserProfileOperations = userProfileOperations;
            }
            WorkSpace.Instance.UserProfile.SourceControlURL  = runOptions.URL;
            WorkSpace.Instance.UserProfile.SourceControlUser = runOptions.User;
            WorkSpace.Instance.UserProfile.SourceControlType = runOptions.SCMType;
            WorkSpace.Instance.UserProfile.UserProfileOperations.SourceControlIgnoreCertificate = runOptions.ignoreCertificate;
            WorkSpace.Instance.UserProfile.UserProfileOperations.SourceControlUseShellClient    = runOptions.useScmShell;



            WorkSpace.Instance.UserProfile.EncryptedSourceControlPass = runOptions.Pass;
            WorkSpace.Instance.UserProfile.SourceControlPass          = runOptions.Pass;
            if (runOptions.PasswordEncrypted)
            {
                mCLIHandler.LoadGeneralConfigurations("", mCLIHelper);
            }


            WorkSpace.Instance.RunningInExecutionMode = true;
            if (!CLILoadAndPrepare())
            {
                Reporter.ToLog(eLogLevel.WARN, "Issue occured while doing CLI Load and Prepare so aborting execution");
                Environment.ExitCode = 1;
                return(Environment.ExitCode);
            }

            await ExecuteRunSet();

            mCLIHelper.PostExecution();

            return(Environment.ExitCode);
        }