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; }
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"); }
/// <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 }