WIP
This commit is contained in:
parent
ab24066f81
commit
fe71aae7aa
|
|
@ -2,7 +2,7 @@ package ru.kirillius.pf.sdn.api.flow;
|
|||
|
||||
import lombok.*;
|
||||
import ru.kirillius.pf.sdn.api.Networking.NetworkScope;
|
||||
import ru.kirillius.pf.sdn.entity.PipelineConfig;
|
||||
import ru.kirillius.pf.sdn.entity.FlowConfig;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
|
@ -13,7 +13,7 @@ import java.util.concurrent.atomic.AtomicReference;
|
|||
@RequiredArgsConstructor()
|
||||
public class Flow {
|
||||
@Getter
|
||||
private final PipelineConfig config;
|
||||
private final FlowConfig config;
|
||||
private final List<FlowAction> actions;
|
||||
|
||||
private final AtomicBoolean running = new AtomicBoolean(false);
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ import java.util.UUID;
|
|||
@NoArgsConstructor
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
public class PipelineConfig {
|
||||
public class FlowConfig {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
private Long id;
|
||||
|
|
@ -29,7 +29,7 @@ public class PipelineConfig {
|
|||
|
||||
@Override
|
||||
public boolean equals(Object o) {
|
||||
if (!(o instanceof PipelineConfig that)) return false;
|
||||
if (!(o instanceof FlowConfig that)) return false;
|
||||
return Objects.equals(id, that.id) && Objects.equals(name, that.name);
|
||||
}
|
||||
|
||||
|
|
@ -1,11 +1,11 @@
|
|||
package ru.kirillius.pf.sdn.repository;
|
||||
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import ru.kirillius.pf.sdn.entity.PipelineConfig;
|
||||
import ru.kirillius.pf.sdn.entity.FlowConfig;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public interface PipelineConfigRepository extends JpaRepository<PipelineConfig, Long> {
|
||||
public interface PipelineConfigRepository extends JpaRepository<FlowConfig, Long> {
|
||||
|
||||
boolean existsByGuid(UUID guid);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ import ru.kirillius.pf.sdn.api.flow.FlowFunction;
|
|||
import ru.kirillius.pf.sdn.api.flow.Flow;
|
||||
import ru.kirillius.pf.sdn.api.flow.TriggerType;
|
||||
import ru.kirillius.pf.sdn.entity.ActionConfig;
|
||||
import ru.kirillius.pf.sdn.entity.PipelineConfig;
|
||||
import ru.kirillius.pf.sdn.entity.FlowConfig;
|
||||
import ru.kirillius.pf.sdn.flow.DummyFunction;
|
||||
import ru.kirillius.pf.sdn.repository.PipelineConfigRepository;
|
||||
|
||||
|
|
@ -32,7 +32,7 @@ public class FlowService {
|
|||
private final SubscriptionService subscriptionService;
|
||||
private final ExecutorService executorService;
|
||||
|
||||
private final Map<PipelineConfig, Flow> pipelines = new ConcurrentHashMap<>();
|
||||
private final Map<FlowConfig, Flow> pipelines = new ConcurrentHashMap<>();
|
||||
private final Map<String, Class<? extends FlowFunction>> functions = new ConcurrentHashMap<>();
|
||||
private EventListener<Flow> executedListener;
|
||||
private EventListener<Subscription> subscriptionUpdateListener;
|
||||
|
|
@ -48,9 +48,9 @@ public class FlowService {
|
|||
pipelines.keySet().stream().filter(config -> config.getId().equals(id)).findFirst().ifPresent(this::trigger);
|
||||
}
|
||||
|
||||
public void trigger(PipelineConfig pipelineConfig) {
|
||||
if (pipelines.containsKey(pipelineConfig)) {
|
||||
trigger(pipelines.get(pipelineConfig));
|
||||
public void trigger(FlowConfig flowConfig) {
|
||||
if (pipelines.containsKey(flowConfig)) {
|
||||
trigger(pipelines.get(flowConfig));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -69,20 +69,20 @@ public class FlowService {
|
|||
|
||||
}
|
||||
|
||||
public void update(PipelineConfig pipelineConfig) {
|
||||
if (configRepository.existsByGuid(pipelineConfig.getGuid())) {
|
||||
load(pipelineConfig);
|
||||
public void update(FlowConfig flowConfig) {
|
||||
if (configRepository.existsByGuid(flowConfig.getGuid())) {
|
||||
load(flowConfig);
|
||||
} else {
|
||||
flowExecutorService.cancel(pipelines.get(pipelineConfig));
|
||||
pipelines.remove(pipelineConfig);
|
||||
flowExecutorService.cancel(pipelines.get(flowConfig));
|
||||
pipelines.remove(flowConfig);
|
||||
}
|
||||
}
|
||||
|
||||
private void load(PipelineConfig pipelineConfig) {
|
||||
if (pipelines.containsKey(pipelineConfig)) {
|
||||
flowExecutorService.cancel(pipelines.get(pipelineConfig));
|
||||
private void load(FlowConfig flowConfig) {
|
||||
if (pipelines.containsKey(flowConfig)) {
|
||||
flowExecutorService.cancel(pipelines.get(flowConfig));
|
||||
}
|
||||
pipelines.put(pipelineConfig, new Flow(pipelineConfig, pipelineConfig.getActions().stream().map(this::buildAction).toList()));
|
||||
pipelines.put(flowConfig, new Flow(flowConfig, flowConfig.getActions().stream().map(this::buildAction).toList()));
|
||||
}
|
||||
|
||||
private FlowAction buildAction(ActionConfig config) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue