Skip to content

Commit 403bf8a

Browse files
committed
delete agent queue
1 parent b549ac7 commit 403bf8a

File tree

4 files changed

+26
-64
lines changed

4 files changed

+26
-64
lines changed

core/src/main/java/com/flowci/core/agent/event/CreateAgentEvent.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

core/src/main/java/com/flowci/core/agent/service/AgentHostServiceImpl.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.flowci.core.agent.domain.SshAgentHost;
2424
import com.flowci.core.agent.event.AgentCreatedEvent;
2525
import com.flowci.core.agent.event.AgentHostStatusEvent;
26-
import com.flowci.core.agent.event.CreateAgentEvent;
2726
import com.flowci.core.common.config.AppProperties;
2827
import com.flowci.core.common.helper.CacheHelper;
2928
import com.flowci.core.common.manager.SpringEventManager;
@@ -114,6 +113,9 @@ public class AgentHostServiceImpl implements AgentHostService {
114113
@Autowired
115114
private DockerManager dockerManager;
116115

116+
@Autowired
117+
private AgentService agentService;
118+
117119
{
118120
mapping.put(LocalUnixAgentHost.class, new OnLocalSocketHostCreate());
119121
mapping.put(SshAgentHost.class, new OnSshHostCreate());
@@ -247,26 +249,26 @@ public boolean start(AgentHost host) {
247249
log.warn("Unable to restart agent {}", agent.getName());
248250

249251
//TODO: send notification
250-
agentDao.deleteById(agent.getId());
252+
agentService.delete(agent);
251253
agents.remove(agent);
252254
}
253255
}
254256

255257
// create new agent
256258
if (agents.size() < host.getMaxSize()) {
257259
String name = String.format("%s-%s", host.getName(), StringHelper.randomString(5));
258-
CreateAgentEvent syncEvent =
259-
eventManager.publish(new CreateAgentEvent(this, name, host.getTags(), host.getId()));
260-
261-
Agent agent = syncEvent.getFetched();
262-
eventManager.publish(new AgentCreatedEvent(this, agent, host));
263-
260+
Agent agent = null;
264261
try {
262+
agent = agentService.create(name, host.getTags(), Optional.of(host.getId()));
265263
cm.start(buildStartOption(agent));
264+
eventManager.publish(new AgentCreatedEvent(this, agent, host));
266265
log.info("Agent {} been created and started", name);
267266
return true;
268267
} catch (Exception e) {
269-
log.warn("Unable to start created agent {}, since {}", agent.getName(), e.getMessage());
268+
if (agent != null) {
269+
agentService.delete(agent);
270+
log.warn("Unable to start created agent {}, since {}", agent.getName(), e.getMessage());
271+
}
270272
return false;
271273
}
272274
}
@@ -368,8 +370,6 @@ public void onNoIdleAgent(NoIdleAgentEvent event) {
368370
return;
369371
}
370372
}
371-
372-
log.info("Unable to start agent from hosts");
373373
}
374374

375375
//====================================================================

core/src/main/java/com/flowci/core/agent/service/AgentService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ public interface AgentService {
7878
*/
7979
Agent delete(String token);
8080

81+
/**
82+
* Delete agent by object
83+
*/
84+
void delete(Agent agent);
85+
8186
/**
8287
* Set agent tags by token
8388
*/

core/src/main/java/com/flowci/core/agent/service/AgentServiceImpl.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import com.flowci.core.agent.domain.CmdIn;
2424
import com.flowci.core.agent.event.AgentStatusEvent;
2525
import com.flowci.core.agent.event.CmdSentEvent;
26-
import com.flowci.core.agent.event.CreateAgentEvent;
2726
import com.flowci.core.common.config.AppProperties;
2827
import com.flowci.core.common.helper.CipherHelper;
2928
import com.flowci.core.common.helper.ThreadHelper;
@@ -168,10 +167,10 @@ public String getPath(Agent agent) {
168167
public List<Agent> find(Status status, Set<String> tags) {
169168
List<Agent> agents;
170169

171-
if (Objects.isNull(tags) || tags.isEmpty()) {
172-
agents = agentDao.findAllByStatus(status);
173-
} else {
170+
if (ObjectsHelper.hasCollection(tags)) {
174171
agents = agentDao.findAllByStatusAndTagsIn(status, tags);
172+
} else {
173+
agents = agentDao.findAllByStatus(status);
175174
}
176175

177176
return agents;
@@ -180,9 +179,15 @@ public List<Agent> find(Status status, Set<String> tags) {
180179
@Override
181180
public Agent delete(String token) {
182181
Agent agent = getByToken(token);
182+
delete(agent);
183+
return agent;
184+
}
185+
186+
@Override
187+
public void delete(Agent agent) {
183188
agentDao.delete(agent);
189+
agentQueueManager.delete(agent.getQueueName());
184190
log.debug("{} has been deleted", agent);
185-
return agent;
186191
}
187192

188193
@Override
@@ -324,12 +329,6 @@ public void dispatch(CmdIn cmd, Agent agent) {
324329
// %% Spring Event Listener
325330
//====================================================================
326331

327-
@EventListener
328-
public void onCreateAgentEvent(CreateAgentEvent event) {
329-
Agent agent = this.create(event.getName(), event.getTags(), Optional.of(event.getHostId()));
330-
event.setFetched(agent);
331-
}
332-
333332
@EventListener
334333
public void notifyToFindAvailableAgent(AgentStatusEvent event) {
335334
Agent agent = event.getAgent();

0 commit comments

Comments
 (0)