feat(nifi-client): 增加处理器详情查询、更新和删除功能

- 新增处理器详情查询、更新和删除相关的 API 接口
- 添加处理器信息和版本相关的新模型类
- 优化错误处理,使用 StrUtil 格式化错误信息
This commit is contained in:
liuy 2025-05-19 11:49:10 +08:00
parent b228ab67a5
commit 7abd8bbed9
10 changed files with 151 additions and 1 deletions

View File

@ -1,5 +1,6 @@
package com.hzya.frame.nifi.client;
import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.hzya.frame.nifi.config.NifiServiceConfig;
import okhttp3.*;
@ -157,7 +158,7 @@ public class NifiClient {
String responseBody = response.body().string();
logger.info("响应体:" + responseBody);
if (!response.isSuccessful()) {
throw new IOException("意外的响应码: " + responseBody);
throw new IOException(StrUtil.format("意外的响应码: {}", responseBody));
}
return objectMapper.readValue(responseBody, responseType);
}

View File

@ -0,0 +1,16 @@
package com.hzya.frame.nifi.model.joinupdateprocessor;
import lombok.Data;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.nifi.model.joinupdateprocessor
* @Projectfw-nifi
* @nameRevision17
* @Date2025/5/19 11:26
* @FilenameRevision17
*/
@Data
public class Revision17 {
private String version;
}

View File

@ -0,0 +1,17 @@
package com.hzya.frame.nifi.model.joinupdateprocessor;
import lombok.Data;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.nifi.model.joinupdateprocessor
* @Projectfw-nifi
* @nameRunStatusOrStop
* @Date2025/5/19 11:25
* @FilenameRunStatusOrStop
*/
@Data
public class RunStatusOrStop17 {
private String state;
private Revision17 revision;
}

View File

@ -0,0 +1,21 @@
package com.hzya.frame.nifi.model.resultprocessorsinfo;
import lombok.Data;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.nifi.model.resultprocessorsinfo
* @Projectfw-nifi
* @nameComponent16
* @Date2025/5/19 10:05
* @FilenameComponent16
*/
@Data
public class Component16 {
private String id;
private String parentGroupId;
private String name;
private String type;
private String state;
private Config16 config;
}

View File

@ -0,0 +1,31 @@
package com.hzya.frame.nifi.model.resultprocessorsinfo;
import lombok.Data;
import java.util.Map;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.nifi.model.resultprocessorsinfo
* @Projectfw-nifi
* @nameConfig16
* @Date2025/5/19 10:06
* @FilenameConfig16
*/
@Data
public class Config16 {
private Map<String, String> properties;
private String schedulingPeriod;
private String schedulingStrategy;
private String executionNodel;
private String penaltyDuration;
private String yieldDuration;
private String bulletinLevel;
private String runDurationMillis;
private String concurrentlySchedulableTaskCount;
private String comments;
private String lossTolerant;
private String retryCount;
private String backoffMechanism;
private String maxBackoffPeriod;
}

View File

@ -0,0 +1,18 @@
package com.hzya.frame.nifi.model.resultprocessorsinfo;
import lombok.Data;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.nifi.model.resultprocessorsinfo
* @Projectfw-nifi
* @nameProcessorsInfo
* @Date2025/5/19 10:03
* @FilenameProcessorsInfo
*/
@Data
public class ProcessorsInfo16 {
private String id;
private Component16 component;
private Revision16 revision;
}

View File

@ -0,0 +1,16 @@
package com.hzya.frame.nifi.model.resultprocessorsinfo;
import lombok.Data;
/**
* @Authorliuyang
* @Packagecom.hzya.frame.nifi.model.resultprocessorsinfo
* @Projectfw-nifi
* @nameRevision16
* @Date2025/5/19 10:04
* @FilenameRevision16
*/
@Data
public class Revision16 {
private String version;
}

View File

@ -11,6 +11,7 @@ import com.hzya.frame.nifi.model.joinprocessgroups.ProcessGroupsJoin;
import com.hzya.frame.nifi.model.joinsnippetinstance.SnippetInstanceJoin;
import com.hzya.frame.nifi.model.joinsnippets.SnippetsJoin;
import com.hzya.frame.nifi.model.joinstartorstopprocessgroup.StartOrStopProcessGroupsInfoJoin10;
import com.hzya.frame.nifi.model.joinupdateprocessor.RunStatusOrStop17;
import com.hzya.frame.nifi.model.nifitemplates.NifiTemplates;
import com.hzya.frame.nifi.model.processgroupid.ProcessGroupsId;
import com.hzya.frame.nifi.model.processgrouproot.ProcessGroupsRoot;
@ -21,6 +22,7 @@ import com.hzya.frame.nifi.model.resultcreatetemplate.NewNifiTemplatete14;
import com.hzya.frame.nifi.model.resultparametercontexts.ParameterContextsResult;
import com.hzya.frame.nifi.model.resultprocessgroups.ProcessgroupsResult;
import com.hzya.frame.nifi.model.resultprocessgroupsinfo.ProcessGroupsInfoResult9;
import com.hzya.frame.nifi.model.resultprocessorsinfo.ProcessorsInfo16;
import com.hzya.frame.nifi.model.resultsnippets.SnippetResult13;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -212,4 +214,32 @@ public class NifiApiService {
public CreateProcess16 createProcessor(String groupId, CreateProcessorJoin15 createProcessorJoin15) throws Exception {
return client.post(StrUtil.format("/process-groups/{}/processors", groupId), createProcessorJoin15, CreateProcess16.class);
}
/**
* 查询处理器详情
*/
public ProcessorsInfo16 getProcessor(String processId) throws Exception {
return client.get(StrUtil.format("/processors/{}", processId), ProcessorsInfo16.class);
}
/**
* 更新处理器参数如果处理器正在运行则无法更新
*/
public ProcessorsInfo16 updateProcessor(String processId, ProcessorsInfo16 processorsInfo16) throws Exception {
return client.put(StrUtil.format("/processors/{}", processId), processorsInfo16, ProcessorsInfo16.class);
}
/**
* 启用/停止处理器
*/
public ProcessorsInfo16 runStatusOrStop(String processId, RunStatusOrStop17 runStatusOrStop17) throws Exception {
return client.put(StrUtil.format("/processors/{}/run-status", processId), runStatusOrStop17, ProcessorsInfo16.class);
}
/**
* 删除处理器详情如果处理器正在运行则无法删除
*/
public ProcessorsInfo16 deleteProcessor(String processId, Map<String, String> queryParams) throws Exception {
return client.delete(StrUtil.format("/processors/{}", processId), queryParams, ProcessorsInfo16.class);
}
}