|
1 | 1 | package io.javaoperatorsdk.operator.processing.dependent.workflow;
|
2 | 2 |
|
3 |
| -import io.fabric8.kubernetes.api.model.HasMetadata; |
4 |
| -import io.javaoperatorsdk.operator.api.reconciler.Context; |
5 |
| - |
6 | 3 | import java.util.ArrayList;
|
7 | 4 | import java.util.List;
|
8 | 5 | import java.util.Map;
|
9 |
| -import java.util.Set; |
10 | 6 | import java.util.concurrent.ConcurrentHashMap;
|
11 | 7 | import java.util.concurrent.ExecutorService;
|
12 | 8 | import java.util.concurrent.Executors;
|
13 | 9 |
|
| 10 | +import io.fabric8.kubernetes.api.model.HasMetadata; |
| 11 | +import io.javaoperatorsdk.operator.api.reconciler.Context; |
| 12 | + |
14 | 13 | public class Workflow<P extends HasMetadata> {
|
15 | 14 |
|
16 |
| - private final List<DependentResourceNode> dependentResourceNodes; |
| 15 | + private final List<DependentResourceNode> dependentResourceNodes; |
17 | 16 |
|
18 |
| - private List<DependentResourceNode> topLevelResources = new ArrayList<>(); |
19 |
| - private Map<DependentResourceNode, List<DependentResourceNode>> reverseDependsOn; |
| 17 | + private List<DependentResourceNode> topLevelResources = new ArrayList<>(); |
| 18 | + private Map<DependentResourceNode, List<DependentResourceNode>> reverseDependsOn; |
20 | 19 |
|
21 |
| - // it's "global" executor service shared between multiple reconciliations running parallel |
22 |
| - private ExecutorService executorService; |
| 20 | + // it's "global" executor service shared between multiple reconciliations running parallel |
| 21 | + private ExecutorService executorService; |
23 | 22 |
|
24 |
| - public Workflow(List<DependentResourceNode> dependentResourceNodes, ExecutorService executorService) { |
25 |
| - this.executorService = executorService; |
26 |
| - this.dependentResourceNodes = dependentResourceNodes; |
27 |
| - preprocessForReconcile(); |
28 |
| - } |
| 23 | + public Workflow(List<DependentResourceNode> dependentResourceNodes, |
| 24 | + ExecutorService executorService) { |
| 25 | + this.executorService = executorService; |
| 26 | + this.dependentResourceNodes = dependentResourceNodes; |
| 27 | + preprocessForReconcile(); |
| 28 | + } |
29 | 29 |
|
30 |
| - public Workflow(List<DependentResourceNode> dependentResourceNodes, int globalParallelism) { |
31 |
| - this(dependentResourceNodes,Executors.newFixedThreadPool(globalParallelism)); |
32 |
| - } |
| 30 | + public Workflow(List<DependentResourceNode> dependentResourceNodes, int globalParallelism) { |
| 31 | + this(dependentResourceNodes, Executors.newFixedThreadPool(globalParallelism)); |
| 32 | + } |
33 | 33 |
|
34 |
| - public void reconcile(P primary, Context<P> context) { |
| 34 | + public void reconcile(P primary, Context<P> context) { |
35 | 35 |
|
36 |
| - } |
| 36 | + } |
37 | 37 |
|
38 |
| - public void cleanup(P resource, Context<P> context) { |
| 38 | + public void cleanup(P resource, Context<P> context) { |
39 | 39 |
|
40 |
| - } |
| 40 | + } |
41 | 41 |
|
42 |
| - private void preprocessForReconcile() { |
43 |
| - reverseDependsOn = new ConcurrentHashMap<>(dependentResourceNodes.size()); |
44 |
| - |
45 |
| - for (DependentResourceNode node : dependentResourceNodes) { |
46 |
| - if (node.getDependsOnRelations().isEmpty()) { |
47 |
| - topLevelResources.add(node); |
48 |
| - } else { |
49 |
| - for (DependsOnRelation relation : node.getDependsOnRelations()) { |
50 |
| - reverseDependsOn.computeIfAbsent(relation.getDependsOn(), dr -> new ArrayList<>()); |
51 |
| - reverseDependsOn.get(relation.getDependsOn()).add(relation.getOwner()); |
52 |
| - } |
53 |
| - } |
| 42 | + private void preprocessForReconcile() { |
| 43 | + reverseDependsOn = new ConcurrentHashMap<>(dependentResourceNodes.size()); |
| 44 | + |
| 45 | + for (DependentResourceNode node : dependentResourceNodes) { |
| 46 | + if (node.getDependsOnRelations().isEmpty()) { |
| 47 | + topLevelResources.add(node); |
| 48 | + } else { |
| 49 | + for (DependsOnRelation relation : node.getDependsOnRelations()) { |
| 50 | + reverseDependsOn.computeIfAbsent(relation.getDependsOn(), dr -> new ArrayList<>()); |
| 51 | + reverseDependsOn.get(relation.getDependsOn()).add(relation.getOwner()); |
54 | 52 | }
|
| 53 | + } |
55 | 54 | }
|
| 55 | + } |
56 | 56 |
|
57 |
| - public void setExecutorService(ExecutorService executorService) { |
58 |
| - this.executorService = executorService; |
59 |
| - } |
| 57 | + public void setExecutorService(ExecutorService executorService) { |
| 58 | + this.executorService = executorService; |
| 59 | + } |
60 | 60 |
|
61 |
| - List<DependentResourceNode> getTopLevelResources() { |
62 |
| - return topLevelResources; |
63 |
| - } |
| 61 | + List<DependentResourceNode> getTopLevelDependentResources() { |
| 62 | + return topLevelResources; |
| 63 | + } |
64 | 64 |
|
65 |
| - Map<DependentResourceNode, List<DependentResourceNode>> getReverseDependsOn() { |
66 |
| - return reverseDependsOn; |
67 |
| - } |
| 65 | + Map<DependentResourceNode, List<DependentResourceNode>> getReverseDependsOn() { |
| 66 | + return reverseDependsOn; |
| 67 | + } |
68 | 68 |
|
69 |
| - ExecutorService getExecutorService() { |
70 |
| - return executorService; |
71 |
| - } |
| 69 | + ExecutorService getExecutorService() { |
| 70 | + return executorService; |
| 71 | + } |
72 | 72 | }
|
0 commit comments