public string RegisterHarvester(List <string> args) { string type = args[0]; string id = args[1]; double oreOutput = double.Parse(args[2]); double energyRequirement = double.Parse(args[3]); Harvester harvester = null; int sonicFactor = 0; string result = string.Empty; try { IOManager.IsRegisterHarvesterValid(type, id, oreOutput, energyRequirement, sonicFactor); if (type == "Sonic") { sonicFactor = int.Parse(args[4]); } harvester = HarvesterFactory.GetHarvester(type, id, oreOutput, energyRequirement, sonicFactor); result = $"Successfully registered {type} Harvester - {id}"; harvesters.Add(harvester); } catch (Exception e) { result = e.Message; } return(result); }
public static ConDepExecutionResult ExecuteFromAssembly(ConDepSettings conDepSettings, CancellationToken token) { try { if (conDepSettings.Options.Assembly == null) { throw new ArgumentException("assembly"); } var lbLookup = new LoadBalancerLookup(conDepSettings.Config.LoadBalancer); var runbookConfigurationHandler = new RunbookConfigurationHandler(new RunbookHandler(), new RunbookDependencyHandler(), lbLookup.GetLoadBalancer()); //var sequenceManager = artifactConfigHandler.CreateExecutionSequence(conDepSettings); var clientValidator = new ClientValidator(); var serverInfoHarvester = HarvesterFactory.GetHarvester(conDepSettings); var serverValidator = new RemoteServerValidator(conDepSettings.Config.Servers, serverInfoHarvester, new PowerShellExecutor()); //if (conDepSettings.Options.DryRun) //{ // Logger.Warn("Showing execution sequence from dry run:"); // sequenceManager.DryRun(conDepSettings); // return new ConDepExecutionResult(true); //} return(new ConDepConfigurationExecutor().Execute(conDepSettings, clientValidator, serverValidator, runbookConfigurationHandler.GetRunbooksToExecute(conDepSettings), new ServerHandler(), token)); } catch (Exception ex) { Logger.Error("An error sneaked by.", ex); throw; } }
public override Result Execute(ConDepSettings settings, CancellationToken token) { LoadOptionsFromConfig(settings); ValidateMandatoryOptions(_options); var starter = new Ec2Starter(_options, settings); var ec2instances = starter.Start(); var instances = new List <Ec2Instance>(); var servers = new List <ServerConfig>(); foreach (var instance in ec2instances) { instances.Add(instance); var server = new ServerConfig { DeploymentUser = new DeploymentUserConfig { UserName = instance.UserName, Password = instance.Password }, Name = instance.ManagementAddress, PowerShell = new PowerShellConfig() { HttpPort = 5985, HttpsPort = 5986 }, Node = new NodeConfig() { Port = 4444, TimeoutInSeconds = 100 } }; settings.Config.Servers.Add(server); servers.Add(server); } Logger.Verbose("Waiting for WinRM to succeed"); foreach (var server in servers) { Logger.Verbose($"Waiting for WinRM to succeed on {server.Name}"); WaitForWinRm(WaitForStatus.Success, server); } var serverValidator = new RemoteServerValidator(servers, HarvesterFactory.GetHarvester(settings), new PowerShellExecutor()); if (!serverValidator.Validate()) { throw new ConDepValidationException("Not all servers fulfill ConDep's requirements. Aborting execution."); } ConDepConfigurationExecutor.ExecutePreOps(settings, token); var result = Result.SuccessChanged(); result.Data.Instances = instances; return(result); }
public string RegisterHarvester(List <string> arguments) { try { this.harvesters.Add(HarvesterFactory.GetHarvester(arguments)); return($"Successfully registered {arguments[0]} Harvester - {arguments[1]}"); } catch (Exception ex) { return(ex.Message); } }
public string RegisterHarvester(List <string> arguments) { try { var currentHarvester = HarvesterFactory.GetHarvester(arguments); harvesters.Add(currentHarvester); return(currentHarvester.ToString()); } catch (Exception e) { return(e.Message); } }
public string RegisterHarvester(List <string> arguments) { try { var harvester = HarvesterFactory.GetHarvester(arguments); this.harvesters[harvester.Id] = harvester; return($"Successfully registered {arguments[0]} Harvester - {harvester.Id}"); } catch (ArgumentException e) { return(e.Message); } }
public override Result Execute(ConDepSettings settings, CancellationToken token) { var client = GetAwsClient(settings, _awsOptions); var searchFilter = GetSearchFilters(_tags).ToList(); var request = new DescribeInstancesRequest { Filters = searchFilter }; var response = client.DescribeInstances(request); var resultInstances = new List <dynamic>(); foreach (var reservation in response.Reservations) { foreach (var instance in reservation.Instances.Where(x => x.State.Name == "Running")) { var serverAddress = GetManagementAddress(_awsOptions.RemoteManagementAddressType, instance); resultInstances.Add(new { Server = serverAddress }); settings.Config.AddServer(serverAddress); } } var serverInfoHarvester = HarvesterFactory.GetHarvester(settings); var serverValidator = new RemoteServerValidator(settings.Config.Servers, serverInfoHarvester, new PowerShellExecutor()); if (!serverValidator.Validate()) { throw new ConDepValidationException("Not all servers fulfill ConDep's requirements. Aborting execution."); } ConDepConfigurationExecutor.ExecutePreOps(settings, token); var result = Result.SuccessUnChanged(); result.Data.Instances = resultInstances; result.Data.HttpStatusCode = response.HttpStatusCode; return(result); }
public string RegisterHarvester(List <string> arguments) { var factory = new HarvesterFactory(); Harvester harvester = factory.GetHarvester(arguments); var typeOfHarvester = arguments[0]; var idOfHarvester = arguments[1]; if (!harvesters.ContainsKey(idOfHarvester)) { harvesters[idOfHarvester] = harvester; return($"Successfully registered {typeOfHarvester} Harvester - {idOfHarvester}"); } return("Harvester is not registered, because of it's Id"); //var result = ""; //var typeOfHarvester = arguments[0]; //var idOfHarvester = arguments[1]; //var oreOutput = double.Parse(arguments[2]); //var energyRequirement = double.Parse(arguments[3]); //switch (typeOfHarvester) //{ // case "Sonic": // var sonicFactor = int.Parse(arguments[4]); // Harvester sonicHarvester = new SonicHarvester(idOfHarvester, oreOutput, energyRequirement, sonicFactor); // this.harvesters[idOfHarvester] = sonicHarvester; // result = $"Successfully registered {typeOfHarvester} Harvester - {idOfHarvester}"; // break; // case "Hammer": // Harvester hammeHarvester = new HammerHarvester(idOfHarvester, oreOutput, energyRequirement); // this.harvesters[idOfHarvester] = hammeHarvester; // result = $"Successfully registered {typeOfHarvester} Harvester - {idOfHarvester}"; // break; //} //return result; }