Merge remote-tracking branch 'origin/v2.0.3_dev' into v2.0.3_dev

# Conflicts:
#	src/main/java/com/dispose/mapper/DeviceTaskMapper.java
#	src/main/java/com/dispose/service/impl/DeviceTaskManagerServiceImpl.java
This commit is contained in:
HuangXin 2020-11-13 17:10:13 +08:00
commit c250fd01b2
2 changed files with 54 additions and 26 deletions

View File

@ -7,7 +7,12 @@ import com.dispose.common.ErrorCode;
import com.dispose.common.Helper; import com.dispose.common.Helper;
import com.dispose.common.IpAddrType; import com.dispose.common.IpAddrType;
import com.dispose.common.NetflowDirection; import com.dispose.common.NetflowDirection;
import com.dispose.common.DisposeDeviceType;
import com.dispose.manager.DisposeTaskManager;
import com.dispose.mapper.DisposeDeviceMapper;
import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO; import com.dispose.pojo.dto.protocol.base.ProtocolRespDTO;
import com.dispose.pojo.entity.DeviceTask;
import com.dispose.pojo.entity.DisposeTask;
import com.dispose.pojo.po.MulReturnType; import com.dispose.pojo.po.MulReturnType;
import com.dispose.pojo.vo.DeviceFirewareInfo; import com.dispose.pojo.vo.DeviceFirewareInfo;
import com.pengxin.dispose.common.PengXinDisposeAbilityRsp; import com.pengxin.dispose.common.PengXinDisposeAbilityRsp;
@ -24,9 +29,11 @@ import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
/** /**
* The type Peng xin ability. * The type Peng xin ability.
@ -35,6 +42,17 @@ import java.util.List;
*/ */
@Slf4j @Slf4j
public class PengXinAbilityImpl implements DisposeAbility { public class PengXinAbilityImpl implements DisposeAbility {
/**
* The Dispose task manager.
*/
@Resource
private DisposeTaskManager disposeTaskManager;
/**
* The Dispose device mapper.
*/
@Resource
private DisposeDeviceMapper disposeDeviceMapper;
/** /**
* The Protect ip v 4. * The Protect ip v 4.
@ -84,7 +102,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
/** /**
* The Peng xin dispose type. * The Peng xin dispose type.
*/ */
private final Integer[] pengXinDisposeType = new Integer[] {0, 4, 1, 3}; private final Integer[] pengXinDisposeType = new Integer[]{0, 4, 1, 3};
/** /**
* Gets peng xin task type. * Gets peng xin task type.
@ -168,12 +186,12 @@ public class PengXinAbilityImpl implements DisposeAbility {
} }
reqItems.add(PengXinStartTaskItem.builder() reqItems.add(PengXinStartTaskItem.builder()
.type(getPengXinTaskType(capType)) .type(getPengXinTaskType(capType))
.disposeObject(disposeObject) .disposeObject(disposeObject)
.objectType(getPengXinObjectType(objectType)) .objectType(getPengXinObjectType(objectType))
.disposeTime(duration) .disposeTime(duration)
.taskReqId(String.valueOf(taskReqId++)) .taskReqId(String.valueOf(taskReqId++))
.build()); .build());
ProtocolRespDTO<PengXinStartTaskRsp> rspInfo = restfulInterface.startDisposeTask(url, token, reqItems); ProtocolRespDTO<PengXinStartTaskRsp> rspInfo = restfulInterface.startDisposeTask(url, token, reqItems);
@ -231,7 +249,7 @@ public class PengXinAbilityImpl implements DisposeAbility {
} }
ProtocolRespDTO<PengXinStopTaskRsp> rspInfo = restfulInterface.stopDisposeTask(url, token, ProtocolRespDTO<PengXinStopTaskRsp> rspInfo = restfulInterface.stopDisposeTask(url, token,
new String[]{taskId}); new String[]{taskId});
// 判断是否token过期 // 判断是否token过期
if (rspInfo != null && rspInfo.getCode() == HttpServletResponse.SC_UNAUTHORIZED) { if (rspInfo != null && rspInfo.getCode() == HttpServletResponse.SC_UNAUTHORIZED) {
@ -261,18 +279,18 @@ public class PengXinAbilityImpl implements DisposeAbility {
@Override @Override
public MulReturnType<ErrorCode, DeviceFirewareInfo> getAbilityDeviceFireware() { public MulReturnType<ErrorCode, DeviceFirewareInfo> getAbilityDeviceFireware() {
return new MulReturnType<>(ErrorCode.ERR_OK, return new MulReturnType<>(ErrorCode.ERR_OK,
DeviceFirewareInfo.builder() DeviceFirewareInfo.builder()
.vendor("PengXin") .vendor("PengXin")
.model("Unknown") .model("Unknown")
.firmware("Unknown") .firmware("Unknown")
.os("Linux Server") .os("Linux Server")
.kernel("Linux") .kernel("Linux")
.arch("x86_64") .arch("x86_64")
.version("Unknown") .version("Unknown")
.memory(-1) .memory(-1)
.freeMemory(-1) .freeMemory(-1)
.cpuUsed(-1) .cpuUsed(-1)
.build()); .build());
} }
/** /**
@ -423,25 +441,35 @@ public class PengXinAbilityImpl implements DisposeAbility {
try { try {
String url = urlRootPath + "dispose_device/task/get"; String url = urlRootPath + "dispose_device/task/get";
DisposeTask task = disposeTaskManager.getDisposeTaskById(taskId);
if (task == null) {
return new MulReturnType<>(ErrorCode.ERR_NOSUCHTASK, -1L);
}
//根据设备ID获取设备信息判断任务列表中的设备为鹏信获取externId
List<DeviceTask> dev = task.getDeviceTask().stream().
filter(v -> disposeDeviceMapper.getDeviceById(v.getDeviceId()).getDeviceType() == DisposeDeviceType.PENGXIN_PLATFORM).collect(Collectors.toList());
ProtocolRespDTO<PengXinTaskStatusRsp> rspInfo = restfulInterface.getDeviceTaskStatus(url, token, ProtocolRespDTO<PengXinTaskStatusRsp> rspInfo = restfulInterface.getDeviceTaskStatus(url, token,
new String[] {String.valueOf(taskId)}); new String[]{String.valueOf(dev.get(0).getExternId())});
// 判断是否token过期 // 判断是否token过期
if (rspInfo != null && rspInfo.getCode() == HttpServletResponse.SC_UNAUTHORIZED) { if (rspInfo != null && rspInfo.getCode() == HttpServletResponse.SC_UNAUTHORIZED) {
// 重新登录获取 token // 重新登录获取 token
upgradeToken(); upgradeToken();
rspInfo = restfulInterface.getDeviceTaskStatus(urlRootPath, token, rspInfo = restfulInterface.getDeviceTaskStatus(url, token,
new String[] {String.valueOf(taskId)}); new String[]{String.valueOf(dev.get(0).getExternId())});
} }
if (rspInfo != null && rspInfo.getCode() == ErrorCode.ERR_OK.getHttpCode()) { if (rspInfo != null && rspInfo.getCode() == ErrorCode.ERR_OK.getHttpCode()) {
if(rspInfo.getMsgContent().getItems().size() == 0) { if (rspInfo.getMsgContent().getItems().size() == 0) {
return new MulReturnType<>(ErrorCode.ERR_NOSUCHTASK, -1L); return new MulReturnType<>(ErrorCode.ERR_NOSUCHTASK, -1L);
} }
return new MulReturnType<>(ErrorCode.ERR_OK, return new MulReturnType<>(ErrorCode.ERR_OK,
rspInfo.getMsgContent().getItems().get(0).getTaskStatus()); rspInfo.getMsgContent().getItems().get(0).getTaskStatus());
} else { } else {
return new MulReturnType<>(ErrorCode.ERR_CALLDEVICE, -1L); return new MulReturnType<>(ErrorCode.ERR_CALLDEVICE, -1L);
} }

View File

@ -90,7 +90,7 @@
<update id="changeTaskDevStatus"> <update id="changeTaskDevStatus">
UPDATE device_task UPDATE device_task
SET status = #{status} SET devStatus = #{devStatus}
WHERE id = #{id} WHERE id = #{id}
</update> </update>