mirror of
https://github.com/yanlongqi/jhinno-openapi-java-sdk.git
synced 2026-03-22 06:15:10 +08:00
作业提交机器代码优化
This commit is contained in:
@@ -6,7 +6,6 @@ import com.jhinno.sdk.openapi.ArgsException;
|
|||||||
import com.jhinno.sdk.openapi.CommonConstant;
|
import com.jhinno.sdk.openapi.CommonConstant;
|
||||||
import com.jhinno.sdk.openapi.ServiceException;
|
import com.jhinno.sdk.openapi.ServiceException;
|
||||||
import com.jhinno.sdk.openapi.api.auth.AuthPathConstant;
|
import com.jhinno.sdk.openapi.api.auth.AuthPathConstant;
|
||||||
import com.jhinno.sdk.openapi.api.auth.Token;
|
|
||||||
import com.jhinno.sdk.openapi.client.JHApiClient;
|
import com.jhinno.sdk.openapi.client.JHApiClient;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
@@ -104,11 +103,11 @@ public class JHApiExecution {
|
|||||||
String base64 = aes.encryptBase64(String.format("%s,%s", username, System.currentTimeMillis()));
|
String base64 = aes.encryptBase64(String.format("%s,%s", username, System.currentTimeMillis()));
|
||||||
params.put("username", base64);
|
params.put("username", base64);
|
||||||
String url = JHApiClient.getUrl(AuthPathConstant.AUTH_TOKEN_PATH, params);
|
String url = JHApiClient.getUrl(AuthPathConstant.AUTH_TOKEN_PATH, params);
|
||||||
Token token = get(url, new TypeReference<ResponseResult<Token>>() {
|
Map<String, String> token = get(url, new TypeReference<ResponseResult<Map<String, String>>>() {
|
||||||
});
|
});
|
||||||
tokenInfo = new TokenInfo();
|
tokenInfo = new TokenInfo();
|
||||||
tokenInfo.setUserName(username);
|
tokenInfo.setUserName(username);
|
||||||
tokenInfo.setToken(token.getToken());
|
tokenInfo.setToken(token.get("token"));
|
||||||
tokenInfo.setCurrentTimestamp(System.currentTimeMillis());
|
tokenInfo.setCurrentTimestamp(System.currentTimeMillis());
|
||||||
TOKEN_INFO_MAP.put(username, tokenInfo);
|
TOKEN_INFO_MAP.put(username, tokenInfo);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
package com.jhinno.sdk.openapi.api.app;
|
package com.jhinno.sdk.openapi.api.app;
|
||||||
|
|
||||||
import lombok.Builder;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 启动会话的请求参数
|
* 启动会话的请求参数
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
package com.jhinno.sdk.openapi.api.app;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用链接URL信息
|
|
||||||
*
|
|
||||||
* @author yanlongqi
|
|
||||||
* @date 2024/2/4 16:44
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class AppUrlInfo {
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 应用的url
|
|
||||||
*/
|
|
||||||
private String url;
|
|
||||||
}
|
|
||||||
@@ -328,18 +328,18 @@ public class JHAppApiExecution extends JHApiExecution {
|
|||||||
*
|
*
|
||||||
* @param username 应户名
|
* @param username 应户名
|
||||||
* @param appName 应用名
|
* @param appName 应用名
|
||||||
* @return 应用链接信息
|
* @return 应用链接地址
|
||||||
*/
|
*/
|
||||||
public AppUrlInfo getAppUrl(String username, String appName) {
|
public String getAppUrl(String username, String appName) {
|
||||||
if (StringUtils.isBlank(appName)) {
|
if (StringUtils.isBlank(appName)) {
|
||||||
throw new ArgsException("appName为必填字段");
|
throw new ArgsException("appName为必填字段");
|
||||||
}
|
}
|
||||||
String path = AppPathConstant.APPS_GET_URL_PATH.replace("{appName}", appName);
|
String path = AppPathConstant.APPS_GET_URL_PATH.replace("{appName}", appName);
|
||||||
List<AppUrlInfo> apps = get(path, username, new TypeReference<ResponseResult<List<AppUrlInfo>>>() {
|
List<Map<String, String>> apps = get(path, username, new TypeReference<ResponseResult<List<Map<String, String>>>>() {
|
||||||
});
|
});
|
||||||
if (CollectionUtil.isEmpty(apps)) {
|
if (CollectionUtil.isEmpty(apps)) {
|
||||||
throw new ServiceException(path, 500, "应用信息为空!");
|
throw new ServiceException(path, 500, "应用信息为空!");
|
||||||
}
|
}
|
||||||
return apps.get(0);
|
return apps.get(0).get("url");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
package com.jhinno.sdk.openapi.api.auth;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 请求令牌,用户请求其他接口
|
|
||||||
*
|
|
||||||
* @author yanlongqi
|
|
||||||
* @date 2024/1/31 10:30
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class Token {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 令牌
|
|
||||||
*/
|
|
||||||
private String token;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
package com.jhinno.sdk.openapi.api.file;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件下载地址信息
|
|
||||||
*
|
|
||||||
* @author yanlongqi
|
|
||||||
* @date 2024/2/5 17:53
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Data
|
|
||||||
public class DownloadInfo {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件地址
|
|
||||||
*/
|
|
||||||
private String url;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
package com.jhinno.sdk.openapi.api.file;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 文件创建消息
|
|
||||||
*
|
|
||||||
* @author yanlongqi
|
|
||||||
* @date 2024/2/5 14:17
|
|
||||||
*/
|
|
||||||
@Data
|
|
||||||
public class FilePathInfo {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 新的文件夹的位置
|
|
||||||
*/
|
|
||||||
private String dirPath;
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.jhinno.sdk.openapi.api.file;
|
package com.jhinno.sdk.openapi.api.file;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.jhinno.sdk.openapi.ArgsException;
|
import com.jhinno.sdk.openapi.ArgsException;
|
||||||
import com.jhinno.sdk.openapi.CommonConstant;
|
import com.jhinno.sdk.openapi.CommonConstant;
|
||||||
@@ -116,7 +117,7 @@ public class JHFileApiExecution extends JHApiExecution {
|
|||||||
* @param isForce 是否强制创建(非必传,默认:false)
|
* @param isForce 是否强制创建(非必传,默认:false)
|
||||||
* @return 新建后的文件路径
|
* @return 新建后的文件路径
|
||||||
*/
|
*/
|
||||||
public FilePathInfo mkdir(String username, String dirPath, Boolean isForce) {
|
public String mkdir(String username, String dirPath, Boolean isForce) {
|
||||||
if (StringUtils.isBlank(dirPath)) {
|
if (StringUtils.isBlank(dirPath)) {
|
||||||
throw new ArgsException("dirPath不能为空!");
|
throw new ArgsException("dirPath不能为空!");
|
||||||
}
|
}
|
||||||
@@ -125,8 +126,12 @@ public class JHFileApiExecution extends JHApiExecution {
|
|||||||
if (isForce != null) {
|
if (isForce != null) {
|
||||||
body.put("isForce", isForce.toString());
|
body.put("isForce", isForce.toString());
|
||||||
}
|
}
|
||||||
return post(FilePathConstant.FILE_MKDIR_PATH, username, body, new TypeReference<ResponseResult<FilePathInfo>>() {
|
Map<String, String> result = post(FilePathConstant.FILE_MKDIR_PATH, username, body, new TypeReference<ResponseResult<Map<String, String>>>() {
|
||||||
});
|
});
|
||||||
|
if (CollectionUtil.isEmpty(result)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return result.get("dirPath");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -137,7 +142,7 @@ public class JHFileApiExecution extends JHApiExecution {
|
|||||||
* @param dirPath 文件路径
|
* @param dirPath 文件路径
|
||||||
* @return 新建后的文件路径
|
* @return 新建后的文件路径
|
||||||
*/
|
*/
|
||||||
public FilePathInfo mkdir(String username, String dirPath) {
|
public String mkdir(String username, String dirPath) {
|
||||||
return mkdir(username, dirPath, null);
|
return mkdir(username, dirPath, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -149,14 +154,18 @@ public class JHFileApiExecution extends JHApiExecution {
|
|||||||
* @param filePath 文件路径
|
* @param filePath 文件路径
|
||||||
* @return 新的文件路径
|
* @return 新的文件路径
|
||||||
*/
|
*/
|
||||||
public FilePathInfo mkFile(String username, String filePath) {
|
public String mkFile(String username, String filePath) {
|
||||||
if (StringUtils.isBlank(filePath)) {
|
if (StringUtils.isBlank(filePath)) {
|
||||||
throw new ArgsException("filePath不能为空!");
|
throw new ArgsException("filePath不能为空!");
|
||||||
}
|
}
|
||||||
Map<String, Object> body = new HashMap<>(1);
|
Map<String, Object> body = new HashMap<>(1);
|
||||||
body.put("filePath", filePath);
|
body.put("filePath", filePath);
|
||||||
return post(FilePathConstant.FILE_MKFILE_PATH, username, body, new TypeReference<ResponseResult<FilePathInfo>>() {
|
Map<String, String> result = post(FilePathConstant.FILE_MKFILE_PATH, username, body, new TypeReference<ResponseResult<Map<String, String>>>() {
|
||||||
});
|
});
|
||||||
|
if (CollectionUtil.isEmpty(result)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return result.get("dirPath");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -217,15 +226,19 @@ public class JHFileApiExecution extends JHApiExecution {
|
|||||||
* @param filePath 文件路径
|
* @param filePath 文件路径
|
||||||
* @return 文件地址信息
|
* @return 文件地址信息
|
||||||
*/
|
*/
|
||||||
public DownloadInfo getFileDownloadUrl(String username, String filePath) {
|
public String getFileDownloadUrl(String username, String filePath) {
|
||||||
if (StringUtils.isBlank(filePath)) {
|
if (StringUtils.isBlank(filePath)) {
|
||||||
throw new ArgsException("filePath不能为空!");
|
throw new ArgsException("filePath不能为空!");
|
||||||
}
|
}
|
||||||
Map<String, Object> params = new HashMap<>(1);
|
Map<String, Object> params = new HashMap<>(1);
|
||||||
params.put("filePath", filePath);
|
params.put("filePath", filePath);
|
||||||
String path = JHApiClient.getUrl(FilePathConstant.FILE_DOWNLOAD_PATH, params);
|
String path = JHApiClient.getUrl(FilePathConstant.FILE_DOWNLOAD_PATH, params);
|
||||||
return get(path, username, new TypeReference<ResponseResult<DownloadInfo>>() {
|
Map<String, String> downloadInfo = get(path, username, new TypeReference<ResponseResult<Map<String, String>>>() {
|
||||||
});
|
});
|
||||||
|
if (CollectionUtil.isEmpty(downloadInfo)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return downloadInfo.get("url");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
package com.jhinno.sdk.openapi.api.job;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
|
import com.jhinno.sdk.openapi.ArgsException;
|
||||||
|
import com.jhinno.sdk.openapi.ServiceException;
|
||||||
|
import com.jhinno.sdk.openapi.api.JHApiExecution;
|
||||||
|
import com.jhinno.sdk.openapi.api.ResponseResult;
|
||||||
|
import com.jhinno.sdk.openapi.client.JHApiClient;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author yanlongqi
|
||||||
|
* @date 2024/2/5 18:44
|
||||||
|
*/
|
||||||
|
public class JHJobApiExecution extends JHApiExecution {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取一个执行器的实例
|
||||||
|
*
|
||||||
|
* @param jhApiClient 请求的客户端
|
||||||
|
*/
|
||||||
|
public JHJobApiExecution(JHApiClient jhApiClient) {
|
||||||
|
super(jhApiClient);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交作业
|
||||||
|
*
|
||||||
|
* @param username 用户名
|
||||||
|
* @param appId 应用id
|
||||||
|
* @param params 作业提交参数
|
||||||
|
* @return 作业id
|
||||||
|
*/
|
||||||
|
public String submit(String username, String appId, Map<String, Object> params) {
|
||||||
|
if (StringUtils.isBlank(appId)) {
|
||||||
|
throw new ArgsException("appId不能为空");
|
||||||
|
}
|
||||||
|
if (CollectionUtil.isEmpty(params)) {
|
||||||
|
throw new ArgsException("params不能为空");
|
||||||
|
}
|
||||||
|
Map<String, Object> map = new HashMap<>(2);
|
||||||
|
map.put("appId", appId);
|
||||||
|
map.put("params", JSONUtil.toJsonStr(params));
|
||||||
|
String path = JHApiClient.getUrl(JobPathConstant.JOB_SUBMIT_PATH, map);
|
||||||
|
List<Map<String, String>> result = post(path, username, null, new TypeReference<ResponseResult<List<Map<String, String>>>>() {
|
||||||
|
});
|
||||||
|
if (CollectionUtil.isEmpty(result)) {
|
||||||
|
throw new ServiceException(path, 500, "作业提交返回为空!");
|
||||||
|
}
|
||||||
|
return result.get(0).get("jobid");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
package com.jhinno.sdk.openapi.api.job;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 作业相关接口路径
|
||||||
|
*
|
||||||
|
* @author yanlongqi
|
||||||
|
* @date 2024/2/5 18:44
|
||||||
|
*/
|
||||||
|
public class JobPathConstant {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 提交作业
|
||||||
|
*/
|
||||||
|
public static final String JOB_SUBMIT_PATH = "/ws/api/jobs/jsub";
|
||||||
|
}
|
||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.jhinno.sdk.openapi.test.app;
|
package com.jhinno.sdk.openapi.test.app;
|
||||||
|
|
||||||
|
import cn.hutool.core.lang.ConsoleTable;
|
||||||
import com.jhinno.sdk.openapi.api.app.*;
|
import com.jhinno.sdk.openapi.api.app.*;
|
||||||
|
import com.jhinno.sdk.openapi.api.file.FileInfo;
|
||||||
import com.jhinno.sdk.openapi.test.JHClientConfig;
|
import com.jhinno.sdk.openapi.test.JHClientConfig;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
@@ -155,8 +157,15 @@ public class AppApiTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testGetAppList() {
|
public void testGetAppList() {
|
||||||
List<AppInfo> appList = jhAppApiExecution.getAppList("lqyan");
|
List<AppInfo> appList = jhAppApiExecution.getAppList("jhadmin");
|
||||||
System.out.println(appList);
|
|
||||||
|
ConsoleTable consoleTable = ConsoleTable.create();
|
||||||
|
consoleTable.setSBCMode(false);
|
||||||
|
consoleTable.addHeader("id", "name", "type", "category", "protocol");
|
||||||
|
for (AppInfo appInfo : appList) {
|
||||||
|
consoleTable.addBody(appInfo.getId(), appInfo.getName(), appInfo.getType(), appInfo.getCategory(), appInfo.getProtocol());
|
||||||
|
}
|
||||||
|
consoleTable.print();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -165,8 +174,7 @@ public class AppApiTest {
|
|||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testGetAppUrl() {
|
public void testGetAppUrl() {
|
||||||
AppUrlInfo appUrl = jhAppApiExecution.getAppUrl("lqyan", "myjobmana");
|
System.out.println(jhAppApiExecution.getAppUrl("jhadmin", "myjobmana"));
|
||||||
System.out.println(appUrl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
package com.jhinno.sdk.openapi.test.job;
|
||||||
|
|
||||||
|
import com.jhinno.sdk.openapi.api.job.JHJobApiExecution;
|
||||||
|
import com.jhinno.sdk.openapi.test.JHClientConfig;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author yanlongqi
|
||||||
|
* @date 2024/2/5 18:56
|
||||||
|
*/
|
||||||
|
public class JobApiTest {
|
||||||
|
|
||||||
|
private static final JHJobApiExecution execution = new JHJobApiExecution(JHClientConfig.client);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 测试提交作业
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void testSubmitJob() {
|
||||||
|
Map<String, Object> params = new HashMap<>();
|
||||||
|
params.put("JH_CAS", "$HOME/aaa.sh");
|
||||||
|
params.put("JH_NCPU", "1");
|
||||||
|
System.out.println(execution.submit("jhadmin", "common_sub", params));
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user