Skip to content

Commit 96a81e1

Browse files
author
yang.guo
authored
Merge pull request #122 from FlowCI/feature/api/domain_properity
Feature/api/domain properity
2 parents 10c89c1 + f76219e commit 96a81e1

File tree

22 files changed

+439
-104
lines changed

22 files changed

+439
-104
lines changed

config/app-api.properties

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## flow api config file ##
2+
3+
### JDBC config ###
4+
jdbc.url = jdbc:mysql://127.0.0.1:3306/flow_api_db?useSSL=false
5+
jdbc.username = db_username
6+
jdbc.password = db_password
7+
jdbc.pool.size = 200
8+
jdbc.commit.auto = false
9+
jdbc.connection.timeout = 20000
10+
11+
### Hibernate config ###
12+
hibernate.show_sql = false
13+
hibernate.hbm2ddl.auto = validate
14+
15+
### api settings ###
16+
api.workspace = ${HOME}/flow-api-data
17+
api.zone.default = default
18+
19+
### expiration duration of token, it's in millisecond ###
20+
### 86400000 = 1000 * 60 * 60 * 24 = 1 day (will expiration after one day) ###
21+
api.user.expire = 86400000
22+
23+
### domain ###
24+
domain.api = http://localhost:8080
25+
domain.web = http://localhost:3000
26+
domain.cc = http://localhost:8080

config/app-cc.properties

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
## for flow control center docker env ##
2+
3+
### jdbc config ###
4+
jdbc.url = jdbc:mysql://127.0.0.1:3306/flow_cc_db?useSSL=false&createDatabaseIfNotExist=true
5+
jdbc.username = root
6+
jdbc.password =
7+
jdbc.pool.size = 10
8+
jdbc.commit.auto = false
9+
jdbc.connection.timeout = 20000
10+
11+
### hibernate config ###
12+
hibernate.show_sql = false
13+
hibernate.hbm2ddl.auto = validate
14+
15+
### zookeeper config ###
16+
zk.server.embedded = true
17+
zk.host = 127.0.0.1:2181
18+
zk.timeout = 30
19+
zk.node.root = flow-agents
20+
21+
# zone names and cloud provider config, ex: a=xxx;b=xxx;c=xxx
22+
zk.node.zone = default
23+
zone.default.agent_session_timeout = 600
24+
zone.default.default_cmd_timeout = 600
25+
26+
### rabbitmq config ###
27+
mq.host = amqp://localhost:5672
28+
mq.management.host = http://localhost:15672
29+
30+
#### cmd queue settings ###
31+
queue.cmd.retry.enable = false
32+
queue.cmd.rabbit.enable = false
33+
queue.cmd.rabbit.name = flow-cmd-queue-default
34+
queue.cmd.idle_agent.timeout = 30
35+
queue.cmd.idle_agent.period = 5
36+
37+
### agent config ###
38+
agent.config.ws = ws://localhost:8088
39+
agent.config.cc = http://localhost:8080
40+
41+
### task toggles ###
42+
task.zone.toggle.keep_idle_agent = false
43+
task.agent.toggle.session_timeout = true
44+
task.cmd.toggle.execution_timeout = true
45+
task.instance.mos.toggle.clean = true
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=${client.version}
1+
version=${agent.version}

