REM:
1. 增加获取能力节点列表接口
2. 增加获取能力节点详细信息接口
3. 关闭token认证接口
This commit is contained in:
huangxin 2020-04-13 18:23:48 +08:00
parent 188a49ae99
commit b5fe65f728
22 changed files with 579 additions and 16 deletions

View File

@ -25,6 +25,20 @@ public class ConstValue {
public static final int AUTH_LOGIN = 10;
public static final int AUTH_LOGOUT = 11;
public static final int ADD_DISPOSE_POINT = 100;
public static final int MOD_DISPOSE_POINT = 101;
public static final int DEL_DISPOSE_POINT = 102;
public static final int GET_DISPOSE_POINT_VERSION = 200;
public static final int GET_DISPOSE_POINT_DEV_INFO = 201;
public static final int GET_DISPOSE_POINT_LINK_STATUS = 202;
public static final int GET_DISPOSE_POINT_CATACITY = 203;
public static final int GET_DISPOSE_POINT_PROTECT_IP = 204;
public static final int GET_DISPOSE_POINT_LIST = 209;
public static final int GET_DISPOSE_POINT_DETAILS = 210;
public static final int START_DISPOSE_CMD = 400;
public static final int STOP_DISPOSE_CMD = 401;
public static final int STOP_DISPOSE_CMD_BY_IP = 402;
@ -56,4 +70,22 @@ public class ConstValue {
public static final int LOCKED = 1;
}
public enum DisposeDeviceCapacity {
CLEANUP (0, "清洗能力"),
HIDEPEND (1, "高防能力"),
BLACKHOOL (2, "黑洞能力"),
DETECIVE (3, "检测能力");
private int code;
private String readme;
DisposeDeviceCapacity(int code, String readme) {
this.code = code;
this.readme = readme;
}
public int getCode() {return this.code;}
public String getReadme() {return this.readme;}
}
}

View File

