Skip to content

Commit b1f8ebc

Browse files
authored
Merge pull request #336 from FlowCI/feature/1420
Feature/1420
2 parents 179ecf2 + f2fd883 commit b1f8ebc

File tree

129 files changed

+1983
-1482
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+1983
-1482
lines changed

core/src/main/java/com/flowci/core/agent/config/AgentConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.flowci.core.agent.config;
1818

19-
import com.flowci.core.common.config.ConfigProperties;
19+
import com.flowci.core.common.config.AppProperties;
2020
import com.flowci.core.common.domain.Variables.App;
2121
import com.flowci.core.common.helper.ThreadHelper;
2222
import com.flowci.domain.Settings;
@@ -39,10 +39,10 @@ public class AgentConfig {
3939
private Environment env;
4040

4141
@Autowired
42-
private ConfigProperties.Zookeeper zkProperties;
42+
private AppProperties.Zookeeper zkProperties;
4343

4444
@Autowired
45-
private ConfigProperties.RabbitMQ rabbitProperties;
45+
private AppProperties.RabbitMQ rabbitProperties;
4646

4747
@Bean("baseSettings")
4848
public Settings baseSettings() {

core/src/main/java/com/flowci/core/agent/dao/AgentHostDao.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,14 @@
1616

1717
package com.flowci.core.agent.dao;
1818

19+
import com.flowci.core.agent.domain.AgentHost;
1920
import org.springframework.data.mongodb.repository.MongoRepository;
2021
import org.springframework.stereotype.Repository;
2122

2223
import java.util.List;
2324
import java.util.Optional;
2425
import java.util.Set;
2526

26-
import com.flowci.core.agent.domain.AgentHost;
27-
2827
@Repository
2928
public interface AgentHostDao extends MongoRepository<AgentHost, String> {
3029

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

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,23 @@
1616

1717
package com.flowci.core.agent.event;
1818

19-
import com.flowci.core.common.domain.SyncEvent;
19+
import com.flowci.core.common.event.AbstractSyncEvent;
2020
import com.flowci.domain.Agent;
2121
import lombok.Getter;
2222
import lombok.Setter;
23-
import org.springframework.context.ApplicationEvent;
2423

2524
import java.util.Set;
2625

2726
@Getter
2827
@Setter
29-
public class CreateAgentEvent extends ApplicationEvent implements SyncEvent {
28+
public class CreateAgentEvent extends AbstractSyncEvent<Agent> {
3029

3130
private final String name;
3231

3332
private final Set<String> tags;
3433

3534
private final String hostId;
3635

37-
private Agent created;
38-
3936
public CreateAgentEvent(Object source, String name, Set<String> tags, String hostId) {
4037
super(source);
4138
this.name = name;

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

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,8 @@
2424
import com.flowci.core.agent.event.AgentCreatedEvent;
2525
import com.flowci.core.agent.event.AgentHostStatusEvent;
2626
import com.flowci.core.agent.event.CreateAgentEvent;
27-
import com.flowci.core.common.config.ConfigProperties;
27+
import com.flowci.core.common.config.AppProperties;
2828
import com.flowci.core.common.helper.CacheHelper;
29-
import com.flowci.core.common.manager.SessionManager;
3029
import com.flowci.core.common.manager.SpringEventManager;
3130
import com.flowci.core.secret.domain.RSASecret;
3231
import com.flowci.core.secret.domain.Secret;
@@ -50,6 +49,7 @@
5049
import com.github.benmanes.caffeine.cache.Cache;
5150
import com.github.benmanes.caffeine.cache.RemovalCause;
5251
import com.github.benmanes.caffeine.cache.RemovalListener;
52+
import com.github.dockerjava.api.DockerClient;
5353
import com.google.common.base.Preconditions;
5454
import lombok.AllArgsConstructor;
5555
import lombok.extern.log4j.Log4j2;
@@ -82,7 +82,7 @@ public class AgentHostServiceImpl implements AgentHostService {
8282
private String collectTaskZkPath;
8383

8484
@Autowired
85-
private ConfigProperties appProperties;
85+
private AppProperties appProperties;
8686

8787
@Autowired
8888
private String serverUrl;
@@ -97,13 +97,13 @@ public class AgentHostServiceImpl implements AgentHostService {
9797
private SpringEventManager eventManager;
9898

9999
@Autowired
100-
private SessionManager sessionManager;
100+
private ZookeeperClient zk;
101101

102102
@Autowired
103-
private ZookeeperClient zk;
103+
private DockerClient dockerClient;
104104

105105
@Autowired
106-
private ConfigProperties.Zookeeper zkProperties;
106+
private AppProperties.Zookeeper zkProperties;
107107

108108
@Autowired
109109
private ThreadPoolTaskExecutor agentHostExecutor;
@@ -228,10 +228,10 @@ public boolean start(AgentHost host) {
228228
// create new agent
229229
if (agents.size() < host.getMaxSize()) {
230230
String name = String.format("%s-%s", host.getName(), StringHelper.randomString(5));
231-
CreateAgentEvent syncEvent = new CreateAgentEvent(this, name, host.getTags(), host.getId());
232-
eventManager.publish(syncEvent);
231+
CreateAgentEvent syncEvent =
232+
eventManager.publish(new CreateAgentEvent(this, name, host.getTags(), host.getId()));
233233

234-
Agent agent = syncEvent.getCreated();
234+
Agent agent = syncEvent.getFetched();
235235
eventManager.publish(new AgentCreatedEvent(this, agent, host));
236236

237237
StartContext context = new StartContext();
@@ -539,7 +539,11 @@ public void create(AgentHost host) {
539539
@Override
540540
public PoolManager<?> init(AgentHost host) throws Exception {
541541
PoolManager<SocketInitContext> poolManager = new SocketPoolManager();
542-
poolManager.init(new SocketInitContext());
542+
543+
SocketInitContext context = new SocketInitContext();
544+
context.setClient(dockerClient);
545+
546+
poolManager.init(context);
543547
return poolManager;
544548
}
545549

@@ -571,7 +575,7 @@ public PoolManager<?> init(AgentHost host) throws Exception {
571575
GetSecretEvent event = new GetSecretEvent(this, sshHost.getSecret());
572576
eventManager.publish(event);
573577

574-
Secret c = event.getSecret();
578+
Secret c = event.getFetched();
575579
Preconditions.checkArgument(c != null, "Secret not found");
576580
Preconditions.checkArgument(c.getCategory() == SSH_RSA, "Invalid credential category");
577581

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import com.flowci.core.agent.event.AgentStatusEvent;
2424
import com.flowci.core.agent.event.CmdSentEvent;
2525
import com.flowci.core.agent.event.CreateAgentEvent;
26-
import com.flowci.core.common.config.ConfigProperties;
26+
import com.flowci.core.common.config.AppProperties;
2727
import com.flowci.core.common.helper.CipherHelper;
2828
import com.flowci.core.common.helper.ThreadHelper;
2929
import com.flowci.core.common.manager.SpringEventManager;
@@ -75,7 +75,7 @@ public class AgentServiceImpl implements AgentService {
7575
private static final long RetryIntervalOnNotFound = 10 * 1000; // 10 seconds
7676

7777
@Autowired
78-
private ConfigProperties.Zookeeper zkProperties;
78+
private AppProperties.Zookeeper zkProperties;
7979

8080
@Autowired
8181
private ZookeeperClient zk;
@@ -329,7 +329,7 @@ public void dispatch(CmdIn cmd, Agent agent) {
329329
@EventListener
330330
public void onCreateAgentEvent(CreateAgentEvent event) {
331331
Agent agent = this.create(event.getName(), event.getTags(), Optional.of(event.getHostId()));
332-
event.setCreated(agent);
332+
event.setFetched(agent);
333333
}
334334

335335
@EventListener

core/src/main/java/com/flowci/core/api/adviser/ApiAuth.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
import com.flowci.core.agent.service.AgentService;
2020
import com.flowci.exception.AuthenticationException;
21-
import com.flowci.exception.NotFoundException;
2221
import com.flowci.util.StringHelper;
2322
import org.springframework.beans.factory.annotation.Autowired;
2423
import org.springframework.stereotype.Component;
@@ -33,6 +32,8 @@
3332
@Component("apiAuth")
3433
public class ApiAuth implements HandlerInterceptor {
3534

35+
public static final String LocalTaskToken = "local-task";
36+
3637
private static final String HeaderAgentToken = "AGENT-TOKEN";
3738

3839
@Autowired
@@ -42,8 +43,10 @@ public class ApiAuth implements HandlerInterceptor {
4243
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
4344
String token = request.getHeader(HeaderAgentToken);
4445

45-
if (StringHelper.hasValue(token) && agentService.isExisted(token)) {
46-
return true;
46+
if (StringHelper.hasValue(token)) {
47+
if (agentService.isExisted(token) || token.equals(LocalTaskToken)) {
48+
return true;
49+
}
4750
}
4851

4952
throw new AuthenticationException("Invalid token");

core/src/main/java/com/flowci/core/auth/config/AuthConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.flowci.core.agent.domain.AgentAction;
2020
import com.flowci.core.agent.domain.AgentHostAction;
2121
import com.flowci.core.auth.domain.PermissionMap;
22-
import com.flowci.core.common.config.ConfigProperties;
22+
import com.flowci.core.common.config.AppProperties;
2323
import com.flowci.core.config.domain.ConfigAction;
2424
import com.flowci.core.secret.domain.SecretAction;
2525
import com.flowci.core.flow.domain.FlowAction;
@@ -48,7 +48,7 @@ public class AuthConfig {
4848
private static final long MaxCacheSize = 500;
4949

5050
@Autowired
51-
private ConfigProperties.Auth authProperties;
51+
private AppProperties.Auth authProperties;
5252

5353
@Bean
5454
public Cache onlineUsersCache() {

core/src/main/java/com/flowci/core/auth/service/AuthServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import com.flowci.core.auth.domain.PermissionMap;
2222
import com.flowci.core.auth.domain.Tokens;
2323
import com.flowci.core.auth.helper.JwtHelper;
24-
import com.flowci.core.common.config.ConfigProperties;
24+
import com.flowci.core.common.config.AppProperties;
2525
import com.flowci.core.common.manager.SessionManager;
2626
import com.flowci.core.user.domain.User;
2727
import com.flowci.core.user.service.UserService;
@@ -39,7 +39,7 @@
3939
public class AuthServiceImpl implements AuthService {
4040

4141
@Autowired
42-
private ConfigProperties.Auth authProperties;
42+
private AppProperties.Auth authProperties;
4343

4444
@Autowired
4545
private UserService userService;

core/src/main/java/com/flowci/core/common/config/AppConfig.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package com.flowci.core.common.config;
1818

1919
import com.fasterxml.jackson.databind.ObjectMapper;
20-
import com.flowci.core.common.domain.SyncEvent;
20+
import com.flowci.core.common.event.SyncEvent;
2121
import com.flowci.core.common.helper.JacksonHelper;
2222
import com.flowci.util.FileHelper;
2323
import lombok.extern.log4j.Log4j2;
@@ -34,9 +34,6 @@
3434
import org.springframework.core.ResolvableType;
3535
import org.springframework.core.task.SimpleAsyncTaskExecutor;
3636
import org.springframework.data.mongodb.core.mapping.event.AuditingEventListener;
37-
import org.springframework.data.mongodb.core.mapping.event.BeforeConvertEvent;
38-
import org.springframework.data.mongodb.core.mapping.event.BeforeSaveEvent;
39-
import org.springframework.data.mongodb.core.mapping.event.MongoMappingEvent;
4037
import org.springframework.scheduling.annotation.EnableScheduling;
4138

4239
import javax.annotation.PostConstruct;
@@ -59,7 +56,7 @@ public class AppConfig {
5956
private MultipartProperties multipartProperties;
6057

6158
@Autowired
62-
private ConfigProperties appProperties;
59+
private AppProperties appProperties;
6360

6461
@PostConstruct
6562
private void initWorkspace() throws IOException {

core/src/main/java/com/flowci/core/common/config/ConfigProperties.java renamed to core/src/main/java/com/flowci/core/common/config/AppProperties.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
@Configuration
3939
@ConfigurationProperties(prefix = "app")
4040
@PropertySource("classpath:flow.properties")
41-
public class ConfigProperties {
41+
public class AppProperties {
4242

4343
private Path workspace;
4444

@@ -56,6 +56,8 @@ public class ConfigProperties {
5656

5757
private boolean autoLocalAgentHost;
5858

59+
private boolean defaultSmtpConfig;
60+
5961
@Bean("adminProperties")
6062
@ConfigurationProperties(prefix = "app.admin")
6163
public Admin admin() {
@@ -113,11 +115,11 @@ public static class Admin {
113115
@Data
114116
public static class Job {
115117

116-
private Long timeoutInSeconds; // job execution timeout
118+
private int timeoutInSeconds; // job execution timeout
117119

118-
private Long expireInSeconds; // job queue up timeout
120+
private int expireInSeconds; // job queue up timeout
119121

120-
private Long retryWaitingSeconds;
122+
private int retryWaitingSeconds;
121123
}
122124

123125
@Data

0 commit comments

Comments
 (0)