private TFS.Common.WorkflowConfig.AssociatedLabEnvironment ConvertLabEnvironment(LabEnvironment env)
        {
            var ale = new LabWorkflowManager.TFS.Common.WorkflowConfig.AssociatedLabEnvironment();
            ale.Uri = env.Uri.ToString();
            ale.Name = env.Name;
            ale.Snapshots = env.QueryLabEnvironmentSnapshots().Select(o => o.Name).ToList();
            ale.Roles = env.LabSystems.Select(ls => ls.Roles).ToList();

            return ale;
        }
Example #2
0
        private static void Main(string[] args)
        {
            _logger.LogInformation($"Iniciando -> Consumer");

            LabEnvironment LAB_ENVIRONMENT = Environment
                                             .GetEnvironmentVariable(nameof(LAB_ENVIRONMENT))
                                             .ToEnum <LabEnvironment>();

            switch (LAB_ENVIRONMENT)
            {
            case LabEnvironment.Development:
                _logger.LogInformation($"Ambiente de desenvolvimento");
                break;

            case LabEnvironment.Testing:
                _logger.LogInformation($"Ambiente de testes");
                break;

            case LabEnvironment.Staging:
                _logger.LogInformation($"Ambiente de pré produção");
                break;

            case LabEnvironment.Production:
                _logger.LogInformation($"Ambiente de produção");
                break;

            case LabEnvironment.Unset:
            default:
                _logger.LogInformation($"Ambiente não definido");
                break;
            }

            StartConsumer("queueTest");

            while (true)
            {
                System.Threading.Thread.Sleep(100);
            }

            //_logger.LogInformation($"Finalizando -> Consumer");
        }
Example #3
0
        /// <summary>
        /// Cria o novo ambiente de Lab
        /// </summary>
        /// <param name="labService"></param>
        /// <param name="runAsInteractive"></param>
        /// <param name="environmentName"></param>
        /// <param name="testController"></param>
        /// <param name="tfsProjectName"></param>
        /// <param name="envMachineName"></param>
        /// <param name="envMachineRoles"></param>
        /// <param name="credentials"></param>
        private void CreateNewLabEnvironment(LabService labService, bool runAsInteractive, string environmentName, string testController, string tfsProjectName,
                                             string envMachineName, string envMachineRoles, System.Net.NetworkCredential credentials)
        {
            Console.WriteLine("Criando o novo ambiente lab '" + environmentName + "'.");

            #region Parametrização e Criação do ambiente de Lab

            LabSystemDefinition      labSystemDefinition      = new LabSystemDefinition(envMachineName, envMachineName, envMachineRoles);
            LabEnvironmentDefinition labEnvironmentDefinition = new LabEnvironmentDefinition(environmentName, environmentName, new List <LabSystemDefinition>()
            {
                labSystemDefinition
            });

            if (runAsInteractive)
            {
                labEnvironmentDefinition.CodedUIRole     = envMachineRoles;
                labEnvironmentDefinition.CodedUIUserName = String.Format("{0}\\{1}", credentials.Domain, credentials.UserName);
            }

            labEnvironmentDefinition.TestControllerName = testController;

            LabEnvironment newEnvironment = labService.CreateLabEnvironment(tfsProjectName, labEnvironmentDefinition, null, null);

            AccountInformation admin   = new AccountInformation(credentials.Domain, credentials.UserName, credentials.SecurePassword);
            AccountInformation process = null;

            if (runAsInteractive)
            {
                process = new AccountInformation(credentials.Domain, credentials.UserName, credentials.SecurePassword);
            }
            #endregion

            #region Instalação do test agent
            // Primeira Máquina virtual. para efeito de Demo usando apenas uma máquina.
            // deve-se alterar para procesar várias máquinas
            LabSystem themachine = newEnvironment.LabSystems[0];

            //Instala o agente
            themachine.InstallTestAgent(admin, process);
            #endregion

            #region Aguarda o ambiente ficar em estado PRONTO
            while (newEnvironment.StatusInfo.State != LabEnvironmentState.Ready && newEnvironment.StatusInfo.FailureReason == null)
            {
                Console.WriteLine(String.Format("Status da criação: {0}", newEnvironment.StatusInfo.State));

                foreach (var sm in themachine.StatusMessages)
                {
                    Console.WriteLine(sm.Message);
                }

                System.Threading.Thread.Sleep(9000);

                newEnvironment = labService.QueryLabEnvironments(new LabEnvironmentQuerySpec()
                {
                    Project = tfsProjectName
                }).First(f => f.Name == environmentName);
                themachine = newEnvironment.LabSystems[0];
            }
            #endregion
        }