public void Create(string agentTypeGuid, int agentServerArtifactId) { _agentTypeArtifactId = _environment.GetArtifactIdFromGuid(agentTypeGuid); _agentServerArtifactId = agentServerArtifactId; _runInterval = _environment.GetAgentRunIntervalByType(_agentTypeArtifactId); _agentName = CreateAgentName(); _agentArtifactTypeId = _environment.GetAgentArtifactType(); _systemContainerId = _environment.GetSystemContainerId(); RunCreateAgentSql(); }
public void Create(string agentTypeGuid, int agentServerArtifactId) { _agentServerArtifactId = agentServerArtifactId; _agentTypeArtifactId = _environment.GetArtifactIdFromGuid(agentTypeGuid); _runInterval = _environment.GetAgentRunIntervalByType(_agentTypeArtifactId); int agentId = ApiCreate().GetAwaiter().GetResult(); if (agentId < 1) { throw new Exception(string.Format("API agent create failed. Returned agent ID: {0}", agentId)); } }
public void Run() { int agentTypeId; int agentToDeleteId; int counter; List <SpotsPerServer> agentsPerServer = new List <SpotsPerServer>(); while (_agentsToDelete.Count > 0) { _logger.LogDebug(string.Format("{0} AgentsDesiredObjects to be deleted", _agentsToDelete.Count)); counter = _agentsToDelete.Count - 1; while (counter >= 0) { _agentsToDelete[counter].Count = Math.Abs(_agentsToDelete[counter].Count); agentTypeId = _environment.GetArtifactIdFromGuid(_agentsToDelete[counter].Guid); agentsPerServer = _environment.GetAgentsPerServerByPool(agentTypeId, _poolId); if (agentsPerServer.Count > 0) { agentsPerServer = agentsPerServer.OrderByDescending(x => x.Spots).ToList(); if (agentsPerServer[0].Spots > 0) { agentToDeleteId = _deleteAgent.GetAgentIdToDelete(agentTypeId, agentsPerServer[0].AgentServerArtifactId); _deleteAgent.Delete(agentToDeleteId); _agentsToDelete[counter].Count -= 1; if (_agentsToDelete[counter].Count < 1) { _agentsToDelete.Remove(_agentsToDelete[counter]); } } else { _agentsToDelete.Remove(_agentsToDelete[counter]); } } else { _agentsToDelete.Remove(_agentsToDelete[counter]); } counter -= 1; } } }
public List <AgentsDesired> Compare() { List <AgentsDesired> outputList = new List <AgentsDesired>(); string logString = ""; int counter = _agentsDesiredList.Count - 1; while (counter >= 0) { //Declaring all of these to variables to make logging easier int currentCount; string agentGuid = _agentsDesiredList[counter].Guid; int agentTypeId = _environment.GetArtifactIdFromGuid(agentGuid); int desiredCount = _agentsDesiredList[counter].Count; //Account for agents Resource Pool policy if (_agentsDesiredList[counter].RespectsResourcePool) { currentCount = _environment.GetAgentCountByPool(agentTypeId, _poolId); } else { currentCount = _environment.GetAgentCount(agentTypeId); } int difference = desiredCount - currentCount; logString += string.Format("AgentGuid: {0}, AgentTypeID {1}, Current Count: {2}, Desired Count: {3} Difference: {4}\r\n", agentGuid, agentTypeId, currentCount, desiredCount, difference); outputList.Add(new AgentsDesired { Guid = _agentsDesiredList[counter].Guid, RespectsResourcePool = _agentsDesiredList[counter].RespectsResourcePool, Count = difference }); counter -= 1; } _logger.LogDebug("Compare output--\r\n" + logString); return(outputList); }