feat(nifi): 新增处理器复制和状态清理功能
- 新增 CreateProcessorAndUpdateParamJoin 类用于创建处理器和更新参数 - 在 NifiAppOperationImpl 中实现 createProcessorAndUpdateParam 方法 - 在 NifiBaseOperationImpl 中实现 copyProcessor 和 clearProcessGroupState 方法 - 更新 INifiAppOperation 和 INifiBaseOperation 接口 - 新增 Relationships15、Processors16 等相关模型类
This commit is contained in:
parent
d504b44601
commit
b9bca5795d
|
@ -32,4 +32,7 @@ public class NifiServiceConfig {
|
||||||
|
|
||||||
@Value("${nifi.api.relationshipMark:接口关系标记}")
|
@Value("${nifi.api.relationshipMark:接口关系标记}")
|
||||||
private String relationshipMark;
|
private String relationshipMark;
|
||||||
|
|
||||||
|
@Value("${nifi.api.relationshipMark:接口状态清理标记}")
|
||||||
|
private String stateClearMark;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.hzya.frame.nifiapi.model.joincreateprocessorandupdateparam;
|
||||||
|
|
||||||
|
import com.hzya.frame.nifiapi.model.resultprocessorsinfo.Component16;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:liuyang
|
||||||
|
* @Package:com.hzya.frame.nifiapi.model.joincerateprocessorandupdateparam
|
||||||
|
* @Project:fw-nifi
|
||||||
|
* @name:CreateProcessorAndUpdateParam
|
||||||
|
* @Date:2025/5/26 15:59
|
||||||
|
* @Filename:CreateProcessorAndUpdateParam
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class CreateProcessorAndUpdateParamJoin {
|
||||||
|
private String targetProcessorId;
|
||||||
|
private String parentProcessGroupId;
|
||||||
|
private String copyTargetProcessGroupId;
|
||||||
|
private Component16 component;
|
||||||
|
}
|
|
@ -16,4 +16,5 @@ import java.util.Map;
|
||||||
public class Snippet {
|
public class Snippet {
|
||||||
private String parentGroupId;
|
private String parentGroupId;
|
||||||
private Map<String, Map<String, String>> processGroups;
|
private Map<String, Map<String, String>> processGroups;
|
||||||
|
private Map<String, Map<String, String>> processors;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,8 @@ package com.hzya.frame.nifiapi.model.resultcreateprocessor;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Auto-generated: 2025-05-17 14:50:7
|
* Auto-generated: 2025-05-17 14:50:7
|
||||||
*
|
*
|
||||||
|
@ -14,4 +16,5 @@ public class Component15 {
|
||||||
private String name;
|
private String name;
|
||||||
private Position15 position;
|
private Position15 position;
|
||||||
private Config15 config;
|
private Config15 config;
|
||||||
|
private List<Relationships15> relationships;
|
||||||
}
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.hzya.frame.nifiapi.model.resultcreateprocessor;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 连接关系
|
||||||
|
*
|
||||||
|
* @Author:liuyang
|
||||||
|
* @Package:com.hzya.frame.nifiapi.model.resultcreateprocessor
|
||||||
|
* @Project:fw-nifi
|
||||||
|
* @name:Relationships15
|
||||||
|
* @Date:2025/5/26 10:36
|
||||||
|
* @Filename:Relationships15
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class Relationships15 {
|
||||||
|
private String name;
|
||||||
|
private String description;
|
||||||
|
private Boolean autoTerminate;
|
||||||
|
// private boolean terminate;
|
||||||
|
private Boolean retry;
|
||||||
|
}
|
|
@ -15,4 +15,5 @@ import java.util.List;
|
||||||
@Data
|
@Data
|
||||||
public class Flow15 {
|
public class Flow15 {
|
||||||
private List<ProcessGroups15> processGroups;
|
private List<ProcessGroups15> processGroups;
|
||||||
|
private List<Processors16> processors;
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.hzya.frame.nifiapi.model.resultcreatesnippet;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:liuyang
|
||||||
|
* @Package:com.hzya.frame.nifiapi.model.resultcreatesnippet
|
||||||
|
* @Project:fw-nifi
|
||||||
|
* @name:Processors16
|
||||||
|
* @Date:2025/5/26 15:42
|
||||||
|
* @Filename:Processors16
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class Processors16 {
|
||||||
|
private String id;
|
||||||
|
private String uri;
|
||||||
|
private Component15 component;
|
||||||
|
}
|
|
@ -13,4 +13,5 @@ import lombok.Data;
|
||||||
@Data
|
@Data
|
||||||
public class SnippetInstance15 {
|
public class SnippetInstance15 {
|
||||||
private Flow15 flow;
|
private Flow15 flow;
|
||||||
|
// private Component152 component;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.hzya.frame.nifiapi.operation;
|
package com.hzya.frame.nifiapi.operation;
|
||||||
|
|
||||||
import com.hzya.frame.nifiapi.model.joincreateoracleapp.CreateAppInstanceJoin;
|
import com.hzya.frame.nifiapi.model.joincreateoracleapp.CreateAppInstanceJoin;
|
||||||
|
import com.hzya.frame.nifiapi.model.joincreateprocessorandupdateparam.CreateProcessorAndUpdateParamJoin;
|
||||||
import com.hzya.frame.nifiapi.model.resultcreateoracleapp.CreateAppInstanceResult;
|
import com.hzya.frame.nifiapi.model.resultcreateoracleapp.CreateAppInstanceResult;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -34,4 +35,11 @@ public interface INifiAppOperation {
|
||||||
* @param createMysqlApp 封装创建Mysql应用所需要的入参
|
* @param createMysqlApp 封装创建Mysql应用所需要的入参
|
||||||
*/
|
*/
|
||||||
// void createMysqlApp(CreateMysqlApp createMysqlApp) throws Exception;
|
// void createMysqlApp(CreateMysqlApp createMysqlApp) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新建处理器实例,先拷贝,再接收修改参数
|
||||||
|
*
|
||||||
|
* @param createProcessorAndUpdateParamJoin 封转创建处理器所需要的参数
|
||||||
|
*/
|
||||||
|
String createProcessorAndUpdateParam(CreateProcessorAndUpdateParamJoin createProcessorAndUpdateParamJoin) throws Exception;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import com.hzya.frame.nifiapi.model.joincreateprocessconnection.CreateProcessorC
|
||||||
import com.hzya.frame.nifiapi.model.joincreparamcontext.CreateParamContextJoin;
|
import com.hzya.frame.nifiapi.model.joincreparamcontext.CreateParamContextJoin;
|
||||||
import com.hzya.frame.nifiapi.model.joinfindneedmodifycontroller.FindNeedModifyController;
|
import com.hzya.frame.nifiapi.model.joinfindneedmodifycontroller.FindNeedModifyController;
|
||||||
import com.hzya.frame.nifiapi.model.joingetallcontrollerservice.ControllerServices19;
|
import com.hzya.frame.nifiapi.model.joingetallcontrollerservice.ControllerServices19;
|
||||||
|
import com.hzya.frame.nifiapi.model.processgroupid.Processors;
|
||||||
import com.hzya.frame.nifiapi.model.resultNeedModifyController.PortFilterResult;
|
import com.hzya.frame.nifiapi.model.resultNeedModifyController.PortFilterResult;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -29,6 +30,15 @@ public interface INifiBaseOperation {
|
||||||
*/
|
*/
|
||||||
String instantiateApp(String appProcessGroupId, String parentProcessGroupId, String copyTargetProcessGroupId) throws Exception;
|
String instantiateApp(String appProcessGroupId, String parentProcessGroupId, String copyTargetProcessGroupId) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拷贝业务处理器
|
||||||
|
*
|
||||||
|
* @param targetProcessorId 目标处理器id
|
||||||
|
* @param parentProcessGroupId 目标处理器id的父处理器id
|
||||||
|
* @param copyTargetProcessGroupId 需要复制到指定目标流程组的id
|
||||||
|
*/
|
||||||
|
String copyProcessor(String targetProcessorId, String parentProcessGroupId, String copyTargetProcessGroupId) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增上下文参数环境,并绑定到指定的流程组
|
* 新增上下文参数环境,并绑定到指定的流程组
|
||||||
*
|
*
|
||||||
|
@ -60,6 +70,14 @@ public interface INifiBaseOperation {
|
||||||
*/
|
*/
|
||||||
PortFilterResult getNeedModifyControllerRelationshipByProcessGroup(String processGroupId, String mark) throws Exception;
|
PortFilterResult getNeedModifyControllerRelationshipByProcessGroup(String processGroupId, String mark) throws Exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查找带"接口状态清理标记"的处理器
|
||||||
|
*
|
||||||
|
* @param processGroupId 流程组id
|
||||||
|
* @param mark 接口修改标记字符串,如果为null,则不进行过滤
|
||||||
|
*/
|
||||||
|
List<Processors> getFindStateClearMarkProcessor(String processGroupId, String mark) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查找某个流程组(应用app)内,带有"修改标记"的控制器服务,并更新控制器,从而达到实例化要求
|
* 查找某个流程组(应用app)内,带有"修改标记"的控制器服务,并更新控制器,从而达到实例化要求
|
||||||
*
|
*
|
||||||
|
@ -83,4 +101,11 @@ public interface INifiBaseOperation {
|
||||||
* @param status ENABLED 启用、DISABLED停用
|
* @param status ENABLED 启用、DISABLED停用
|
||||||
*/
|
*/
|
||||||
void batchEnabledControllerServices(String processGroupId, String status) throws Exception;
|
void batchEnabledControllerServices(String processGroupId, String status) throws Exception;
|
||||||
}
|
|
||||||
|
/**
|
||||||
|
* 清理掉拷贝后新的流程组中的老鼠屎
|
||||||
|
*
|
||||||
|
* @param processGroupId 流程组id
|
||||||
|
*/
|
||||||
|
void clearProcessGroupState(List<String> processGroupId) throws Exception;
|
||||||
|
}
|
|
@ -1,12 +1,16 @@
|
||||||
package com.hzya.frame.nifiapi.operation.impl;
|
package com.hzya.frame.nifiapi.operation.impl;
|
||||||
|
|
||||||
import com.hzya.frame.nifiapi.model.joincreateoracleapp.CreateAppInstanceJoin;
|
import com.hzya.frame.nifiapi.model.joincreateoracleapp.CreateAppInstanceJoin;
|
||||||
|
import com.hzya.frame.nifiapi.model.joincreateprocessorandupdateparam.CreateProcessorAndUpdateParamJoin;
|
||||||
import com.hzya.frame.nifiapi.model.joincreparamcontext.CreateParamContextJoin;
|
import com.hzya.frame.nifiapi.model.joincreparamcontext.CreateParamContextJoin;
|
||||||
import com.hzya.frame.nifiapi.model.joinfindneedmodifycontroller.FindNeedModifyController;
|
import com.hzya.frame.nifiapi.model.joinfindneedmodifycontroller.FindNeedModifyController;
|
||||||
import com.hzya.frame.nifiapi.model.joingetallcontrollerservice.ControllerServices19;
|
import com.hzya.frame.nifiapi.model.joingetallcontrollerservice.ControllerServices19;
|
||||||
import com.hzya.frame.nifiapi.model.joingetcontroller.Component12;
|
import com.hzya.frame.nifiapi.model.joingetcontroller.Component12;
|
||||||
import com.hzya.frame.nifiapi.model.joingetcontroller.ControllerService12;
|
import com.hzya.frame.nifiapi.model.joingetcontroller.ControllerService12;
|
||||||
import com.hzya.frame.nifiapi.model.resultcreateoracleapp.CreateAppInstanceResult;
|
import com.hzya.frame.nifiapi.model.resultcreateoracleapp.CreateAppInstanceResult;
|
||||||
|
import com.hzya.frame.nifiapi.model.resultprocessorsinfo.Component16;
|
||||||
|
import com.hzya.frame.nifiapi.model.resultprocessorsinfo.ProcessorsInfo16;
|
||||||
|
import com.hzya.frame.nifiapi.model.resultprocessorsinfo.Revision16;
|
||||||
import com.hzya.frame.nifiapi.operation.INifiBaseOperation;
|
import com.hzya.frame.nifiapi.operation.INifiBaseOperation;
|
||||||
import com.hzya.frame.nifiapi.operation.INifiAppOperation;
|
import com.hzya.frame.nifiapi.operation.INifiAppOperation;
|
||||||
import com.hzya.frame.nifiapi.service.NifiApiService;
|
import com.hzya.frame.nifiapi.service.NifiApiService;
|
||||||
|
@ -54,6 +58,7 @@ public class NifiAppOperationImpl implements INifiAppOperation {
|
||||||
//2.新增应用对应的上下文参数
|
//2.新增应用对应的上下文参数
|
||||||
CreateParamContextJoin createParamContextJoin = createOracleApp.getCreateParamContextJoin();
|
CreateParamContextJoin createParamContextJoin = createOracleApp.getCreateParamContextJoin();
|
||||||
if (createParamContextJoin != null) {
|
if (createParamContextJoin != null) {
|
||||||
|
createParamContextJoin.setProcessGroupsId(newProcessGroupId);
|
||||||
baseOperation.createParameterContextsBindingProcessGroup(createParamContextJoin);
|
baseOperation.createParameterContextsBindingProcessGroup(createParamContextJoin);
|
||||||
}
|
}
|
||||||
//3.修改控制器,默认激活当前流程组下的所有控制器
|
//3.修改控制器,默认激活当前流程组下的所有控制器
|
||||||
|
@ -84,6 +89,42 @@ public class NifiAppOperationImpl implements INifiAppOperation {
|
||||||
return createAppInstanceResult;
|
return createAppInstanceResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String createProcessorAndUpdateParam(CreateProcessorAndUpdateParamJoin createProcessorAndUpdateParamJoin) throws Exception {
|
||||||
|
String newProcessId = null;
|
||||||
|
try {
|
||||||
|
//拷贝处理器
|
||||||
|
String targetProcessorId = createProcessorAndUpdateParamJoin.getTargetProcessorId();
|
||||||
|
String parentProcessGroupId = createProcessorAndUpdateParamJoin.getParentProcessGroupId();
|
||||||
|
String copyTargetProcessGroupId = createProcessorAndUpdateParamJoin.getCopyTargetProcessGroupId();
|
||||||
|
//允许不修改!
|
||||||
|
Component16 component = createProcessorAndUpdateParamJoin.getComponent();
|
||||||
|
|
||||||
|
newProcessId = baseOperation.copyProcessor(targetProcessorId, parentProcessGroupId, copyTargetProcessGroupId);
|
||||||
|
if (newProcessId != null && component != null) {
|
||||||
|
//更新处理器
|
||||||
|
ProcessorsInfo16 processor = nifiApiService.getProcessor(newProcessId);
|
||||||
|
Revision16 revision16 = processor.getRevision();
|
||||||
|
String version = revision16.getVersion();
|
||||||
|
|
||||||
|
Revision16 revision161 = new Revision16();
|
||||||
|
revision161.setVersion(version);
|
||||||
|
|
||||||
|
component.setId(newProcessId);
|
||||||
|
|
||||||
|
ProcessorsInfo16 processorsInfo16 = new ProcessorsInfo16();
|
||||||
|
processorsInfo16.setRevision(revision161);
|
||||||
|
processorsInfo16.setComponent(component);
|
||||||
|
ProcessorsInfo16 processor2 = nifiApiService.updateProcessor(newProcessId, processorsInfo16);
|
||||||
|
String id = processor2.getId();
|
||||||
|
logger.info("新处理器id:{}" + id);
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new Exception(e);
|
||||||
|
}
|
||||||
|
return newProcessId;
|
||||||
|
}
|
||||||
|
|
||||||
// @Override
|
// @Override
|
||||||
// public void createMysqlApp(CreateMysqlApp createMysqlApp) throws Exception {
|
// public void createMysqlApp(CreateMysqlApp createMysqlApp) throws Exception {
|
||||||
// try {
|
// try {
|
||||||
|
@ -97,4 +138,4 @@ public class NifiAppOperationImpl implements INifiAppOperation {
|
||||||
// throw new Exception(e);
|
// throw new Exception(e);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
}
|
}
|
|
@ -23,12 +23,16 @@ import com.hzya.frame.nifiapi.model.joinsnippets.Snippet;
|
||||||
import com.hzya.frame.nifiapi.model.joinsnippets.SnippetsJoin;
|
import com.hzya.frame.nifiapi.model.joinsnippets.SnippetsJoin;
|
||||||
import com.hzya.frame.nifiapi.model.processgroupid.*;
|
import com.hzya.frame.nifiapi.model.processgroupid.*;
|
||||||
import com.hzya.frame.nifiapi.model.resultNeedModifyController.PortFilterResult;
|
import com.hzya.frame.nifiapi.model.resultNeedModifyController.PortFilterResult;
|
||||||
|
//import com.hzya.frame.nifiapi.model.resultcreatesnippet.Component152;
|
||||||
import com.hzya.frame.nifiapi.model.resultcreatesnippet.Flow15;
|
import com.hzya.frame.nifiapi.model.resultcreatesnippet.Flow15;
|
||||||
import com.hzya.frame.nifiapi.model.resultcreatesnippet.ProcessGroups15;
|
import com.hzya.frame.nifiapi.model.resultcreatesnippet.ProcessGroups15;
|
||||||
|
import com.hzya.frame.nifiapi.model.resultcreatesnippet.Processors16;
|
||||||
import com.hzya.frame.nifiapi.model.resultcreatesnippet.SnippetInstance15;
|
import com.hzya.frame.nifiapi.model.resultcreatesnippet.SnippetInstance15;
|
||||||
import com.hzya.frame.nifiapi.model.resultparametercontexts.ParameterContextsResult;
|
import com.hzya.frame.nifiapi.model.resultparametercontexts.ParameterContextsResult;
|
||||||
import com.hzya.frame.nifiapi.model.resultprocessgroupsinfo.ProcessGroupsInfoResult9;
|
import com.hzya.frame.nifiapi.model.resultprocessgroupsinfo.ProcessGroupsInfoResult9;
|
||||||
import com.hzya.frame.nifiapi.model.resultprocessgroupsinfo.Revision9;
|
import com.hzya.frame.nifiapi.model.resultprocessgroupsinfo.Revision9;
|
||||||
|
import com.hzya.frame.nifiapi.model.resultprocessorsinfo.ProcessorsInfo16;
|
||||||
|
import com.hzya.frame.nifiapi.model.resultprocessorsinfo.Revision16;
|
||||||
import com.hzya.frame.nifiapi.model.resultsnippets.Snippet13;
|
import com.hzya.frame.nifiapi.model.resultsnippets.Snippet13;
|
||||||
import com.hzya.frame.nifiapi.model.resultsnippets.SnippetResult13;
|
import com.hzya.frame.nifiapi.model.resultsnippets.SnippetResult13;
|
||||||
import com.hzya.frame.nifiapi.operation.INifiBaseOperation;
|
import com.hzya.frame.nifiapi.operation.INifiBaseOperation;
|
||||||
|
@ -85,6 +89,7 @@ public class NifiBaseOperationImpl implements INifiBaseOperation {
|
||||||
Snippet snippet = new Snippet();
|
Snippet snippet = new Snippet();
|
||||||
snippet.setParentGroupId(parentProcessGroupId);//目标流程组id的父流程组id
|
snippet.setParentGroupId(parentProcessGroupId);//目标流程组id的父流程组id
|
||||||
snippet.setProcessGroups(processGroupsMap);
|
snippet.setProcessGroups(processGroupsMap);
|
||||||
|
snippet.setProcessors(new HashMap<>());
|
||||||
|
|
||||||
SnippetsJoin snippetsJoin = new SnippetsJoin();
|
SnippetsJoin snippetsJoin = new SnippetsJoin();
|
||||||
snippetsJoin.setSnippet(snippet);
|
snippetsJoin.setSnippet(snippet);
|
||||||
|
@ -113,6 +118,44 @@ public class NifiBaseOperationImpl implements INifiBaseOperation {
|
||||||
return processGroups15Id;
|
return processGroups15Id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String copyProcessor(String targetProcessorId, String parentProcessGroupId, String copyTargetProcessGroupId) throws Exception {
|
||||||
|
String processId = null;
|
||||||
|
try {
|
||||||
|
//1.处理处理器片段
|
||||||
|
//查询目标处理器版本
|
||||||
|
ProcessorsInfo16 processor = nifiApiService.getProcessor(targetProcessorId);
|
||||||
|
Revision16 revision1 = processor.getRevision();
|
||||||
|
|
||||||
|
//目标处理器版本号
|
||||||
|
Map<String, String> processGroupsMap2 = new HashMap<>();
|
||||||
|
processGroupsMap2.put("version", revision1.getVersion());
|
||||||
|
|
||||||
|
Map<String, Map<String, String>> processGroupsMap = new HashMap<>();
|
||||||
|
processGroupsMap.put(targetProcessorId, processGroupsMap2);//目标流程组id
|
||||||
|
|
||||||
|
Snippet snippet = new Snippet();
|
||||||
|
snippet.setParentGroupId(parentProcessGroupId);//目标处理器id的父流程组id
|
||||||
|
snippet.setProcessors(processGroupsMap);
|
||||||
|
snippet.setProcessGroups(new HashMap<>());//这里真是一个坑,不传抛出空指针异常
|
||||||
|
|
||||||
|
SnippetsJoin snippetsJoin = new SnippetsJoin();
|
||||||
|
snippetsJoin.setSnippet(snippet);
|
||||||
|
SnippetResult13 snippets = nifiApiService.createSnippets(snippetsJoin);
|
||||||
|
Snippet13 snippet1 = snippets.getSnippet();
|
||||||
|
|
||||||
|
//2.实例化片段
|
||||||
|
SnippetInstanceJoin snippetInstanceJoin = new SnippetInstanceJoin();
|
||||||
|
snippetInstanceJoin.setSnippetId(snippet1.getId());
|
||||||
|
SnippetInstance15 snippetInstance = nifiApiService.createSnippetInstance(copyTargetProcessGroupId, snippetInstanceJoin);
|
||||||
|
Processors16 processors16 = snippetInstance.getFlow().getProcessors().get(0);
|
||||||
|
processId = processors16.getId();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new Exception(e);
|
||||||
|
}
|
||||||
|
return processId;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String createParameterContextsBindingProcessGroup(CreateParamContextJoin createParamContextJoin) throws Exception {
|
public String createParameterContextsBindingProcessGroup(CreateParamContextJoin createParamContextJoin) throws Exception {
|
||||||
String paramGroupsId = null;
|
String paramGroupsId = null;
|
||||||
|
@ -196,6 +239,30 @@ public class NifiBaseOperationImpl implements INifiBaseOperation {
|
||||||
return new PortFilterResult();
|
return new PortFilterResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Processors> getFindStateClearMarkProcessor(String processGroupId, String mark) throws Exception {
|
||||||
|
List<Processors> filteredProcessors = new ArrayList<>();
|
||||||
|
try {
|
||||||
|
// 查询指定流程组内的详情
|
||||||
|
ProcessGroupsId processGroupsId = nifiApiService.queryFlowProcessGroupsRoot(processGroupId);
|
||||||
|
if (processGroupsId != null && processGroupsId.getProcessGroupFlow() != null) {
|
||||||
|
ProcessGroupFlow processGroupFlow = processGroupsId.getProcessGroupFlow();
|
||||||
|
Flow flow = processGroupFlow.getFlow();
|
||||||
|
List<Processors> processors = flow.getProcessors();
|
||||||
|
|
||||||
|
// 过滤 comments 包含 mark 的 Processors
|
||||||
|
filteredProcessors = processors.stream().filter(processor ->
|
||||||
|
processor.getComponent() != null
|
||||||
|
&& processor.getComponent().getConfig() != null
|
||||||
|
&& processor.getComponent().getConfig().getComments() != null
|
||||||
|
&& processor.getComponent().getConfig().getComments().contains(mark)).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new Exception("未能筛选带有标记的处理器:" + mark, e);
|
||||||
|
}
|
||||||
|
return filteredProcessors;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void findNeedModifyControllerAndChangesOccur(FindNeedModifyController findNeedModifyController, boolean isThrowError, boolean enabledAll) throws Exception {
|
public void findNeedModifyControllerAndChangesOccur(FindNeedModifyController findNeedModifyController, boolean isThrowError, boolean enabledAll) throws Exception {
|
||||||
try {
|
try {
|
||||||
|
@ -276,4 +343,21 @@ public class NifiBaseOperationImpl implements INifiBaseOperation {
|
||||||
throw new Exception(e);
|
throw new Exception(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void clearProcessGroupState(List<String> processGroupId) throws Exception {
|
||||||
|
if (processGroupId != null && processGroupId.size() > 0) {
|
||||||
|
for (String processGroupIdIndex : processGroupId) {
|
||||||
|
//根据流程组id+标识名称,查找需要清理的state处理器
|
||||||
|
String relationshipMark = nifiServiceConfig.getRelationshipMark();
|
||||||
|
List<Processors> findStateClearMarkProcessor = getFindStateClearMarkProcessor(processGroupIdIndex, relationshipMark);
|
||||||
|
for (Processors processors : findStateClearMarkProcessor) {
|
||||||
|
Component2 component = processors.getComponent();
|
||||||
|
if (component != null) {
|
||||||
|
nifiApiService.clearProcessorRequests(component.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -305,6 +305,13 @@ public class NifiApiService {
|
||||||
return client.post(StrUtil.format("/process-groups/{}/connections", processGroupsId), createConnections17, CreateConnection18.class);
|
return client.post(StrUtil.format("/process-groups/{}/connections", processGroupsId), createConnections17, CreateConnection18.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 清除处理器的状态,此接口返回{}空对象
|
||||||
|
*/
|
||||||
|
public void clearProcessorRequests(String processorId) throws Exception {
|
||||||
|
client.post(StrUtil.format("/processors/{}/state/clear-requests", processorId), null, Object.class);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 计算新处理器或流程组的x、y坐标
|
* 计算新处理器或流程组的x、y坐标
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue