asn 相关修改提交
(1)asn_ip_cfg增加四列 (2)新增asn_group_info表 (3)asn ip菜单移动到policy object下,新增审核审计菜单 (4)asn ip导入修改,适应新的需求放弃了使用AsnCache,直接从数据库查 (5)asn ip加入审核流程 (6)Packet IP选择asn时,改为选中一个组织,审核下发的配置为as号字符串域 (7)asn ip 新增业务新增function_service_dict字典,serviceId为400
This commit is contained in:
@@ -11,6 +11,7 @@ import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.apache.commons.lang3.StringEscapeUtils;
|
||||
import org.apache.ibatis.session.ExecutorType;
|
||||
@@ -41,6 +42,7 @@ import com.nis.domain.FunctionRegionDict;
|
||||
import com.nis.domain.FunctionServiceDict;
|
||||
import com.nis.domain.SysRole;
|
||||
import com.nis.domain.SysUser;
|
||||
import com.nis.domain.basics.AsnGroupInfo;
|
||||
import com.nis.domain.basics.AsnIpCfg;
|
||||
import com.nis.domain.callback.InlineIp;
|
||||
import com.nis.domain.callback.NtcDnsResStrategy;
|
||||
@@ -79,6 +81,7 @@ import com.nis.domain.maat.ToMaatBean;
|
||||
import com.nis.domain.maat.ToMaatResult;
|
||||
import com.nis.domain.specific.ConfigGroupInfo;
|
||||
import com.nis.domain.specific.SpecificServiceCfg;
|
||||
//import com.nis.util.AsnCacheUtils;
|
||||
import com.nis.util.ConfigServiceUtil;
|
||||
import com.nis.util.Configurations;
|
||||
import com.nis.util.Constants;
|
||||
@@ -87,6 +90,7 @@ import com.nis.util.IpUtil;
|
||||
import com.nis.util.Reflections;
|
||||
import com.nis.util.StringUtil;
|
||||
import com.nis.util.StringUtils;
|
||||
import com.nis.web.dao.basics.AsnGroupInfoDao;
|
||||
import com.nis.web.dao.basics.AsnIpCfgDao;
|
||||
import com.nis.web.dao.configuration.AppCfgDao;
|
||||
import com.nis.web.dao.configuration.AppMultiFeatureCfgDao;
|
||||
@@ -1600,6 +1604,7 @@ public abstract class BaseService {
|
||||
List<? extends BaseCfg> list,List<CfgIndexInfo> cfgIndexInfos,
|
||||
List<AppPolicyCfg> appPolicyCfgs,
|
||||
List<AppFeatureIndex> appFeatureCfgs,
|
||||
List<Map<Long,AsnGroupInfo>> asnNoMaps,
|
||||
boolean send){
|
||||
if(list!=null&&list.size()>0) {
|
||||
String type=null;
|
||||
@@ -1635,7 +1640,7 @@ public abstract class BaseService {
|
||||
}
|
||||
}else if("AsnIpCfg".equals(type)) {
|
||||
List<AsnIpCfg> listPage = (List<AsnIpCfg>) list;
|
||||
this.saveAsnIpBatch(listPage);
|
||||
this.saveAsnIpBatch(listPage,asnNoMaps,send);
|
||||
}else if("AppComplexFeature".equals(type)) {// APP Payload
|
||||
List<AppComplexFeatureCfg> listPage = (List<AppComplexFeatureCfg>) list;
|
||||
this.saveAppComplexFeatureBatch(regionDict,serviceDict,listPage,send);
|
||||
@@ -1767,19 +1772,107 @@ public abstract class BaseService {
|
||||
}
|
||||
}
|
||||
@Transactional(readOnly=false,rollbackFor=RuntimeException.class)
|
||||
public void saveAsnIpBatch(List<AsnIpCfg> cfgs){
|
||||
public void saveAsnIpBatch(List<AsnIpCfg> cfgs,List<Map<Long,AsnGroupInfo>> asnNoMaps,boolean send){
|
||||
logger.warn("Start to save IP,size:"+cfgs.size());
|
||||
long start=System.currentTimeMillis();
|
||||
SqlSessionFactory sqlSessionFactory=SpringContextHolder.getBean(SqlSessionFactory.class);
|
||||
SqlSession batchSqlSession = null;
|
||||
//需要通过新增域接口新增的ip集合
|
||||
List<AsnIpCfg> toAddRegionAsnIpCfgs=Lists.newArrayList();
|
||||
Map<Long,List<AsnIpCfg>> toSendFirstAsnIpCfgs=Maps.newHashMap();
|
||||
|
||||
// AsnCacheUtils.init(true);
|
||||
try{
|
||||
batchSqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false);
|
||||
for(AsnIpCfg cfg:cfgs) {
|
||||
((AsnIpCfgDao) batchSqlSession.getMapper(AsnIpCfgDao.class)).insert(cfg);
|
||||
if(Constants.VALID_YES==cfg.getIsValid().intValue()) {
|
||||
toAddRegionAsnIpCfgs.add(cfg);
|
||||
if(send) {
|
||||
AsnGroupInfo group=asnNoMaps.get(0).get(Long.parseLong(cfg.getUserRegion1()));
|
||||
if(group==null) {
|
||||
group=asnNoMaps.get(1).get(Long.parseLong(cfg.getUserRegion1()));
|
||||
}
|
||||
//AsnGroupInfo group=AsnCacheUtils.get(Long.parseLong(cfg.getUserRegion1()));
|
||||
if(group!=null&&group.getIsValid().intValue()==1) {
|
||||
toAddRegionAsnIpCfgs.add(cfg);
|
||||
}else if(group!=null) {
|
||||
if(toSendFirstAsnIpCfgs.containsKey(group.getAsnId())) {
|
||||
toSendFirstAsnIpCfgs.get(group.getAsnId()).add(cfg);
|
||||
}else {
|
||||
toSendFirstAsnIpCfgs.put(group.getAsnId(), Lists.newArrayList());
|
||||
toSendFirstAsnIpCfgs.get(group.getAsnId()).add(cfg);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if(send) {
|
||||
if(toAddRegionAsnIpCfgs.size()>0) {
|
||||
asnIPRegionSendToMaat(toAddRegionAsnIpCfgs,Constants.VALID_YES);
|
||||
}
|
||||
if(toSendFirstAsnIpCfgs.size()>0) {
|
||||
List<MaatCfg> configCompileList = new ArrayList();
|
||||
ToMaatBean maatBean = new ToMaatBean();
|
||||
|
||||
for(Entry<Long, List<AsnIpCfg>> info:toSendFirstAsnIpCfgs.entrySet()) {
|
||||
AsnGroupInfo group=asnNoMaps.get(0).get(info.getKey());
|
||||
if(group==null) {
|
||||
group=asnNoMaps.get(1).get(info.getKey());
|
||||
}
|
||||
//AsnGroupInfo group=AsnCacheUtils.get(info.getKey());
|
||||
List<GroupCfg> groupRelationList = new ArrayList();
|
||||
List<IpCfg> ipRegionList = new ArrayList();
|
||||
List<StringCfg> strRegionList = new ArrayList();
|
||||
List<NumBoundaryCfg> numRegionList = new ArrayList();
|
||||
List<DigestCfg> digestRegionList = new ArrayList();
|
||||
List<IpCfg> areaIpRegionList = new ArrayList();
|
||||
MaatCfg maatCfg = new MaatCfg();
|
||||
maatCfg.initDefaultValue();
|
||||
//group
|
||||
GroupCfg groupCfg=new GroupCfg();
|
||||
groupCfg.setCompileId(group.getCompileId());
|
||||
groupCfg.setGroupId(group.getGroupId());
|
||||
groupCfg.setIsValid(Constants.VALID_YES);
|
||||
groupCfg.setAuditTime(info.getValue().get(0).getAuditTime());
|
||||
groupRelationList.add(groupCfg);
|
||||
BeanUtils.copyProperties(info.getValue().get(0), maatCfg);
|
||||
ipRegionList.addAll(groupReuseCfgAddRemoveConvert(info.getValue(),Constants.VALID_YES,group.getGroupId()));
|
||||
maatCfg.setCompileId(group.getCompileId());
|
||||
maatCfg.setAction(info.getValue().get(0).getAction());
|
||||
maatCfg.setAuditTime(info.getValue().get(0).getAuditTime());
|
||||
maatCfg.setIpRegionList(ipRegionList);
|
||||
maatCfg.setStrRegionList(strRegionList);
|
||||
maatCfg.setNumRegionList(numRegionList);
|
||||
maatCfg.setDigestRegionList(digestRegionList);
|
||||
maatCfg.setGroupRelationList(groupRelationList);
|
||||
maatCfg.setGroupNum(groupRelationList.size());
|
||||
maatCfg.setAreaIpRegionList(areaIpRegionList);
|
||||
maatCfg.setIsValid(info.getValue().get(0).getIsValid());
|
||||
// 设置自定义域
|
||||
String userRegion = "ASN_ID=" + info.getKey();
|
||||
maatCfg.setUserRegion(userRegion);
|
||||
configCompileList.add(maatCfg);
|
||||
|
||||
group.setIsValid(1);
|
||||
((AsnGroupInfoDao) batchSqlSession.getMapper(AsnGroupInfoDao.class)).updateValid(group);
|
||||
}
|
||||
maatBean.setConfigCompileList(configCompileList);
|
||||
maatBean.setAuditTime(cfgs.get(0).getAuditTime());
|
||||
maatBean.setCreatorName(cfgs.get(0).getCurrentUser().getName());
|
||||
maatBean.setVersion(Constants.MAAT_VERSION);
|
||||
maatBean.setOpAction(Constants.INSERT_ACTION);
|
||||
// 调用服务接口下发配置数据
|
||||
String json = gsonToJson(maatBean);
|
||||
if(configCompileList.size()<=100) {
|
||||
logger.info("asn IP配置下发配置参数:" + json);
|
||||
}else {
|
||||
logger.info("asn IP配置下发配置数量:" + configCompileList.size());
|
||||
}
|
||||
|
||||
// 调用服务接口下发配置
|
||||
ToMaatResult result = ConfigServiceUtil.postMaatCfg(json);
|
||||
logger.info("asn IP配置下发响应信息:" + result.getMsg());
|
||||
}
|
||||
}
|
||||
batchSqlSession.commit();
|
||||
@@ -1790,9 +1883,6 @@ public abstract class BaseService {
|
||||
}
|
||||
long end=System.currentTimeMillis();
|
||||
logger.warn("Save IP finish,cost:"+(end-start));
|
||||
if(toAddRegionAsnIpCfgs.size()>0) {
|
||||
asnIPRegionSendToMaat(toAddRegionAsnIpCfgs,Constants.VALID_YES);
|
||||
}
|
||||
cfgs.clear();
|
||||
toAddRegionAsnIpCfgs.clear();
|
||||
cfgs=null;
|
||||
|
||||
Reference in New Issue
Block a user