platform-api/src/main/java/com/flow/platform/api/config/AppConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ public class AppConfig extends AppConfigBase {
7171
@Value("${api.workspace}")
7272
private String workspace;
7373

74-
@Value("${platform.url}")
75-
private String platFormBaseURL;
74+
@Value("${domain.cc}")
75+
private String ccDomain;
7676

7777
@Bean
7878
public Path workspace() {
@@ -121,7 +121,7 @@ protected String getVersion() {
121121

122122
@Bean
123123
public PlatformURL platformURL() {
124-
PlatformURL platformURL = new PlatformURL(platFormBaseURL);
124+
PlatformURL platformURL = new PlatformURL(ccDomain);
125125
LOGGER.trace(platformURL.toString());
126126
return platformURL;
127127
}

platform-api/src/main/java/com/flow/platform/api/service/AgentServiceImpl.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@
2020
import com.flow.platform.api.domain.AgentWithFlow;
2121
import com.flow.platform.api.domain.job.Job;
2222
import com.flow.platform.api.domain.job.JobStatus;
23-
import com.flow.platform.api.domain.job.NodeResult;
2423
import com.flow.platform.api.domain.job.NodeStatus;
2524
import com.flow.platform.api.events.AgentStatusChangeEvent;
2625
import com.flow.platform.api.service.job.CmdService;
2726
import com.flow.platform.api.service.job.JobService;
28-
import com.flow.platform.api.service.job.NodeResultService;
2927
import com.flow.platform.api.util.PlatformURL;
3028
import com.flow.platform.core.exception.HttpException;
3129
import com.flow.platform.core.exception.IllegalStatusException;
@@ -42,6 +40,7 @@
4240
import com.flow.platform.util.Logger;
4341
import com.flow.platform.util.http.HttpClient;
4442
import com.flow.platform.util.http.HttpResponse;
43+
import com.flow.platform.util.http.HttpURL;
4544
import com.google.common.base.Strings;
4645
import com.google.gson.JsonSyntaxException;
4746
import java.io.UnsupportedEncodingException;
@@ -65,7 +64,7 @@ public class AgentServiceImpl extends ApplicationEventService implements AgentSe
6564

6665
private final int httpRetryTimes = 5;
6766

68-
@Value(value = "${platform.zone}")
67+
@Value(value = "${api.zone.default}")
6968
private String zone;
7069

7170
@Autowired
@@ -80,11 +79,8 @@ public class AgentServiceImpl extends ApplicationEventService implements AgentSe
8079
@Autowired
8180
private JobService jobService;
8281

83-
@Autowired
84-
private NodeResultService nodeResultService;
85-
86-
@Value(value = "${domain}")
87-
private String domain;
82+
@Value(value = "${domain.api}")
83+
private String apiDomain;
8884

8985
@Override
9086
public List<AgentWithFlow> list() {
@@ -209,7 +205,7 @@ public void sendSysCmd(AgentPath agentPath) {
209205
}
210206

211207
private String buildAgentWebhook() {
212-
return domain + "/agents/callback";
208+
return HttpURL.build(apiDomain).append("/agents/callback").toString();
213209
}
214210

215211
/**

platform-api/src/main/java/com/flow/platform/api/service/MessageServiceImpl.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.flow.platform.core.exception.NotFoundException;
3131
import com.flow.platform.util.ExceptionUtil;
3232
import com.flow.platform.util.Logger;
33+
import com.flow.platform.util.http.HttpURL;
3334
import java.io.StringWriter;
3435
import java.time.ZonedDateTime;
3536
import java.util.List;
@@ -178,8 +179,9 @@ private String getEmailSubject(JobStatus jobStatus) {
178179

179180

180181
private String buildEmailTemplate(Job job, JobStatus jobStatus) {
181-
Template template = null;
182182
try {
183+
Template template = null;
184+
183185
if (Job.SUCCESS_STATUS.contains(jobStatus)) {
184186
template = velocityEngine.getTemplate("email/success_email.vm");
185187
}
@@ -188,18 +190,25 @@ private String buildEmailTemplate(Job job, JobStatus jobStatus) {
188190
template = velocityEngine.getTemplate("email/failure_email.vm");
189191
}
190192

193+
final String detailUrl = HttpURL.build(webDomain)
194+
.append("flows")
195+
.append(job.getNodeName())
196+
.append("jobs")
197+
.append(job.getNumber().toString())
198+
.toString();
199+
191200
VelocityContext velocityContext = new VelocityContext();
192201
velocityContext.put("job", job);
193-
velocityContext
194-
.put("detailUrl", String.format("%s/flows/%s/jobs/%s", webDomain, job.getNodeName(), job.getNumber()));
202+
velocityContext.put("detailUrl", detailUrl);
195203
StringWriter stringWriter = new StringWriter();
196204
template.merge(velocityContext, stringWriter);
197205
return stringWriter.toString();
198206

199207
} catch (Throwable e) {
200208
LOGGER.warn("sendMessage", "send message to all member error : %s",
201209
ExceptionUtil.findRootCause(e).getMessage());
210+
211+
return null;
202212
}
203-
return null;
204213
}
205214
}

platform-api/src/main/java/com/flow/platform/api/service/job/CmdServiceImpl.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,11 @@ public class CmdServiceImpl implements CmdService {
5555
@Autowired
5656
private PlatformURL platformURL;
5757

58-
@Value(value = "${platform.zone}")
58+
@Value(value = "${api.zone.default}")
5959
private String zone;
6060

61-
@Value(value = "${domain}")
62-
private String domain;
61+
@Value(value = "${domain.api}")
62+
private String apiDomain;
6363

6464
@Override
6565
public String createSession(Job job, Integer retry) {
@@ -195,6 +195,9 @@ private Cmd sendToQueue(CmdInfo cmdInfo, Integer retry) {
195195
* Build cmd callback webhook url with job id as identifier
196196
*/
197197
private String buildCmdWebhook(Job job) {
198-
return domain + "/hooks/cmd?identifier=" + HttpURL.encode(job.getId().toString());
198+
return HttpURL.build(apiDomain)
199+
.append("/hooks/cmd")
200+
.withParam("identifier", HttpURL.encode(job.getId().toString()))
201+
.toString();
199202
}
200203
}

platform-api/src/main/java/com/flow/platform/api/service/job/JobServiceImpl.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,10 @@
6161
import com.flow.platform.util.Logger;
6262
import com.flow.platform.util.git.model.GitCommit;
6363
import com.flow.platform.util.git.model.GitEventType;
64+
import com.flow.platform.util.http.HttpURL;
6465
import com.google.common.base.Strings;
6566
import com.google.common.collect.Sets;
6667
import java.math.BigInteger;
67-
import java.nio.file.Path;
68-
import java.nio.file.Paths;
6968
import java.time.ZonedDateTime;
7069
import java.util.HashSet;
7170
import java.util.List;
@@ -131,8 +130,8 @@ public class JobServiceImpl extends ApplicationEventService implements JobServic
131130
@Autowired
132131
private JobYmlDao jobYmlDao;
133132

134-
@Value(value = "${domain}")
135-
private String domain;
133+
@Value(value = "${domain.api}")
134+
private String apiDomain;
136135

137136
@Override
138137
public Job find(String flowName, Integer number) {
@@ -634,7 +633,10 @@ private void updateJobAndNodeResultTimeout(Job job) {
634633
}
635634

636635
private String logUrl(final Job job) {
637-
Path path = Paths.get("/", "jobs", job.getNodeName(), job.getNumber().toString(), "log", "download");
638-
return domain + path.toString();
636+
return HttpURL.build(apiDomain)
637+
.append("/jobs/")
638+
.append(job.getNodeName())
639+
.append(job.getNumber().toString())
640+
.append("/log/download").toString();
639641
}
640642
}

platform-api/src/main/java/com/flow/platform/api/service/node/NodeServiceImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import com.flow.platform.api.util.PathUtil;
3939
import com.flow.platform.core.exception.IllegalParameterException;
4040
import com.flow.platform.util.Logger;
41+
import com.flow.platform.util.http.HttpURL;
4142
import com.google.common.base.Strings;
4243
import com.google.common.collect.Lists;
4344
import java.nio.file.Path;
@@ -91,8 +92,8 @@ public class NodeServiceImpl extends CurrentUser implements NodeService {
9192
@Autowired
9293
private RoleService roleService;
9394

94-
@Value(value = "${domain}")
95-
private String domain;
95+
@Value(value = "${domain.api}")
96+
private String apiDomain;
9697

9798
@Override
9899
public Node createOrUpdate(final String path, String yml) {
@@ -316,7 +317,7 @@ public List<User> authUsers(List<String> emailList, String rootPath) {
316317
}
317318

318319
private String hooksUrl(final Flow flow) {
319-
return String.format("%s/hooks/git/%s", domain, flow.getName());
320+
return HttpURL.build(apiDomain).append("/hooks/git/").append(flow.getName()).toString();
320321
}
321322

322323
private Boolean checkFlowName(String flowName) {

platform-api/src/main/java/com/flow/platform/api/service/node/YmlService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ public interface YmlService {
6767
*/
6868
void stopLoadYmlContent(Node root);
6969

70+
/**
71+
* Config load yml thread pool
72+
*
73+
* @param threadConfigParam
74+
*/
7075
void threadConfig(ThreadConfigParam threadConfigParam);
7176

7277
}

0 commit comments

Comments
 (0)