@ -35,10 +35,10 @@ public class AuthController {
@PostMapping("/login")
@ResponseBody
@ApiOperation("获取版本信息")
@ApiOperation("登录")
@ReqDec
@Builder
public ProtocolResp UserLogin(@RequestBody(required = true) ProtocolDTO mr,
public ProtocolResp userLogin(@RequestBody(required = true) ProtocolDTO mr,
@RequestHeader HttpHeaders headers) {
String msgCtx = "";
ErrorCode err = ErrorCode.ERR_OK;
@ -46,6 +46,7 @@ public class AuthController {
log.info("请求token: {}", headers.get("Authorization"));
log.info("请求参数 {}", mr);
if(mr == null) {
err = ErrorCode.ERR_PARAMS;
return ProtocolResp.result(err, -1, msgCtx);
@ -67,11 +68,9 @@ public class AuthController {
err = loginService.authTokenCheck(token);
if(err == ErrorCode.ERR_OK) {
EnumMap<ErrorCode, String> loginMap = userLogout(mr, token);
err = loginMap.keySet().iterator().next();
msgCtx = loginMap.get(err);
}
EnumMap<ErrorCode, String> loginMap = userLogout(mr, token);
err = loginMap.keySet().iterator().next();
msgCtx = loginMap.get(err);
}
}else {
err = ErrorCode.ERR_UNKNOWNCMD;

View File

@ -0,0 +1,87 @@
package com.cmcc.hy.phoenix.controller;
import com.cmcc.hy.phoenix.annotation.bodyencdec.ReqDec;
import com.cmcc.hy.phoenix.common.ConstValue;
import com.cmcc.hy.phoenix.common.ErrorCode;
import com.cmcc.hy.phoenix.pojo.dto.ProtocolDTO;
import com.cmcc.hy.phoenix.pojo.vo.ProtocolResp;
import com.cmcc.hy.phoenix.service.LoginService;
import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.Builder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.Objects;
import static com.cmcc.hy.phoenix.common.ErrorCode.ERR_OK;
@Controller
@RequestMapping(value = "/handle")
@Slf4j
@Api(value = "抗DDoS处置平台认证接口", tags = "抗DDoS处置平台认证接口")
@Component
public class DispointPointController {
@Resource
private ObjectMapper objectMapper;
@Resource
private LoginService loginService;
@PostMapping("/manager")
@ResponseBody
@ApiOperation("节点管理")
@ReqDec
@Builder
public ProtocolResp disposePointManager(@RequestBody(required = true) ProtocolDTO mr,
@RequestHeader HttpHeaders headers){
// 存放返回信息Json字符串
String msgCtx = "";
ErrorCode err = ERR_OK;
log.info("请求token: {}", headers.get("Authorization"));
log.info("请求参数 {}", mr);
// 参数检测
if (mr == null) {
err = ErrorCode.ERR_PARAMS;
return ProtocolResp.result(err, -1, msgCtx);
} else if (mr.IsRequestTimeout()) {
err = ErrorCode.ERR_REQTIMEOUT;
} else {
//try{
// 获取 Token
String token = Objects.
requireNonNull(headers.get("Authorization"))
.get(0).replaceFirst("Bearer ", "");
// 判断Head头是否存在
if (headers.get("Authorization") == null) {
err = ErrorCode.ERR_MISSAUTHHEAD;
} else if ((err = loginService.authTokenCheck(token)) == ERR_OK) {
// Token 正确则处理业务
switch (mr.getCmdId()) {
case ConstValue.ProtocolCmdId.ADD_DISPOSE_POINT:
break;
case ConstValue.ProtocolCmdId.DEL_DISPOSE_POINT:
break;
default:
err = ErrorCode.ERR_UNKNOWNCMD;
}
}
// } catch (JsonProcessingException | NoSuchAlgorithmException ex) {
// log.error(ex.getMessage());
// err = ErrorCode.ERR_EXCEPTION;
// }
}
return ProtocolResp.result(err, mr.getCmdId(), msgCtx);
}
}

View File

@ -0,0 +1,213 @@
package com.cmcc.hy.phoenix.controller;
import com.cmcc.hy.phoenix.annotation.bodyencdec.ReqDec;
import com.cmcc.hy.phoenix.common.ConstValue;
import com.cmcc.hy.phoenix.common.ErrorCode;
import com.cmcc.hy.phoenix.pojo.dto.ProtocolDTO;
import com.cmcc.hy.phoenix.pojo.entity.DisposeDevice;
import com.cmcc.hy.phoenix.pojo.po.DeviceCapacityInfo;
import com.cmcc.hy.phoenix.pojo.po.DisposeDeviceInfo;
import com.cmcc.hy.phoenix.pojo.vo.*;
import com.cmcc.hy.phoenix.pojo.po.DisposeCapacityInfo;
import com.cmcc.hy.phoenix.service.DisposeDeviceManager;
import com.cmcc.hy.phoenix.service.LoginService;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ser.impl.SimpleBeanPropertyFilter;
import com.fasterxml.jackson.databind.ser.impl.SimpleFilterProvider;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.Builder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RequestHeader;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
import static com.cmcc.hy.phoenix.common.ErrorCode.ERR_OK;
@Controller
@RequestMapping(value = "/handle")
@Slf4j
@Api(value = "抗DDoS处置平台认证接口", tags = "抗DDoS处置平台认证接口")
@Component
public class DisposeInfoController {
@Resource
private ObjectMapper objectMapper;
@Resource
private LoginService loginService;
@Resource
private DisposeDeviceManager deviceManager;
SimpleFilterProvider filterProvider = new SimpleFilterProvider();
@PostMapping("/information")
@ResponseBody
@ApiOperation("获取节点信息")
@ReqDec
@Builder
public ProtocolResp disposeInfo(@RequestBody(required = true) ProtocolDTO mr,
@RequestHeader HttpHeaders headers){
// 存放返回信息Json字符串
String msgCtx = "";
ErrorCode err = ERR_OK;
log.info("请求token: {}", headers.get("Authorization"));
log.info("请求参数 {}", mr);
// 参数检测
if (mr == null) {
err = ErrorCode.ERR_PARAMS;
return ProtocolResp.result(err, -1, msgCtx);
} else if (mr.IsRequestTimeout()) {
err = ErrorCode.ERR_REQTIMEOUT;
} else {
try{
// 获取 Token
String token = Objects
.requireNonNull(headers.get("Authorization"))
.get(0).replaceFirst("Bearer ", "");
// 判断Head头是否存在
if (headers.get("Authorization") == null) {
err = ErrorCode.ERR_MISSAUTHHEAD;
} else if ((err = loginService.authTokenCheck(token)) == ERR_OK) {
// Token 正确则处理业务
switch (mr.getCmdId()) {
case ConstValue.ProtocolCmdId.GET_DISPOSE_POINT_CATACITY:
msgCtx = getDevCapInfo(mr);
break;
case ConstValue.ProtocolCmdId.GET_DISPOSE_POINT_LIST:
msgCtx = getDisposeDevicesList();
break;
case ConstValue.ProtocolCmdId.GET_DISPOSE_POINT_DETAILS:
msgCtx = getDisposeDevicesDetails(mr);
break;
default:
err = ErrorCode.ERR_UNKNOWNCMD;
}
}
} catch (JsonProcessingException ex) {
log.error(ex.getMessage());
ex.printStackTrace();
err = ErrorCode.ERR_EXCEPTION;
} catch (IOException e) {
e.printStackTrace();
err = ErrorCode.ERR_EXCEPTION;
}
}
if(err != ERR_OK) {
msgCtx = err.getMsg();
}
return ProtocolResp.result(err, mr.getCmdId(), msgCtx);
}
private String getDisposeDevicesList() throws IOException {
DisposeDevicesResp rspInfo = new DisposeDevicesResp(new ArrayList<>());
Map<String, DisposeDevice> devs = deviceManager.getAllDisposeDevs();
devs.forEach((k, v) -> {
rspInfo.getItems().add(DisposeDeviceInfo.builder()
.id(String.valueOf(v.getId()))
.type(v.getType())
.name(v.getName())
.ip(v.getIpv4()).build());
});
String[] filterItems = new String[] {"areaCode", "readme", "capacity"};
filterProvider.addFilter("DeviceInfo", //添加过滤器名称
SimpleBeanPropertyFilter.serializeAllExcept(filterItems));
objectMapper.setFilterProvider(filterProvider);
return objectMapper.writeValueAsString(rspInfo);
}
private String getDisposeDevicesDetails(ProtocolDTO mr) throws JsonProcessingException {
DisposeDevicesResp rspInfo = new DisposeDevicesResp(new ArrayList<>());
GetInfoById reqInfo = objectMapper.readValue(mr.getMsgContent(), GetInfoById.class);
Map<String, DisposeDevice> devs = deviceManager.getAllDisposeDevs();
devs.forEach((k, v) -> {
if(Arrays.stream(reqInfo.getId()).anyMatch(str -> str.equals(String.valueOf(v.getId())))) {
List<DeviceCapacityInfo> devCaps = new ArrayList<>();
v.getDevCaps().forEach(m -> {
DeviceCapacityInfo devCapInfo = DeviceCapacityInfo.builder()
.capacity(m.getCapacity())
.tolFlowCapacity(m.getTolFlowCapacity())
.build();
if(m.getCapacity() == ConstValue.DisposeDeviceCapacity.CLEANUP.getCode()) {
devCapInfo.setDisposeIp(v.getDisposeIp().toArray(new String[v.getDisposeIp().size()]));
}
devCaps.add(devCapInfo);
});
rspInfo.getItems().add(DisposeDeviceInfo.builder()
.id(String.valueOf(v.getId()))
.type(v.getType())
.name(v.getName())
.ip(v.getIpv4())
.areaCode(v.getAreaCode())
.readme(v.getReadme())
.capacity(devCaps)
.build());
}
});
String[] filterItems = new String[] {};
filterProvider.addFilter("DeviceInfo", //添加过滤器名称
SimpleBeanPropertyFilter.serializeAllExcept(filterItems));
filterProvider.addFilter("DeviceCapacityInfo", //添加过滤器名称
SimpleBeanPropertyFilter.serializeAllExcept(filterItems));
objectMapper.setFilterProvider(filterProvider);
return objectMapper.writeValueAsString(rspInfo);
}
private String getDevCapInfo(ProtocolDTO mr) throws JsonProcessingException {
DisposeCapacityResp rspInfo = new DisposeCapacityResp(new ArrayList<>());
GetInfoById reqInfo = objectMapper.readValue(mr.getMsgContent(), GetInfoById.class);
for (String v: reqInfo.getId()
) {
List<DeviceCapacityInfo> capInfo = deviceManager.getDeviceCapacityInfoByDeviceId(Long.valueOf(v));
DisposeCapacityInfo ret = DisposeCapacityInfo.builder()
.id(v)
.capacity(capInfo).build();
rspInfo.getItems().add(ret);
}
String[] filterItems = new String[] {"disposeIp"};
filterProvider.addFilter("DeviceCapacityInfo", //添加过滤器名称
SimpleBeanPropertyFilter.serializeAllExcept(filterItems));
objectMapper.setFilterProvider(filterProvider);
return objectMapper.writeValueAsString(rspInfo);
}
}

View File

@ -0,0 +1,11 @@
package com.cmcc.hy.phoenix.mapper;
import com.cmcc.hy.phoenix.pojo.entity.DeviceCapacity;
import com.cmcc.hy.phoenix.pojo.entity.DisposeDevice;
import tk.mybatis.mapper.common.Mapper;
import java.util.List;
public interface DeviceCapacityMapper extends Mapper<DisposeDevice> {
List<DeviceCapacity> getDeviceCapacityByDeviceId(Long id);
}

View File

@ -1,6 +1,7 @@
package com.cmcc.hy.phoenix.mapper;
import com.cmcc.hy.phoenix.pojo.entity.DisposeDevice;
import com.cmcc.hy.phoenix.pojo.po.DeviceCapacityInfo;
import tk.mybatis.mapper.common.IdsMapper;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
@ -21,6 +22,7 @@ public interface DisposeDeviceMapper extends Mapper<DisposeDevice>,
List<DisposeDevice> getAllDisposeDevice();
DisposeDevice getDisposeDisposeDevByIp(String ipv4);
List<DeviceCapacityInfo> getDisposeDisposeDevById(Long devId);
void addNewDisposeDevice(DisposeDevice dev);

View File

@ -0,0 +1,19 @@
package com.cmcc.hy.phoenix.pojo.po;
import com.fasterxml.jackson.annotation.JsonFilter;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import org.springframework.lang.Nullable;
@Getter
@Setter
@Builder
@JsonFilter("DeviceCapacityInfo")
public class DeviceCapacityInfo {
private int capacity;
@Nullable
private int tolFlowCapacity;
private int usedCapacity;
private String[] disposeIp;
}

View File

@ -0,0 +1,18 @@
package com.cmcc.hy.phoenix.pojo.po;
import com.cmcc.hy.phoenix.pojo.po.DeviceCapacityInfo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@AllArgsConstructor
@Builder
public class DisposeCapacityInfo {
private String id;
private List<DeviceCapacityInfo> capacity;
}

View File

@ -0,0 +1,24 @@
package com.cmcc.hy.phoenix.pojo.po;
import com.fasterxml.jackson.annotation.JsonFilter;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import org.springframework.lang.Nullable;
import java.util.List;
@Getter
@Setter
@Builder
@JsonFilter("DeviceInfo")
public class DisposeDeviceInfo {
private String id;
private int type;
private String name;
private String ip;
private int areaCode;
@Nullable
private String readme;
private List<DeviceCapacityInfo> capacity;
}

View File

@ -0,0 +1,19 @@
package com.cmcc.hy.phoenix.pojo.vo;
import com.cmcc.hy.phoenix.pojo.po.DisposeCapacityInfo;
import lombok.Setter;
import lombok.Getter;
import lombok.Builder;
import java.util.List;
@Getter
@Setter
@Builder
public class DisposeCapacityResp {
private List<DisposeCapacityInfo> items;
public DisposeCapacityResp(List<DisposeCapacityInfo> ret) {
this.items = ret;
}
}

View File

@ -0,0 +1,19 @@
package com.cmcc.hy.phoenix.pojo.vo;
import com.cmcc.hy.phoenix.pojo.po.DisposeDeviceInfo;
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@Builder
public class DisposeDevicesResp {
List<DisposeDeviceInfo> items;
public DisposeDevicesResp(List<DisposeDeviceInfo> devInfos){
this.items = devInfos;
}
}

View File

@ -0,0 +1,10 @@
package com.cmcc.hy.phoenix.pojo.vo;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class GetInfoById {
private String[] id;
}

View File

@ -2,8 +2,10 @@ package com.cmcc.hy.phoenix.service;
import com.cmcc.hy.phoenix.common.ErrorCode;
import com.cmcc.hy.phoenix.pojo.entity.DisposeDevice;
import com.cmcc.hy.phoenix.pojo.po.DeviceCapacityInfo;
import java.util.EnumMap;
import java.util.List;
import java.util.Map;
public interface DisposeDeviceManager {
@ -12,4 +14,7 @@ public interface DisposeDeviceManager {
Map<String, DisposeDevice> getAllDisposeDevs();
List<DeviceCapacityInfo> getDeviceCapacityInfoById(Long id);
List<DeviceCapacityInfo> getDeviceCapacityInfoByDeviceId(Long deviceId);
}

View File

@ -3,16 +3,20 @@ package com.cmcc.hy.phoenix.service.impl;
import com.cmcc.hy.phoenix.common.ErrorCode;
import com.cmcc.hy.phoenix.dispose.DeviceRouter;
import com.cmcc.hy.phoenix.dispose.DisposeProcess;
import com.cmcc.hy.phoenix.mapper.DeviceCapacityMapper;
import com.cmcc.hy.phoenix.mapper.DisposeDeviceMapper;
import com.cmcc.hy.phoenix.pojo.entity.DeviceCapacity;
import com.cmcc.hy.phoenix.pojo.entity.DisposeDevice;
import com.cmcc.hy.phoenix.service.DisposeDeviceManager;
import com.cmcc.hy.phoenix.pojo.po.DeviceCapacityInfo;
import com.dptech.umc.DetectionObjectDataForService;
import com.dptech.umc.ProtectionObjectDataForService;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.stereotype.Service;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import com.cmcc.hy.phoenix.service.DisposeDeviceManager;
import javax.annotation.Resource;
import java.util.ArrayList;
@ -37,8 +41,36 @@ public class DisposeDeviceManagerImpl implements DisposeDeviceManager {
@Resource
private DisposeDeviceMapper disposeDeviceMapper;
@Resource
private DeviceCapacityMapper deviceCapacityMapper;
private final ConcurrentHashMap<String, DisposeDevice> disposeDevMap = new ConcurrentHashMap<>();
@Override
public List<DeviceCapacityInfo> getDeviceCapacityInfoByDeviceId(Long deviceId) {
List<DeviceCapacityInfo> devList = new ArrayList<>();
List<DeviceCapacity> devCaps = deviceCapacityMapper.getDeviceCapacityByDeviceId(deviceId);
devCaps.forEach(v -> {
devList.add(DeviceCapacityInfo.builder()
.capacity(v.getCapacity())
.tolFlowCapacity(v.getTolFlowCapacity())
.usedCapacity(0)
.disposeIp(new String[]{}).build());
});
return devList;
}
@Override
public List<DeviceCapacityInfo> getDeviceCapacityInfoById(Long id) {
List<DeviceCapacityInfo> dev = disposeDeviceMapper.getDisposeDisposeDevById(id);
return dev;
}
@Override
public EnumMap<ErrorCode, Long> addNewDisposeDevice(DisposeDevice dev) {
TransactionStatus transactionStatus = null;
@ -82,6 +114,7 @@ public class DisposeDeviceManagerImpl implements DisposeDeviceManager {
List<DisposeDevice> dp = disposeDeviceMapper.getAllDisposeDevice();
dp.forEach(v -> {
v.setDisposeIp(getDisposeIpFromDevice(v.getType(), v.getIpv4()));
disposeDevMap.put(v.getIpv4(), v);
});
}
@ -107,7 +140,7 @@ public class DisposeDeviceManagerImpl implements DisposeDeviceManager {
}
try {
List<DetectionObjectDataForService> detDevs = dptechUMC.getAllDetectionObject();
List<ProtectionObjectDataForService> detDevs = dptechUMC.getAllProtectionObject();
List<String> ipList = new ArrayList<>();
@ -115,13 +148,13 @@ public class DisposeDeviceManagerImpl implements DisposeDeviceManager {
String ipSegment = v.getIpSegment().getValue();
if(ipSegment.length() > 0) {
log.info("Ip: {}", v.getIpSegment().getValue());
ipList.addAll(Arrays.asList(v.getIpSegment().getValue().split(",")));
ipList.addAll(Arrays.asList(v.getIpSegment().getValue().replaceAll("\\d{1,}_", "").split(",")));
}
});
return ipList;
} catch(Exception ex) {
log.info(ex.getMessage());
return null;
}
}

View File

@ -24,7 +24,8 @@ public class LoginServiceImpl implements LoginService {
@Override
public ErrorCode authTokenCheck(String token) {
return userAccountService.verifyToken(token);
return ErrorCode.ERR_OK;
//return userAccountService.verifyToken(token);
}
@Override

View File

@ -52,7 +52,7 @@ public class UserAccountCacheServiceImpl implements UserAccountCacheService {
.findFirst();
if(!findRet.isPresent()) {
return ErrorCode.ERR_USERNOTFOUND;
return ErrorCode.ERR_LOGOUT;
}
UserAccountCache uc = findRet.get();

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.cmcc.hy.phoenix.mapper.DeviceCapacityMapper">
<!-- mapper xml文件中只编写复杂逻辑的SQL SQL单独拿出来写与代码解耦SQL的熟练编写是每个研发必备的技能 -->
<select id="getDeviceCapacityByDeviceId" resultType="com.cmcc.hy.phoenix.pojo.entity.DeviceCapacity">
SELECT * FROM device_capacity WHERE deviceId = #{id}
</select>
</mapper>

View File

@ -70,6 +70,15 @@
d.ipv4 = #{ipv4}
</select>
<select id="getDisposeDisposeDevById" resultType="com.cmcc.hy.phoenix.pojo.po.DeviceCapacityInfo">
SELECT
*
FROM
device_capacity
WHERE
deviceId = 1
</select>
<insert id="addNewDisposeDevice" useGeneratedKeys="true" keyProperty="id" parameterType="com.cmcc.hy.phoenix.pojo.entity.DisposeDevice">
INSERT INTO
dispose_device(ipv4, ipv6, type,

View File

@ -4,6 +4,7 @@ import com.cmcc.hy.phoenix.common.ConstValue;
import com.cmcc.hy.phoenix.dispose.DeviceRouter;
import com.cmcc.hy.phoenix.dispose.DisposeProcess;
import com.dptech.umc.DetectionObjectDataForService;
import com.dptech.umc.ProtectionObjectDataForService;
import org.junit.Assert;
import org.junit.Test;
@ -41,14 +42,14 @@ public class DPTechInterfaceTestCase {
}
@Test
public void getAllDetectDevices(){
public void getAllProtectObjects(){
try {
DisposeProcess dp = DeviceRouter.deviceRouterFactory(ConstValue.DisposeDeviceType.DPTECH_UMC.getCode(), "10.88.77.15");
String detDevs = dp.getDetectionDevices();
List<ProtectionObjectDataForService> proObjs = dp.getAllProtectionObject();
Assert.assertNotEquals(detDevs.length(), 0);
Assert.assertNotEquals(proObjs.size(), 0);
} catch (Exception ex){
Assert.fail();

View File

@ -0,0 +1,35 @@
package com.cmcc.hy.phoenix.mapper;
import com.cmcc.hy.phoenix.pojo.entity.DeviceCapacity;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import javax.annotation.Resource;
import java.util.List;
@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class DeviceCapacityMapperTest {
@Autowired
private ObjectMapper objMapper;
@Resource
private DeviceCapacityMapper deviceCapacityMapper;
@Test
public void getUserByNameUsedDefaultMapper() throws JsonProcessingException {
List<DeviceCapacity> devCaps = deviceCapacityMapper.getDeviceCapacityByDeviceId(1L);
log.info(objMapper.writerWithDefaultPrettyPrinter().writeValueAsString(devCaps));
Assert.assertNotEquals(devCaps.size(), 0);
}
}

View File

@ -3,6 +3,7 @@ package com.cmcc.hy.phoenix.mapper;
import com.cmcc.hy.phoenix.common.ConstValue;
import com.cmcc.hy.phoenix.pojo.entity.DeviceCapacity;
import com.cmcc.hy.phoenix.pojo.entity.DisposeDevice;
import com.cmcc.hy.phoenix.pojo.po.DeviceCapacityInfo;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
@ -58,6 +59,15 @@ public class DisposeDeviceMapperTest {
Assert.assertNotNull(dev);
}
@Test
public void getDisposeDisposeDevById() throws JsonProcessingException {
List<DeviceCapacityInfo> dev = disposeDeviceMapper.getDisposeDisposeDevById(1L);
log.info(objMapper.writerWithDefaultPrettyPrinter().writeValueAsString(dev));
Assert.assertNotEquals(dev.size(), 0);
}
@Test
@Transactional
public void addNewDisposeDevice() throws JsonProcessingException {

View File

@ -51,6 +51,7 @@ public class DisposeServiceTest {
devCaps.add(new DeviceCapacity(0, 2048));
devCaps.add(new DeviceCapacity(2));
devCaps.add(new DeviceCapacity(3));
EnumMap<ErrorCode, Long> retMap = dispDevMgr.addNewDisposeDevice(dev);
@ -61,4 +62,11 @@ public class DisposeServiceTest {
log.info(objMapper.writerWithDefaultPrettyPrinter().writeValueAsString(dev));
}
@Test
public void ipSegmentProcess(){
String ip = "1_192.168.3.2-192.168.3.5,2_192.168.5.2-192.168.5.10";
log.info(ip.replaceAll("\\d{1,}_", ""));
}
}