Skip to content

Commit b03050e

Browse files
committed
apply flow item and group
1 parent 32c34cc commit b03050e

File tree

12 files changed

+86
-30
lines changed

12 files changed

+86
-30
lines changed

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

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
import com.flowci.core.common.mongo.VariableMapConverter;
2525
import com.flowci.core.config.domain.SmtpConfig;
2626
import com.flowci.core.config.domain.TextConfig;
27+
import com.flowci.core.flow.domain.Flow;
28+
import com.flowci.core.flow.domain.FlowGroup;
2729
import com.flowci.core.git.domain.GitConfig;
2830
import com.flowci.core.git.domain.GitConfigWithHost;
2931
import com.flowci.core.job.domain.JobItem;
@@ -58,14 +60,17 @@
5860
@EnableMongoAuditing(auditorAwareRef = "sessionManager")
5961
public class MongoConfig extends AbstractMongoClientConfiguration {
6062

61-
@Autowired
62-
private AppProperties appProperties;
63+
private final AppProperties appProperties;
6364

64-
@Autowired
65-
private MongoProperties mongoProperties;
65+
private final MongoProperties mongoProperties;
6666

67-
@Autowired
68-
private ObjectMapper objectMapper;
67+
private final ObjectMapper objectMapper;
68+
69+
public MongoConfig(AppProperties appProperties, MongoProperties mongoProperties, ObjectMapper objectMapper) {
70+
this.appProperties = appProperties;
71+
this.mongoProperties = mongoProperties;
72+
this.objectMapper = objectMapper;
73+
}
6974

7075
@NonNull
7176
@Override
@@ -97,6 +102,9 @@ public MongoMappingContext mongoMappingContext(MongoCustomConversions customConv
97102
context.setAutoIndexCreation(true);
98103

99104
// add addPersistentEntity for subtypes since not registered if called within same thread
105+
context.addEntity(Flow.class);
106+
context.addEntity(FlowGroup.class);
107+
100108
context.addEntity(SmtpConfig.class);
101109
context.addEntity(TextConfig.class);
102110

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.flowci.core.flow.dao;
2+
3+
import com.flowci.core.flow.domain.FlowGroup;
4+
import org.springframework.data.mongodb.repository.MongoRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public interface FlowGroupDao extends MongoRepository<FlowGroup, String> {
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.flowci.core.flow.dao;
2+
3+
import com.flowci.core.flow.domain.FlowItem;
4+
import org.springframework.data.mongodb.repository.MongoRepository;
5+
import org.springframework.stereotype.Repository;
6+
7+
@Repository
8+
public interface FlowItemDao extends MongoRepository<FlowItem, String> {
9+
}

core/src/main/java/com/flowci/core/flow/domain/Flow.java

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.flowci.core.flow.domain;
1818

1919
import com.fasterxml.jackson.annotation.JsonIgnore;
20-
import com.flowci.core.common.domain.Mongoable;
2120
import com.flowci.core.common.domain.Variables;
2221
import com.flowci.domain.StringVars;
2322
import com.flowci.domain.TypedVars;
@@ -30,21 +29,18 @@
3029
import lombok.Getter;
3130
import lombok.NoArgsConstructor;
3231
import lombok.Setter;
33-
import lombok.ToString;
34-
import org.springframework.data.mongodb.core.index.Indexed;
3532
import org.springframework.data.mongodb.core.mapping.Document;
3633

3734
import java.util.Objects;
3835

3936
/**
4037
* @author yang
4138
*/
42-
@Document(collection = "flow")
4339
@Getter
4440
@Setter
4541
@NoArgsConstructor
46-
@ToString(of = {"name"}, callSuper = true)
47-
public final class Flow extends Mongoable implements Pathable {
42+
@Document(collection = "flow")
43+
public final class Flow extends FlowItem implements Pathable {
4844

4945
public static Pathable path(String id) {
5046
Flow flow = new Flow();
@@ -65,9 +61,6 @@ public enum Status {
6561
CONFIRMED
6662
}
6763

68-
@Indexed(name = "index_flow_name")
69-
private String name;
70-
7164
private Status status = Status.PENDING;
7265

7366
private boolean isYamlFromRepo;
@@ -81,10 +74,7 @@ public enum Status {
8174
private String cron;
8275

8376
// variables from yml
84-
private Vars<String> variables = new StringVars();
85-
86-
// variables for flow obj only
87-
private Vars<VarValue> locally = new TypedVars();
77+
private Vars<String> readOnlyVars = new StringVars();
8878

8979
private WebhookStatus webhookStatus;
9080

@@ -120,16 +110,17 @@ public String getGitUrl() {
120110
* Get credential name from vars, local var has top priority
121111
*/
122112
private String findVar(String name) {
123-
VarValue cnVal = locally.get(name);
113+
VarValue cnVal = vars.get(name);
124114
if (!Objects.isNull(cnVal)) {
125115
return cnVal.getData();
126116
}
127117

128-
String cn = variables.get(name);
118+
String cn = readOnlyVars.get(name);
129119
if (StringHelper.hasValue(cn)) {
130120
return cn;
131121
}
132122

133123
return StringHelper.EMPTY;
134124
}
135125
}
126+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.flowci.core.flow.domain;
2+
3+
4+
import lombok.Getter;
5+
import lombok.Setter;
6+
import org.springframework.data.mongodb.core.mapping.Document;
7+
8+
import java.util.LinkedList;
9+
import java.util.List;
10+
11+
@Setter
12+
@Getter
13+
@Document(collection = "flow")
14+
public class FlowGroup extends FlowItem {
15+
16+
private List<String> flows = new LinkedList<>();
17+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.flowci.core.flow.domain;
2+
3+
import com.flowci.core.common.domain.Mongoable;
4+
import com.flowci.domain.TypedVars;
5+
import com.flowci.domain.VarValue;
6+
import com.flowci.domain.Vars;
7+
import lombok.Getter;
8+
import lombok.Setter;
9+
import lombok.ToString;
10+
import org.springframework.data.mongodb.core.index.Indexed;
11+
12+
@Setter
13+
@Getter
14+
@ToString(of = {"name"})
15+
public abstract class FlowItem extends Mongoable {
16+
17+
@Indexed(name = "index_flow_name")
18+
protected String name;
19+
20+
protected Vars<VarValue> vars = new TypedVars();
21+
22+
}

core/src/main/java/com/flowci/core/flow/service/FlowServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,7 +195,7 @@ public Flow confirm(String name, ConfirmOption option) {
195195
throw new DuplicateException("Flow {0} has created", name);
196196
}
197197

198-
Vars<VarValue> localVars = flow.getLocally();
198+
Vars<VarValue> localVars = flow.getVars();
199199

200200
if (option.hasGitUrl()) {
201201
localVars.put(Variables.Git.URL, VarValue.of(option.getGitUrl(), VarType.GIT_URL, true));
@@ -357,7 +357,7 @@ public void onGitHookEvent(GitHookEvent event) {
357357
// ====================================================================
358358

359359
private void setupDefaultVars(Flow flow) {
360-
Vars<VarValue> localVars = flow.getLocally();
360+
Vars<VarValue> localVars = flow.getVars();
361361
localVars.put(Variables.Flow.Name, VarValue.of(flow.getName(), VarType.STRING, false));
362362
}
363363

core/src/main/java/com/flowci/core/flow/service/FlowSettingServiceImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public void add(Flow flow, Map<String, VarValue> vars) {
8787
boolean isVerified = varManager.verify(value.getType(), value.getData());
8888

8989
if (isVerified) {
90-
flow.getLocally().put(name, value);
90+
flow.getVars().put(name, value);
9191
continue;
9292
}
9393

@@ -100,7 +100,7 @@ public void add(Flow flow, Map<String, VarValue> vars) {
100100
@Override
101101
public void remove(Flow flow, List<String> vars) {
102102
for (String key : vars) {
103-
flow.getLocally().remove(key);
103+
flow.getVars().remove(key);
104104
}
105105

106106
flowDao.save(flow);

core/src/main/java/com/flowci/core/flow/service/YmlServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public Yml saveYml(Flow flow, String name, String yaml) {
127127
}
128128

129129
// sync flow envs from yml root envs
130-
Vars<String> vars = flow.getVariables();
130+
Vars<String> vars = flow.getReadOnlyVars();
131131
vars.clear();
132132
vars.merge(root.getEnvironments());
133133
flowDao.save(flow);

core/src/main/java/com/flowci/core/job/service/JobServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -457,7 +457,7 @@ private void setTriggerBy(Job job) {
457457

458458
private void initJobContext(Job job, Flow flow, Vars<String> inputs) {
459459
StringVars context = new StringVars();
460-
context.mergeFromTypedVars(flow.getLocally());
460+
context.mergeFromTypedVars(flow.getVars());
461461

462462
Settings settings = settingService.get();
463463
JobContextHelper.setServerUrl(job, settings.getServerUrl());

0 commit comments

Comments
 (0)