feat(nifi): 优化流程组状态清理和控制器服务激活功能- 修改了 findNeedModifyControllerAndChangesOccur 方法的调用参数,从 true, true 改为 true, false
- 新增了激活流程组内所有控制器服务的逻辑 - 优化了清理流程组状态的逻辑,使用新的状态清理标记 - 修复了批量启用控制器服务时的版本控制问题
This commit is contained in:
parent
b9bca5795d
commit
56841ca743
|
@ -76,7 +76,7 @@ public interface INifiBaseOperation {
|
||||||
* @param processGroupId 流程组id
|
* @param processGroupId 流程组id
|
||||||
* @param mark 接口修改标记字符串,如果为null,则不进行过滤
|
* @param mark 接口修改标记字符串,如果为null,则不进行过滤
|
||||||
*/
|
*/
|
||||||
List<Processors> getFindStateClearMarkProcessor(String processGroupId, String mark) throws Exception;
|
List<Processors> getFindStateClearMarkProcessor(String processGroupId, String mark) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查找某个流程组(应用app)内,带有"修改标记"的控制器服务,并更新控制器,从而达到实例化要求
|
* 查找某个流程组(应用app)内,带有"修改标记"的控制器服务,并更新控制器,从而达到实例化要求
|
||||||
|
@ -105,7 +105,7 @@ public interface INifiBaseOperation {
|
||||||
/**
|
/**
|
||||||
* 清理掉拷贝后新的流程组中的老鼠屎
|
* 清理掉拷贝后新的流程组中的老鼠屎
|
||||||
*
|
*
|
||||||
* @param processGroupId 流程组id
|
* @param processGroupIdList 流程组id集合
|
||||||
*/
|
*/
|
||||||
void clearProcessGroupState(List<String> processGroupId) throws Exception;
|
void clearProcessGroupState(List<String> processGroupIdList) throws Exception;
|
||||||
}
|
}
|
|
@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -79,8 +80,15 @@ public class NifiAppOperationImpl implements INifiAppOperation {
|
||||||
}
|
}
|
||||||
|
|
||||||
findNeedModifyController.setProcessGroupId(newProcessGroupId);
|
findNeedModifyController.setProcessGroupId(newProcessGroupId);
|
||||||
baseOperation.findNeedModifyControllerAndChangesOccur(findNeedModifyController, true, true);
|
baseOperation.findNeedModifyControllerAndChangesOccur(findNeedModifyController, true, false);
|
||||||
}
|
}
|
||||||
|
//4.激活当前流程组内的所有控制器服务
|
||||||
|
String controllerStatus = "ENABLED";
|
||||||
|
baseOperation.batchEnabledControllerServices(newProcessGroupId, controllerStatus);
|
||||||
|
//5.清理state状态
|
||||||
|
List<String> processGroupIdList = new ArrayList<>();
|
||||||
|
processGroupIdList.add(newProcessGroupId);
|
||||||
|
baseOperation.clearProcessGroupState(processGroupIdList);
|
||||||
|
|
||||||
createAppInstanceResult.setNewProcessGroupId(newProcessGroupId);
|
createAppInstanceResult.setNewProcessGroupId(newProcessGroupId);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
@ -13,6 +13,7 @@ import com.hzya.frame.nifiapi.model.joincreateconnections.CreateConnections18;
|
||||||
import com.hzya.frame.nifiapi.model.joincreateprocessconnection.CreateProcessorConnections;
|
import com.hzya.frame.nifiapi.model.joincreateprocessconnection.CreateProcessorConnections;
|
||||||
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.Component19;
|
||||||
import com.hzya.frame.nifiapi.model.joingetallcontrollerservice.ControllerServices19;
|
import com.hzya.frame.nifiapi.model.joingetallcontrollerservice.ControllerServices19;
|
||||||
import com.hzya.frame.nifiapi.model.joingetallcontrollerservice.GetAllController19;
|
import com.hzya.frame.nifiapi.model.joingetallcontrollerservice.GetAllController19;
|
||||||
import com.hzya.frame.nifiapi.model.joingetcontroller.ControllerService12;
|
import com.hzya.frame.nifiapi.model.joingetcontroller.ControllerService12;
|
||||||
|
@ -251,11 +252,7 @@ public class NifiBaseOperationImpl implements INifiBaseOperation {
|
||||||
List<Processors> processors = flow.getProcessors();
|
List<Processors> processors = flow.getProcessors();
|
||||||
|
|
||||||
// 过滤 comments 包含 mark 的 Processors
|
// 过滤 comments 包含 mark 的 Processors
|
||||||
filteredProcessors = processors.stream().filter(processor ->
|
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());
|
||||||
processor.getComponent() != null
|
|
||||||
&& processor.getComponent().getConfig() != null
|
|
||||||
&& processor.getComponent().getConfig().getComments() != null
|
|
||||||
&& processor.getComponent().getConfig().getComments().contains(mark)).collect(Collectors.toList());
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new Exception("未能筛选带有标记的处理器:" + mark, e);
|
throw new Exception("未能筛选带有标记的处理器:" + mark, e);
|
||||||
|
@ -323,20 +320,22 @@ public class NifiBaseOperationImpl implements INifiBaseOperation {
|
||||||
if (allControllerServices != null && allControllerServices.getControllerServices() != null) {
|
if (allControllerServices != null && allControllerServices.getControllerServices() != null) {
|
||||||
List<ControllerServices19> controllerServices = allControllerServices.getControllerServices();
|
List<ControllerServices19> controllerServices = allControllerServices.getControllerServices();
|
||||||
for (ControllerServices19 controllerService : controllerServices) {
|
for (ControllerServices19 controllerService : controllerServices) {
|
||||||
|
Component19 component = controllerService.getComponent();
|
||||||
String controllerServicesId = controllerService.getId();
|
String controllerServicesId = controllerService.getId();
|
||||||
|
if (controllerServicesId != null && component != null && !status.equals(component.getState())) {
|
||||||
|
//得到控制器服务当前版本
|
||||||
|
ControllerService12 controllerService12 = nifiApiService.getControllerServices(controllerServicesId);
|
||||||
|
Revision12 revision = controllerService12.getRevision();
|
||||||
|
|
||||||
//得到控制器服务当前版本
|
Revision13 revision13 = new Revision13();
|
||||||
ControllerService12 controllerService12 = nifiApiService.getControllerServices(controllerServicesId);
|
revision13.setVersion(revision.getVersion());
|
||||||
Revision12 revision = controllerService12.getRevision();
|
|
||||||
|
|
||||||
Revision13 revision13 = new Revision13();
|
EnOrDiControllerServices12 enOrDiControllerServices = new EnOrDiControllerServices12();
|
||||||
revision13.setVersion(revision.getVersion());
|
enOrDiControllerServices.setState(status);
|
||||||
|
enOrDiControllerServices.setRevision(revision13);
|
||||||
EnOrDiControllerServices12 enOrDiControllerServices = new EnOrDiControllerServices12();
|
ControllerService12 controllerService121 = nifiApiService.enabledOrDisabledControllerServices(controllerServicesId, enOrDiControllerServices);
|
||||||
enOrDiControllerServices.setState(status);
|
logger.info("控制器服务id:{}", controllerService121.getId());
|
||||||
enOrDiControllerServices.setRevision(revision13);
|
}
|
||||||
ControllerService12 controllerService121 = nifiApiService.enabledOrDisabledControllerServices(controllerServicesId, enOrDiControllerServices);
|
|
||||||
logger.info("控制器服务id:{}", controllerService121.getId());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -345,11 +344,11 @@ public class NifiBaseOperationImpl implements INifiBaseOperation {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void clearProcessGroupState(List<String> processGroupId) throws Exception {
|
public void clearProcessGroupState(List<String> processGroupIdList) throws Exception {
|
||||||
if (processGroupId != null && processGroupId.size() > 0) {
|
if (processGroupIdList != null && processGroupIdList.size() > 0) {
|
||||||
for (String processGroupIdIndex : processGroupId) {
|
for (String processGroupIdIndex : processGroupIdList) {
|
||||||
//根据流程组id+标识名称,查找需要清理的state处理器
|
//根据流程组id+标识名称,查找需要清理的state处理器
|
||||||
String relationshipMark = nifiServiceConfig.getRelationshipMark();
|
String relationshipMark = nifiServiceConfig.getStateClearMark();
|
||||||
List<Processors> findStateClearMarkProcessor = getFindStateClearMarkProcessor(processGroupIdIndex, relationshipMark);
|
List<Processors> findStateClearMarkProcessor = getFindStateClearMarkProcessor(processGroupIdIndex, relationshipMark);
|
||||||
for (Processors processors : findStateClearMarkProcessor) {
|
for (Processors processors : findStateClearMarkProcessor) {
|
||||||
Component2 component = processors.getComponent();
|
Component2 component = processors.getComponent();
|
||||||
|
|
Loading…
Reference in New Issue