From 7271066a082e4813fe40ba18c87cd4c1a19e7a07 Mon Sep 17 00:00:00 2001 From: lily Date: Wed, 14 Sep 2016 15:50:02 +0800 Subject: [PATCH 1/4] fix mountPoint --- src/com/platform/glusterfs/CopyData.java | 45 +++++- src/com/platform/glusterfs/SetVolume.java | 161 ++++++++++++--------- src/com/platform/glusterfs/ShowData.java | 3 +- src/com/platform/glusterfs/VolumeInfo.java | 28 +--- src/com/platform/utils/Constant.java | 7 +- 5 files changed, 144 insertions(+), 100 deletions(-) diff --git a/src/com/platform/glusterfs/CopyData.java b/src/com/platform/glusterfs/CopyData.java index 3af2dbea..694aec06 100644 --- a/src/com/platform/glusterfs/CopyData.java +++ b/src/com/platform/glusterfs/CopyData.java @@ -61,24 +61,57 @@ public class CopyData { return -2; } String command = "cp -r " + sourceFolderName + "/" + fileName+" "+destFolderName; - /* - * RunCommand runCommand = new RunCommand(); - - List reStrings = runCommand.runCommandWait(command); - */ + Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); log.info("copy " + sourceFolderName +"/" + fileName+ " to " + destFolderName + " running"); return 1; } + /** + * 将sourceFolderName拷贝到destFolderName + * 如果拷贝正常返回1,如果sourceFolderName不存在返回-2 ,如果destFolderName不存在返回-3 + * @param sourceFolderName + * @param destFolderName + * @return + * @see [类、类#方法、类#成员] + */ + public int copyFolder(String sourceFolderName, String destFolderName) { + int progress=0; + log.info("start copy " + sourceFolderName + " to " + destFolderName); + ShowData showData=new ShowData(); + Map reStrings=showData.showFolderData(destFolderName); + if(reStrings==null){ + log.info("3201 "+destFolderName+" is not exists"); + return -3; + } + + reStrings=showData.showFolderData(sourceFolderName); + if(reStrings==null){ + log.info("3202 "+sourceFolderName+" is not exists"); + return -2; + } + String command = "cp -r " + sourceFolderName+" "+destFolderName; + + Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); + + log.info("copy " + sourceFolderName + " to " + destFolderName + " running"); + return 1; + } + /** + * 依次创建不存在文件夹 + * <功能详细描述> + * @param folder + * @return + * @see [类、类#方法、类#成员] + */ public int createFolders(String folder){ log.info("create "+folder); String splitFolder[]=folder.substring(1).split("/"); String cmd="mkdir "; for(String one:splitFolder){ cmd+="/"+one.replaceAll(" ", ""); - Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + List reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); } return 1; } diff --git a/src/com/platform/glusterfs/SetVolume.java b/src/com/platform/glusterfs/SetVolume.java index 5502aaee..6b4dddcc 100644 --- a/src/com/platform/glusterfs/SetVolume.java +++ b/src/com/platform/glusterfs/SetVolume.java @@ -1,13 +1,10 @@ - /** * @author 李乾坤 * 进行volume的一系列操作,如创建、开启停止volume,为volume添加或删除brick */ package com.platform.glusterfs; - - import java.io.File; import java.util.ArrayList; import java.util.HashMap; @@ -17,17 +14,24 @@ import java.util.Map; import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; +import org.junit.Test; import com.platform.utils.Constant; - - public class SetVolume { public static Logger log = Logger.getLogger(SetVolume.class); - /* - * 创建volume 返回值:创建并挂载成功 1 + /** + * 创建volume 返回值:创建并挂载成功 1 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3 + * -4:类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误 * + * @param volumeName + * @param count + * @param type + * @param bricks + * @param mountPoint + * @return + * @see [类、类#方法、类#成员] */ public int createVolume(String volumeName, int count, String type, List bricks, String mountPoint) { log.info("Creat new volume"); @@ -48,10 +52,9 @@ public class SetVolume { } else if (type.equals(Constant.replica) || type.equals(Constant.stripe)) { command = "gluster volume create " + volumeName + " " + type + " " + count + " " + commandarg + "force"; } - + // 执行命令 - List reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, - Constant.port, command); + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); // 创建成功时返回信息格式:volume create: volumename success: if (reStrings == null || reStrings.size() == 0) { @@ -59,27 +62,24 @@ public class SetVolume { return -7; } if (reStrings.get(0).contains("volume create: " + volumeName + ": " + "success:")) { - log.info("create volume "+volumeName+" successed!"); + log.info("create volume " + volumeName + " successed!"); // 创建成功则启动并进行挂载 if (startVolume(volumeName) == 0) { - log.info("start volume "+volumeName+" successed!"); - if ((new ShowData().showFolderData(mountPoint)) == null) { - Constant.ganymedSSH.execCmdWaitAcquiescent("mkdir " + mountPoint); - } + log.info("start volume " + volumeName + " successed!"); + + log.info("create "+mountPoint); + new CopyData().createFolders(mountPoint); + // 进行挂载 - String command3 = "mount -t glusterfs " + Constant.hostIp + ":/" + volumeName + " " + mountPoint; - List reStrings3 = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, - Constant.rootPasswd, Constant.port, command3); - - // 这里需要添加解析挂载命令返回字符串的语句,由于我的系统有问题,导致挂载成功后返回WARNING: getfattr - // not found, certain checks will be skipped.. - // 所以这句代码未经测试 - // 成功挂载时没有任何返回信息 - if (reStrings3.size() == 0 || reStrings.get(0).contains("GlusterFS is already mounted")) - { + String command3 = "mount -t glusterfs " + Constant.hostIp + ":" + volumeName + " " + mountPoint; + List reStrings3 = Constant.ganymedSSH.execCmdWaitAcquiescent(command3); + + if (reStrings3.size() == 0 || reStrings.get(0).contains("GlusterFS is already mounted")) { log.info("mount point successed!"); + String addRecord = "echo \"" + volumeName + ":" + mountPoint + "\" >> " + Constant.MountRecord; + Constant.ganymedSSH.execCmdNoWaitAcquiescent(addRecord); return 1; - } + } } } else { log.error("3104 volume create failed with error" + reStrings.get(0)); @@ -96,46 +96,66 @@ public class SetVolume { } /** - * 删除volume - * + * 删除volume 1 表示成功 ;-1表示volume name不存在;-2表示停止volume 失败; + * -3表示删除失败,-4表示/gfsAutoMount/mountPoint.record文件不存在 * @param volumeName - * @return 1 表示成功 ;-1表示volume name不存在;-2表示停止volume 失败 + * @return + * @see [类、类#方法、类#成员] */ public int deleteVolume(String volumeName) { int status = 0; - List volumeNames = new VolumeInfo().showAllVolumeName(); + VolumeInfo volumeInfo = new VolumeInfo(); + List volumeNames = volumeInfo.showAllVolumeName(); if (!volumeNames.contains(volumeName)) { log.error("3801 " + volumeName + " is not exists !"); return -1; } - List mountPoints = new VolumeInfo().getVolumeMountPoint(volumeName); + List mountPoints = volumeInfo.getVolumeMountPoint(volumeName); + + String cmd = "cat " + Constant.MountRecord; + List mountRecord = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + if (stopVolume(volumeName) != 0) { - log.error("3802 " + volumeName + " stop failed !"); + return -2; } - log.info("stop "+volumeName+" successed!"); - for(String mountPoint:mountPoints){ - if (mountPoint != null) { - String command = "umount -l " + mountPoint; - Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); - log.info("umount "+mountPoint+" successed!"); + + String command = "echo -e \"y\"| gluster volume delete " + volumeName; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + if (reStrings == null || reStrings.size() == 0 + || !(reStrings.get(0).contains("volume delete: " + volumeName + ": success"))) { + log.error("3803 : delete volume " + volumeName + " failed !"); + return -3; } + log.info("delete " + volumeName + " successed!"); + if (mountRecord.size() != 0 && mountPoints.get(0).contains(Constant.noSuchFile)) { + log.error("3804 : " + Constant.MountRecord + " is not exits"); + return -4; } - String command="echo -e \"y\"| gluster volume delete "+volumeName; - List reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(command); - if(reStrings==null || reStrings.size()>0 || !(reStrings.get(0).contains("volume delete: "+volumeName+": success"))){ - log.error("3803 : delete volume "+volumeName+" failed !"); - return -3; + for (String mountPoint : mountPoints) { + command = "umount -l " + mountPoint; + Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); + log.info("umount " + mountPoint + " successed!"); + String oneRecord=volumeName+":"+mountPoint; + if (mountRecord.contains(oneRecord)) { + mountRecord.remove(oneRecord); + } + } - log.info("delete "+volumeName+" successed!"); + String newRecords=""; + for(String one:mountRecord){ + newRecords+=one+"\n"; + } + command="echo -ne \""+newRecords+"\" > "+Constant.MountRecord; + Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); return 1; } /** * 为指定的volume添加brick,参数中需要指定类型、数量等 返回值:1成功 ;其他失败 * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符 - * <功能详细描述> + * * @param volumeName * @param brickName * @param count @@ -162,8 +182,7 @@ public class SetVolume { else if (type.equals(Constant.stripe)) command = "gluster volume add-brick " + volumeName + " " + "stripe " + count + " " + brick + "force"; - List reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, - Constant.port, command); + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); // 添加成功的返回信息是:volume add-brick: success if (reStrings != null && reStrings.size() > 0 && reStrings.get(0).contains("volume add-brick: success")) { @@ -171,15 +190,16 @@ public class SetVolume { return 1; } else { log.error("3205 add brick failed,please check the system"); - // System.out.println("3202 add brick failed,please check the system"); + // System.out.println("3202 add brick failed,please check the + // system"); return -5; } } - /** * 为指定的volume删除brick,参数中需要指定类型、数量等 返回值:1 成功 ;其他 失败 * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符 + * * @param volumeName * @param brickName * @param count @@ -203,7 +223,7 @@ public class SetVolume { command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " " + brick + " force"; } else if (type.equals(Constant.replica)) { command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " repli " + count + " " + brick - + " force"; + + " force"; } else if (type.equals(Constant.stripe)) { command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " stripe " + count + " " + brick + " force"; @@ -214,8 +234,7 @@ public class SetVolume { return -5; } log.info("即将执行删除命令"); - List reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, - Constant.port, command); + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); // System.out.println(reStrings); log.info("删除命令执行完毕"); @@ -264,8 +283,7 @@ public class SetVolume { return -1; } else { String command = "echo -e \"y\"| gluster volume stop " + volumeName; - List reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, - Constant.port, command); + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); // 标记操作结果:operation = 1 操作成功 // operation = 0 操作失败 @@ -309,12 +327,11 @@ public class SetVolume { if (volumeExist) { if (!(new VolumeInfo().getVolumeStatus(volumeName).equals("Started"))) { String command = "gluster volume start " + volumeName; - + int operation = 0; // 执行命令 - List reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, - Constant.port, command); + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); for (String temp2 : reStrings) { if (temp2.equals("volume start: " + volumeName + ": " + "success")) { operation = 1; @@ -393,20 +410,22 @@ public class SetVolume { } List volumeNames = new VolumeInfo().showAllVolumeName(); - if(volumeNames==null){ + if (volumeNames == null) { log.error("3108 showAllVolumeName return error"); return -7; } - if (volumeNames.contains(volumeName)) { + if (volumeNames.contains(volumeName)) { log.error("3106 " + volumeName + " is already exists! "); return -5; } + /* Map datas = new ShowData().showFolderData(mountPoint); if (datas != null && datas.size() > 0) { log.error("3107 " + mountPoint + " is not exists or not empty ! "); return -6; } + */ return 1; } @@ -464,18 +483,29 @@ public class SetVolume { return 1; } + @Test + public void test_deleteVolume(){ + System.out.println(deleteVolume("lili_test1")); + } +// @Test + public void test_createVolume(){ + List bricksToCreate = new ArrayList(); + bricksToCreate.add("192.168.0.110:/lili_test1"); + bricksToCreate.add("192.168.0.116:/lili_test1"); + System.out.println(createVolume("lili_test1", 0, "distributed", bricksToCreate, "/home/lili_test1_point")); + } public static void main(String[] args) { SetVolume setVolume = new SetVolume(); int operation = 0; -// PropertyConfigurator.configure("log4j.properties"); + // PropertyConfigurator.configure("log4j.properties"); // TODO Auto-generated method stub // 测试创建volume的代码 - List bricksToCreate = new ArrayList(); - bricksToCreate.add("192.168.0.110:/v2"); - bricksToCreate.add("192.168.0.116:/v2"); - operation = setVolume.createVolume("v2", 0, "distributed", bricksToCreate, "/home/v2_point"); -// operation = setVolume.deleteVolume("v3"); +// List bricksToCreate = new ArrayList(); +// bricksToCreate.add("192.168.0.110:/v2"); +// bricksToCreate.add("192.168.0.116:/v2"); +// operation = setVolume.createVolume("v2", 0, "distributed", bricksToCreate, "/home/v2_point"); + // operation = setVolume.deleteVolume("v3"); // // // 以下是测试添加brick的代码 // @@ -508,4 +538,3 @@ public class SetVolume { // System.out.println(operation); } } - diff --git a/src/com/platform/glusterfs/ShowData.java b/src/com/platform/glusterfs/ShowData.java index de218e5e..b20afba4 100644 --- a/src/com/platform/glusterfs/ShowData.java +++ b/src/com/platform/glusterfs/ShowData.java @@ -55,8 +55,7 @@ public class ShowData { * RunCommand runCommand=new RunCommand(); List * reStrings=runCommand.runCommandWait(command); */ - List reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, - Constant.rootPasswd, Constant.port, command); + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); if (reStrings == null) { log.error("2101 command get result is null"); return null; diff --git a/src/com/platform/glusterfs/VolumeInfo.java b/src/com/platform/glusterfs/VolumeInfo.java index 15e4cb14..9a65a86f 100644 --- a/src/com/platform/glusterfs/VolumeInfo.java +++ b/src/com/platform/glusterfs/VolumeInfo.java @@ -77,7 +77,7 @@ public class VolumeInfo { } /** - * 给定参数volume的名称获得volume的类型 <功能详细描述> + * 给定参数volume的名称获得volume的类型 * * @param volumeName * @return @@ -257,12 +257,6 @@ public class VolumeInfo { return null; } -// char flag = reStrings.get(0).trim().toCharArray()[0]; -// if (flag != '/') { -// log.error("11003 get result string wrong"); -// return null; -// } - for (String mountPoint : reStrings) { mountPoint = mountPoint.replaceAll(" ", ""); mountPoints.add(mountPoint); @@ -274,25 +268,15 @@ public class VolumeInfo { log.info("get one volume MountPoint"); String mountPoint=null; - String cmd=Constant.df + "|grep " + volumeName + "|awk '{print $6}'"; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + + List mountpoints = getVolumeMountPoint(volumeName); // System.out.println(reStrings); - if (reStrings == null) { + if (mountpoints == null || mountpoints.size() == 0) { log.error("11001 get result string wrong"); return null; } - if (reStrings.size() == 0) { - log.error("11002 " + volumeName + " is not exists or no mountpoint"); - return null; - } - -// char flag = reStrings.get(0).trim().toCharArray()[0]; -// if (flag != '/') { -// log.error("11003 get result string wrong"); -// return null; -// } - mountPoint=reStrings.get(0); + mountPoint=mountpoints.get(0); return mountPoint; } @@ -377,7 +361,7 @@ public class VolumeInfo { } /** - * 判断volumeName是否存在,存在返回true,不存在返回false <功能详细描述> + * 判断volumeName是否存在,存在返回true,不存在返回false * * @param volumeName * @return diff --git a/src/com/platform/utils/Constant.java b/src/com/platform/utils/Constant.java index b1d439f6..2db87411 100644 --- a/src/com/platform/utils/Constant.java +++ b/src/com/platform/utils/Constant.java @@ -23,16 +23,15 @@ public class Constant { public static String failed = "failed"; public static String noSuchFile = "No such file or directory"; public static GanymedSSH ganymedSSH = new GanymedSSH(hostIp, rootUser, rootPasswd, port); - public static String fileGetTreeData = "WebContent\\WEB-INF\\config\\getTreedata.sh"; + public static String AutoMountfile="/gfsAutoMount/AutoRun.sh"; + public static String MountRecord="/gfsAutoMount/mountPoint.record"; + public static String strGetTreeData = "function ergodic(){\n " + "for file in \\`ls \\$1\\`\n do\n if [ \"\\$file\" != \"app\" -a -d \\$1\\\"/\\\"\\$file ]\n " + "then\n ergodic \\$1\"/\"\\$file\n else\n local path=\\$1\"/\"\\$file\n " + "echo \\$path \n fi\n done\n}\n\nIFS=\\$\\'\\n\\' " + "#这个必须要,否则会在文件名中有空格时出错\nINIT_PATH=\".\";\nergodic \\$1\n"; - - - /** * volume 获取的线程休眠时间 */ From d99c25a92d381fb261952be72fec4a6aa4df8734 Mon Sep 17 00:00:00 2001 From: chenlw <874313221@qq.com> Date: Wed, 14 Sep 2016 18:06:27 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/dao/mapper/data-details-mapper.xml | 2 +- src/com/dao/mapper/data-detaisl-mapper.xml | 109 ---------------- src/com/dao/mapper/dataInfoMoveTmpmapper.xml | 16 ++- .../controller/DataModelController.java | 122 ++++++++++++------ .../entities/DataInfoEntityMoveTmp.java | 16 +++ src/com/platform/glusterfs/CopyData.java | 32 +++++ .../platform/service/DataInfoServiceImp.java | 8 +- .../service/IOracleExtractService.java | 7 +- .../service/impl/MoveDataServiceImpl.java | 7 + .../impl/OracleExtractServiceImpl.java | 33 ++++- .../service/thread/ThreadMoveData.java | 31 ++++- 11 files changed, 223 insertions(+), 160 deletions(-) delete mode 100644 src/com/dao/mapper/data-detaisl-mapper.xml diff --git a/src/com/dao/mapper/data-details-mapper.xml b/src/com/dao/mapper/data-details-mapper.xml index 89b9f52e..5cd57968 100644 --- a/src/com/dao/mapper/data-details-mapper.xml +++ b/src/com/dao/mapper/data-details-mapper.xml @@ -113,7 +113,7 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" regionalism_code, - + system_code, diff --git a/src/com/dao/mapper/data-detaisl-mapper.xml b/src/com/dao/mapper/data-detaisl-mapper.xml deleted file mode 100644 index d0f8d7c7..00000000 --- a/src/com/dao/mapper/data-detaisl-mapper.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - and data_details.data_type=#{PagerOptions.dataType} - - - and - data_details.submitted_batch=#{PagerOptions.submittedBatch} - - - and data_details.city_name=#{PagerOptions.cityName} - - - and - data_details.district_name=#{PagerOptions.districtName} - - - and data_details.data_version=#{PagerOptions.dataVersion} - - - and data_details=#{PagerOptions.systemName} - - - and data_details.data_year=#{PagerOptions.dataYear} - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/com/dao/mapper/dataInfoMoveTmpmapper.xml b/src/com/dao/mapper/dataInfoMoveTmpmapper.xml index 7d1145d6..bf4987f4 100644 --- a/src/com/dao/mapper/dataInfoMoveTmpmapper.xml +++ b/src/com/dao/mapper/dataInfoMoveTmpmapper.xml @@ -43,10 +43,12 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" jdbcType="INTEGER" /> + + - regionalism_code,system_code,dst_path,lasttime + regionalism_code,system_code,dst_path,lasttime,fkid @@ -54,12 +56,12 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" SELECT a.id id,a.regionalism_code regionalismCode,b.city_name cityName,b.district_name districtName, a.system_code systemCode,b.system_name systemName,b.data_type dataType,b.data_version dataVersion, - b.submitted_batch submittedBatch,b.data_path dataPath,b.data_charset charset,b.collection_time collectionTime, + b.submitted_batch submittedBatch,b.data_path dataPath,b.data_charset charset,b.collection_time collectingTime, b.collector_name collectorName,b.collector_contacts collectorContacts,b.data_year dataYear,a.dst_path dstPath, a.complete_status completeStatus,a.rate rate, a.lasttime lastTime FROM move_data_tmp a LEFT JOIN data_details b - ON a.system_code = b.system_code AND a.regionalism_code = b.regionalism_code + ON a.system_code = b.system_code AND a.regionalism_code = b.regionalism_code AND a.fkid = b.id ORDER BY a.id @@ -112,6 +114,9 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" lasttime, + + fkid, + ) VALUES( @@ -137,6 +142,9 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" #{lastTime}, + + #{fkid), + ) @@ -145,7 +153,7 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" INSERT INTO move_data_tmp ( ) VALUES - (#{item.regionalismCode,jdbcType=VARCHAR},#{item.systemCode,jdbcType=INTEGER},#{item.dstPath,jdbcType=VARCHAR},#{item.lastTime,jdbcType=VARCHAR}) + (#{item.regionalismCode,jdbcType=VARCHAR},#{item.systemCode,jdbcType=INTEGER},#{item.dstPath,jdbcType=VARCHAR},#{item.lastTime,jdbcType=VARCHAR},#{item.fkid}) diff --git a/src/com/platform/controller/DataModelController.java b/src/com/platform/controller/DataModelController.java index 7cf47830..743b3bd3 100644 --- a/src/com/platform/controller/DataModelController.java +++ b/src/com/platform/controller/DataModelController.java @@ -16,9 +16,11 @@ import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; import org.springframework.stereotype.Controller; import org.springframework.stereotype.Service; import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; @@ -31,6 +33,7 @@ import com.platform.entities.GatherOracleInfo; import com.platform.entities.OracleConnectorParams; import com.platform.entities.PagerOptions; import com.platform.entities.VolumeEntity; +import com.platform.glusterfs.CheckoutMD5; import com.platform.service.DataInfoService; import com.platform.service.IGfsService; import com.platform.service.IMoveDataService; @@ -48,6 +51,9 @@ import com.platform.utils.UtilsHelper; @Controller public class DataModelController extends BaseController{ + + public static Logger log = Logger.getLogger(DataModelController.class); + @Resource(name = "dataInfoService") private DataInfoService dfs; @@ -62,7 +68,7 @@ public class DataModelController extends BaseController{ @Resource(name = "moveDataService") private IMoveDataService moveDataService; - + public void setDfsImp(DataInfoService dfs) { this.dfs = dfs; } @@ -129,7 +135,7 @@ public class DataModelController extends BaseController{ } @RequestMapping(value="/oracle/{name}/extract", method= RequestMethod.POST) - public void extractOracleData(HttpServletRequest res, + public void oracleExtract(HttpServletRequest res, HttpServletResponse req, String name) throws Exception { res.setCharacterEncoding("UTF-8"); System.out.println("------extract-------"); @@ -155,23 +161,44 @@ public class DataModelController extends BaseController{ OracleExtract.extractOracle(name, colleclist, map); } +// public void oracleExtract(HttpServletRequest res, +// HttpServletResponse req, String name, @RequestBody GatherOracleInfo gather, @RequestBody List collectOracles) +// throws Exception { +//// res.setCharacterEncoding("UTF-8"); +// log.debug("------extract-------"); +//// Map paramMap = res.getParameterMap(); +//// log.debug(paramMap); +//// //汇总库 对象信息--带有tableName- +//// String[] nodes = paramMap.get("target"); +//// Map map = null; +//// for (String string : nodes) { +//// JSONObject jsonobject = JSONObject.fromObject(string); +//// map = jsonobject; +//// System.out.println(map); +//// } +//// +//// // 采集库对象--(多个采集库抽取到1个汇总库的1个tableName下) +//// String[] inneed = paramMap.get("inneed"); +//// List> colleclist = new ArrayList>(); +//// for (String string : nodes) { +//// JSONObject jsonobject = JSONObject.fromObject(string); +//// Map inneedMap = jsonobject; +//// colleclist.add(inneedMap); +//// } +// OracleExtract.extractOracle(name, collectOracles, gather); +// } @RequestMapping(value="/volume/list", method= RequestMethod.POST) @ResponseBody - public List getFolder(HttpServletRequest res, HttpServletResponse req) throws Exception { - System.out.println("get Request"); -// Brick brick1 = new Brick("192.168.0.101", "D:/bootstrap"); -// Brick brick2 = new Brick("192.168.0.103", "D:\book"); -// List bricks = new ArrayList(); -// bricks.add(brick1); -// bricks.add(brick2); + public List volumeList() throws Exception { + log.debug("-----/volume/list------"); List result = gfsService.getAllVolumes(); return result; } @RequestMapping(value = "/volume/{name}/move", method= RequestMethod.POST) - @ResponseBody - public Object move(HttpServletRequest res, HttpServletResponse req, String name, +// @ResponseBody + public void volumeMove(HttpServletRequest res, HttpServletResponse req, String name, FolderNode selectNode, DataInfoEntity selectItems) throws Exception { res.setCharacterEncoding("UTF-8"); System.out.println("get Request"); @@ -195,71 +222,88 @@ public class DataModelController extends BaseController{ System.out.println(string); JSONObject jsobj = JSONObject.fromObject(string); Map itemmap = jsobj; - if (null != itemmap.get("volume")) { - srcVolumes.add((String) itemmap.get("volume")); - } DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap(DataInfoEntity.class, itemmap); datas.add(data); } System.out.println("------/volume/{name}/move--------"); - boolean result = false ; if (datas.size() >0) { - result = moveDataService.moveData(datas, (String)map.get("path")); + moveDataService.moveData(datas, (String)map.get("path")); } - return result; } +// public Object volumeMove(HttpServletRequest res, HttpServletResponse req, String name, +// @RequestBody FolderNode selectNode, @RequestBody List selectItems) throws Exception { +// log.debug("-----/volume/{name}/move------"); +//// Map paramMap = res.getParameterMap(); +//// System.out.println(paramMap); +// Map paramMap = res.getParameterMap(); +// log.debug(paramMap); +// //汇总库 对象信息--带有tableName- +// String[] nodes = (String[]) paramMap.get("selectNode"); +// Map map = null; +// JSONObject jsonobject = JSONObject.fromObject(string); +// map = jsonobject; +// +// +// log.debug(selectItems); +// log.debug(selectNode); +// boolean result = false ; +// if (selectItems.size() >0) { +// result = moveDataService.moveData(selectItems, selectNode.getPath()); +// } +// return result; +// } @RequestMapping(value="/oracle/list", method= RequestMethod.POST) @ResponseBody - public List getOracleInfo(HttpServletRequest res, - HttpServletResponse req) throws Exception { - + public List oracleList() throws Exception { + log.debug("----------getOracleInfo-----------------------"); List result = mySqlService.findAllMySql(); - System.out.println("----------getOracleInfo-----------------------"); return result; } @RequestMapping(value="/oracle/{id}/delete", method= RequestMethod.POST) @ResponseBody - public void deleteOracleInfo(HttpServletRequest res, - HttpServletResponse req, int id) throws Exception { - res.setCharacterEncoding("UTF-8"); + public void oracleDelete(int id) throws Exception { + log.debug("----------deleteOracleInfo----------------"); mySqlService.deleteMySql(id); - System.out.println("----------deleteOracleInfo-----------------------"); } @RequestMapping(value="/oracle/{id}/insert", method= RequestMethod.POST) @ResponseBody - public void insertOracleInfo(HttpServletRequest res, - HttpServletResponse req, GatherOracleInfo oracle) throws Exception { - res.setCharacterEncoding("UTF-8"); + public void oracleInsert(GatherOracleInfo oracle) throws Exception { + log.debug("----------insertOracleInfo----------------"); mySqlService.insertOracle(oracle); - System.out.println("----------insertOracleInfo-----------------------"); } @RequestMapping(value="/oracle/{id}/update", method= RequestMethod.POST) - @ResponseBody - public void updateOracleInfo(HttpServletRequest res, - HttpServletResponse req, GatherOracleInfo oracle) throws Exception { - res.setCharacterEncoding("gb2312"); - System.out.println(oracle.getName()); - System.out.println(oracle); - + public void oracleUpdate(@RequestBody GatherOracleInfo oracle) throws Exception { + log.debug("----------updateOracleInfo-----------------------"); + log.debug(oracle); mySqlService.updateOracle(oracle); - System.out.println("----------updateOracleInfo-----------------------"); } @RequestMapping(value="/task/transfer/list", method= RequestMethod.POST) @ResponseBody - public Object taskList() throws Exception { + public Object taskTransferList() throws Exception { + log.debug("----------/task/transfer/list-----------------------"); List result = moveDataService.findAll(); return result; } @RequestMapping(value="/task/transfer/delete", method= RequestMethod.POST) @ResponseBody - public Object taskdeletes(DataInfoEntityMoveTmp move) throws Exception { + public Object taskTransferDelete(DataInfoEntityMoveTmp move) throws Exception { + log.debug("----------/task/transfer/delete-----------------------"); int result = moveDataService.delete(move); return result; } + + @RequestMapping(value="/task/transfer/save", method= RequestMethod.POST) + @ResponseBody + public Object taskTransferSave(DataInfoEntity move) throws Exception { + log.debug("---------/task/transfer/save-----------------------"); + int result = dfs.save(move); + return result; + } + } diff --git a/src/com/platform/entities/DataInfoEntityMoveTmp.java b/src/com/platform/entities/DataInfoEntityMoveTmp.java index 0fb469e5..1b1b6e10 100644 --- a/src/com/platform/entities/DataInfoEntityMoveTmp.java +++ b/src/com/platform/entities/DataInfoEntityMoveTmp.java @@ -10,6 +10,8 @@ public class DataInfoEntityMoveTmp extends DataInfoEntity { private String lastTime; // 采集时间 + private int fkid; + public DataInfoEntityMoveTmp() { // TODO Auto-generated constructor stub } @@ -70,4 +72,18 @@ public class DataInfoEntityMoveTmp extends DataInfoEntity { this.lastTime = lastTime; } + /** + * @return the fkid + */ + public int getFkid() { + return fkid; + } + + /** + * @param fkid the fkid to set + */ + public void setFkid(int fkid) { + this.fkid = fkid; + } + } diff --git a/src/com/platform/glusterfs/CopyData.java b/src/com/platform/glusterfs/CopyData.java index 86289174..a8cbdde3 100644 --- a/src/com/platform/glusterfs/CopyData.java +++ b/src/com/platform/glusterfs/CopyData.java @@ -36,6 +36,38 @@ public class CopyData { status = copyFolderFilesAnyway(sourceFolderName, destFolderName, fileName); return status; } + + /** + * 将sourceFolderName拷贝到destFolderName + * 如果拷贝正常返回1,如果sourceFolderName不存在返回-2 ,如果destFolderName不存在返回-3 + * @param sourceFolderName + * @param destFolderName + * @return + * @see [类、类#方法、类#成员] + */ + public int copyFolder(String sourceFolderName, String destFolderName) { + createFolders(destFolderName); + int progress=0; + log.info("start copy " + sourceFolderName + " to " + destFolderName); + ShowData showData=new ShowData(); + Map reStrings=showData.showFolderData(destFolderName); + if(reStrings==null){ + log.info("3201 "+destFolderName+" is not exists"); + return -3; + } + + reStrings=showData.showFolderData(sourceFolderName); + if(reStrings==null){ + log.info("3202 "+sourceFolderName+" is not exists"); + return -2; + } + String command = "cp -r " + sourceFolderName+" "+destFolderName; + + Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); + + log.info("copy " + sourceFolderName + " to " + destFolderName + " running"); + return 1; + } /** * -1 :error; -2: the filename is not exists ;-3 :destFolderName ; 1: right diff --git a/src/com/platform/service/DataInfoServiceImp.java b/src/com/platform/service/DataInfoServiceImp.java index 4da74444..47aeb118 100644 --- a/src/com/platform/service/DataInfoServiceImp.java +++ b/src/com/platform/service/DataInfoServiceImp.java @@ -65,7 +65,13 @@ public class DataInfoServiceImp implements DataInfoService { @Override public int save(DataInfoEntity data) throws Exception { - int result = dfdDao.save(data); + int result = 0; + try { + result = dfdDao.save(data); + } catch (Exception e) { + // TODO: handle exception + System.out.println(""); + } return result; } } diff --git a/src/com/platform/service/IOracleExtractService.java b/src/com/platform/service/IOracleExtractService.java index be02d6d9..7d4e9418 100644 --- a/src/com/platform/service/IOracleExtractService.java +++ b/src/com/platform/service/IOracleExtractService.java @@ -3,6 +3,10 @@ package com.platform.service; import java.util.List; import java.util.Map; +import com.platform.entities.DataInfoEntity; +import com.platform.entities.GatherOracleInfo; +import com.platform.entities.OracleConnectorParams; + public interface IOracleExtractService { /** 抽取数据库 @@ -12,6 +16,7 @@ public interface IOracleExtractService { * @return * @throws Exception */ +// public boolean extractOracle(String name, List dataInfos, GatherOracleInfo oracleConnect) throws Exception; +// public boolean extractOracle(String name, List dataInfos, Map oracleConnect) throws Exception; public boolean extractOracle(String name, List> dataInfo, Map oracleConnect) throws Exception; - } diff --git a/src/com/platform/service/impl/MoveDataServiceImpl.java b/src/com/platform/service/impl/MoveDataServiceImpl.java index 511676a7..007fd0ee 100644 --- a/src/com/platform/service/impl/MoveDataServiceImpl.java +++ b/src/com/platform/service/impl/MoveDataServiceImpl.java @@ -18,6 +18,7 @@ import com.platform.entities.DataInfoEntity; import com.platform.entities.DataInfoEntityMoveTmp; import com.platform.glusterfs.CheckoutMD5; import com.platform.glusterfs.CopyData; +import com.platform.glusterfs.RemoveData; import com.platform.glusterfs.ShowData; import com.platform.service.IMoveDataService; import com.platform.utils.Bean2MapUtils; @@ -31,6 +32,8 @@ public class MoveDataServiceImpl implements IMoveDataService{ @Resource(name = "dataInfoDao") private DataInfoDao dataInfoDao; + private RemoveData removeservice = new RemoveData(); + /** * 迁移 */ @@ -91,6 +94,7 @@ public class MoveDataServiceImpl implements IMoveDataService{ dataMove.setRegionalismCode(dataInfoEntity.getRegionalismCode()); dataMove.setDstPath(finalDestPath); dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); + dataMove.setFkid(dataInfoEntity.getId()); moveList.add(dataMove); } if (moveList.size() > 0) { @@ -115,6 +119,9 @@ public class MoveDataServiceImpl implements IMoveDataService{ @Override public int delete(DataInfoEntityMoveTmp dataMove) throws Exception { + if ("1".equals(dataMove.getCompleteStatus())) { + removeservice.deleteFolder(dataMove.getDstPath()); + } int result = dataInfoMoveTmpDao.remove(dataMove.getId()); return result; } diff --git a/src/com/platform/service/impl/OracleExtractServiceImpl.java b/src/com/platform/service/impl/OracleExtractServiceImpl.java index 9d2a36e5..9cf58a00 100644 --- a/src/com/platform/service/impl/OracleExtractServiceImpl.java +++ b/src/com/platform/service/impl/OracleExtractServiceImpl.java @@ -27,7 +27,7 @@ public class OracleExtractServiceImpl implements IOracleExtractService { * 数据库连接实现类 */ private OracleConnector connect = new OracleConnector(); - + @Override public boolean extractOracle(String name, List> dataInfoMap, Map oracleConnect) throws Exception { @@ -60,4 +60,35 @@ public class OracleExtractServiceImpl implements IOracleExtractService { return false; } +// @Override +// public boolean extractOracle(String name, List dataInfos, GatherOracleInfo oracleConnect) throws Exception { +// boolean isSuccess = false; +// try{ +// //map转 bean(汇总库信息-带tableName的) +//// GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect); +// +// //采集库连接参数 +//// List datainfos = new ArrayList(); +//// for (Map map : dataInfoMap) { +//// OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect); +//// datainfos.add(dataInfoEntity); +//// } +// +// Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/" +// + oracleConnect.getDatabaseName(), oracleConnect.getUser(), oracleConnect.getPassword()); +// +// for (OracleConnectorParams collectOracle : dataInfos) { +// +// oracleExtract.createDBLink(conn, collectOracle); +// oracleExtract.createTableSpace(conn, oracleConnect); +// oracleExtract.createUser(conn, oracleConnect); +// oracleExtract.extractColleDB(conn, collectOracle); +// } +// isSuccess = true; +// }catch(Exception e){ +// +// } +// return false; +// } + } diff --git a/src/com/platform/service/thread/ThreadMoveData.java b/src/com/platform/service/thread/ThreadMoveData.java index b7e2f867..dc6b60ec 100644 --- a/src/com/platform/service/thread/ThreadMoveData.java +++ b/src/com/platform/service/thread/ThreadMoveData.java @@ -4,9 +4,12 @@ import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.annotation.Resource; +import org.apache.log4j.Logger; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.stereotype.Service; @@ -31,6 +34,8 @@ import com.platform.utils.DateForm; @Component public class ThreadMoveData{ + public static Logger log = Logger.getLogger(ThreadMoveData.class); + @Resource(name = "dataInfoDao") private DataInfoDao dataInfoDao; @@ -88,12 +93,22 @@ public class ThreadMoveData{ // 查询大小:。//gfs 获取size, long srcSize = show.getFolderSize(dataMove.getDataPath()); long dstSize = show.getFolderSize(dataMove.getDstPath()); + if (srcSize < 0) { + log.error(dataMove.getDataPath() + " : 路径不存在! "); + continue; + } + if (dstSize < 0) { + log.error(dataMove.getDstPath() + " : 路径不存在! "); + continue; + } if (srcSize > 0 && dstSize > 0) { - realRate = dstSize / srcSize * 100; + realRate = (dstSize*100 / srcSize ); dataMove.setRate((int) realRate); dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); } - + if (srcSize == dstSize) { + realRate = 100; + } } if("1".equals(dataMove.getCompleteStatus()) &&dataMove.getRate() > 0){ //传输完毕:进行校验 @@ -110,7 +125,7 @@ public class ThreadMoveData{ DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap( DataInfoEntity.class, Bean2MapUtils.convertBean(dataMove)); data.setDataPath(dataMove.getDstPath()); - data.setYear(dataMove.getYear()+" (迁移完成时间 " + DateForm.date2StringByMin(new Date())+")"); + data.setYear(DateForm.date2StringByMin(new Date())); dataInfoDao.save(data); } else { @@ -135,7 +150,15 @@ public class ThreadMoveData{ //如果是 待 迁移状态的 if ("0".equals(next2move.getCompleteStatus())) { //待迁移的数据 -- 开始迁移 - copy.copyFolderFilesAnyway(next2move.getDataPath(), next2move.getDstPath(), "app"); + // 末尾 含有 / + Pattern pattern2 = Pattern.compile("\\/$"); + String dstPath = next2move.getDataPath(); + Matcher matcher2 = pattern2.matcher(dstPath); + //去掉 最后 的 / 符合 + if (matcher2.find()) { + dstPath = dstPath.substring(0, dstPath.length()-1); + } + copy.copyFolder(dstPath+"/app", next2move.getDstPath()); // "1" :正在上传,0:等待 迁移, 2:成功 3:失败 next2move.setCompleteStatus("1"); next2move.setLastTime(DateForm.date2StringBysecond(new Date())); From b19225edbef4330b44a9b5b67cfe3c5ffd803479 Mon Sep 17 00:00:00 2001 From: chenlw <874313221@qq.com> Date: Sun, 18 Sep 2016 15:42:28 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E5=9C=B0=E5=8C=BA=E5=92=8C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/mybatis-applicationConfig.xml | 4 ++ src/com/dao/mapper/RegionalismMapper.xml | 49 +++++++++++++++++ src/com/dao/mapper/SystemCodeMapper.xml | 48 +++++++++++++++++ src/com/dao/mapper/data-details-mapper.xml | 16 ++++++ .../controller/DataModelController.java | 7 +++ src/com/platform/dao/IRegionalismCodeDao.java | 28 ++++++++++ src/com/platform/dao/ISystemCodeDao.java | 28 ++++++++++ src/com/platform/entities/DataInfoEntity.java | 35 +++++++++++- .../platform/entities/RegionalismEntity.java | 53 +++++++++++++++++++ src/com/platform/entities/SystemEntity.java | 37 +++++++++++++ src/com/platform/service/ICodeService.java | 37 +++++++++++++ .../service/impl/CodeServiceImpl.java | 37 +++++++++++++ .../service/thread/ThreadMoveData.java | 8 ++- src/com/platform/utils/Constant.java | 6 ++- 14 files changed, 390 insertions(+), 3 deletions(-) create mode 100644 src/com/dao/mapper/RegionalismMapper.xml create mode 100644 src/com/dao/mapper/SystemCodeMapper.xml create mode 100644 src/com/platform/dao/IRegionalismCodeDao.java create mode 100644 src/com/platform/dao/ISystemCodeDao.java create mode 100644 src/com/platform/entities/RegionalismEntity.java create mode 100644 src/com/platform/entities/SystemEntity.java create mode 100644 src/com/platform/service/ICodeService.java create mode 100644 src/com/platform/service/impl/CodeServiceImpl.java diff --git a/WebContent/WEB-INF/config/mybatis-applicationConfig.xml b/WebContent/WEB-INF/config/mybatis-applicationConfig.xml index f1679b32..d7bc4f95 100644 --- a/WebContent/WEB-INF/config/mybatis-applicationConfig.xml +++ b/WebContent/WEB-INF/config/mybatis-applicationConfig.xml @@ -9,10 +9,14 @@ + + + + \ No newline at end of file diff --git a/src/com/dao/mapper/RegionalismMapper.xml b/src/com/dao/mapper/RegionalismMapper.xml new file mode 100644 index 00000000..eba66e4a --- /dev/null +++ b/src/com/dao/mapper/RegionalismMapper.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + code,city_name,district_name + + + + + + + + \ No newline at end of file diff --git a/src/com/dao/mapper/SystemCodeMapper.xml b/src/com/dao/mapper/SystemCodeMapper.xml new file mode 100644 index 00000000..10691fc0 --- /dev/null +++ b/src/com/dao/mapper/SystemCodeMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + code,system_name + + + + + + + + \ No newline at end of file diff --git a/src/com/dao/mapper/data-details-mapper.xml b/src/com/dao/mapper/data-details-mapper.xml index 5cd57968..969a97a0 100644 --- a/src/com/dao/mapper/data-details-mapper.xml +++ b/src/com/dao/mapper/data-details-mapper.xml @@ -34,6 +34,10 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" javaType="string" jdbcType="VARCHAR" /> + + @@ -143,6 +147,12 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" data_year + + start_year + + + end_year + ) VALUES( @@ -180,6 +190,12 @@ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" #{year} + + #{start_year} + + + #{end_year} + ) diff --git a/src/com/platform/controller/DataModelController.java b/src/com/platform/controller/DataModelController.java index 743b3bd3..2842812d 100644 --- a/src/com/platform/controller/DataModelController.java +++ b/src/com/platform/controller/DataModelController.java @@ -306,4 +306,11 @@ public class DataModelController extends BaseController{ return result; } + @RequestMapping(value="/findSystemCode", method= RequestMethod.POST) + @ResponseBody + public Object findSystemCode(DataInfoEntity move) throws Exception { + log.debug("---------/findSystemCode-----------------------"); + int result = dfs.save(move); + return result; + } } diff --git a/src/com/platform/dao/IRegionalismCodeDao.java b/src/com/platform/dao/IRegionalismCodeDao.java new file mode 100644 index 00000000..e89cd938 --- /dev/null +++ b/src/com/platform/dao/IRegionalismCodeDao.java @@ -0,0 +1,28 @@ +package com.platform.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import com.platform.entities.DataInfoEntity; +import com.platform.entities.DataInfoEntityMoveTmp; +import com.platform.entities.PagerOptions; +import com.platform.entities.RegionalismEntity; + +/** + * @author chen + * 数据迁移状态 临时 存放 , + */ +@Repository(value = "regionalismCodeDao") +public interface IRegionalismCodeDao { + + /** 查 + * @return + * @throws Exception + */ + List findAllRegionalism() throws Exception; + + List findSubRegionalism(RegionalismEntity region) throws Exception; + +} diff --git a/src/com/platform/dao/ISystemCodeDao.java b/src/com/platform/dao/ISystemCodeDao.java new file mode 100644 index 00000000..fde3b02f --- /dev/null +++ b/src/com/platform/dao/ISystemCodeDao.java @@ -0,0 +1,28 @@ +package com.platform.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import com.platform.entities.DataInfoEntity; +import com.platform.entities.DataInfoEntityMoveTmp; +import com.platform.entities.PagerOptions; +import com.platform.entities.RegionalismEntity; +import com.platform.entities.SystemEntity; + +/** + * @author chen + * 数据迁移状态 临时 存放 , + */ +@Repository(value = "systemCodeDao") +public interface ISystemCodeDao { + + /** 查 + * @return + * @throws Exception + */ + List findAllSystem() throws Exception; + + List findSubSystem(SystemEntity system) throws Exception; +} diff --git a/src/com/platform/entities/DataInfoEntity.java b/src/com/platform/entities/DataInfoEntity.java index 3db92f4a..ec453d8d 100644 --- a/src/com/platform/entities/DataInfoEntity.java +++ b/src/com/platform/entities/DataInfoEntity.java @@ -22,6 +22,10 @@ public class DataInfoEntity { private String charset; // 数据的字符编码 private String collectorName; // 采集人姓名 private String year; // 数据年度 + /** 数据年度起始 */ + private String startYear; + /** 数据年度结束 */ + private String endYear; public DataInfoEntity() { } @@ -169,6 +173,34 @@ public class DataInfoEntity { this.year = year; } + /** + * @return the startYear + */ + public String getStartYear() { + return startYear; + } + + /** + * @param startYear the startYear to set + */ + public void setStartYear(String startYear) { + this.startYear = startYear; + } + + /** + * @return the endYear + */ + public String getEndYear() { + return endYear; + } + + /** + * @param endYear the endYear to set + */ + public void setEndYear(String endYear) { + this.endYear = endYear; + } + @Override public String toString() { return "id=" + this.id + " ,regionalismCode=" + this.regionalismCode @@ -180,7 +212,8 @@ public class DataInfoEntity { + this.dataPath + " ,collectingTime=" + this.collectingTime + " ,collectorContacts=" + this.collectorContacts + " ,charset=" + this.charset + " ,collectorName=" - + this.collectorName + " ,year=" + this.year + ""; + + this.collectorName + " ,year=" + this.year + " startYear=" + +this.startYear +" endYear="+this.endYear; } } diff --git a/src/com/platform/entities/RegionalismEntity.java b/src/com/platform/entities/RegionalismEntity.java new file mode 100644 index 00000000..ba1b7f2b --- /dev/null +++ b/src/com/platform/entities/RegionalismEntity.java @@ -0,0 +1,53 @@ +package com.platform.entities; + +public class RegionalismEntity { + + private String code; + + private String cityName; + + private String districtName; + + /** + * @return the code + */ + public String getCode() { + return code; + } + + /** + * @param code the code to set + */ + public void setCode(String code) { + this.code = code; + } + + /** + * @return the cityName + */ + public String getCityName() { + return cityName; + } + + /** + * @param cityName the cityName to set + */ + public void setCityName(String cityName) { + this.cityName = cityName; + } + + /** + * @return the districtName + */ + public String getDistrictName() { + return districtName; + } + + /** + * @param districtName the districtName to set + */ + public void setDistrictName(String districtName) { + this.districtName = districtName; + } + +} diff --git a/src/com/platform/entities/SystemEntity.java b/src/com/platform/entities/SystemEntity.java new file mode 100644 index 00000000..6ac6cfb8 --- /dev/null +++ b/src/com/platform/entities/SystemEntity.java @@ -0,0 +1,37 @@ +package com.platform.entities; + +public class SystemEntity { + + private int code; + + private String systemName; + + /** + * @return the code + */ + public int getCode() { + return code; + } + + /** + * @param code the code to set + */ + public void setCode(int code) { + this.code = code; + } + + /** + * @return the systemName + */ + public String getSystemName() { + return systemName; + } + + /** + * @param systemName the systemName to set + */ + public void setSystemName(String systemName) { + this.systemName = systemName; + } + +} diff --git a/src/com/platform/service/ICodeService.java b/src/com/platform/service/ICodeService.java new file mode 100644 index 00000000..4f76bc75 --- /dev/null +++ b/src/com/platform/service/ICodeService.java @@ -0,0 +1,37 @@ + +/** + * 文件名 : IGfsService.java + * 版权 : <版权/公司名> + * 描述 : <描述> + * @author chen + * 版本 : <版本> + * 修改时间: 2016年9月8日 + * 修改内容: <修改内容> + */ +package com.platform.service; + + +import java.util.List; + +import com.platform.entities.FolderNode; +import com.platform.entities.RegionalismEntity; +import com.platform.entities.SystemEntity; +import com.platform.entities.VolumeEntity; + + +/** + * <一句话功能简述> + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ + +public interface ICodeService { + + public List findSystem(SystemEntity sys) throws Exception; + + public List findRegionalism(RegionalismEntity region) throws Exception; + +} diff --git a/src/com/platform/service/impl/CodeServiceImpl.java b/src/com/platform/service/impl/CodeServiceImpl.java new file mode 100644 index 00000000..65aacf40 --- /dev/null +++ b/src/com/platform/service/impl/CodeServiceImpl.java @@ -0,0 +1,37 @@ +package com.platform.service.impl; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; + +import com.platform.dao.DataInfoDao; +import com.platform.dao.IRegionalismCodeDao; +import com.platform.dao.ISystemCodeDao; +import com.platform.entities.RegionalismEntity; +import com.platform.entities.SystemEntity; +import com.platform.service.ICodeService; + +public class CodeServiceImpl implements ICodeService { + + @Resource(name = "systemCodeDao") + private ISystemCodeDao systemCodeDao; + + @Resource(name = "regionalismCodeDao") + private IRegionalismCodeDao regionalismCodeDao; + + @Override + public List findSystem(SystemEntity sys) throws Exception { + List result = new ArrayList(); + result = systemCodeDao.findSubSystem(sys); + return result; + } + + @Override + public List findRegionalism(RegionalismEntity region) throws Exception { + List result = regionalismCodeDao.findSubRegionalism(region); + + return result; + } + +} diff --git a/src/com/platform/service/thread/ThreadMoveData.java b/src/com/platform/service/thread/ThreadMoveData.java index dc6b60ec..4b30c1d4 100644 --- a/src/com/platform/service/thread/ThreadMoveData.java +++ b/src/com/platform/service/thread/ThreadMoveData.java @@ -78,6 +78,7 @@ public class ThreadMoveData{ //该循环必须 循环每个,不能有 break; // rate:大小:假的,待换成真实比例 double realRate = 0.00; + int moveFileCurrNum = 0; for (int i = 0; i < rsize; i++) { DataInfoEntityMoveTmp dataMove = result.get(i); //如果拷贝进度超过20分钟未进行-- 判断为 迁移失败。 @@ -89,7 +90,11 @@ public class ThreadMoveData{ dataMove.setCompleteStatus("3"); dataInfoMoveTmpDao.update(dataMove); } - isNoMove = false; + //正在上传的个数。 + moveFileCurrNum++; + if (moveFileCurrNum >= Constant.moveFileMaxNum) { + isNoMove = false; + } // 查询大小:。//gfs 获取size, long srcSize = show.getFolderSize(dataMove.getDataPath()); long dstSize = show.getFolderSize(dataMove.getDstPath()); @@ -158,6 +163,7 @@ public class ThreadMoveData{ if (matcher2.find()) { dstPath = dstPath.substring(0, dstPath.length()-1); } + //数据迁移。 copy.copyFolder(dstPath+"/app", next2move.getDstPath()); // "1" :正在上传,0:等待 迁移, 2:成功 3:失败 next2move.setCompleteStatus("1"); diff --git a/src/com/platform/utils/Constant.java b/src/com/platform/utils/Constant.java index b1d439f6..4916f3db 100644 --- a/src/com/platform/utils/Constant.java +++ b/src/com/platform/utils/Constant.java @@ -30,7 +30,11 @@ public class Constant { + "echo \\$path \n fi\n done\n}\n\nIFS=\\$\\'\\n\\' " + "#这个必须要,否则会在文件名中有空格时出错\nINIT_PATH=\".\";\nergodic \\$1\n"; - + /** + * volume 获取的线程休眠时间 + */ + public final static int moveFileMaxNum = 1; + /** From f4d9113d4c6e342163362c00b10de609f64b8d81 Mon Sep 17 00:00:00 2001 From: chenlw <874313221@qq.com> Date: Sun, 18 Sep 2016 18:53:21 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/META-INF/persistence.xml | 10 +- src/com/base/BaseController.java | 128 +- src/com/base/Constant.java | 46 +- src/com/base/Custom4exception.java | 40 +- src/com/base/CustomException.java | 254 ++-- src/com/base/Resource.java | 158 +-- src/com/dao/mapper/RegionalismMapper.xml | 89 +- src/com/dao/mapper/SystemCodeMapper.xml | 88 +- src/com/dao/mapper/config-details-mapper.xml | 290 ++--- src/com/dao/mapper/data-details-mapper.xml | 470 +++---- src/com/dao/mapper/dataInfoMoveTmpmapper.xml | 373 +++--- .../controller/DataModelController.java | 10 +- .../controller/DefaultController.java | 64 +- .../platform/controller/FolderController.java | 228 ++-- .../controller/SetGlusterfsController.java | 104 +- .../controller/ShowGlusterfsController.java | 100 +- src/com/platform/dao/DataInfoDao.java | 52 +- src/com/platform/dao/DataInfoMoveTmpDao.java | 58 +- src/com/platform/dao/EncodeInfoDao.java | 196 +-- src/com/platform/dao/GatherOracleDao.java | 78 +- src/com/platform/dao/IRegionalismCodeDao.java | 56 +- src/com/platform/dao/ISystemCodeDao.java | 56 +- src/com/platform/entities/BasedType.java | 96 +- src/com/platform/entities/DataInfoEntity.java | 488 ++++---- .../entities/DataInfoEntityMoveTmp.java | 213 ++-- .../platform/entities/EncodedInfoEntity.java | 82 +- src/com/platform/entities/FolderNode.java | 130 +- .../platform/entities/GatherOracleInfo.java | 164 +-- .../platform/entities/GfsFolderEntity.java | 154 +-- .../entities/OracleConnectorParams.java | 186 +-- src/com/platform/entities/PagerOptions.java | 248 ++-- .../platform/entities/RegionalismEntity.java | 106 +- .../entities/SimpleConfigParamsBean.java | 88 +- src/com/platform/entities/SystemEntity.java | 74 +- src/com/platform/entities/VolumeEntity.java | 258 ++-- src/com/platform/glusterfs/CheckoutMD5.java | 212 ++-- src/com/platform/glusterfs/ClusterInfo.java | 248 ++-- src/com/platform/glusterfs/GetTreeData.java | 250 ++-- src/com/platform/glusterfs/RemoveData.java | 112 +- src/com/platform/glusterfs/SetCluster.java | 134 +- src/com/platform/glusterfs/SetVolume.java | 1080 ++++++++--------- src/com/platform/glusterfs/ShowData.java | 262 ++-- src/com/platform/glusterfs/SizeInfo.java | 184 +-- src/com/platform/glusterfs/VolumeInfo.java | 812 ++++++------- .../platform/kubernetes/SimpleKubeClient.java | 308 ++--- src/com/platform/oracle/OracleConnector.java | 158 +-- src/com/platform/service/DataInfoService.java | 32 +- .../platform/service/DataInfoServiceImp.java | 154 +-- .../platform/service/EncodeInfoService.java | 40 +- .../service/EncodeInfoServiceImpl.java | 104 +- src/com/platform/service/ICodeService.java | 77 +- src/com/platform/service/IGfsService.java | 152 +-- .../platform/service/IMoveDataService.java | 80 +- src/com/platform/service/IMySqlService.java | 50 +- .../service/IOracleExtractService.java | 44 +- .../platform/service/OracleExtractHelper.java | 326 ++--- .../service/OracleExtractService.java | 48 +- .../platform/service/OracleStatusService.java | 298 ++--- .../service/SimplePropertyReader.java | 40 +- .../service/impl/CodeServiceImpl.java | 103 +- .../service/impl/MoveDataServiceImpl.java | 296 ++--- .../service/impl/MySqlServiceImpl.java | 112 +- .../impl/OracleExtractServiceImpl.java | 188 +-- .../service/thread/ThreadMoveData.java | 376 +++--- .../service/thread/TreadMoveData2Start.java | 94 +- src/com/platform/utils/Bean2MapUtils.java | 174 +-- src/com/platform/utils/ConfigLoder.java | 168 +-- .../platform/utils/ConfigPropertyReader.java | 168 +-- src/com/platform/utils/Configs.java | 104 +- src/com/platform/utils/DateForm.java | 274 ++--- src/com/platform/utils/DateHandle.java | 18 +- src/com/platform/utils/FileOperateHelper.java | 190 +-- src/com/platform/utils/GanymedSSH.java | 536 ++++---- src/com/platform/utils/RunCommand.java | 120 +- src/com/platform/utils/Support.java | 62 +- src/com/platform/utils/TestSupport.java | 28 +- src/com/platform/utils/ThreadVolume.java | 248 ++-- src/com/platform/utils/UtilsHelper.java | 226 ++-- src/com/platform/utils/getTreeDataByPath.java | 100 +- 79 files changed, 7081 insertions(+), 6944 deletions(-) diff --git a/src/META-INF/persistence.xml b/src/META-INF/persistence.xml index 2ad4aeca..200e82f9 100644 --- a/src/META-INF/persistence.xml +++ b/src/META-INF/persistence.xml @@ -1,5 +1,5 @@ - - - - - + + + + + diff --git a/src/com/base/BaseController.java b/src/com/base/BaseController.java index 64c66474..8a98dcfd 100644 --- a/src/com/base/BaseController.java +++ b/src/com/base/BaseController.java @@ -1,65 +1,65 @@ - -/** - * 文件名 : BaseController.java - * 版权 : XX科技有限公司。 - * 描述 : <描述> - * 修改时间:2016年9月7日 - * 修改内容:<修改内容> - */ -package com.base; - -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.log4j.Logger; -import org.springframework.web.bind.annotation.ExceptionHandler; - -import com.platform.utils.Configs; - -/** - * <一句话功能简述> - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月7日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -public class BaseController { - - /** log4j */ - public static Logger log = Logger.getRootLogger(); - - /** - * <一句话功能简述> 基于@ExceptionHandler异常处理----全局异常处理 - * <功能详细描述> - * @param request - * @param ex 异常 - * @return - * @see [类、类#方法、类#成员] - */ - @ExceptionHandler - public Object exp(HttpServletRequest request, HttpServletResponse response,Exception ex) { - System.out.println("URI"+request.getRequestURI()); - request.setAttribute("ex", ex); - System.err.println("BaseController --exp "); - // 根据不同错误转向不同页面 - if(ex instanceof CustomException) { - CustomException cuse = (CustomException) ex; - Map errmsg = new HashMap<>(); - errmsg.put("code", cuse.getCode()); - errmsg.put("msg", cuse.getMsg()); - log.error(cuse.getCode()); - response.setStatus(500); - return response; - } else { - //其他错误则 调到指定页面 - log.error(Configs.GLOBAL_EXP_NOT_CUSTOM, ex); - response.setStatus(500); - return response; - } - } - + +/** + * 文件名 : BaseController.java + * 版权 : XX科技有限公司。 + * 描述 : <描述> + * 修改时间:2016年9月7日 + * 修改内容:<修改内容> + */ +package com.base; + +import java.util.HashMap; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.log4j.Logger; +import org.springframework.web.bind.annotation.ExceptionHandler; + +import com.platform.utils.Configs; + +/** + * <一句话功能简述> + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月7日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +public class BaseController { + + /** log4j */ + public static Logger log = Logger.getRootLogger(); + + /** + * <一句话功能简述> 基于@ExceptionHandler异常处理----全局异常处理 + * <功能详细描述> + * @param request + * @param ex 异常 + * @return + * @see [类、类#方法、类#成员] + */ + @ExceptionHandler + public Object exp(HttpServletRequest request, HttpServletResponse response,Exception ex) { + System.out.println("URI"+request.getRequestURI()); + request.setAttribute("ex", ex); + System.err.println("BaseController --exp "); + // 根据不同错误转向不同页面 + if(ex instanceof CustomException) { + CustomException cuse = (CustomException) ex; + Map errmsg = new HashMap<>(); + errmsg.put("code", cuse.getCode()); + errmsg.put("msg", cuse.getMsg()); + log.error(cuse.getCode()); + response.setStatus(500); + return response; + } else { + //其他错误则 调到指定页面 + log.error(Configs.GLOBAL_EXP_NOT_CUSTOM, ex); + response.setStatus(500); + return response; + } + } + } \ No newline at end of file diff --git a/src/com/base/Constant.java b/src/com/base/Constant.java index 4d336465..3b1dcc59 100644 --- a/src/com/base/Constant.java +++ b/src/com/base/Constant.java @@ -1,23 +1,23 @@ -package com.base; - -/** - * <一句话功能简述> - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -public class Constant { - - /** 国际话配置文件文件-i18n.properties */ - public static String I18N_PROPERTIES_FIEL_PATH = "/com/base/i18n.properties"; - - /** WritefileThread-线程睡眠时间--3000 */ - public final static long THREAD_SLEEP_WRITEFILETHREAD = 3000; - - /** CustomException记录报异常的对象的对象个数--10 */ - public final static int CustomException_log_object_size = 10; - - -} +package com.base; + +/** + * <一句话功能简述> + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +public class Constant { + + /** 国际话配置文件文件-i18n.properties */ + public static String I18N_PROPERTIES_FIEL_PATH = "/com/base/i18n.properties"; + + /** WritefileThread-线程睡眠时间--3000 */ + public final static long THREAD_SLEEP_WRITEFILETHREAD = 3000; + + /** CustomException记录报异常的对象的对象个数--10 */ + public final static int CustomException_log_object_size = 10; + + +} diff --git a/src/com/base/Custom4exception.java b/src/com/base/Custom4exception.java index 2aeba6c6..d863b645 100644 --- a/src/com/base/Custom4exception.java +++ b/src/com/base/Custom4exception.java @@ -1,20 +1,20 @@ -package com.base; - -/** - * <一句话功能简述> 异常常量编码 - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -public class Custom4exception { - //3003001001 : 第一位:标识异常, 第二到第四位:标识模块,第五道第七位:标识类别,第八道第十位标识具体异常 - /**eg - * 3:异常 - * 003:虚拟机模块 - * 001:软件依赖虚拟机资源类别 - * 001:启动异常 - */ - -} +package com.base; + +/** + * <一句话功能简述> 异常常量编码 + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +public class Custom4exception { + //3003001001 : 第一位:标识异常, 第二到第四位:标识模块,第五道第七位:标识类别,第八道第十位标识具体异常 + /**eg + * 3:异常 + * 003:虚拟机模块 + * 001:软件依赖虚拟机资源类别 + * 001:启动异常 + */ + +} diff --git a/src/com/base/CustomException.java b/src/com/base/CustomException.java index 9cf46a4a..08b75248 100644 --- a/src/com/base/CustomException.java +++ b/src/com/base/CustomException.java @@ -1,127 +1,127 @@ - - -package com.base; - -import org.apache.log4j.Logger; - -/** - * <一句话功能简述> - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -@SuppressWarnings("serial") -public class CustomException extends Exception { - - /** log4j */ - public static Logger log = Logger.getRootLogger(); - - /** 自定义异常信息-错误信息 */ - private String msg; - - /** 自定义异常信息-错误代码 */ - private String code; - - /** 操作对象 */ - private Object[] objArray; - - /** 异常 */ - private Throwable cause; - - public CustomException() { - super(); - } - - /** - * @功能 将异常记录进文件 - * @param code 异常编码 - * @param msg 自定义异常信息 - * @param e - * @param obj - */ - public CustomException(String code,Exception e,Object... obj) { - super(code); - StringBuffer sbuf= new StringBuffer(); - sbuf.append(msg); - this.code = code; - sbuf.append(code); - sbuf.append("\r\n"); - msg = Resource.getProperties().get(code); - // 记录自定义的 异常 - if (null != msg) { - sbuf.append(msg); - sbuf.append("\r\n"); - } - // 记录原始的异常 - if (null != e) { - StackTraceElement[] array = e.getStackTrace(); - cause = e.getCause(); - for (StackTraceElement stackTraceElement : array) { - sbuf.append(stackTraceElement.toString()); - sbuf.append("\r\n"); - } - } - //记录 出现异常时 当前的对象 - if (null != obj) { - Object[] array = obj; - sbuf.append("Object[] size : "); - sbuf.append(array.length); - int forSize = 0; - if (Constant.CustomException_log_object_size < array.length) { - forSize = Constant.CustomException_log_object_size; - } - else { - forSize = array.length; - } - for (int i = 0; i < forSize; i++) { - sbuf.append(array[i]); - sbuf.append("\r\n"); - } - sbuf.append("......"); - sbuf.append("\r\n"); - } - else { - sbuf.append("null"); - sbuf.append("\r\n"); - } - - sbuf.append("\r\n"); - // 是否 写入 文件 - log.error(sbuf.toString()); - } - - /** - * @功能 获得msg - * @return msg - */ - public String getMsg() { - return msg; - } - - - /** - * @return the code - */ - public String getCode() { - return code; - } - - /** - * @功能 获得objArray - * @return objArray - */ - public Object[] getObjArray() { - return objArray; - } - - /** - * @功能 获得cause - * @return cause - */ - public Throwable getCause() { - return cause; - } -} - + + +package com.base; + +import org.apache.log4j.Logger; + +/** + * <一句话功能简述> + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +@SuppressWarnings("serial") +public class CustomException extends Exception { + + /** log4j */ + public static Logger log = Logger.getRootLogger(); + + /** 自定义异常信息-错误信息 */ + private String msg; + + /** 自定义异常信息-错误代码 */ + private String code; + + /** 操作对象 */ + private Object[] objArray; + + /** 异常 */ + private Throwable cause; + + public CustomException() { + super(); + } + + /** + * @功能 将异常记录进文件 + * @param code 异常编码 + * @param msg 自定义异常信息 + * @param e + * @param obj + */ + public CustomException(String code,Exception e,Object... obj) { + super(code); + StringBuffer sbuf= new StringBuffer(); + sbuf.append(msg); + this.code = code; + sbuf.append(code); + sbuf.append("\r\n"); + msg = Resource.getProperties().get(code); + // 记录自定义的 异常 + if (null != msg) { + sbuf.append(msg); + sbuf.append("\r\n"); + } + // 记录原始的异常 + if (null != e) { + StackTraceElement[] array = e.getStackTrace(); + cause = e.getCause(); + for (StackTraceElement stackTraceElement : array) { + sbuf.append(stackTraceElement.toString()); + sbuf.append("\r\n"); + } + } + //记录 出现异常时 当前的对象 + if (null != obj) { + Object[] array = obj; + sbuf.append("Object[] size : "); + sbuf.append(array.length); + int forSize = 0; + if (Constant.CustomException_log_object_size < array.length) { + forSize = Constant.CustomException_log_object_size; + } + else { + forSize = array.length; + } + for (int i = 0; i < forSize; i++) { + sbuf.append(array[i]); + sbuf.append("\r\n"); + } + sbuf.append("......"); + sbuf.append("\r\n"); + } + else { + sbuf.append("null"); + sbuf.append("\r\n"); + } + + sbuf.append("\r\n"); + // 是否 写入 文件 + log.error(sbuf.toString()); + } + + /** + * @功能 获得msg + * @return msg + */ + public String getMsg() { + return msg; + } + + + /** + * @return the code + */ + public String getCode() { + return code; + } + + /** + * @功能 获得objArray + * @return objArray + */ + public Object[] getObjArray() { + return objArray; + } + + /** + * @功能 获得cause + * @return cause + */ + public Throwable getCause() { + return cause; + } +} + diff --git a/src/com/base/Resource.java b/src/com/base/Resource.java index 0b900bfe..5cd15923 100644 --- a/src/com/base/Resource.java +++ b/src/com/base/Resource.java @@ -1,79 +1,79 @@ -package com.base; - -import java.io.BufferedInputStream; -import java.io.BufferedReader; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import java.util.Properties; - -import com.base.Constant; - -public class Resource { - - private static Map properties = new HashMap<>(); - - static{ - // 读取 properties文件 -// readPropertiesFile(Constant.SYSTEM_PROPERTIES_FIEL_PATH); - readPropertiesFile4Chinese(Constant.I18N_PROPERTIES_FIEL_PATH); - - } - - /** - * @功能 读取配置(解决中文乱码) - * @param filename "/com/utils/exception/i18n.properties" 的格式 - */ - public static void readPropertiesFile4Chinese(String filename) { - Properties pro = new Properties(); - try { - // 读取属性文件 XXXX.properties(Reader。writer解决中文乱码) -// InputStreamReader in= new InputStreamReader(Resource.class.getClassLoader().getResourceAsStream(filename), "UTF-8"); - InputStreamReader in= new InputStreamReader(Resource.class.getResourceAsStream(filename), "UTF-8"); - BufferedReader bf = new BufferedReader(in); - // InputStreamReader in = new BufferedInputStream(new FileInputStream(filename)); - pro.load(bf); // /加载属性列表 - Iterator it = pro.stringPropertyNames().iterator(); - while (it.hasNext()) { - String key = it.next(); - properties.put(key, pro.getProperty(key)); - } - in.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - /** - * @功能 获得properties - * @return properties - */ - public static Map getProperties() { - return properties; - } - - /** - * @功能 读取配置 - * @param filename 文件绝对路径 - */ - public static void readPropertiesFile(String filename) { - Properties pro = new Properties(); - try { - // 读取属性文件 XXXX.properties( 中文会 乱码) - BufferedInputStream bf = new BufferedInputStream(new FileInputStream(filename)); - pro.load(bf); // /加载属性列表 - Iterator it = pro.stringPropertyNames().iterator(); - while (it.hasNext()) { - String key = it.next(); - properties.put(key, pro.getProperty(key)); - } - bf.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - -} +package com.base; + +import java.io.BufferedInputStream; +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Properties; + +import com.base.Constant; + +public class Resource { + + private static Map properties = new HashMap<>(); + + static{ + // 读取 properties文件 +// readPropertiesFile(Constant.SYSTEM_PROPERTIES_FIEL_PATH); + readPropertiesFile4Chinese(Constant.I18N_PROPERTIES_FIEL_PATH); + + } + + /** + * @功能 读取配置(解决中文乱码) + * @param filename "/com/utils/exception/i18n.properties" 的格式 + */ + public static void readPropertiesFile4Chinese(String filename) { + Properties pro = new Properties(); + try { + // 读取属性文件 XXXX.properties(Reader。writer解决中文乱码) +// InputStreamReader in= new InputStreamReader(Resource.class.getClassLoader().getResourceAsStream(filename), "UTF-8"); + InputStreamReader in= new InputStreamReader(Resource.class.getResourceAsStream(filename), "UTF-8"); + BufferedReader bf = new BufferedReader(in); + // InputStreamReader in = new BufferedInputStream(new FileInputStream(filename)); + pro.load(bf); // /加载属性列表 + Iterator it = pro.stringPropertyNames().iterator(); + while (it.hasNext()) { + String key = it.next(); + properties.put(key, pro.getProperty(key)); + } + in.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * @功能 获得properties + * @return properties + */ + public static Map getProperties() { + return properties; + } + + /** + * @功能 读取配置 + * @param filename 文件绝对路径 + */ + public static void readPropertiesFile(String filename) { + Properties pro = new Properties(); + try { + // 读取属性文件 XXXX.properties( 中文会 乱码) + BufferedInputStream bf = new BufferedInputStream(new FileInputStream(filename)); + pro.load(bf); // /加载属性列表 + Iterator it = pro.stringPropertyNames().iterator(); + while (it.hasNext()) { + String key = it.next(); + properties.put(key, pro.getProperty(key)); + } + bf.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + +} diff --git a/src/com/dao/mapper/RegionalismMapper.xml b/src/com/dao/mapper/RegionalismMapper.xml index eba66e4a..ce2c48f5 100644 --- a/src/com/dao/mapper/RegionalismMapper.xml +++ b/src/com/dao/mapper/RegionalismMapper.xml @@ -1,49 +1,42 @@ - - - - - - - - - - - - code,city_name,district_name - - - - - - - + + + + + + + + + + + + code,city_name,district_name + + + + + + \ No newline at end of file diff --git a/src/com/dao/mapper/SystemCodeMapper.xml b/src/com/dao/mapper/SystemCodeMapper.xml index 10691fc0..c23937dd 100644 --- a/src/com/dao/mapper/SystemCodeMapper.xml +++ b/src/com/dao/mapper/SystemCodeMapper.xml @@ -1,48 +1,42 @@ - - - - - - - - - - - code,system_name - - - - - - - + + + + + + + + + + + code,system_name + + + + + + + \ No newline at end of file diff --git a/src/com/dao/mapper/config-details-mapper.xml b/src/com/dao/mapper/config-details-mapper.xml index 439d4f98..3d1dba4d 100644 --- a/src/com/dao/mapper/config-details-mapper.xml +++ b/src/com/dao/mapper/config-details-mapper.xml @@ -1,146 +1,146 @@ - - - - - - - - - - - - - - - - - - - id id, service_port port, service_ip ip, service_name name, service_user user, service_password password, service_database databaseName, service_table tableName, service_suffix suffix, service_status status - - - - - - INSERT INTO - services_info( - - - service_port, - - - service_ip, - - - service_name, - - - service_user, - - - service_password, - - - service_database, - - - service_table, - - - service_suffix, - - - service_status, - - - ) - VALUES( - - - #{port}, - - - #{ip}, - - - #{name}, - - - #{user}, - - - #{password}, - - - #{databaseName}, - - - #{tableName}, - - - #{suffix}, - - - #{status}, - - - ) - - - - DELETE FROM services_info - - id =#{id} - - - - - UPDATE - services_info - - - - service_name = #{name}, - - - service_ip = #{ip}, - - - service_port= #{port}, - - - service_user= #{user}, - - - service_password= #{password}, - - - service_database= #{databaseName}, - - - service_table= #{tableName}, - - - service_suffix= #{suffix}, - - - service_status= #{status}, - - - remove= #{remove}, - - - - - id = #{id} - - - + + + + + + + + + + + + + + + + + + + id id, service_port port, service_ip ip, service_name name, service_user user, service_password password, service_database databaseName, service_table tableName, service_suffix suffix, service_status status + + + + + + INSERT INTO + services_info( + + + service_port, + + + service_ip, + + + service_name, + + + service_user, + + + service_password, + + + service_database, + + + service_table, + + + service_suffix, + + + service_status, + + + ) + VALUES( + + + #{port}, + + + #{ip}, + + + #{name}, + + + #{user}, + + + #{password}, + + + #{databaseName}, + + + #{tableName}, + + + #{suffix}, + + + #{status}, + + + ) + + + + DELETE FROM services_info + + id =#{id} + + + + + UPDATE + services_info + + + + service_name = #{name}, + + + service_ip = #{ip}, + + + service_port= #{port}, + + + service_user= #{user}, + + + service_password= #{password}, + + + service_database= #{databaseName}, + + + service_table= #{tableName}, + + + service_suffix= #{suffix}, + + + service_status= #{status}, + + + remove= #{remove}, + + + + + id = #{id} + + + \ No newline at end of file diff --git a/src/com/dao/mapper/data-details-mapper.xml b/src/com/dao/mapper/data-details-mapper.xml index 969a97a0..ce8a7be7 100644 --- a/src/com/dao/mapper/data-details-mapper.xml +++ b/src/com/dao/mapper/data-details-mapper.xml @@ -1,224 +1,248 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - and data_details.data_type=#{PagerOptions.dataType} - - - and - data_details.submitted_batch=#{PagerOptions.submittedBatch} - - - and data_details.city_name=#{PagerOptions.cityName} - - - and - data_details.district_name=#{PagerOptions.districtName} - - - and data_details.data_version=#{PagerOptions.dataVersion} - - - and data_details=#{PagerOptions.systemName} - - - and data_details.data_year=#{PagerOptions.dataYear} - - - - - - - - - - - - - - INSERT INTO - data_info( - - - regionalism_code, - - - system_code, - - - data_type, - - - data_version, - - - submitted_batch, - - - data_path, - - - collection_time, - - - collector_name, - - - collector_contacts, - - - data_charset, - - - data_year - - - start_year - - - end_year - - - ) - VALUES( - - - #{regionalismCode}, - - - #{systemCode}, - - - #{dataType}, - - - #{dataVersion}, - - - #{submittedBatch}, - - - #{dataPath}, - - - #{collectingTime}, - - - #{collectorName}, - - - #{collectorContacts}, - - - #{charset}, - - - #{year} - - - #{start_year} - - - #{end_year} - - - ) - - - - - - UPDATE - data_info - set remove = '1' - where id in - - #{item} - - and remove ='0' - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + and data_details.data_type=#{PagerOptions.dataType} + + + and + data_details.submitted_batch=#{PagerOptions.submittedBatch} + + + and data_details.city_name=#{PagerOptions.cityName} + + + and + data_details.district_name=#{PagerOptions.districtName} + + + and data_details.data_version=#{PagerOptions.dataVersion} + + + and data_details=#{PagerOptions.systemName} + + + and data_details.data_year=#{PagerOptions.dataYear} + + + + + + + + + + + + + + INSERT INTO + data_info( + + + regionalism_code, + + + system_code, + + + data_type, + + + data_version, + + + submitted_batch, + + + data_path, + + + collection_time, + + + collector_name, + + + collector_contacts, + + + data_charset, + + + data_year, + + + start_year, + + + end_year, + + + volume_ip, + + + volume_path, + + + extract_status, + + + ) + VALUES( + + + #{regionalismCode}, + + + #{systemCode}, + + + #{dataType}, + + + #{dataVersion}, + + + #{submittedBatch}, + + + #{dataPath}, + + + #{collectingTime}, + + + #{collectorName}, + + + #{collectorContacts}, + + + #{charset}, + + + #{year}, + + + #{start_year}, + + + #{end_year}, + + + #{volumeIp}, + + + #{volumePath}, + + + #{extractStatus}, + + + ) + + + + + + UPDATE + data_info + set remove = '1' + where id in + + #{item} + + and remove ='0' + + \ No newline at end of file diff --git a/src/com/dao/mapper/dataInfoMoveTmpmapper.xml b/src/com/dao/mapper/dataInfoMoveTmpmapper.xml index bf4987f4..e35029a5 100644 --- a/src/com/dao/mapper/dataInfoMoveTmpmapper.xml +++ b/src/com/dao/mapper/dataInfoMoveTmpmapper.xml @@ -1,186 +1,189 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - regionalism_code,system_code,dst_path,lasttime,fkid - - - - - - - UPDATE - move_data_tmp - - - - dst_path= #{dstPath}, - - - complete_status= #{completeStatus}, - - - rate= #{rate}, - - - lasttime= #{lastTime}, - - - - - id = #{id} - - - - - INSERT INTO - move_data_tmp( - - - id, - - - regionalism_code, - - - system_code, - - - dst_path, - - - complete_status, - - - rate, - - - lasttime, - - - fkid, - - - ) - VALUES( - - - id, - - - #{regionalismCode}, - - - #{systemCode}, - - - #{dstPath}, - - - #{completeStatus}, - - - #{rate} - - - #{lastTime}, - - - #{fkid), - - - ) - - - - - - DELETE FROM - move_data_tmp - WHERE - id = #{id} - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + regionalism_code,system_code,dst_path,lasttime,fkid + + + + + + + UPDATE + move_data_tmp + + + + dst_path= #{dstPath}, + + + complete_status= #{completeStatus}, + + + rate= #{rate}, + + + lasttime= #{lastTime}, + + + + + id = #{id} + + + + + INSERT INTO + move_data_tmp( + + + id, + + + regionalism_code, + + + system_code, + + + dst_path, + + + complete_status, + + + rate, + + + lasttime, + + + fkid, + + + ) + VALUES( + + + id, + + + #{regionalismCode}, + + + #{systemCode}, + + + #{dstPath}, + + + #{completeStatus}, + + + #{rate} + + + #{lastTime}, + + + #{fkid), + + + ) + + + + + + DELETE FROM + move_data_tmp + WHERE + id = #{id} + + + + \ No newline at end of file diff --git a/src/com/platform/controller/DataModelController.java b/src/com/platform/controller/DataModelController.java index 2842812d..c6245bfe 100644 --- a/src/com/platform/controller/DataModelController.java +++ b/src/com/platform/controller/DataModelController.java @@ -35,6 +35,7 @@ import com.platform.entities.PagerOptions; import com.platform.entities.VolumeEntity; import com.platform.glusterfs.CheckoutMD5; import com.platform.service.DataInfoService; +import com.platform.service.ICodeService; import com.platform.service.IGfsService; import com.platform.service.IMoveDataService; import com.platform.service.IMySqlService; @@ -69,6 +70,9 @@ public class DataModelController extends BaseController{ @Resource(name = "moveDataService") private IMoveDataService moveDataService; + @Resource(name = "codeService") + private ICodeService codeService; + public void setDfsImp(DataInfoService dfs) { this.dfs = dfs; } @@ -306,11 +310,11 @@ public class DataModelController extends BaseController{ return result; } - @RequestMapping(value="/findSystemCode", method= RequestMethod.POST) + @RequestMapping(value="/code/list", method= RequestMethod.POST) @ResponseBody - public Object findSystemCode(DataInfoEntity move) throws Exception { + public Object findCodeList() throws Exception { log.debug("---------/findSystemCode-----------------------"); - int result = dfs.save(move); + Map result = codeService.findAll(); return result; } } diff --git a/src/com/platform/controller/DefaultController.java b/src/com/platform/controller/DefaultController.java index 631e6b77..7fb907c8 100644 --- a/src/com/platform/controller/DefaultController.java +++ b/src/com/platform/controller/DefaultController.java @@ -1,32 +1,32 @@ - -package com.platform.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.stereotype.Controller; -import org.springframework.ui.ModelMap; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; - -import com.platform.utils.Configs; - -@Controller -public class DefaultController { - - @RequestMapping("/") - public ModelAndView defaultHandler(HttpServletRequest req, HttpServletResponse res){ - //处理不匹配的请求 - System.out.println("index"); - return new ModelAndView("index"); - } - - @RequestMapping("/test") - public ModelMap test(HttpServletRequest req, HttpServletResponse res){ - //System.out.println(Class.class.getClass().getResource("/").getPath()); - System.out.println(Configs.EXTRACT_LOG_LOCALTION); - return new ModelMap(); - } - -} - + +package com.platform.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import com.platform.utils.Configs; + +@Controller +public class DefaultController { + + @RequestMapping("/") + public ModelAndView defaultHandler(HttpServletRequest req, HttpServletResponse res){ + //处理不匹配的请求 + System.out.println("index"); + return new ModelAndView("index"); + } + + @RequestMapping("/test") + public ModelMap test(HttpServletRequest req, HttpServletResponse res){ + //System.out.println(Class.class.getClass().getResource("/").getPath()); + System.out.println(Configs.EXTRACT_LOG_LOCALTION); + return new ModelMap(); + } + +} + diff --git a/src/com/platform/controller/FolderController.java b/src/com/platform/controller/FolderController.java index 04254ffb..8bea311e 100644 --- a/src/com/platform/controller/FolderController.java +++ b/src/com/platform/controller/FolderController.java @@ -1,114 +1,114 @@ - -package com.platform.controller; - - -import java.util.Date; -import java.util.List; - -import javax.annotation.Resource; - -import oracle.sql.DATE; - -import org.springframework.stereotype.Controller; -import org.springframework.stereotype.Service; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; - - - -import com.base.BaseController; -import com.base.CustomException; -import com.platform.entities.GfsFolderEntity; - - -import com.platform.entities.VolumeEntity; -import com.platform.glusterfs.VolumeInfo; - -import com.platform.entities.VolumeEntity; -import com.platform.glusterfs.VolumeInfo; - -import com.platform.service.IGfsService; - - -/** - * <一句话功能简述> - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -@Controller - -@RequestMapping("") - -public class FolderController extends BaseController { - - @Resource(name = "gfsService") - private IGfsService gfsService; - - - - - @RequestMapping(value="/getAllSubPathByPath", method= RequestMethod.POST) - - public Object getAllSubPathByPath(String path) throws Exception { - System.out.println(path); - Object result = null; - if (null != path && !"".equals(path)) { - System.out.println(path); - result = gfsService.getFolder(path); - } - return result; - } - - - @RequestMapping("/copyFolder") - public Object copyFolder(String srcpath, String dstPath, String name) throws Exception { - // -1 :error; -2: the filename is not exists ;-3 :destFolderName ; 1: right - int result = 0; -// int result = gfsService.copyFolder(srcpath, dstPath, name); - System.out.println(srcpath); - System.out.println(dstPath); - String obj = "right"; - - if (1 != result) { - obj = "err"; - } - return obj; - } - -// /** -// * <一句话功能简述> 查询集群中所有的 volume 及其 信息 -// * <功能详细描述> -// * @return -// * @throws Exception -// * @see [类、类#方法、类#成员] -// */ -// @RequestMapping(value="/volume/list", method= RequestMethod.POST) -// public Object getVolums() throws Exception{ -// System.out.println("----------------------------------"); -// long a = new Date().getTime(); -// List result = gfsService.getAllVolumes(); -// System.out.println("----------------------------------"); -// System.out.println(new Date().getTime()-a); -// return result; -// } -// - /** - * <一句话功能简述> 查询集群中所有的 volume 及其 信息 - * <功能详细描述> - * @param volumeName "/home/gfs_ftp_point" "/home/v1_point" - * @return - * @throws Exception - * @see [类、类#方法、类#成员] - */ - - @RequestMapping(value="/volume/findByName", method= RequestMethod.POST) - public Object getVolumByName(String volumeName) throws Exception{ - VolumeEntity result = gfsService.getOneVolume(volumeName); - return result; - - } - -} + +package com.platform.controller; + + +import java.util.Date; +import java.util.List; + +import javax.annotation.Resource; + +import oracle.sql.DATE; + +import org.springframework.stereotype.Controller; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + + + +import com.base.BaseController; +import com.base.CustomException; +import com.platform.entities.GfsFolderEntity; + + +import com.platform.entities.VolumeEntity; +import com.platform.glusterfs.VolumeInfo; + +import com.platform.entities.VolumeEntity; +import com.platform.glusterfs.VolumeInfo; + +import com.platform.service.IGfsService; + + +/** + * <一句话功能简述> + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +@Controller + +@RequestMapping("") + +public class FolderController extends BaseController { + + @Resource(name = "gfsService") + private IGfsService gfsService; + + + + + @RequestMapping(value="/getAllSubPathByPath", method= RequestMethod.POST) + + public Object getAllSubPathByPath(String path) throws Exception { + System.out.println(path); + Object result = null; + if (null != path && !"".equals(path)) { + System.out.println(path); + result = gfsService.getFolder(path); + } + return result; + } + + + @RequestMapping("/copyFolder") + public Object copyFolder(String srcpath, String dstPath, String name) throws Exception { + // -1 :error; -2: the filename is not exists ;-3 :destFolderName ; 1: right + int result = 0; +// int result = gfsService.copyFolder(srcpath, dstPath, name); + System.out.println(srcpath); + System.out.println(dstPath); + String obj = "right"; + + if (1 != result) { + obj = "err"; + } + return obj; + } + +// /** +// * <一句话功能简述> 查询集群中所有的 volume 及其 信息 +// * <功能详细描述> +// * @return +// * @throws Exception +// * @see [类、类#方法、类#成员] +// */ +// @RequestMapping(value="/volume/list", method= RequestMethod.POST) +// public Object getVolums() throws Exception{ +// System.out.println("----------------------------------"); +// long a = new Date().getTime(); +// List result = gfsService.getAllVolumes(); +// System.out.println("----------------------------------"); +// System.out.println(new Date().getTime()-a); +// return result; +// } +// + /** + * <一句话功能简述> 查询集群中所有的 volume 及其 信息 + * <功能详细描述> + * @param volumeName "/home/gfs_ftp_point" "/home/v1_point" + * @return + * @throws Exception + * @see [类、类#方法、类#成员] + */ + + @RequestMapping(value="/volume/findByName", method= RequestMethod.POST) + public Object getVolumByName(String volumeName) throws Exception{ + VolumeEntity result = gfsService.getOneVolume(volumeName); + return result; + + } + +} diff --git a/src/com/platform/controller/SetGlusterfsController.java b/src/com/platform/controller/SetGlusterfsController.java index 60b776b0..78ce8915 100644 --- a/src/com/platform/controller/SetGlusterfsController.java +++ b/src/com/platform/controller/SetGlusterfsController.java @@ -1,52 +1,52 @@ - -/** - * 文件名 : SetGlusterfs.java - * 版权 : <版权/公司名> - * 描述 : <描述> - * @author liliy - * 版本 : <版本> - * 修改时间: 2016年9月8日 - * 修改内容: <修改内容> - */ -package com.platform.controller; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; - -/** - - * <一句话功能简述> - - - * <一句话功能简述> - - * <功能详细描述> - * @author liliy - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -@Controller -public class SetGlusterfsController { - - @RequestMapping("/tes") - public Object defaultHandler(HttpServletRequest req, HttpServletResponse request) { - //���?ƥ������� - try { - - System.out.println("fsdfds"); - - return "listAll"; - } catch (Exception e) { - e.printStackTrace(); - - return "result"; - } - - - } - -} + +/** + * 文件名 : SetGlusterfs.java + * 版权 : <版权/公司名> + * 描述 : <描述> + * @author liliy + * 版本 : <版本> + * 修改时间: 2016年9月8日 + * 修改内容: <修改内容> + */ +package com.platform.controller; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +/** + + * <一句话功能简述> + + + * <一句话功能简述> + + * <功能详细描述> + * @author liliy + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +@Controller +public class SetGlusterfsController { + + @RequestMapping("/tes") + public Object defaultHandler(HttpServletRequest req, HttpServletResponse request) { + //���?ƥ������� + try { + + System.out.println("fsdfds"); + + return "listAll"; + } catch (Exception e) { + e.printStackTrace(); + + return "result"; + } + + + } + +} diff --git a/src/com/platform/controller/ShowGlusterfsController.java b/src/com/platform/controller/ShowGlusterfsController.java index 7667bc2b..6fa3fadd 100644 --- a/src/com/platform/controller/ShowGlusterfsController.java +++ b/src/com/platform/controller/ShowGlusterfsController.java @@ -1,50 +1,50 @@ - -/** - * 文件名 : ShowGlusterfsController.java - * 版权 : <版权/公司名> - * 描述 : <描述> - * @author liliy - * 版本 : <版本> - * 修改时间: 2016年9月8日 - * 修改内容: <修改内容> - */ -package com.platform.controller; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import com.platform.glusterfs.ClusterInfo; -import com.platform.glusterfs.VolumeInfo; - -/** - * <一句话功能简述> - - * <功能详细描述> - * @author liliy - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -@Controller -public class ShowGlusterfsController { - - - /** - * <一句话功能简述> - - * <功能详细描述> - * @return - * @see [类、类#方法、类#成员] - */ - @RequestMapping("/showPeerStatus") - public Map showPeerStatus(){ - Map peer_status=new ClusterInfo().showClusterInfo(); - return peer_status; - } - - -} + +/** + * 文件名 : ShowGlusterfsController.java + * 版权 : <版权/公司名> + * 描述 : <描述> + * @author liliy + * 版本 : <版本> + * 修改时间: 2016年9月8日 + * 修改内容: <修改内容> + */ +package com.platform.controller; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.platform.glusterfs.ClusterInfo; +import com.platform.glusterfs.VolumeInfo; + +/** + * <一句话功能简述> + + * <功能详细描述> + * @author liliy + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +@Controller +public class ShowGlusterfsController { + + + /** + * <一句话功能简述> + + * <功能详细描述> + * @return + * @see [类、类#方法、类#成员] + */ + @RequestMapping("/showPeerStatus") + public Map showPeerStatus(){ + Map peer_status=new ClusterInfo().showClusterInfo(); + return peer_status; + } + + +} diff --git a/src/com/platform/dao/DataInfoDao.java b/src/com/platform/dao/DataInfoDao.java index f8423548..498611a1 100644 --- a/src/com/platform/dao/DataInfoDao.java +++ b/src/com/platform/dao/DataInfoDao.java @@ -1,26 +1,26 @@ -package com.platform.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; - -import com.platform.entities.DataInfoEntity; -import com.platform.entities.PagerOptions; - -@Repository(value = "dataInfoDao") -public interface DataInfoDao { - - int getLimitedDataCount(@Param("PagerOptions")PagerOptions pagerOptions); - - int getLimitedBeginId(@Param("PagerOptions")PagerOptions pagerOptions); - - List getLimitedDataInfoEntities(@Param("PagerOptions")PagerOptions pagerOptions); - - List getIdIsExist(List list)throws Exception; - - int removes(List list)throws Exception; - - int save(DataInfoEntity data) throws Exception; - -} +package com.platform.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import com.platform.entities.DataInfoEntity; +import com.platform.entities.PagerOptions; + +@Repository(value = "dataInfoDao") +public interface DataInfoDao { + + int getLimitedDataCount(@Param("PagerOptions")PagerOptions pagerOptions); + + int getLimitedBeginId(@Param("PagerOptions")PagerOptions pagerOptions); + + List getLimitedDataInfoEntities(@Param("PagerOptions")PagerOptions pagerOptions); + + List getIdIsExist(List list)throws Exception; + + int removes(List list)throws Exception; + + int save(DataInfoEntity data) throws Exception; + +} diff --git a/src/com/platform/dao/DataInfoMoveTmpDao.java b/src/com/platform/dao/DataInfoMoveTmpDao.java index 096d8938..3891c117 100644 --- a/src/com/platform/dao/DataInfoMoveTmpDao.java +++ b/src/com/platform/dao/DataInfoMoveTmpDao.java @@ -1,29 +1,29 @@ -package com.platform.dao; - -import java.util.List; - -import org.springframework.stereotype.Repository; - -import com.platform.entities.DataInfoEntityMoveTmp; - -/** - * @author chen - * 数据迁移状态 临时 存放 , - */ -@Repository(value = "dataInfoMoveTmpDao") -public interface DataInfoMoveTmpDao { - - /** 查 - * @return - * @throws Exception - */ - List findAll() throws Exception; - - int update(DataInfoEntityMoveTmp data) throws Exception; - - int save(DataInfoEntityMoveTmp data) throws Exception; - - void insertBatch(List list) throws Exception; - - int remove(int id) throws Exception; -} +package com.platform.dao; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import com.platform.entities.DataInfoEntityMoveTmp; + +/** + * @author chen + * 数据迁移状态 临时 存放 , + */ +@Repository(value = "dataInfoMoveTmpDao") +public interface DataInfoMoveTmpDao { + + /** 查 + * @return + * @throws Exception + */ + List findAll() throws Exception; + + int update(DataInfoEntityMoveTmp data) throws Exception; + + int save(DataInfoEntityMoveTmp data) throws Exception; + + void insertBatch(List list) throws Exception; + + int remove(int id) throws Exception; +} diff --git a/src/com/platform/dao/EncodeInfoDao.java b/src/com/platform/dao/EncodeInfoDao.java index a877f5f3..18fb399e 100644 --- a/src/com/platform/dao/EncodeInfoDao.java +++ b/src/com/platform/dao/EncodeInfoDao.java @@ -1,99 +1,99 @@ -package com.platform.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Delete; -import org.apache.ibatis.annotations.Insert; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Select; -import org.apache.ibatis.annotations.Update; -import org.springframework.stereotype.Repository; - -import com.platform.entities.EncodedInfoEntity; - -/** - * 数据库操作: 实现增、删、改、查 - * - * @author wuming - * - */ -@Repository(value = "encodeInfoDao") -public interface EncodeInfoDao { - - /** - * 获取查询表下的所有实体(行政区划/系统)信息 - * - * @param tableName - * 查询的表名 - * @return 所有实体信息:名称和编码 - */ - @Select("SELECT code, name FROM ${tableName}") - public List getAllEntityInfo( - @Param("tableName") String tableName); - - /** - * 根据实体(行政区划/系统)的名称查询编码 - * - * @param code - * 实体编码 - * @param tableName - * 查询的表名 - * @return 编码是主键,查询结果最多只有一条记录 - */ - @Select("SELECT name FROM ${tableName} WHERE code = #{code}") - public String getEncodeNameByCode(@Param("code") String code, - @Param("tableName") String tableName); - - /** - * 根据实体(行政区划/系统)的编码查询名称 - * - * @param name - * 实体名称 - * @param tableName - * 查询的表名 - * @return 名称不是主键,查询结果可能会有多个 - */ - @Select("SELECT code FROM ${tableName} WHERE name = #{name}") - public List getEncodeCodeByName(@Param("name") String name, - @Param("tableName") String tableName); - - /** - * 根据实体(行政区划/系统)的编码,更新实体的名称 - * - * @param code - * 系统编码 - * @param tableName - * 查询的表名 - * @return - */ - @Update("UPDATE ${tableName} SET name = #{name} WHERE code = #{code}") - public int updateEncodeNameByCode(@Param("code") String code, - @Param("name") String name, @Param("tableName") String tableName); - - /** - * 向表中插入实体(行政区划/系统)信息 - * - * @param efe - * 插入的实体信息 - * @param tableName - * 表名 - * @return - */ - @Insert("INSERT INTO ${tableName} (code, name) VALUES (#{efe.code}, #{efe.name})") - public int insertEncodeEntity(@Param("efe") EncodedInfoEntity efe, - @Param("tableName") String tableName); - - /** - * 删除表中的实体(行政区划/系统) - * - * @param code - * 实体的编码 - * @param tableName - * 表名 - * @return - */ - @Delete("DELETE FROM ${tableName} WHERE code = #{code}") - public int deleteEncodeByCode(@Param("code") String code, - @Param("tableName") String tableName); - +package com.platform.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Insert; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; +import org.apache.ibatis.annotations.Update; +import org.springframework.stereotype.Repository; + +import com.platform.entities.EncodedInfoEntity; + +/** + * 数据库操作: 实现增、删、改、查 + * + * @author wuming + * + */ +@Repository(value = "encodeInfoDao") +public interface EncodeInfoDao { + + /** + * 获取查询表下的所有实体(行政区划/系统)信息 + * + * @param tableName + * 查询的表名 + * @return 所有实体信息:名称和编码 + */ + @Select("SELECT code, name FROM ${tableName}") + public List getAllEntityInfo( + @Param("tableName") String tableName); + + /** + * 根据实体(行政区划/系统)的名称查询编码 + * + * @param code + * 实体编码 + * @param tableName + * 查询的表名 + * @return 编码是主键,查询结果最多只有一条记录 + */ + @Select("SELECT name FROM ${tableName} WHERE code = #{code}") + public String getEncodeNameByCode(@Param("code") String code, + @Param("tableName") String tableName); + + /** + * 根据实体(行政区划/系统)的编码查询名称 + * + * @param name + * 实体名称 + * @param tableName + * 查询的表名 + * @return 名称不是主键,查询结果可能会有多个 + */ + @Select("SELECT code FROM ${tableName} WHERE name = #{name}") + public List getEncodeCodeByName(@Param("name") String name, + @Param("tableName") String tableName); + + /** + * 根据实体(行政区划/系统)的编码,更新实体的名称 + * + * @param code + * 系统编码 + * @param tableName + * 查询的表名 + * @return + */ + @Update("UPDATE ${tableName} SET name = #{name} WHERE code = #{code}") + public int updateEncodeNameByCode(@Param("code") String code, + @Param("name") String name, @Param("tableName") String tableName); + + /** + * 向表中插入实体(行政区划/系统)信息 + * + * @param efe + * 插入的实体信息 + * @param tableName + * 表名 + * @return + */ + @Insert("INSERT INTO ${tableName} (code, name) VALUES (#{efe.code}, #{efe.name})") + public int insertEncodeEntity(@Param("efe") EncodedInfoEntity efe, + @Param("tableName") String tableName); + + /** + * 删除表中的实体(行政区划/系统) + * + * @param code + * 实体的编码 + * @param tableName + * 表名 + * @return + */ + @Delete("DELETE FROM ${tableName} WHERE code = #{code}") + public int deleteEncodeByCode(@Param("code") String code, + @Param("tableName") String tableName); + } \ No newline at end of file diff --git a/src/com/platform/dao/GatherOracleDao.java b/src/com/platform/dao/GatherOracleDao.java index 43852cac..b2061c0c 100644 --- a/src/com/platform/dao/GatherOracleDao.java +++ b/src/com/platform/dao/GatherOracleDao.java @@ -1,39 +1,39 @@ -package com.platform.dao; - -import java.util.List; - -import org.springframework.stereotype.Repository; - -import com.platform.entities.GatherOracleInfo; - -@Repository(value = "gatherOracleDao") -public interface GatherOracleDao { - - /** - * @return 查询所有的oracle记录 - * @throws Exception 异常 - */ - public List selectAllOracle() throws Exception; - - /** - * @param id - * @return - * @throws Exception - */ - public int deleteOracleById(int id) throws Exception; - - /** - * @param oracle - * @return - * @throws Exception - */ - public int insertOracle(GatherOracleInfo oracle) throws Exception; - - /** - * @param oracle - * @return - * @throws Exception - */ - public int updateOracleById(GatherOracleInfo oracle) throws Exception; - -} +package com.platform.dao; + +import java.util.List; + +import org.springframework.stereotype.Repository; + +import com.platform.entities.GatherOracleInfo; + +@Repository(value = "gatherOracleDao") +public interface GatherOracleDao { + + /** + * @return 查询所有的oracle记录 + * @throws Exception 异常 + */ + public List selectAllOracle() throws Exception; + + /** + * @param id + * @return + * @throws Exception + */ + public int deleteOracleById(int id) throws Exception; + + /** + * @param oracle + * @return + * @throws Exception + */ + public int insertOracle(GatherOracleInfo oracle) throws Exception; + + /** + * @param oracle + * @return + * @throws Exception + */ + public int updateOracleById(GatherOracleInfo oracle) throws Exception; + +} diff --git a/src/com/platform/dao/IRegionalismCodeDao.java b/src/com/platform/dao/IRegionalismCodeDao.java index e89cd938..dfc15b47 100644 --- a/src/com/platform/dao/IRegionalismCodeDao.java +++ b/src/com/platform/dao/IRegionalismCodeDao.java @@ -1,28 +1,28 @@ -package com.platform.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; - -import com.platform.entities.DataInfoEntity; -import com.platform.entities.DataInfoEntityMoveTmp; -import com.platform.entities.PagerOptions; -import com.platform.entities.RegionalismEntity; - -/** - * @author chen - * 数据迁移状态 临时 存放 , - */ -@Repository(value = "regionalismCodeDao") -public interface IRegionalismCodeDao { - - /** 查 - * @return - * @throws Exception - */ - List findAllRegionalism() throws Exception; - - List findSubRegionalism(RegionalismEntity region) throws Exception; - -} +package com.platform.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import com.platform.entities.DataInfoEntity; +import com.platform.entities.DataInfoEntityMoveTmp; +import com.platform.entities.PagerOptions; +import com.platform.entities.RegionalismEntity; + +/** + * @author chen + * 数据迁移状态 临时 存放 , + */ +@Repository(value = "regionalismCodeDao") +public interface IRegionalismCodeDao { + + /** 查 + * @return + * @throws Exception + */ + List findAllRegionalism() throws Exception; + + List findSubRegionalism(RegionalismEntity region) throws Exception; + +} diff --git a/src/com/platform/dao/ISystemCodeDao.java b/src/com/platform/dao/ISystemCodeDao.java index fde3b02f..401b7787 100644 --- a/src/com/platform/dao/ISystemCodeDao.java +++ b/src/com/platform/dao/ISystemCodeDao.java @@ -1,28 +1,28 @@ -package com.platform.dao; - -import java.util.List; - -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Repository; - -import com.platform.entities.DataInfoEntity; -import com.platform.entities.DataInfoEntityMoveTmp; -import com.platform.entities.PagerOptions; -import com.platform.entities.RegionalismEntity; -import com.platform.entities.SystemEntity; - -/** - * @author chen - * 数据迁移状态 临时 存放 , - */ -@Repository(value = "systemCodeDao") -public interface ISystemCodeDao { - - /** 查 - * @return - * @throws Exception - */ - List findAllSystem() throws Exception; - - List findSubSystem(SystemEntity system) throws Exception; -} +package com.platform.dao; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Repository; + +import com.platform.entities.DataInfoEntity; +import com.platform.entities.DataInfoEntityMoveTmp; +import com.platform.entities.PagerOptions; +import com.platform.entities.RegionalismEntity; +import com.platform.entities.SystemEntity; + +/** + * @author chen + * 数据迁移状态 临时 存放 , + */ +@Repository(value = "systemCodeDao") +public interface ISystemCodeDao { + + /** 查 + * @return + * @throws Exception + */ + List findAllSystem() throws Exception; + + List findSubSystem(SystemEntity system) throws Exception; +} diff --git a/src/com/platform/entities/BasedType.java b/src/com/platform/entities/BasedType.java index d133a0eb..e1568cec 100644 --- a/src/com/platform/entities/BasedType.java +++ b/src/com/platform/entities/BasedType.java @@ -1,48 +1,48 @@ -package com.platform.entities; - -import java.util.Date; - -public enum BasedType { - - STRING("java.lang.String", String.class), INTEGER("java.lang.Integer", - Integer.class), SHORT("java.lang.Short", Short.class), LONG( - "java.lang.Long", Long.class), DATE("java.util.Date", Date.class); - - private String type; - private Class clazz; - - private BasedType(String type, Class clazz) { - this.type = type; - this.clazz = clazz; - } - - public static Class getTypeClass(String type) { - for (BasedType bt : BasedType.values()) { - if (bt.equals(type)) - return bt.clazz; - } - return null; - } - - public String getType() { - return type; - } - - public void setType(String type) { - this.type = type; - } - - public Class getClazz() { - return clazz; - } - - public void setClazz(Class clazz) { - this.clazz = clazz; - } - - @Override - public String toString() { - return this.type; - } - -} +package com.platform.entities; + +import java.util.Date; + +public enum BasedType { + + STRING("java.lang.String", String.class), INTEGER("java.lang.Integer", + Integer.class), SHORT("java.lang.Short", Short.class), LONG( + "java.lang.Long", Long.class), DATE("java.util.Date", Date.class); + + private String type; + private Class clazz; + + private BasedType(String type, Class clazz) { + this.type = type; + this.clazz = clazz; + } + + public static Class getTypeClass(String type) { + for (BasedType bt : BasedType.values()) { + if (bt.equals(type)) + return bt.clazz; + } + return null; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Class getClazz() { + return clazz; + } + + public void setClazz(Class clazz) { + this.clazz = clazz; + } + + @Override + public String toString() { + return this.type; + } + +} diff --git a/src/com/platform/entities/DataInfoEntity.java b/src/com/platform/entities/DataInfoEntity.java index ec453d8d..062db3ce 100644 --- a/src/com/platform/entities/DataInfoEntity.java +++ b/src/com/platform/entities/DataInfoEntity.java @@ -1,219 +1,269 @@ -package com.platform.entities; - -/** - * 数据信息实体类 - * - * @author wuming - * - */ -public class DataInfoEntity { - private int id; - private String regionalismCode; // 行政区划编码 - private String cityName; // 市 - private String districtName; // 区县 - private int systemCode; // 系统编码 - private String systemName; // 系统名称 - private String dataType; // 数据类型:财政\社保\... - private int dataVersion; // 数据版本 - private String submittedBatch; // 上报批次 - private String dataPath; // 数据路径 - private String collectingTime; // 采集时间 - private String collectorContacts; // 采集人的联系 - private String charset; // 数据的字符编码 - private String collectorName; // 采集人姓名 - private String year; // 数据年度 - /** 数据年度起始 */ - private String startYear; - /** 数据年度结束 */ - private String endYear; - - public DataInfoEntity() { - } - - public DataInfoEntity(int id, String regionalismCode, String cityName, - String districtName, int systemCode, String systemName, - String dataType, int dataVersion, String submittedBatch, - String dataPath, String collectingTime, String collectorContacts, - String charset, String collectorName, String year) { - super(); - this.id = id; - this.regionalismCode = regionalismCode; - this.cityName = cityName; - this.districtName = districtName; - this.systemCode = systemCode; - this.systemName = systemName; - this.dataType = dataType; - this.dataVersion = dataVersion; - this.submittedBatch = submittedBatch; - this.dataPath = dataPath; - this.collectingTime = collectingTime; - this.collectorContacts = collectorContacts; - this.charset = charset; - this.collectorName = collectorName; - this.year = year; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public String getRegionalismCode() { - return regionalismCode; - } - - public void setRegionalismCode(String regionalismCode) { - this.regionalismCode = regionalismCode; - } - - public String getCityName() { - return cityName; - } - - public void setCityName(String cityName) { - this.cityName = cityName; - } - - public String getDistrictName() { - return districtName; - } - - public void setDistrictName(String districtName) { - this.districtName = districtName; - } - - public int getSystemCode() { - return systemCode; - } - - public void setSystemCode(int systemCode) { - this.systemCode = systemCode; - } - - public String getSystemName() { - return systemName; - } - - public void setSystemName(String systemName) { - this.systemName = systemName; - } - - public String getDataType() { - return dataType; - } - - public void setDataType(String dataType) { - this.dataType = dataType; - } - - public int getDataVersion() { - return dataVersion; - } - - public void setDataVersion(int dataVersion) { - this.dataVersion = dataVersion; - } - - public String getSubmittedBatch() { - return submittedBatch; - } - - public void setSubmittedBatch(String submittedBatch) { - this.submittedBatch = submittedBatch; - } - - public String getDataPath() { - return dataPath; - } - - public void setDataPath(String dataPath) { - this.dataPath = dataPath; - } - - public String getCollectingTime() { - return collectingTime; - } - - public void setCollectingTime(String collectingTime) { - this.collectingTime = collectingTime; - } - - public String getCollectorContacts() { - return collectorContacts; - } - - public void setCollectorContacts(String collectorContacts) { - this.collectorContacts = collectorContacts; - } - - public String getCharset() { - return charset; - } - - public void setCharset(String charset) { - this.charset = charset; - } - - public String getCollectorName() { - return collectorName; - } - - public void setCollectorName(String collectorName) { - this.collectorName = collectorName; - } - - public String getYear() { - return year; - } - - public void setYear(String year) { - this.year = year; - } - - /** - * @return the startYear - */ - public String getStartYear() { - return startYear; - } - - /** - * @param startYear the startYear to set - */ - public void setStartYear(String startYear) { - this.startYear = startYear; - } - - /** - * @return the endYear - */ - public String getEndYear() { - return endYear; - } - - /** - * @param endYear the endYear to set - */ - public void setEndYear(String endYear) { - this.endYear = endYear; - } - - @Override - public String toString() { - return "id=" + this.id + " ,regionalismCode=" + this.regionalismCode - + " ,cityName=" + this.cityName + " ,districtName=" - + this.districtName + " ,systemCode=" + this.systemCode - + " ,systemName" + this.systemName + " ,dataType=" - + this.dataType + " ,dataVersion=" + this.dataVersion - + " ,submittedBatch=" + this.submittedBatch + " ,dataPath=" - + this.dataPath + " ,collectingTime=" + this.collectingTime - + " ,collectorContacts=" + this.collectorContacts - + " ,charset=" + this.charset + " ,collectorName=" - + this.collectorName + " ,year=" + this.year + " startYear=" - +this.startYear +" endYear="+this.endYear; - } - -} +package com.platform.entities; + +/** + * 数据信息实体类 + * + * @author wuming + * + */ +public class DataInfoEntity { + private int id; + private String regionalismCode; // 行政区划编码 + private String cityName; // 市 + private String districtName; // 区县 + private int systemCode; // 系统编码 + private String systemName; // 系统名称 + private String dataType; // 数据类型:财政\社保\... + private int dataVersion; // 数据版本 + private String submittedBatch; // 上报批次 + private String dataPath; // 数据路径 + private String collectingTime; // 采集时间 + private String collectorContacts; // 采集人的联系 + private String charset; // 数据的字符编码 + private String collectorName; // 采集人姓名 + private String year; // 数据年度 + + /** 是否抽取 */ + private int extractStatus; + /** 数据年度起始 */ + private String startYear; + /** 数据年度结束 */ + private String endYear; + + /** volume的ip */ + private String volumeIp; + /** volume的path */ + private String volumePath; + + public DataInfoEntity() { + } + + public DataInfoEntity(int id, String regionalismCode, String cityName, + String districtName, int systemCode, String systemName, + String dataType, int dataVersion, String submittedBatch, + String dataPath, String collectingTime, String collectorContacts, + String charset, String collectorName, String year) { + super(); + this.id = id; + this.regionalismCode = regionalismCode; + this.cityName = cityName; + this.districtName = districtName; + this.systemCode = systemCode; + this.systemName = systemName; + this.dataType = dataType; + this.dataVersion = dataVersion; + this.submittedBatch = submittedBatch; + this.dataPath = dataPath; + this.collectingTime = collectingTime; + this.collectorContacts = collectorContacts; + this.charset = charset; + this.collectorName = collectorName; + this.year = year; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getRegionalismCode() { + return regionalismCode; + } + + public void setRegionalismCode(String regionalismCode) { + this.regionalismCode = regionalismCode; + } + + public String getCityName() { + return cityName; + } + + public void setCityName(String cityName) { + this.cityName = cityName; + } + + public String getDistrictName() { + return districtName; + } + + public void setDistrictName(String districtName) { + this.districtName = districtName; + } + + public int getSystemCode() { + return systemCode; + } + + public void setSystemCode(int systemCode) { + this.systemCode = systemCode; + } + + public String getSystemName() { + return systemName; + } + + public void setSystemName(String systemName) { + this.systemName = systemName; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public int getDataVersion() { + return dataVersion; + } + + public void setDataVersion(int dataVersion) { + this.dataVersion = dataVersion; + } + + public String getSubmittedBatch() { + return submittedBatch; + } + + public void setSubmittedBatch(String submittedBatch) { + this.submittedBatch = submittedBatch; + } + + public String getDataPath() { + return dataPath; + } + + public void setDataPath(String dataPath) { + this.dataPath = dataPath; + } + + public String getCollectingTime() { + return collectingTime; + } + + public void setCollectingTime(String collectingTime) { + this.collectingTime = collectingTime; + } + + public String getCollectorContacts() { + return collectorContacts; + } + + public void setCollectorContacts(String collectorContacts) { + this.collectorContacts = collectorContacts; + } + + public String getCharset() { + return charset; + } + + public void setCharset(String charset) { + this.charset = charset; + } + + public String getCollectorName() { + return collectorName; + } + + public void setCollectorName(String collectorName) { + this.collectorName = collectorName; + } + + public String getYear() { + return year; + } + + public void setYear(String year) { + this.year = year; + } + + /** + * @return the startYear + */ + public String getStartYear() { + return startYear; + } + + /** + * @param startYear the startYear to set + */ + public void setStartYear(String startYear) { + this.startYear = startYear; + } + + /** + * @return the endYear + */ + public String getEndYear() { + return endYear; + } + + /** + * @param endYear the endYear to set + */ + public void setEndYear(String endYear) { + this.endYear = endYear; + } + + /** + * @return the extractStatus + */ + public int getExtractStatus() { + return extractStatus; + } + + /** + * @param extractStatus the extractStatus to set + */ + public void setExtractStatus(int extractStatus) { + this.extractStatus = extractStatus; + } + + /** + * @return the volumeIp + */ + public String getVolumeIp() { + return volumeIp; + } + + /** + * @param volumeIp the volumeIp to set + */ + public void setVolumeIp(String volumeIp) { + this.volumeIp = volumeIp; + } + + /** + * @return the volumePath + */ + public String getVolumePath() { + return volumePath; + } + + /** + * @param volumePath the volumePath to set + */ + public void setVolumePath(String volumePath) { + this.volumePath = volumePath; + } + + @Override + public String toString() { + return "id=" + this.id + " ,regionalismCode=" + this.regionalismCode + + " ,cityName=" + this.cityName + " ,districtName=" + + this.districtName + " ,systemCode=" + this.systemCode + + " ,systemName" + this.systemName + " ,dataType=" + + this.dataType + " ,dataVersion=" + this.dataVersion + + " ,submittedBatch=" + this.submittedBatch + " ,dataPath=" + + this.dataPath + " ,collectingTime=" + this.collectingTime + + " ,collectorContacts=" + this.collectorContacts + + " ,charset=" + this.charset + " ,collectorName=" + + this.collectorName + " ,year=" + this.year + " startYear=" + +this.startYear +" endYear="+this.endYear; + } + +} diff --git a/src/com/platform/entities/DataInfoEntityMoveTmp.java b/src/com/platform/entities/DataInfoEntityMoveTmp.java index 1b1b6e10..bf64fdd9 100644 --- a/src/com/platform/entities/DataInfoEntityMoveTmp.java +++ b/src/com/platform/entities/DataInfoEntityMoveTmp.java @@ -1,89 +1,124 @@ -package com.platform.entities; - -public class DataInfoEntityMoveTmp extends DataInfoEntity { - - private String dstPath; - - private String completeStatus; - - private int rate; - - private String lastTime; // 采集时间 - - private int fkid; - - public DataInfoEntityMoveTmp() { - // TODO Auto-generated constructor stub - } - - /** - * @return the dstPath - */ - public String getDstPath() { - return dstPath; - } - - /** - * @param dstPath the dstPath to set - */ - public void setDstPath(String dstPath) { - this.dstPath = dstPath; - } - - /** - * @return the completeStatus - */ - public String getCompleteStatus() { - return completeStatus; - } - - /** - * @param completeStatus the completeStatus to set - */ - public void setCompleteStatus(String completeStatus) { - this.completeStatus = completeStatus; - } - - /** - * @return the rate - */ - public int getRate() { - return rate; - } - - /** - * @param rate the rate to set - */ - public void setRate(int rate) { - this.rate = rate; - } - - /** - * @return the lastTime - */ - public String getLastTime() { - return lastTime; - } - - /** - * @param lastTime the lastTime to set - */ - public void setLastTime(String lastTime) { - this.lastTime = lastTime; - } - - /** - * @return the fkid - */ - public int getFkid() { - return fkid; - } - - /** - * @param fkid the fkid to set - */ - public void setFkid(int fkid) { - this.fkid = fkid; - } - -} +package com.platform.entities; + +public class DataInfoEntityMoveTmp extends DataInfoEntity { + + private String dstPath; + + private String completeStatus; + + private int rate; + + /** + * + */ + private String lastTime; + + private String dstVolumeIp; + + private String dstVolumePath; + + private int fkid; + + public DataInfoEntityMoveTmp() { + // TODO Auto-generated constructor stub + } + + /** + * @return the dstPath + */ + public String getDstPath() { + return dstPath; + } + + /** + * @param dstPath the dstPath to set + */ + public void setDstPath(String dstPath) { + this.dstPath = dstPath; + } + + /** + * @return the completeStatus + */ + public String getCompleteStatus() { + return completeStatus; + } + + /** + * @param completeStatus the completeStatus to set + */ + public void setCompleteStatus(String completeStatus) { + this.completeStatus = completeStatus; + } + + /** + * @return the rate + */ + public int getRate() { + return rate; + } + + /** + * @param rate the rate to set + */ + public void setRate(int rate) { + this.rate = rate; + } + + /** + * @return the lastTime + */ + public String getLastTime() { + return lastTime; + } + + /** + * @param lastTime the lastTime to set + */ + public void setLastTime(String lastTime) { + this.lastTime = lastTime; + } + + /** + * @return the fkid + */ + public int getFkid() { + return fkid; + } + + /** + * @param fkid the fkid to set + */ + public void setFkid(int fkid) { + this.fkid = fkid; + } + + /** + * @return the dstVolumeIp + */ + public String getDstVolumeIp() { + return dstVolumeIp; + } + + /** + * @param dstVolumeIp the dstVolumeIp to set + */ + public void setDstVolumeIp(String dstVolumeIp) { + this.dstVolumeIp = dstVolumeIp; + } + + /** + * @return the dstVolumePath + */ + public String getDstVolumePath() { + return dstVolumePath; + } + + /** + * @param dstVolumePath the dstVolumePath to set + */ + public void setDstVolumePath(String dstVolumePath) { + this.dstVolumePath = dstVolumePath; + } + +} diff --git a/src/com/platform/entities/EncodedInfoEntity.java b/src/com/platform/entities/EncodedInfoEntity.java index 3f2f425e..728850ff 100644 --- a/src/com/platform/entities/EncodedInfoEntity.java +++ b/src/com/platform/entities/EncodedInfoEntity.java @@ -1,41 +1,41 @@ -package com.platform.entities; - -/** - * - * 编码信息实体 - * 行政区划/系统信息 - * @author wuming - * - */ -public class EncodedInfoEntity { - private String name; //名称 - private String code; //编码 - - public EncodedInfoEntity() {} - - public EncodedInfoEntity(String name, String code) { - this.name = name; - this.code = code; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getCode() { - return code; - } - - public void setCode(String code) { - this.code = code; - } - - @Override - public String toString(){ - return "code=" + this.code + ", name=" + this.name; - } -} +package com.platform.entities; + +/** + * + * 编码信息实体 + * 行政区划/系统信息 + * @author wuming + * + */ +public class EncodedInfoEntity { + private String name; //名称 + private String code; //编码 + + public EncodedInfoEntity() {} + + public EncodedInfoEntity(String name, String code) { + this.name = name; + this.code = code; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + @Override + public String toString(){ + return "code=" + this.code + ", name=" + this.name; + } +} diff --git a/src/com/platform/entities/FolderNode.java b/src/com/platform/entities/FolderNode.java index 5a9a56b7..e9bc91da 100644 --- a/src/com/platform/entities/FolderNode.java +++ b/src/com/platform/entities/FolderNode.java @@ -1,65 +1,65 @@ -package com.platform.entities; - -import java.util.ArrayList; -import java.util.List; - -public class FolderNode { - private String name; - private int isFolder; // 1 is file and other integer is folder show children number - private String path; - private List childNodes = new ArrayList(); - - - public FolderNode() { - // TODO Auto-generated constructor stub - } - - - public FolderNode(String name) { - this.name = name; - } - - public FolderNode(String name, int isFolder) { - this.name = name; - this.isFolder = isFolder; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - /** - * @return the isFolder - */ - public int getIsFolder() { - return isFolder; - } - - /** - * @param isFolder the isFolder to set - */ - public void setIsFolder(int isFolder) { - this.isFolder = isFolder; - } - - public String getPath() { - return path; - } - - public void setPath(String path) { - this.path = path; - } - - public List getChildNodes() { - return childNodes; - } - - public void setChildNodes(List childNodes) { - this.childNodes = childNodes; - } - -} +package com.platform.entities; + +import java.util.ArrayList; +import java.util.List; + +public class FolderNode { + private String name; + private int isFolder; // 1 is file and other integer is folder show children number + private String path; + private List childNodes = new ArrayList(); + + + public FolderNode() { + // TODO Auto-generated constructor stub + } + + + public FolderNode(String name) { + this.name = name; + } + + public FolderNode(String name, int isFolder) { + this.name = name; + this.isFolder = isFolder; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * @return the isFolder + */ + public int getIsFolder() { + return isFolder; + } + + /** + * @param isFolder the isFolder to set + */ + public void setIsFolder(int isFolder) { + this.isFolder = isFolder; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public List getChildNodes() { + return childNodes; + } + + public void setChildNodes(List childNodes) { + this.childNodes = childNodes; + } + +} diff --git a/src/com/platform/entities/GatherOracleInfo.java b/src/com/platform/entities/GatherOracleInfo.java index 4ceca3b4..b06fee63 100644 --- a/src/com/platform/entities/GatherOracleInfo.java +++ b/src/com/platform/entities/GatherOracleInfo.java @@ -1,82 +1,82 @@ -package com.platform.entities; - -import com.platform.entities.OracleConnectorParams; - -public class GatherOracleInfo extends OracleConnectorParams { - - private String tableName; - - private String suffix; - - private int id; - - private String remove; - - /** - * 0:未知状态, 1:连接成功 ,2:在使用 ,3 :失败 - */ - private int status; - - public GatherOracleInfo() { - super(); - } - - public GatherOracleInfo(String port, String ip, String name, String user, - String password, String database) { - super(port, ip, name, user, password, database); - // TODO Auto-generated constructor stub - } - - public GatherOracleInfo(String port, String ip, String name, String user, - String password, String database, int _id, String tableName, String suffix, int status) { - super(port, ip, name, user, password, database); - this.tableName = tableName; - this.suffix = suffix; - this.id=_id; - this.status = status; - } - - - - - public String getTableName() { - return tableName; - } - - public void setTableName(String tableName) { - this.tableName = tableName; - } - - public String getSuffix() { - return suffix; - } - - public void setSuffix(String suffix) { - this.suffix = suffix; - } - - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; - } - - public int getStatus() { - return status; - } - - public void setStatus(int status) { - this.status = status; - } - - public String getRemove() { - return remove; - } - - public void setRemove(String remove) { - this.remove = remove; - } - -} +package com.platform.entities; + +import com.platform.entities.OracleConnectorParams; + +public class GatherOracleInfo extends OracleConnectorParams { + + private String tableName; + + private String suffix; + + private int id; + + private String remove; + + /** + * 0:未知状态, 1:连接成功 ,2:在使用 ,3 :失败 + */ + private int status; + + public GatherOracleInfo() { + super(); + } + + public GatherOracleInfo(String port, String ip, String name, String user, + String password, String database) { + super(port, ip, name, user, password, database); + // TODO Auto-generated constructor stub + } + + public GatherOracleInfo(String port, String ip, String name, String user, + String password, String database, int _id, String tableName, String suffix, int status) { + super(port, ip, name, user, password, database); + this.tableName = tableName; + this.suffix = suffix; + this.id=_id; + this.status = status; + } + + + + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getSuffix() { + return suffix; + } + + public void setSuffix(String suffix) { + this.suffix = suffix; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public String getRemove() { + return remove; + } + + public void setRemove(String remove) { + this.remove = remove; + } + +} diff --git a/src/com/platform/entities/GfsFolderEntity.java b/src/com/platform/entities/GfsFolderEntity.java index 13429ddf..ed87f85b 100644 --- a/src/com/platform/entities/GfsFolderEntity.java +++ b/src/com/platform/entities/GfsFolderEntity.java @@ -1,77 +1,77 @@ - -/** - * 文件名 : GfsPathModel.java - * 版权 : <版权/公司名> - * 描述 : <描述> - * @author chen - * 版本 : <版本> - * 修改时间: 2016年9月8日 - * 修改内容: <修改内容> - */ -package com.platform.entities; - -import java.util.List; - -/** - * <一句话功能简述> - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ - -public class GfsFolderEntity { - - /** 当前路径 */ - private String path; - - /** 当前路径 */ - private String name; - - /** 子目录 */ - private List children; - - /** - * @return the path - */ - public String getPath() { - return path; - } - - /** - * @param path the path to set - */ - public void setPath(String path) { - this.path = path; - } - - /** - * @return the name - */ - public String getName() { - return name; - } - - /** - * @param name the name to set - */ - public void setName(String name) { - this.name = name; - } - - /** - * @return the children - */ - public List getChildren() { - return children; - } - - /** - * @param children the children to set - */ - public void setChildren(List children) { - this.children = children; - } - -} + +/** + * 文件名 : GfsPathModel.java + * 版权 : <版权/公司名> + * 描述 : <描述> + * @author chen + * 版本 : <版本> + * 修改时间: 2016年9月8日 + * 修改内容: <修改内容> + */ +package com.platform.entities; + +import java.util.List; + +/** + * <一句话功能简述> + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ + +public class GfsFolderEntity { + + /** 当前路径 */ + private String path; + + /** 当前路径 */ + private String name; + + /** 子目录 */ + private List children; + + /** + * @return the path + */ + public String getPath() { + return path; + } + + /** + * @param path the path to set + */ + public void setPath(String path) { + this.path = path; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the children + */ + public List getChildren() { + return children; + } + + /** + * @param children the children to set + */ + public void setChildren(List children) { + this.children = children; + } + +} diff --git a/src/com/platform/entities/OracleConnectorParams.java b/src/com/platform/entities/OracleConnectorParams.java index cbb1d3a6..75c90a5e 100644 --- a/src/com/platform/entities/OracleConnectorParams.java +++ b/src/com/platform/entities/OracleConnectorParams.java @@ -1,93 +1,93 @@ -package com.platform.entities; - -import java.util.Properties; - -import com.platform.utils.ConfigPropertyReader; -import com.platform.utils.Configs; - -public class OracleConnectorParams { - private String port; - private String ip; - private String name; - private String user; - private String password; - private String databaseName; - - public OracleConnectorParams() { - // TODO Auto-generated constructor stub - } - - public OracleConnectorParams(String port, String ip, String name) { - maybeInit(); - this.port = port; - this.ip = ip; - this.name = name; - } - - public OracleConnectorParams(String port, String ip, String name, - String user, String password, String database) { - this.port = port; - this.ip = ip; - this.name = name; - this.user = user; - this.password = password; - this.databaseName = database; - } - - private void maybeInit() { - Properties properties = ConfigPropertyReader.Builder( - Configs.CONFIG_LOCALTION).getProperties(); - this.user = properties.getProperty("collect-user"); - this.password = properties.getProperty("collect-password"); - this.databaseName = properties.getProperty("collect-database"); - } - - public String getPort() { - return port; - } - - public void setPort(String port) { - this.port = port; - } - - public String getIp() { - return ip; - } - - public void setIp(String ip) { - this.ip = ip; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } - - public String getPassword() { - return password; - } - - public void setPassword(String password) { - this.password = password; - } - - public String getDatabaseName() { - return databaseName; - } - - public void setDatabaseName(String databaseName) { - this.databaseName = databaseName; - } - -} +package com.platform.entities; + +import java.util.Properties; + +import com.platform.utils.ConfigPropertyReader; +import com.platform.utils.Configs; + +public class OracleConnectorParams { + private String port; + private String ip; + private String name; + private String user; + private String password; + private String databaseName; + + public OracleConnectorParams() { + // TODO Auto-generated constructor stub + } + + public OracleConnectorParams(String port, String ip, String name) { + maybeInit(); + this.port = port; + this.ip = ip; + this.name = name; + } + + public OracleConnectorParams(String port, String ip, String name, + String user, String password, String database) { + this.port = port; + this.ip = ip; + this.name = name; + this.user = user; + this.password = password; + this.databaseName = database; + } + + private void maybeInit() { + Properties properties = ConfigPropertyReader.Builder( + Configs.CONFIG_LOCALTION).getProperties(); + this.user = properties.getProperty("collect-user"); + this.password = properties.getProperty("collect-password"); + this.databaseName = properties.getProperty("collect-database"); + } + + public String getPort() { + return port; + } + + public void setPort(String port) { + this.port = port; + } + + public String getIp() { + return ip; + } + + public void setIp(String ip) { + this.ip = ip; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUser() { + return user; + } + + public void setUser(String user) { + this.user = user; + } + + public String getPassword() { + return password; + } + + public void setPassword(String password) { + this.password = password; + } + + public String getDatabaseName() { + return databaseName; + } + + public void setDatabaseName(String databaseName) { + this.databaseName = databaseName; + } + +} diff --git a/src/com/platform/entities/PagerOptions.java b/src/com/platform/entities/PagerOptions.java index f347488f..2a25d555 100644 --- a/src/com/platform/entities/PagerOptions.java +++ b/src/com/platform/entities/PagerOptions.java @@ -1,124 +1,124 @@ -package com.platform.entities; - -public class PagerOptions { - private Integer currentPageNum; //当前页码 - - private String dataType; //数据类型 - - private String submittedBatch; //数据批次 - - private String cityName; //城市名称 - - private String districtName; //区县名 - - private Integer dataVersion; //数据版本 - - private String systemName; //系统名称 - - private String dataYear; // 数据年度 - - private Integer limit; //一次查询返回记录条数 - - private Integer offset; // 查询偏移量:起始id - - private Integer totalLimit; //当前页前面已有多少条数据 - - private Integer priorTableSize; //前一次操作一页显示的数据条数 - - public Integer getCurrentPageNum() { - return currentPageNum; - } - - public void setCurrentPageNum(Integer currentPageNum) { - this.currentPageNum = currentPageNum; - } - - public String getDataType() { - return dataType; - } - - public void setDataType(String dataType) { - this.dataType = dataType; - } - - public String getSubmittedBatch() { - return submittedBatch; - } - - public void setSubmittedBatch(String submittedBatch) { - this.submittedBatch = submittedBatch; - } - - public String getCityName() { - return cityName; - } - - public void setCityName(String cityName) { - this.cityName = cityName; - } - - public String getDistrictName() { - return districtName; - } - - public void setDistrictName(String districtName) { - this.districtName = districtName; - } - - public Integer getDataVersion() { - return dataVersion; - } - - public void setDataVersion(Integer dataVersion) { - this.dataVersion = dataVersion; - } - - public String getSystemName() { - return systemName; - } - - public void setSystemName(String systemName) { - this.systemName = systemName; - } - - public String getDataYear() { - return dataYear; - } - - public void setDataYear(String dataYear) { - this.dataYear = dataYear; - } - - public Integer getLimit() { - return limit; - } - - public void setLimit(Integer limit) { - this.limit = limit; - } - - public Integer getOffset() { - return offset; - } - - public void setOffset(Integer offset) { - this.offset = offset; - } - - public Integer getTotalLimit() { - return totalLimit; - } - - public void setTotalLimit(Integer totalLimit) { - this.totalLimit = totalLimit; - } - - public Integer getPriorTableSize() { - return priorTableSize; - } - - public void setPriorTableSize(Integer priorTableSize) { - this.priorTableSize = priorTableSize; - } - -} +package com.platform.entities; + +public class PagerOptions { + private Integer currentPageNum; //当前页码 + + private String dataType; //数据类型 + + private String submittedBatch; //数据批次 + + private String cityName; //城市名称 + + private String districtName; //区县名 + + private Integer dataVersion; //数据版本 + + private String systemName; //系统名称 + + private String dataYear; // 数据年度 + + private Integer limit; //一次查询返回记录条数 + + private Integer offset; // 查询偏移量:起始id + + private Integer totalLimit; //当前页前面已有多少条数据 + + private Integer priorTableSize; //前一次操作一页显示的数据条数 + + public Integer getCurrentPageNum() { + return currentPageNum; + } + + public void setCurrentPageNum(Integer currentPageNum) { + this.currentPageNum = currentPageNum; + } + + public String getDataType() { + return dataType; + } + + public void setDataType(String dataType) { + this.dataType = dataType; + } + + public String getSubmittedBatch() { + return submittedBatch; + } + + public void setSubmittedBatch(String submittedBatch) { + this.submittedBatch = submittedBatch; + } + + public String getCityName() { + return cityName; + } + + public void setCityName(String cityName) { + this.cityName = cityName; + } + + public String getDistrictName() { + return districtName; + } + + public void setDistrictName(String districtName) { + this.districtName = districtName; + } + + public Integer getDataVersion() { + return dataVersion; + } + + public void setDataVersion(Integer dataVersion) { + this.dataVersion = dataVersion; + } + + public String getSystemName() { + return systemName; + } + + public void setSystemName(String systemName) { + this.systemName = systemName; + } + + public String getDataYear() { + return dataYear; + } + + public void setDataYear(String dataYear) { + this.dataYear = dataYear; + } + + public Integer getLimit() { + return limit; + } + + public void setLimit(Integer limit) { + this.limit = limit; + } + + public Integer getOffset() { + return offset; + } + + public void setOffset(Integer offset) { + this.offset = offset; + } + + public Integer getTotalLimit() { + return totalLimit; + } + + public void setTotalLimit(Integer totalLimit) { + this.totalLimit = totalLimit; + } + + public Integer getPriorTableSize() { + return priorTableSize; + } + + public void setPriorTableSize(Integer priorTableSize) { + this.priorTableSize = priorTableSize; + } + +} diff --git a/src/com/platform/entities/RegionalismEntity.java b/src/com/platform/entities/RegionalismEntity.java index ba1b7f2b..ad494fca 100644 --- a/src/com/platform/entities/RegionalismEntity.java +++ b/src/com/platform/entities/RegionalismEntity.java @@ -1,53 +1,53 @@ -package com.platform.entities; - -public class RegionalismEntity { - - private String code; - - private String cityName; - - private String districtName; - - /** - * @return the code - */ - public String getCode() { - return code; - } - - /** - * @param code the code to set - */ - public void setCode(String code) { - this.code = code; - } - - /** - * @return the cityName - */ - public String getCityName() { - return cityName; - } - - /** - * @param cityName the cityName to set - */ - public void setCityName(String cityName) { - this.cityName = cityName; - } - - /** - * @return the districtName - */ - public String getDistrictName() { - return districtName; - } - - /** - * @param districtName the districtName to set - */ - public void setDistrictName(String districtName) { - this.districtName = districtName; - } - -} +package com.platform.entities; + +public class RegionalismEntity { + + private String code; + + private String cityName; + + private String districtName; + + /** + * @return the code + */ + public String getCode() { + return code; + } + + /** + * @param code the code to set + */ + public void setCode(String code) { + this.code = code; + } + + /** + * @return the cityName + */ + public String getCityName() { + return cityName; + } + + /** + * @param cityName the cityName to set + */ + public void setCityName(String cityName) { + this.cityName = cityName; + } + + /** + * @return the districtName + */ + public String getDistrictName() { + return districtName; + } + + /** + * @param districtName the districtName to set + */ + public void setDistrictName(String districtName) { + this.districtName = districtName; + } + +} diff --git a/src/com/platform/entities/SimpleConfigParamsBean.java b/src/com/platform/entities/SimpleConfigParamsBean.java index 520d5ee7..6453a5a7 100644 --- a/src/com/platform/entities/SimpleConfigParamsBean.java +++ b/src/com/platform/entities/SimpleConfigParamsBean.java @@ -1,44 +1,44 @@ -package com.platform.entities; - -public class SimpleConfigParamsBean { - private String masterUrl; - - private String oracleUserName; - - private String oraclePassword; - - private String oracleDBName; - - public String getMasterUrl() { - return masterUrl; - } - - public void setMasterUrl(String masterUrl) { - this.masterUrl = masterUrl; - } - - public String getOracleUserName() { - return oracleUserName; - } - - public void setOracleUserName(String oracleUserName) { - this.oracleUserName = oracleUserName; - } - - public String getOraclePassword() { - return oraclePassword; - } - - public void setOraclePassword(String oraclePassword) { - this.oraclePassword = oraclePassword; - } - - public String getOracleDBName() { - return oracleDBName; - } - - public void setOracleDBName(String oracleDBName) { - this.oracleDBName = oracleDBName; - } - -} +package com.platform.entities; + +public class SimpleConfigParamsBean { + private String masterUrl; + + private String oracleUserName; + + private String oraclePassword; + + private String oracleDBName; + + public String getMasterUrl() { + return masterUrl; + } + + public void setMasterUrl(String masterUrl) { + this.masterUrl = masterUrl; + } + + public String getOracleUserName() { + return oracleUserName; + } + + public void setOracleUserName(String oracleUserName) { + this.oracleUserName = oracleUserName; + } + + public String getOraclePassword() { + return oraclePassword; + } + + public void setOraclePassword(String oraclePassword) { + this.oraclePassword = oraclePassword; + } + + public String getOracleDBName() { + return oracleDBName; + } + + public void setOracleDBName(String oracleDBName) { + this.oracleDBName = oracleDBName; + } + +} diff --git a/src/com/platform/entities/SystemEntity.java b/src/com/platform/entities/SystemEntity.java index 6ac6cfb8..40eb0750 100644 --- a/src/com/platform/entities/SystemEntity.java +++ b/src/com/platform/entities/SystemEntity.java @@ -1,37 +1,37 @@ -package com.platform.entities; - -public class SystemEntity { - - private int code; - - private String systemName; - - /** - * @return the code - */ - public int getCode() { - return code; - } - - /** - * @param code the code to set - */ - public void setCode(int code) { - this.code = code; - } - - /** - * @return the systemName - */ - public String getSystemName() { - return systemName; - } - - /** - * @param systemName the systemName to set - */ - public void setSystemName(String systemName) { - this.systemName = systemName; - } - -} +package com.platform.entities; + +public class SystemEntity { + + private int code; + + private String systemName; + + /** + * @return the code + */ + public int getCode() { + return code; + } + + /** + * @param code the code to set + */ + public void setCode(int code) { + this.code = code; + } + + /** + * @return the systemName + */ + public String getSystemName() { + return systemName; + } + + /** + * @param systemName the systemName to set + */ + public void setSystemName(String systemName) { + this.systemName = systemName; + } + +} diff --git a/src/com/platform/entities/VolumeEntity.java b/src/com/platform/entities/VolumeEntity.java index f66670d4..dc609579 100644 --- a/src/com/platform/entities/VolumeEntity.java +++ b/src/com/platform/entities/VolumeEntity.java @@ -1,129 +1,129 @@ - -/** - * 文件名 : VolumeEntity.java - * 版权 : <版权/公司名> - * 描述 : <描述> - * @author chen - * 版本 : <版本> - * 修改时间: 2016年9月9日 - * 修改内容: <修改内容> - */ -package com.platform.entities; - -import java.util.ArrayList; -import java.util.List; - -/** - * <一句话功能简述> gfs的 volume 对象 - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月9日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ - -public class VolumeEntity { - - /** volume总大小 */ - private double allSize; - - /** volume已使用大小 */ - private double usedSize; - - /** volume名称 */ - private String name; - - /** 挂载点 */ - private String path; - - /** volume树形目录 */ - private List folder = new ArrayList(); - - /** volume的 块 */ - private List brick = new ArrayList(); - - /** - * @return the allSize - */ - public double getAllSize() { - return allSize; - } - - /** - * @param allSize the allSize to set - */ - public void setAllSize(double allSize) { - this.allSize = allSize; - } - - /** - * @return the usedSize - */ - public double getUsedSize() { - return usedSize; - } - - /** - * @param usedSize the usedSize to set - */ - public void setUsedSize(double usedSize) { - this.usedSize = usedSize; - } - - /** - * @return the name - */ - public String getName() { - return name; - } - - /** - * @param name the name to set - */ - public void setName(String name) { - this.name = name; - } - - /** - * @return the path - */ - public String getPath() { - return path; - } - - /** - * @param path the path to set - */ - public void setPath(String path) { - this.path = path; - } - - /** - * @return the folder - */ - public List getFolder() { - return folder; - } - - /** - * @param folder the folder to set - */ - public void setFolder(List folder) { - this.folder = folder; - } - - /** - * @return the brick - */ - public List getBrick() { - return brick; - } - - /** - * @param brick the brick to set - */ - public void setBrick(List brick) { - this.brick = brick; - } - -} + +/** + * 文件名 : VolumeEntity.java + * 版权 : <版权/公司名> + * 描述 : <描述> + * @author chen + * 版本 : <版本> + * 修改时间: 2016年9月9日 + * 修改内容: <修改内容> + */ +package com.platform.entities; + +import java.util.ArrayList; +import java.util.List; + +/** + * <一句话功能简述> gfs的 volume 对象 + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月9日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ + +public class VolumeEntity { + + /** volume总大小 */ + private double allSize; + + /** volume已使用大小 */ + private double usedSize; + + /** volume名称 */ + private String name; + + /** 挂载点 */ + private String path; + + /** volume树形目录 */ + private List folder = new ArrayList(); + + /** volume的 块 */ + private List brick = new ArrayList(); + + /** + * @return the allSize + */ + public double getAllSize() { + return allSize; + } + + /** + * @param allSize the allSize to set + */ + public void setAllSize(double allSize) { + this.allSize = allSize; + } + + /** + * @return the usedSize + */ + public double getUsedSize() { + return usedSize; + } + + /** + * @param usedSize the usedSize to set + */ + public void setUsedSize(double usedSize) { + this.usedSize = usedSize; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return the path + */ + public String getPath() { + return path; + } + + /** + * @param path the path to set + */ + public void setPath(String path) { + this.path = path; + } + + /** + * @return the folder + */ + public List getFolder() { + return folder; + } + + /** + * @param folder the folder to set + */ + public void setFolder(List folder) { + this.folder = folder; + } + + /** + * @return the brick + */ + public List getBrick() { + return brick; + } + + /** + * @param brick the brick to set + */ + public void setBrick(List brick) { + this.brick = brick; + } + +} diff --git a/src/com/platform/glusterfs/CheckoutMD5.java b/src/com/platform/glusterfs/CheckoutMD5.java index d0be3dad..810ec443 100644 --- a/src/com/platform/glusterfs/CheckoutMD5.java +++ b/src/com/platform/glusterfs/CheckoutMD5.java @@ -1,106 +1,106 @@ -package com.platform.glusterfs; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.aspectj.weaver.ast.And; - -import com.mysql.jdbc.log.Log; -import com.platform.utils.Constant; - -public class CheckoutMD5 { - public static Logger log = Logger.getLogger(CheckoutMD5.class); - String sourcePath; - String destPath; - String dataName; - // String cmd_crateSourceMD5File="find "+sourcePath+dataName+"/app/ -type f - // -print0 | xargs -0 md5sum | sort >"+deskPath+dataName+"_md5.txt"; - String cmd_getSourceMD5File; - // String cmd_crateDestMD5File="find "+destPath+dataName+"/app/ -type f - // -print0 | xargs -0 md5sum | sort >"+deskPath+dataName+"_md5.txt"; - String cmd_getDestMD5File; - Map source_md5 = new HashMap(); - Map dest_md5 = new HashMap(); - - public CheckoutMD5() { - // TODO Auto-generated constructor stub - } - - public CheckoutMD5(String sourcePath, String destPath, String dataName) { - // TODO Auto-generated constructor stub - this.sourcePath = sourcePath; - this.destPath = destPath; - this.dataName = dataName; - cmd_getSourceMD5File = "find " + sourcePath + dataName + "/app/ -type f -print0 | xargs -0 md5sum | sort "; - cmd_getDestMD5File = "find " + destPath + dataName + "/app/ -type f -print0 | xargs -0 md5sum | sort "; - } - - /** - * 文件夹校验 校验sourcePath和destPath是否完全相同,如果相同,返回1; - * 如果不相同,返回0,如果获取文件MD5出错,返回-1;如何源文件不存在返回-2;目标文件不存在,返回-3; - * - * @param sourcePath - * @param destPath - * @return - * @see [类、类#方法、类#成员] - */ - public int checkoutMD5Folder(String sourcePath, String destPath) { - log.info("start checkout md5 "+sourcePath+" and "+ destPath); - List wrong_files = new ArrayList(); - String source_cmd = "find " + sourcePath + " -type f -print0 | xargs -0 md5sum"; - String dest_cmd = "find " + destPath + " -type f -print0 | xargs -0 md5sum"; - List sourceReStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(source_cmd); - if (sourceReStrings == null || sourceReStrings.size() == 0) { - log.error("get " + sourcePath + " MD5 error!"); - return -1; - } - if(sourceReStrings.get(0).contains(Constant.noSuchFile)){ - log.error(sourcePath+" is not exist!"); - return -2; - } - List destReStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(dest_cmd); - if (destReStrings == null || destReStrings.size() == 0) { - log.error("get " + destReStrings + " MD5 error!"); - return -1; - } - if(destReStrings.get(0).contains(Constant.noSuchFile)){ - log.error(destPath+" is not exist!"); - return -3; - } - Map source_md5 = new HashMap(); - Map dest_md5 = new HashMap(); - for (String line : sourceReStrings) { - String[] lines = line.split(" "); - String key = lines[1].replace(sourcePath, "").trim(); - String value = lines[0].trim(); - source_md5.put(key, value); - } - for (String line : destReStrings) { - String[] lines = line.split(" "); - String key = lines[1].replace(destPath, "").trim(); - String value = lines[0].trim(); - dest_md5.put(key, value); - } - for (Map.Entry mapEntry : source_md5.entrySet()) { - if (!(dest_md5.containsKey(mapEntry.getKey()) - && dest_md5.get(mapEntry.getKey()).equals(mapEntry.getValue()))) { - - log.info(sourcePath + " and " + destPath + " is not same!"); - return 0; - // System.out.println(mapEntry.getKey()); - } - - } - - log.info(sourcePath + " and " + destPath + " is same!"); - return 1; - } - - public static void main(String[] args) { - CheckoutMD5 checkoutMD5 = new CheckoutMD5(); - System.out.println(checkoutMD5.checkoutMD5Folder("/home/v1_copy","/home/ubuntu")); - } -} +package com.platform.glusterfs; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.aspectj.weaver.ast.And; + +import com.mysql.jdbc.log.Log; +import com.platform.utils.Constant; + +public class CheckoutMD5 { + public static Logger log = Logger.getLogger(CheckoutMD5.class); + String sourcePath; + String destPath; + String dataName; + // String cmd_crateSourceMD5File="find "+sourcePath+dataName+"/app/ -type f + // -print0 | xargs -0 md5sum | sort >"+deskPath+dataName+"_md5.txt"; + String cmd_getSourceMD5File; + // String cmd_crateDestMD5File="find "+destPath+dataName+"/app/ -type f + // -print0 | xargs -0 md5sum | sort >"+deskPath+dataName+"_md5.txt"; + String cmd_getDestMD5File; + Map source_md5 = new HashMap(); + Map dest_md5 = new HashMap(); + + public CheckoutMD5() { + // TODO Auto-generated constructor stub + } + + public CheckoutMD5(String sourcePath, String destPath, String dataName) { + // TODO Auto-generated constructor stub + this.sourcePath = sourcePath; + this.destPath = destPath; + this.dataName = dataName; + cmd_getSourceMD5File = "find " + sourcePath + dataName + "/app/ -type f -print0 | xargs -0 md5sum | sort "; + cmd_getDestMD5File = "find " + destPath + dataName + "/app/ -type f -print0 | xargs -0 md5sum | sort "; + } + + /** + * 文件夹校验 校验sourcePath和destPath是否完全相同,如果相同,返回1; + * 如果不相同,返回0,如果获取文件MD5出错,返回-1;如何源文件不存在返回-2;目标文件不存在,返回-3; + * + * @param sourcePath + * @param destPath + * @return + * @see [类、类#方法、类#成员] + */ + public int checkoutMD5Folder(String sourcePath, String destPath) { + log.info("start checkout md5 "+sourcePath+" and "+ destPath); + List wrong_files = new ArrayList(); + String source_cmd = "find " + sourcePath + " -type f -print0 | xargs -0 md5sum"; + String dest_cmd = "find " + destPath + " -type f -print0 | xargs -0 md5sum"; + List sourceReStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(source_cmd); + if (sourceReStrings == null || sourceReStrings.size() == 0) { + log.error("get " + sourcePath + " MD5 error!"); + return -1; + } + if(sourceReStrings.get(0).contains(Constant.noSuchFile)){ + log.error(sourcePath+" is not exist!"); + return -2; + } + List destReStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(dest_cmd); + if (destReStrings == null || destReStrings.size() == 0) { + log.error("get " + destReStrings + " MD5 error!"); + return -1; + } + if(destReStrings.get(0).contains(Constant.noSuchFile)){ + log.error(destPath+" is not exist!"); + return -3; + } + Map source_md5 = new HashMap(); + Map dest_md5 = new HashMap(); + for (String line : sourceReStrings) { + String[] lines = line.split(" "); + String key = lines[1].replace(sourcePath, "").trim(); + String value = lines[0].trim(); + source_md5.put(key, value); + } + for (String line : destReStrings) { + String[] lines = line.split(" "); + String key = lines[1].replace(destPath, "").trim(); + String value = lines[0].trim(); + dest_md5.put(key, value); + } + for (Map.Entry mapEntry : source_md5.entrySet()) { + if (!(dest_md5.containsKey(mapEntry.getKey()) + && dest_md5.get(mapEntry.getKey()).equals(mapEntry.getValue()))) { + + log.info(sourcePath + " and " + destPath + " is not same!"); + return 0; + // System.out.println(mapEntry.getKey()); + } + + } + + log.info(sourcePath + " and " + destPath + " is same!"); + return 1; + } + + public static void main(String[] args) { + CheckoutMD5 checkoutMD5 = new CheckoutMD5(); + System.out.println(checkoutMD5.checkoutMD5Folder("/home/v1_copy","/home/ubuntu")); + } +} diff --git a/src/com/platform/glusterfs/ClusterInfo.java b/src/com/platform/glusterfs/ClusterInfo.java index add5e191..793b86ca 100644 --- a/src/com/platform/glusterfs/ClusterInfo.java +++ b/src/com/platform/glusterfs/ClusterInfo.java @@ -1,124 +1,124 @@ - - -package com.platform.glusterfs; - - - -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; - -import com.platform.utils.Constant; - -/** - * 获取集群信息 - * @author liliy - * @version [版本号,2016年9月12日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -public class ClusterInfo { - public static Logger log = Logger.getLogger(ClusterInfo.class); - - /** - * 获取集群节点信息 - * 如果获取不正常,则返回null,如果获取正常,返回map表示节点ip和ip的状态 - * 如果ip在集群中且联通状态为PeerinCluster(Connected) - * 如果ip在集群中且但不连通为PeerinCluster(Disconnected) - * @return - * @see [类、类#方法、类#成员] - */ - public Map showClusterInfo() { - log.info("get cluster info"); - Map peerIps = new HashMap(); - - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(Constant.glusterPeerStatus); - if (reStrings == null) { - log.error("1101 command get result is null"); - return null; - } - if (reStrings.size() == 0) { - log.error("1102 command get result is nothing"); - return null; - } - - if (!(reStrings.get(0).split(":")[0].contains("Number of Peers"))) { - - log.error("1103 get result string wrong"); - return null; - } - - - // System.out.print(reStrings.get(0)); - - int flag = 0; - String ipString = ""; - String state = ""; - for (Iterator it2 = reStrings.iterator(); it2.hasNext();) { - String line = (String) it2.next(); - line=line.replaceAll(" +", " "); - String keyValue[] = line.split(":"); - if (keyValue[0].equals("Hostname")) { - - if (keyValue.length < 2) { - log.error("1105 command get result is wrong"); - continue; - } - - ipString = keyValue[1].replaceAll(" ", ""); - flag = 1; - } else if (flag == 1 && keyValue[0].equals("State")) { - - if (keyValue.length < 2) { - log.error("1106 command get result is wrong"); - continue; - } - - state = keyValue[1].replaceAll(" ", ""); - flag = 0; - peerIps.put(ipString, state); - } - - } - return peerIps; - } - - /** - * 根据给定的ip获的ip的状态,即是否在集群中并联通 - * 如果ip不在集群中,返回null - * 如果ip在集群中且联通状态为PeerinCluster(Connected) - * 如果ip在集群中且但不连通为PeerinCluster(Disconnected) - * @param peerip - * @return - * @see [类、类#方法、类#成员] - */ - public String getPeerStatus(String peerip){ - Map peerIps=showClusterInfo(); - if(peerIps==null || peerIps.size()==0){ - return null; - } - - if(peerip.equals(Constant.hostIp)){ - return Constant.peerincluster_connected; - } - if(!peerIps.containsKey(peerip)){ - return Constant.peerNotinCluster; - } - return peerIps.get(peerip); - } - - - public static void main(String[] args) { -// PropertyConfigurator.configure("log4j.properties"); - System.out.println(new ClusterInfo().showClusterInfo()); - System.out.println(new ClusterInfo().getPeerStatus("192.168.0.116")); - } -} - - + + +package com.platform.glusterfs; + + + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; + +import com.platform.utils.Constant; + +/** + * 获取集群信息 + * @author liliy + * @version [版本号,2016年9月12日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +public class ClusterInfo { + public static Logger log = Logger.getLogger(ClusterInfo.class); + + /** + * 获取集群节点信息 + * 如果获取不正常,则返回null,如果获取正常,返回map表示节点ip和ip的状态 + * 如果ip在集群中且联通状态为PeerinCluster(Connected) + * 如果ip在集群中且但不连通为PeerinCluster(Disconnected) + * @return + * @see [类、类#方法、类#成员] + */ + public Map showClusterInfo() { + log.info("get cluster info"); + Map peerIps = new HashMap(); + + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(Constant.glusterPeerStatus); + if (reStrings == null) { + log.error("1101 command get result is null"); + return null; + } + if (reStrings.size() == 0) { + log.error("1102 command get result is nothing"); + return null; + } + + if (!(reStrings.get(0).split(":")[0].contains("Number of Peers"))) { + + log.error("1103 get result string wrong"); + return null; + } + + + // System.out.print(reStrings.get(0)); + + int flag = 0; + String ipString = ""; + String state = ""; + for (Iterator it2 = reStrings.iterator(); it2.hasNext();) { + String line = (String) it2.next(); + line=line.replaceAll(" +", " "); + String keyValue[] = line.split(":"); + if (keyValue[0].equals("Hostname")) { + + if (keyValue.length < 2) { + log.error("1105 command get result is wrong"); + continue; + } + + ipString = keyValue[1].replaceAll(" ", ""); + flag = 1; + } else if (flag == 1 && keyValue[0].equals("State")) { + + if (keyValue.length < 2) { + log.error("1106 command get result is wrong"); + continue; + } + + state = keyValue[1].replaceAll(" ", ""); + flag = 0; + peerIps.put(ipString, state); + } + + } + return peerIps; + } + + /** + * 根据给定的ip获的ip的状态,即是否在集群中并联通 + * 如果ip不在集群中,返回null + * 如果ip在集群中且联通状态为PeerinCluster(Connected) + * 如果ip在集群中且但不连通为PeerinCluster(Disconnected) + * @param peerip + * @return + * @see [类、类#方法、类#成员] + */ + public String getPeerStatus(String peerip){ + Map peerIps=showClusterInfo(); + if(peerIps==null || peerIps.size()==0){ + return null; + } + + if(peerip.equals(Constant.hostIp)){ + return Constant.peerincluster_connected; + } + if(!peerIps.containsKey(peerip)){ + return Constant.peerNotinCluster; + } + return peerIps.get(peerip); + } + + + public static void main(String[] args) { +// PropertyConfigurator.configure("log4j.properties"); + System.out.println(new ClusterInfo().showClusterInfo()); + System.out.println(new ClusterInfo().getPeerStatus("192.168.0.116")); + } +} + + diff --git a/src/com/platform/glusterfs/GetTreeData.java b/src/com/platform/glusterfs/GetTreeData.java index 81f3ba5b..4fce07bc 100644 --- a/src/com/platform/glusterfs/GetTreeData.java +++ b/src/com/platform/glusterfs/GetTreeData.java @@ -1,125 +1,125 @@ - - -package com.platform.glusterfs; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.junit.Test; -import com.platform.entities.FolderNode; -import com.platform.utils.Constant; -import com.platform.utils.FileOperateHelper; -import com.platform.utils.GanymedSSH; - -/** - * <一句话功能简述> 获得GFS某个目录下的子目录 - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -public class GetTreeData { - ShowData showData = new ShowData(); - - /** - * <一句话功能简述> 获得所以子目录 - * <功能详细描述> - * @param name - * @return - * @see [类、类#方法、类#成员] - */ - public FolderNode getDatas(String name) { - String names[]=name.split("/"); - String only_name=names[names.length-1]; - FolderNode fileNode = new FolderNode(only_name); - fileNode.setPath(name); - Map files = showData.showFolderData(name); - if(files==null || files.size()==0){ - return fileNode; - } - fileNode.setIsFolder(files.size()); - List list = new ArrayList(); - fileNode.setChildNodes(list); - for (Map.Entry entry : files.entrySet()) { - if(entry.getKey().equals("app")){ - continue; - } - int number = Integer.parseInt(entry.getValue()); - if (number == 1) { - fileNode.getChildNodes().add(new FolderNode(entry.getKey(), number)); - } - if (number > 1) { - FolderNode temp=getDatas(name+"/"+entry.getKey()); - fileNode.getChildNodes().add(temp); - } - } - - return fileNode; - } - - - /** - * <一句话功能简述> 获得所以子目录 - * <功能详细描述> - * @param name - * @return - * @see [类、类#方法、类#成员] - */ - public FolderNode getDatasWithShell(String name) { - if(name.endsWith("/")){ - name=name.substring(0, name.length()-1); - } -// String names[]=name.split("/"); -// String only_name=names[names.length-1]; - FolderNode fileNode = new FolderNode(name); - fileNode.setPath(name); - -// String shellComment= new FileOperateHelper().fileReaderAndendline(Constant.fileGetTreeData); - String shellComment= Constant.strGetTreeData; - String sh_path="/getTreedata.sh"; - String cmd="echo -e \""+shellComment+"\" > "+sh_path+" & chmod +x "+sh_path; - Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); -// Map files = showData.showFolderData(name); - List files=Constant.ganymedSSH.execCmdWaitAcquiescent(sh_path+" "+name); - if(files==null){ - return null; - } - if(files.size()==0){ - return fileNode; - } - for(String file:files){ - - } - - return fileNode; - } - @Test - public void test_getTreeData() { - - GetTreeData getTreeData=new GetTreeData(); -// FolderNode fileOrFolder=getTreeData.getDatas("/home/gfs_ftp_point"); - FolderNode fileOrFolder=getTreeData.getDatasWithShell("/home/gfs_ftp_point/"); - System.out.println(fileOrFolder); - } -} -/* -class FileOrFolder { - String name; - int isFolder; // 1 is file and other integer is folder show children number - List children; - - public FileOrFolder(String name) { - // TODO Auto-generated constructor stub - this.name = name; - } - - public FileOrFolder(String name, int isFolder) { - // TODO Auto-generated constructor stub - this.name = name; - this.isFolder = isFolder; - } -} - -*/ + + +package com.platform.glusterfs; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.junit.Test; +import com.platform.entities.FolderNode; +import com.platform.utils.Constant; +import com.platform.utils.FileOperateHelper; +import com.platform.utils.GanymedSSH; + +/** + * <一句话功能简述> 获得GFS某个目录下的子目录 + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +public class GetTreeData { + ShowData showData = new ShowData(); + + /** + * <一句话功能简述> 获得所以子目录 + * <功能详细描述> + * @param name + * @return + * @see [类、类#方法、类#成员] + */ + public FolderNode getDatas(String name) { + String names[]=name.split("/"); + String only_name=names[names.length-1]; + FolderNode fileNode = new FolderNode(only_name); + fileNode.setPath(name); + Map files = showData.showFolderData(name); + if(files==null || files.size()==0){ + return fileNode; + } + fileNode.setIsFolder(files.size()); + List list = new ArrayList(); + fileNode.setChildNodes(list); + for (Map.Entry entry : files.entrySet()) { + if(entry.getKey().equals("app")){ + continue; + } + int number = Integer.parseInt(entry.getValue()); + if (number == 1) { + fileNode.getChildNodes().add(new FolderNode(entry.getKey(), number)); + } + if (number > 1) { + FolderNode temp=getDatas(name+"/"+entry.getKey()); + fileNode.getChildNodes().add(temp); + } + } + + return fileNode; + } + + + /** + * <一句话功能简述> 获得所以子目录 + * <功能详细描述> + * @param name + * @return + * @see [类、类#方法、类#成员] + */ + public FolderNode getDatasWithShell(String name) { + if(name.endsWith("/")){ + name=name.substring(0, name.length()-1); + } +// String names[]=name.split("/"); +// String only_name=names[names.length-1]; + FolderNode fileNode = new FolderNode(name); + fileNode.setPath(name); + +// String shellComment= new FileOperateHelper().fileReaderAndendline(Constant.fileGetTreeData); + String shellComment= Constant.strGetTreeData; + String sh_path="/getTreedata.sh"; + String cmd="echo -e \""+shellComment+"\" > "+sh_path+" & chmod +x "+sh_path; + Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); +// Map files = showData.showFolderData(name); + List files=Constant.ganymedSSH.execCmdWaitAcquiescent(sh_path+" "+name); + if(files==null){ + return null; + } + if(files.size()==0){ + return fileNode; + } + for(String file:files){ + + } + + return fileNode; + } + @Test + public void test_getTreeData() { + + GetTreeData getTreeData=new GetTreeData(); +// FolderNode fileOrFolder=getTreeData.getDatas("/home/gfs_ftp_point"); + FolderNode fileOrFolder=getTreeData.getDatasWithShell("/home/gfs_ftp_point/"); + System.out.println(fileOrFolder); + } +} +/* +class FileOrFolder { + String name; + int isFolder; // 1 is file and other integer is folder show children number + List children; + + public FileOrFolder(String name) { + // TODO Auto-generated constructor stub + this.name = name; + } + + public FileOrFolder(String name, int isFolder) { + // TODO Auto-generated constructor stub + this.name = name; + this.isFolder = isFolder; + } +} + +*/ diff --git a/src/com/platform/glusterfs/RemoveData.java b/src/com/platform/glusterfs/RemoveData.java index 6f854b26..e06cebd3 100644 --- a/src/com/platform/glusterfs/RemoveData.java +++ b/src/com/platform/glusterfs/RemoveData.java @@ -1,56 +1,56 @@ -package com.platform.glusterfs; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; -import org.junit.Test; - -import com.platform.utils.Constant; - - - -public class RemoveData { - - public static Logger log = Logger.getLogger ( RemoveData.class); - - - /** - * -1 :error; 0: the filename is not exists ; 1: right - * @param folderName - * @param fileName - * @return - */ - public int deleteFolder(String folderName){ - log.info("start delete "+folderName); - - ShowData showData=new ShowData(); - Map reStrings=showData.showFolderData(folderName); - - if(reStrings==null){ - log.error("3301 "+folderName+" is not exists"); - return -1; - } - - String command="rm -r "+folderName; - -// int status=runCommand.runCommand(command); - Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); - - log.info("delete "+folderName+" running"); - return 1; - } - - - - - @Test - public void testDeleteFolderFiles() { - PropertyConfigurator.configure("log4j.properties"); - deleteFolder("/home/ubuntu"); - } - -} +package com.platform.glusterfs; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; +import org.junit.Test; + +import com.platform.utils.Constant; + + + +public class RemoveData { + + public static Logger log = Logger.getLogger ( RemoveData.class); + + + /** + * -1 :error; 0: the filename is not exists ; 1: right + * @param folderName + * @param fileName + * @return + */ + public int deleteFolder(String folderName){ + log.info("start delete "+folderName); + + ShowData showData=new ShowData(); + Map reStrings=showData.showFolderData(folderName); + + if(reStrings==null){ + log.error("3301 "+folderName+" is not exists"); + return -1; + } + + String command="rm -r "+folderName; + +// int status=runCommand.runCommand(command); + Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); + + log.info("delete "+folderName+" running"); + return 1; + } + + + + + @Test + public void testDeleteFolderFiles() { + PropertyConfigurator.configure("log4j.properties"); + deleteFolder("/home/ubuntu"); + } + +} diff --git a/src/com/platform/glusterfs/SetCluster.java b/src/com/platform/glusterfs/SetCluster.java index 8f260e5a..598b8753 100644 --- a/src/com/platform/glusterfs/SetCluster.java +++ b/src/com/platform/glusterfs/SetCluster.java @@ -1,67 +1,67 @@ - -package com.platform.glusterfs; - -import java.util.List; - -import org.apache.log4j.Logger; -import org.hamcrest.core.Is; - -import com.platform.utils.Constant; -import com.platform.utils.Support; - -public class SetCluster { - public static Logger log = Logger.getLogger ( SetCluster.class); - - /** - * 向集群中添加节点 - * 返回1表示添加成功;-1表示ip不合法,-2 表示出错,0表示添加失败 - * @param peerip - * @return - * @see [类、类#方法、类#成员] - */ - public int probePeer(String peerip){ - if(!Support.checkIP(peerip)){ - log.error(peerip +"is illegal!" ); - return -1; - } - String cmd="gluster peer probe "+peerip; - List reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); - if(reStrings==null || reStrings.size()==0){ - log.error("detach error! "); - return -2; - } - if(reStrings.contains(Constant.success)){ - log.info("probe success!"); - return 1; - } - log.info("probe failed!"); - return 0; - } - - /** - * 删除集群中节点 - * 返回1表示删除成功;-1表示ip不合法,-2 表示出错,0表示添加失败 - * @param peerip - * @return - * @see [类、类#方法、类#成员] - */ - public int detachPeer(String peerip){ - if(!Support.checkIP(peerip)){ - log.error(peerip +"is illegal!" ); - return -1; - } - String cmd="gluster peer detach "+peerip; - List reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); - if(reStrings==null || reStrings.size()==0){ - log.error("detach error! "); - return -2; - } - if(reStrings.contains(Constant.success)){ - log.info("detach success!"); - return 1; - } - log.info("detach failed!"); - return 0; - } -} - + +package com.platform.glusterfs; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.hamcrest.core.Is; + +import com.platform.utils.Constant; +import com.platform.utils.Support; + +public class SetCluster { + public static Logger log = Logger.getLogger ( SetCluster.class); + + /** + * 向集群中添加节点 + * 返回1表示添加成功;-1表示ip不合法,-2 表示出错,0表示添加失败 + * @param peerip + * @return + * @see [类、类#方法、类#成员] + */ + public int probePeer(String peerip){ + if(!Support.checkIP(peerip)){ + log.error(peerip +"is illegal!" ); + return -1; + } + String cmd="gluster peer probe "+peerip; + List reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + if(reStrings==null || reStrings.size()==0){ + log.error("detach error! "); + return -2; + } + if(reStrings.contains(Constant.success)){ + log.info("probe success!"); + return 1; + } + log.info("probe failed!"); + return 0; + } + + /** + * 删除集群中节点 + * 返回1表示删除成功;-1表示ip不合法,-2 表示出错,0表示添加失败 + * @param peerip + * @return + * @see [类、类#方法、类#成员] + */ + public int detachPeer(String peerip){ + if(!Support.checkIP(peerip)){ + log.error(peerip +"is illegal!" ); + return -1; + } + String cmd="gluster peer detach "+peerip; + List reStrings=Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + if(reStrings==null || reStrings.size()==0){ + log.error("detach error! "); + return -2; + } + if(reStrings.contains(Constant.success)){ + log.info("detach success!"); + return 1; + } + log.info("detach failed!"); + return 0; + } +} + diff --git a/src/com/platform/glusterfs/SetVolume.java b/src/com/platform/glusterfs/SetVolume.java index 6b4dddcc..8a361b18 100644 --- a/src/com/platform/glusterfs/SetVolume.java +++ b/src/com/platform/glusterfs/SetVolume.java @@ -1,540 +1,540 @@ - -/** - * @author 李乾坤 - * 进行volume的一系列操作,如创建、开启停止volume,为volume添加或删除brick - */ -package com.platform.glusterfs; - -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; -import org.junit.Test; - -import com.platform.utils.Constant; - -public class SetVolume { - public static Logger log = Logger.getLogger(SetVolume.class); - - /** - * 创建volume 返回值:创建并挂载成功 1 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3 - * -4:类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误 - * - * @param volumeName - * @param count - * @param type - * @param bricks - * @param mountPoint - * @return - * @see [类、类#方法、类#成员] - */ - public int createVolume(String volumeName, int count, String type, List bricks, String mountPoint) { - log.info("Creat new volume"); - - // 判断创建volume的条件是否满足 - int able = isAbleCreateVolume(volumeName, count, type, bricks, mountPoint); - - if (able == 1) { - String command = null; - // 将brics从List变量中提取出来并连接成可以在命令行中使用的格式 - String commandarg = concat(bricks); - - /* - * verify the type - */ - if (type.equals(Constant.distributed)) { - command = "gluster volume create " + volumeName + " " + commandarg + "force"; - } else if (type.equals(Constant.replica) || type.equals(Constant.stripe)) { - command = "gluster volume create " + volumeName + " " + type + " " + count + " " + commandarg + "force"; - } - - // 执行命令 - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); - - // 创建成功时返回信息格式:volume create: volumename success: - if (reStrings == null || reStrings.size() == 0) { - log.error("3106 " + command + " run return error"); - return -7; - } - if (reStrings.get(0).contains("volume create: " + volumeName + ": " + "success:")) { - log.info("create volume " + volumeName + " successed!"); - // 创建成功则启动并进行挂载 - if (startVolume(volumeName) == 0) { - log.info("start volume " + volumeName + " successed!"); - - log.info("create "+mountPoint); - new CopyData().createFolders(mountPoint); - - // 进行挂载 - String command3 = "mount -t glusterfs " + Constant.hostIp + ":" + volumeName + " " + mountPoint; - List reStrings3 = Constant.ganymedSSH.execCmdWaitAcquiescent(command3); - - if (reStrings3.size() == 0 || reStrings.get(0).contains("GlusterFS is already mounted")) { - log.info("mount point successed!"); - String addRecord = "echo \"" + volumeName + ":" + mountPoint + "\" >> " + Constant.MountRecord; - Constant.ganymedSSH.execCmdNoWaitAcquiescent(addRecord); - return 1; - } - } - } else { - log.error("3104 volume create failed with error" + reStrings.get(0)); - // System.out.println(reStrings.get(0)); - return -7; - } - return 1; - } else { - log.error("给出的参数不满足创建条件"); - // System.out.println("给出的参数不满足创建条件"); - return able; - } - - } - - /** - * 删除volume 1 表示成功 ;-1表示volume name不存在;-2表示停止volume 失败; - * -3表示删除失败,-4表示/gfsAutoMount/mountPoint.record文件不存在 - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public int deleteVolume(String volumeName) { - int status = 0; - VolumeInfo volumeInfo = new VolumeInfo(); - List volumeNames = volumeInfo.showAllVolumeName(); - if (!volumeNames.contains(volumeName)) { - log.error("3801 " + volumeName + " is not exists !"); - return -1; - } - - List mountPoints = volumeInfo.getVolumeMountPoint(volumeName); - - String cmd = "cat " + Constant.MountRecord; - List mountRecord = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); - - if (stopVolume(volumeName) != 0) { - - return -2; - } - - String command = "echo -e \"y\"| gluster volume delete " + volumeName; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); - if (reStrings == null || reStrings.size() == 0 - || !(reStrings.get(0).contains("volume delete: " + volumeName + ": success"))) { - log.error("3803 : delete volume " + volumeName + " failed !"); - return -3; - } - log.info("delete " + volumeName + " successed!"); - if (mountRecord.size() != 0 && mountPoints.get(0).contains(Constant.noSuchFile)) { - log.error("3804 : " + Constant.MountRecord + " is not exits"); - return -4; - } - for (String mountPoint : mountPoints) { - command = "umount -l " + mountPoint; - Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); - log.info("umount " + mountPoint + " successed!"); - String oneRecord=volumeName+":"+mountPoint; - if (mountRecord.contains(oneRecord)) { - mountRecord.remove(oneRecord); - } - - } - String newRecords=""; - for(String one:mountRecord){ - newRecords+=one+"\n"; - } - command="echo -ne \""+newRecords+"\" > "+Constant.MountRecord; - Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); - return 1; - } - - /** - * 为指定的volume添加brick,参数中需要指定类型、数量等 返回值:1成功 ;其他失败 - * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符 - * - * @param volumeName - * @param brickName - * @param count - * @param type - * @return - * @see [类、类#方法、类#成员] - */ - public int addBrickVolume(String volumeName, List brickName, int count, String type) { - // 检查是否满足添加bricks的条件 - int able = isAble(volumeName, count, type, brickName); - if (able != 1) { - return able; - } - - String command = ""; - log.info("add brick to the specified volume"); - - String brick = concat(brickName); - - if (type.equals(Constant.distributed)) - command = "gluster volume add-brick " + volumeName + " " + brick + "force"; - else if (type.equals(Constant.replica)) - command = "gluster volume add-brick " + volumeName + " " + "replica " + count + " " + brick + "force"; - else if (type.equals(Constant.stripe)) - command = "gluster volume add-brick " + volumeName + " " + "stripe " + count + " " + brick + "force"; - - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); - - // 添加成功的返回信息是:volume add-brick: success - if (reStrings != null && reStrings.size() > 0 && reStrings.get(0).contains("volume add-brick: success")) { - log.info("添加brick成功!"); - return 1; - } else { - log.error("3205 add brick failed,please check the system"); - // System.out.println("3202 add brick failed,please check the - // system"); - return -5; - } - } - - /** - * 为指定的volume删除brick,参数中需要指定类型、数量等 返回值:1 成功 ;其他 失败 - * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符 - * - * @param volumeName - * @param brickName - * @param count - * @param type - * @return - * @see [类、类#方法、类#成员] - */ - public int deleteBrickVolume(String volumeName, List brickName, int count, String type) { - int able = isAble(volumeName, count, type, brickName); - - if (able != 1) { - return able; - } - String command = null; - - log.info("delete brick of the specified volume"); - - String brick = concat(brickName); - - if (type.equals(Constant.distributed)) { - command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " " + brick + " force"; - } else if (type.equals(Constant.replica)) { - command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " repli " + count + " " + brick - + " force"; - } else if (type.equals(Constant.stripe)) { - command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " stripe " + count + " " + brick - + " force"; - } - - if (command == null) { - log.error("3305 remove brick failed,please check the system"); - return -5; - } - log.info("即将执行删除命令"); - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); - // System.out.println(reStrings); - log.info("删除命令执行完毕"); - - // 删除成功的返回信息是“volume remove-brick: success” - if (reStrings.get(0).contains("volume remove-brick: success")) { - { - log.info("删除brick成功"); - return 1; - } - } else { - log.error("3305 remove brick failed,please check the system"); - - return -5; - } - - } - - /* - * 停止指定volume 参数中需给出volume的名字 返回值: 0 成功 -1 失败 - * 需要先检查volume是否存在,然后判断volume的状态是否已经是停止状态 - */ - public int stopVolume(String volumeName) { - log.info("stop volume"); - - // 首先需要判断volume是否存在,调用其他函数返回所有volume的名字 - boolean volumeExist = false; - - List volume = new VolumeInfo().showAllVolumeName(); - for (String temp : volume) { - if (temp.equals(volumeName)) { - volumeExist = true; - break; - } - } - - if (!volumeExist) { - // volume不存在 - log.error("3501 the volume doesnot exist"); - System.out.println("3501 the volume doesnot exist"); - return -1; - } else { - // volume存在,则需判断volume的状态是否已经为“stop” - if (new VolumeInfo().getVolumeStatus(volumeName).equals("Stopped")) { - log.error("3502 the volume is already stoped"); - System.out.println("3502 the volume is already stoped"); - return -1; - } else { - String command = "echo -e \"y\"| gluster volume stop " + volumeName; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); - - // 标记操作结果:operation = 1 操作成功 - // operation = 0 操作失败 - int operation = 0; - for (String temp2 : reStrings) { - if (temp2.contains("volume stop: " + volumeName + ": " + "success")) { - operation = 1; - break; - } - System.out.println("operation: " + operation); - } - - if (operation == 1) { - return 0; - } else { - log.error("3503 stop " + volumeName + " failed"); - System.out.println("3503 stop " + volumeName + " failed"); - return -1; - } - - } - } - } - - /* - * 开启指定volume 参数中需给出volume的名字 返回值: 0 成功 -1 失败 - * 需要先检查volume是否存在,然后判断volume的状态是否已经是开启状态 - */ - public int startVolume(String volumeName) { - log.info("start volume"); - boolean volumeExist = false; - List volume = new VolumeInfo().showAllVolumeName(); - - for (String temp : volume) { - if (temp.equals(volumeName)) { - volumeExist = true; - break; - } - } - - if (volumeExist) { - if (!(new VolumeInfo().getVolumeStatus(volumeName).equals("Started"))) { - String command = "gluster volume start " + volumeName; - - int operation = 0; - - // 执行命令 - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); - for (String temp2 : reStrings) { - if (temp2.equals("volume start: " + volumeName + ": " + "success")) { - operation = 1; - } - } - - if (operation == 1) { - return 0; - } else { - log.error("3602 start volume failed"); - System.out.println("3602 start volume failed"); - return -1; - } - } else { - log.error("volume已经开启"); - System.out.println("volume已经开启"); - return -1; - } - } else { - log.error("3601 the volume does not exist"); - // System.out.println("3601 the volume does not exist"); - return -1; - } - } - - // 需要将存于List变量中的brick的位置组装成可以在glusterfs命令行中直接使用的格式 - public String concat(List brickName) { - StringBuffer result = new StringBuffer(); - int len = brickName.size(); - for (int i = 0; i < len; i++) { - result.append(brickName.get(i)); - result.append(" "); - } - return result.toString(); - } - - /* - * 只在创建volume时使用此函数 创建volume时对不同数据卷,brick的数量需要满足和count的关系 - * 首先判断它们是否满足关系,在不满足的关系的情况下是肯定无法完成操作的 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3 - * -4 :类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误 - */ - public int isAbleCreateVolume(String volumeName, int count, String type, List bricks, String mountPoint) { - int status = 0; - - int length = bricks.size(); - - if (type.equals(Constant.distributed)) { - if (count != 0) { - log.error("3101 the kind of distributed requires the arg of count to be 0"); - return -2; - } - } - if (type.equals(Constant.stripe)) { - if (length % count != 0) { - log.error("3102 the number of bricks should be the same as or the times of the stripe count"); - return -3; - } - } - if (type.equals(Constant.replica)) { - if ((length % count) != 0) { - log.error( - "3103 the number of bricks should be the same as the replicate count or the times of replicate count"); - return -4; - } - } - - Map peer_status = new ClusterInfo().showClusterInfo(); - peer_status.put(Constant.hostIp, Constant.peerincluster_connected); - for (String brick : bricks) { - brick = brick.split(":")[0]; - if (!(peer_status.containsKey(brick) && peer_status.get(brick).equals(Constant.peerincluster_connected))) { - log.error("3105 birck " + brick + " ip is not in cluster"); - return -1; - } - - } - - List volumeNames = new VolumeInfo().showAllVolumeName(); - if (volumeNames == null) { - log.error("3108 showAllVolumeName return error"); - return -7; - } - if (volumeNames.contains(volumeName)) { - log.error("3106 " + volumeName + " is already exists! "); - return -5; - } - - /* - Map datas = new ShowData().showFolderData(mountPoint); - if (datas != null && datas.size() > 0) { - log.error("3107 " + mountPoint + " is not exists or not empty ! "); - return -6; - } - */ - return 1; - } - - /** - * 添加或删除volume的brick时,首先需要判断volume是否存在,然后需要判断volume类型、count及brick数目 - * - * @param volumeName - * @param count - * @param type - * @param bricks - * @return 1 满足条件,可以添加;-1 :volume name is not exists;-2,-3,-4 类型与brick数量不匹配; - */ - public int isAble(String volumeName, int count, String type, List bricks) { - List volumeNames = new VolumeInfo().showAllVolumeName(); - - if (!volumeNames.contains(volumeName)) { - log.error("3201:" + volumeName + " is not exists! "); - return -1; - } - - int length = bricks.size(); - if (type.equals("distribute")) { - if (count == 0) - return 1; - else { - log.error("3202: the kind of distributed requires the arg of count to be 0"); - // System.out.println(" the kind of distributed requires the - // arg of count to be 0"); - return -2; - } - } - - if (type.equals("stripe")) { - if (length % count == 0) - return 1; - else { - log.error("3203: the number of bricks should be the same as or the times of the stripe count"); - // System.out.println(" the number of bricks should be the - // same as or the times of the stripe count"); - return -3; - - } - } - if (type.equals("replicate")) { - if ((length % count) == 0) - return 1; - else { - log.error( - "3204: the number of bricks should be the same as the replicate count or the times of replicate count"); - - return -4; - } - } - - return 1; - } - - @Test - public void test_deleteVolume(){ - System.out.println(deleteVolume("lili_test1")); - } -// @Test - public void test_createVolume(){ - List bricksToCreate = new ArrayList(); - bricksToCreate.add("192.168.0.110:/lili_test1"); - bricksToCreate.add("192.168.0.116:/lili_test1"); - System.out.println(createVolume("lili_test1", 0, "distributed", bricksToCreate, "/home/lili_test1_point")); - } - public static void main(String[] args) { - SetVolume setVolume = new SetVolume(); - int operation = 0; - // PropertyConfigurator.configure("log4j.properties"); - // TODO Auto-generated method stub - // 测试创建volume的代码 - -// List bricksToCreate = new ArrayList(); -// bricksToCreate.add("192.168.0.110:/v2"); -// bricksToCreate.add("192.168.0.116:/v2"); -// operation = setVolume.createVolume("v2", 0, "distributed", bricksToCreate, "/home/v2_point"); - // operation = setVolume.deleteVolume("v3"); - // - // // 以下是测试添加brick的代码 - // - // List bricksToAdd = new ArrayList(); - // bricksToAdd.add("192.168.191.23:/v3"); - // operation = setVolume.addBrickVolume("v3", bricksToAdd, 0, - // "distribute"); - // System.out.println(operation); - - // 以下代码是测试删除brick的代码 - // List bricksToAdd= new ArrayList(); - // bricksToAdd.add("192.168.191.23:/v3"); - // operation = - // setVolume.deleteBrickVolume("v3",bricksToAdd,0,"distribute"); - // System.out.println(operation); - // 以下是测试start volume的代码 - // String volumeToStart = "testcreate" ; - // int startOperation = startVolume(volumeToStart); - // System.out.println(startOperation); - // 以下是测试stop volume - String volumeToStop = "v3"; - // int startOperation = setVolume.stopVolume(volumeToStop); - // 以下是测试创建volume并完成挂载的代码 - // List bricksToCreate= new ArrayList(); - // bricksToCreate.add("192.168.214.135:/home/create"); - // bricksToCreate.add("192.168.214.138:/home/create"); - // - // int operation = - // createVolume("createAndmount",0,"distribute",bricksToCreate,"/mnt/create"); - // System.out.println(operation); - } -} + +/** + * @author 李乾坤 + * 进行volume的一系列操作,如创建、开启停止volume,为volume添加或删除brick + */ +package com.platform.glusterfs; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; +import org.junit.Test; + +import com.platform.utils.Constant; + +public class SetVolume { + public static Logger log = Logger.getLogger(SetVolume.class); + + /** + * 创建volume 返回值:创建并挂载成功 1 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3 + * -4:类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误 + * + * @param volumeName + * @param count + * @param type + * @param bricks + * @param mountPoint + * @return + * @see [类、类#方法、类#成员] + */ + public int createVolume(String volumeName, int count, String type, List bricks, String mountPoint) { + log.info("Creat new volume"); + + // 判断创建volume的条件是否满足 + int able = isAbleCreateVolume(volumeName, count, type, bricks, mountPoint); + + if (able == 1) { + String command = null; + // 将brics从List变量中提取出来并连接成可以在命令行中使用的格式 + String commandarg = concat(bricks); + + /* + * verify the type + */ + if (type.equals(Constant.distributed)) { + command = "gluster volume create " + volumeName + " " + commandarg + "force"; + } else if (type.equals(Constant.replica) || type.equals(Constant.stripe)) { + command = "gluster volume create " + volumeName + " " + type + " " + count + " " + commandarg + "force"; + } + + // 执行命令 + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + + // 创建成功时返回信息格式:volume create: volumename success: + if (reStrings == null || reStrings.size() == 0) { + log.error("3106 " + command + " run return error"); + return -7; + } + if (reStrings.get(0).contains("volume create: " + volumeName + ": " + "success:")) { + log.info("create volume " + volumeName + " successed!"); + // 创建成功则启动并进行挂载 + if (startVolume(volumeName) == 0) { + log.info("start volume " + volumeName + " successed!"); + + log.info("create "+mountPoint); + new CopyData().createFolders(mountPoint); + + // 进行挂载 + String command3 = "mount -t glusterfs " + Constant.hostIp + ":" + volumeName + " " + mountPoint; + List reStrings3 = Constant.ganymedSSH.execCmdWaitAcquiescent(command3); + + if (reStrings3.size() == 0 || reStrings.get(0).contains("GlusterFS is already mounted")) { + log.info("mount point successed!"); + String addRecord = "echo \"" + volumeName + ":" + mountPoint + "\" >> " + Constant.MountRecord; + Constant.ganymedSSH.execCmdNoWaitAcquiescent(addRecord); + return 1; + } + } + } else { + log.error("3104 volume create failed with error" + reStrings.get(0)); + // System.out.println(reStrings.get(0)); + return -7; + } + return 1; + } else { + log.error("给出的参数不满足创建条件"); + // System.out.println("给出的参数不满足创建条件"); + return able; + } + + } + + /** + * 删除volume 1 表示成功 ;-1表示volume name不存在;-2表示停止volume 失败; + * -3表示删除失败,-4表示/gfsAutoMount/mountPoint.record文件不存在 + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public int deleteVolume(String volumeName) { + int status = 0; + VolumeInfo volumeInfo = new VolumeInfo(); + List volumeNames = volumeInfo.showAllVolumeName(); + if (!volumeNames.contains(volumeName)) { + log.error("3801 " + volumeName + " is not exists !"); + return -1; + } + + List mountPoints = volumeInfo.getVolumeMountPoint(volumeName); + + String cmd = "cat " + Constant.MountRecord; + List mountRecord = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + + if (stopVolume(volumeName) != 0) { + + return -2; + } + + String command = "echo -e \"y\"| gluster volume delete " + volumeName; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + if (reStrings == null || reStrings.size() == 0 + || !(reStrings.get(0).contains("volume delete: " + volumeName + ": success"))) { + log.error("3803 : delete volume " + volumeName + " failed !"); + return -3; + } + log.info("delete " + volumeName + " successed!"); + if (mountRecord.size() != 0 && mountPoints.get(0).contains(Constant.noSuchFile)) { + log.error("3804 : " + Constant.MountRecord + " is not exits"); + return -4; + } + for (String mountPoint : mountPoints) { + command = "umount -l " + mountPoint; + Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); + log.info("umount " + mountPoint + " successed!"); + String oneRecord=volumeName+":"+mountPoint; + if (mountRecord.contains(oneRecord)) { + mountRecord.remove(oneRecord); + } + + } + String newRecords=""; + for(String one:mountRecord){ + newRecords+=one+"\n"; + } + command="echo -ne \""+newRecords+"\" > "+Constant.MountRecord; + Constant.ganymedSSH.execCmdNoWaitAcquiescent(command); + return 1; + } + + /** + * 为指定的volume添加brick,参数中需要指定类型、数量等 返回值:1成功 ;其他失败 + * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符 + * + * @param volumeName + * @param brickName + * @param count + * @param type + * @return + * @see [类、类#方法、类#成员] + */ + public int addBrickVolume(String volumeName, List brickName, int count, String type) { + // 检查是否满足添加bricks的条件 + int able = isAble(volumeName, count, type, brickName); + if (able != 1) { + return able; + } + + String command = ""; + log.info("add brick to the specified volume"); + + String brick = concat(brickName); + + if (type.equals(Constant.distributed)) + command = "gluster volume add-brick " + volumeName + " " + brick + "force"; + else if (type.equals(Constant.replica)) + command = "gluster volume add-brick " + volumeName + " " + "replica " + count + " " + brick + "force"; + else if (type.equals(Constant.stripe)) + command = "gluster volume add-brick " + volumeName + " " + "stripe " + count + " " + brick + "force"; + + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + + // 添加成功的返回信息是:volume add-brick: success + if (reStrings != null && reStrings.size() > 0 && reStrings.get(0).contains("volume add-brick: success")) { + log.info("添加brick成功!"); + return 1; + } else { + log.error("3205 add brick failed,please check the system"); + // System.out.println("3202 add brick failed,please check the + // system"); + return -5; + } + } + + /** + * 为指定的volume删除brick,参数中需要指定类型、数量等 返回值:1 成功 ;其他 失败 + * 过程中需要先检查volume是否存在,还需检查给出的brick数量与类型、count是否相符 + * + * @param volumeName + * @param brickName + * @param count + * @param type + * @return + * @see [类、类#方法、类#成员] + */ + public int deleteBrickVolume(String volumeName, List brickName, int count, String type) { + int able = isAble(volumeName, count, type, brickName); + + if (able != 1) { + return able; + } + String command = null; + + log.info("delete brick of the specified volume"); + + String brick = concat(brickName); + + if (type.equals(Constant.distributed)) { + command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " " + brick + " force"; + } else if (type.equals(Constant.replica)) { + command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " repli " + count + " " + brick + + " force"; + } else if (type.equals(Constant.stripe)) { + command = "echo -e \"y\" | gluster volume remove-brick " + volumeName + " stripe " + count + " " + brick + + " force"; + } + + if (command == null) { + log.error("3305 remove brick failed,please check the system"); + return -5; + } + log.info("即将执行删除命令"); + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + // System.out.println(reStrings); + log.info("删除命令执行完毕"); + + // 删除成功的返回信息是“volume remove-brick: success” + if (reStrings.get(0).contains("volume remove-brick: success")) { + { + log.info("删除brick成功"); + return 1; + } + } else { + log.error("3305 remove brick failed,please check the system"); + + return -5; + } + + } + + /* + * 停止指定volume 参数中需给出volume的名字 返回值: 0 成功 -1 失败 + * 需要先检查volume是否存在,然后判断volume的状态是否已经是停止状态 + */ + public int stopVolume(String volumeName) { + log.info("stop volume"); + + // 首先需要判断volume是否存在,调用其他函数返回所有volume的名字 + boolean volumeExist = false; + + List volume = new VolumeInfo().showAllVolumeName(); + for (String temp : volume) { + if (temp.equals(volumeName)) { + volumeExist = true; + break; + } + } + + if (!volumeExist) { + // volume不存在 + log.error("3501 the volume doesnot exist"); + System.out.println("3501 the volume doesnot exist"); + return -1; + } else { + // volume存在,则需判断volume的状态是否已经为“stop” + if (new VolumeInfo().getVolumeStatus(volumeName).equals("Stopped")) { + log.error("3502 the volume is already stoped"); + System.out.println("3502 the volume is already stoped"); + return -1; + } else { + String command = "echo -e \"y\"| gluster volume stop " + volumeName; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + + // 标记操作结果:operation = 1 操作成功 + // operation = 0 操作失败 + int operation = 0; + for (String temp2 : reStrings) { + if (temp2.contains("volume stop: " + volumeName + ": " + "success")) { + operation = 1; + break; + } + System.out.println("operation: " + operation); + } + + if (operation == 1) { + return 0; + } else { + log.error("3503 stop " + volumeName + " failed"); + System.out.println("3503 stop " + volumeName + " failed"); + return -1; + } + + } + } + } + + /* + * 开启指定volume 参数中需给出volume的名字 返回值: 0 成功 -1 失败 + * 需要先检查volume是否存在,然后判断volume的状态是否已经是开启状态 + */ + public int startVolume(String volumeName) { + log.info("start volume"); + boolean volumeExist = false; + List volume = new VolumeInfo().showAllVolumeName(); + + for (String temp : volume) { + if (temp.equals(volumeName)) { + volumeExist = true; + break; + } + } + + if (volumeExist) { + if (!(new VolumeInfo().getVolumeStatus(volumeName).equals("Started"))) { + String command = "gluster volume start " + volumeName; + + int operation = 0; + + // 执行命令 + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + for (String temp2 : reStrings) { + if (temp2.equals("volume start: " + volumeName + ": " + "success")) { + operation = 1; + } + } + + if (operation == 1) { + return 0; + } else { + log.error("3602 start volume failed"); + System.out.println("3602 start volume failed"); + return -1; + } + } else { + log.error("volume已经开启"); + System.out.println("volume已经开启"); + return -1; + } + } else { + log.error("3601 the volume does not exist"); + // System.out.println("3601 the volume does not exist"); + return -1; + } + } + + // 需要将存于List变量中的brick的位置组装成可以在glusterfs命令行中直接使用的格式 + public String concat(List brickName) { + StringBuffer result = new StringBuffer(); + int len = brickName.size(); + for (int i = 0; i < len; i++) { + result.append(brickName.get(i)); + result.append(" "); + } + return result.toString(); + } + + /* + * 只在创建volume时使用此函数 创建volume时对不同数据卷,brick的数量需要满足和count的关系 + * 首先判断它们是否满足关系,在不满足的关系的情况下是肯定无法完成操作的 1:可以创建 ;-1:brick的ip不在集群中或者未连接; -2 -3 + * -4 :类型与brick数目不匹配 ; -5 :volumeName 已经存在;-6:挂载点存在且不为空,不能作为挂载点; -7:未知错误 + */ + public int isAbleCreateVolume(String volumeName, int count, String type, List bricks, String mountPoint) { + int status = 0; + + int length = bricks.size(); + + if (type.equals(Constant.distributed)) { + if (count != 0) { + log.error("3101 the kind of distributed requires the arg of count to be 0"); + return -2; + } + } + if (type.equals(Constant.stripe)) { + if (length % count != 0) { + log.error("3102 the number of bricks should be the same as or the times of the stripe count"); + return -3; + } + } + if (type.equals(Constant.replica)) { + if ((length % count) != 0) { + log.error( + "3103 the number of bricks should be the same as the replicate count or the times of replicate count"); + return -4; + } + } + + Map peer_status = new ClusterInfo().showClusterInfo(); + peer_status.put(Constant.hostIp, Constant.peerincluster_connected); + for (String brick : bricks) { + brick = brick.split(":")[0]; + if (!(peer_status.containsKey(brick) && peer_status.get(brick).equals(Constant.peerincluster_connected))) { + log.error("3105 birck " + brick + " ip is not in cluster"); + return -1; + } + + } + + List volumeNames = new VolumeInfo().showAllVolumeName(); + if (volumeNames == null) { + log.error("3108 showAllVolumeName return error"); + return -7; + } + if (volumeNames.contains(volumeName)) { + log.error("3106 " + volumeName + " is already exists! "); + return -5; + } + + /* + Map datas = new ShowData().showFolderData(mountPoint); + if (datas != null && datas.size() > 0) { + log.error("3107 " + mountPoint + " is not exists or not empty ! "); + return -6; + } + */ + return 1; + } + + /** + * 添加或删除volume的brick时,首先需要判断volume是否存在,然后需要判断volume类型、count及brick数目 + * + * @param volumeName + * @param count + * @param type + * @param bricks + * @return 1 满足条件,可以添加;-1 :volume name is not exists;-2,-3,-4 类型与brick数量不匹配; + */ + public int isAble(String volumeName, int count, String type, List bricks) { + List volumeNames = new VolumeInfo().showAllVolumeName(); + + if (!volumeNames.contains(volumeName)) { + log.error("3201:" + volumeName + " is not exists! "); + return -1; + } + + int length = bricks.size(); + if (type.equals("distribute")) { + if (count == 0) + return 1; + else { + log.error("3202: the kind of distributed requires the arg of count to be 0"); + // System.out.println(" the kind of distributed requires the + // arg of count to be 0"); + return -2; + } + } + + if (type.equals("stripe")) { + if (length % count == 0) + return 1; + else { + log.error("3203: the number of bricks should be the same as or the times of the stripe count"); + // System.out.println(" the number of bricks should be the + // same as or the times of the stripe count"); + return -3; + + } + } + if (type.equals("replicate")) { + if ((length % count) == 0) + return 1; + else { + log.error( + "3204: the number of bricks should be the same as the replicate count or the times of replicate count"); + + return -4; + } + } + + return 1; + } + + @Test + public void test_deleteVolume(){ + System.out.println(deleteVolume("lili_test1")); + } +// @Test + public void test_createVolume(){ + List bricksToCreate = new ArrayList(); + bricksToCreate.add("192.168.0.110:/lili_test1"); + bricksToCreate.add("192.168.0.116:/lili_test1"); + System.out.println(createVolume("lili_test1", 0, "distributed", bricksToCreate, "/home/lili_test1_point")); + } + public static void main(String[] args) { + SetVolume setVolume = new SetVolume(); + int operation = 0; + // PropertyConfigurator.configure("log4j.properties"); + // TODO Auto-generated method stub + // 测试创建volume的代码 + +// List bricksToCreate = new ArrayList(); +// bricksToCreate.add("192.168.0.110:/v2"); +// bricksToCreate.add("192.168.0.116:/v2"); +// operation = setVolume.createVolume("v2", 0, "distributed", bricksToCreate, "/home/v2_point"); + // operation = setVolume.deleteVolume("v3"); + // + // // 以下是测试添加brick的代码 + // + // List bricksToAdd = new ArrayList(); + // bricksToAdd.add("192.168.191.23:/v3"); + // operation = setVolume.addBrickVolume("v3", bricksToAdd, 0, + // "distribute"); + // System.out.println(operation); + + // 以下代码是测试删除brick的代码 + // List bricksToAdd= new ArrayList(); + // bricksToAdd.add("192.168.191.23:/v3"); + // operation = + // setVolume.deleteBrickVolume("v3",bricksToAdd,0,"distribute"); + // System.out.println(operation); + // 以下是测试start volume的代码 + // String volumeToStart = "testcreate" ; + // int startOperation = startVolume(volumeToStart); + // System.out.println(startOperation); + // 以下是测试stop volume + String volumeToStop = "v3"; + // int startOperation = setVolume.stopVolume(volumeToStop); + // 以下是测试创建volume并完成挂载的代码 + // List bricksToCreate= new ArrayList(); + // bricksToCreate.add("192.168.214.135:/home/create"); + // bricksToCreate.add("192.168.214.138:/home/create"); + // + // int operation = + // createVolume("createAndmount",0,"distribute",bricksToCreate,"/mnt/create"); + // System.out.println(operation); + } +} diff --git a/src/com/platform/glusterfs/ShowData.java b/src/com/platform/glusterfs/ShowData.java index ff4180ff..0ca8b438 100644 --- a/src/com/platform/glusterfs/ShowData.java +++ b/src/com/platform/glusterfs/ShowData.java @@ -1,132 +1,132 @@ -package com.platform.glusterfs; - -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; - - -import org.apache.log4j.PropertyConfigurator; -import org.junit.Test; - -import com.platform.utils.Constant; - - -public class ShowData { - - public static Logger log = Logger.getLogger ( ShowData.class); - - /** - * get the data of volumeName Map s1 is data name and s2 is type file or folder - * <功能详细描述> - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public Map showVolumeFiles(String volumeName){ - log.info("start show the data"); - Map data_type=new HashMap(); - /** - * get mount point of volumeName - */ - String folderName=volumeName; - - data_type=showFolderData(volumeName); - return data_type; -} - /** - * get the data of folder name - * Map is folder name and type 1 is file and others is folder - - - * @param FolderName - * @return - */ - public Map showFolderData(String folderName){ - log.info(" start get "+folderName+" data"); - - - Map data_type=new HashMap(); - String command="ls -l "+folderName; - - /* -<<<<<<< HEAD - * RunCommand runCommand=new RunCommand(); List - * reStrings=runCommand.runCommandWait(command); - */ - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); - if (reStrings == null) { - log.error("2101 command get result is null"); - return null; - } - if(reStrings.size()==0){ - log.info("2102 the folder is empty"); - return data_type; - } - if(reStrings.get(0).contains("No such file or directory")){ - log.info("2103 the "+folderName+" is not exists"); - return null; - } - /** - * remove first line total number - */ - reStrings.remove(0); - - for(Iterator it2 = reStrings.iterator();it2.hasNext();){ - String line=(String)it2.next(); - line=line.replaceAll(" +", " "); - String keyValue[]=line.split(" "); - if(keyValue.length<9){ - log.error("2104 "+line+" length is short"); - continue; - } - - data_type.put(keyValue[8], keyValue[1]); - - } - log.info(" get "+folderName+" data successed"); - return data_type; - } - - /** - * 返回folder的大小字节表示 - * -2表示获取大小出错,-1表示folder不存在,其他表示folder的大小 - * @param folderPath - * @return - * @see [类、类#方法、类#成员] - */ - public long getFolderSize(String folderPath) { - log.info("get " + folderPath + " Size "); - - String command = "du -k -d 0 "+folderPath+" | grep " + folderPath + "|awk \'{print $1}\'"; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); - if(reStrings==null || reStrings.size()==0){ - log.error("get " + folderPath + " Size error!"); - return -2; - } - if (reStrings.get(0).contains(Constant.noSuchFile)) { - log.error(folderPath+" is not exists"); - return -1; - } - long size = Long.valueOf(reStrings.get(0)); - - - return size; - } - - - /** - * - * <一句话功能简述> - * <功能详细描述> - * @see [类、类#方法、类#成员] - */ - @Test - public void testShowData(){ - - System.out.println(showFolderData("/home")); - - } +package com.platform.glusterfs; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + + +import org.apache.log4j.PropertyConfigurator; +import org.junit.Test; + +import com.platform.utils.Constant; + + +public class ShowData { + + public static Logger log = Logger.getLogger ( ShowData.class); + + /** + * get the data of volumeName Map s1 is data name and s2 is type file or folder + * <功能详细描述> + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public Map showVolumeFiles(String volumeName){ + log.info("start show the data"); + Map data_type=new HashMap(); + /** + * get mount point of volumeName + */ + String folderName=volumeName; + + data_type=showFolderData(volumeName); + return data_type; +} + /** + * get the data of folder name + * Map is folder name and type 1 is file and others is folder + + + * @param FolderName + * @return + */ + public Map showFolderData(String folderName){ + log.info(" start get "+folderName+" data"); + + + Map data_type=new HashMap(); + String command="ls -l "+folderName; + + /* +<<<<<<< HEAD + * RunCommand runCommand=new RunCommand(); List + * reStrings=runCommand.runCommandWait(command); + */ + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + if (reStrings == null) { + log.error("2101 command get result is null"); + return null; + } + if(reStrings.size()==0){ + log.info("2102 the folder is empty"); + return data_type; + } + if(reStrings.get(0).contains("No such file or directory")){ + log.info("2103 the "+folderName+" is not exists"); + return null; + } + /** + * remove first line total number + */ + reStrings.remove(0); + + for(Iterator it2 = reStrings.iterator();it2.hasNext();){ + String line=(String)it2.next(); + line=line.replaceAll(" +", " "); + String keyValue[]=line.split(" "); + if(keyValue.length<9){ + log.error("2104 "+line+" length is short"); + continue; + } + + data_type.put(keyValue[8], keyValue[1]); + + } + log.info(" get "+folderName+" data successed"); + return data_type; + } + + /** + * 返回folder的大小字节表示 + * -2表示获取大小出错,-1表示folder不存在,其他表示folder的大小 + * @param folderPath + * @return + * @see [类、类#方法、类#成员] + */ + public long getFolderSize(String folderPath) { + log.info("get " + folderPath + " Size "); + + String command = "du -k -d 0 "+folderPath+" | grep " + folderPath + "|awk \'{print $1}\'"; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(command); + if(reStrings==null || reStrings.size()==0){ + log.error("get " + folderPath + " Size error!"); + return -2; + } + if (reStrings.get(0).contains(Constant.noSuchFile)) { + log.error(folderPath+" is not exists"); + return -1; + } + long size = Long.valueOf(reStrings.get(0)); + + + return size; + } + + + /** + * + * <一句话功能简述> + * <功能详细描述> + * @see [类、类#方法、类#成员] + */ + @Test + public void testShowData(){ + + System.out.println(showFolderData("/home")); + + } } \ No newline at end of file diff --git a/src/com/platform/glusterfs/SizeInfo.java b/src/com/platform/glusterfs/SizeInfo.java index 1aad2969..4d639be2 100644 --- a/src/com/platform/glusterfs/SizeInfo.java +++ b/src/com/platform/glusterfs/SizeInfo.java @@ -1,93 +1,93 @@ -package com.platform.glusterfs; - - -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; - -import com.platform.utils.Constant; - -public class SizeInfo { - public static Logger log = Logger.getLogger(ClusterInfo.class); - VolumeInfo volumeInfo = new VolumeInfo(); - - /** - * 获取集群�?��volume size - * 返回值:-1:错�? 0:没有volume long:size大小 - * @return - */ - public long showAllSize() { - log.info("get AllSize "); - List volumeNames = volumeInfo.showAllVolumeName(); - if (volumeNames == null) { - log.error("1201 showAllVolumeName error"); - return -1; - } - if (volumeNames.size() == 0) { - log.error("1202 It is not exist any volume"); - return 0; - } - List reStrings = null; - long size = 0L; - - for (String str : volumeNames) { - String command = "df |grep " + str + "|awk \'{print $2}\'"; - reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, Constant.port, - command); - if (reStrings.isEmpty()) { - log.error("1203 The brick is unmount"); - } else { - size += Long.parseLong(reStrings.get(0)); - } - - } - - return size; - } - /** - * 返回集群已用大小 - * @return - * 返回值:-1:错�? 0:没有volume long:size大小 - */ - public long showUseSize() { - log.info("get UseSize "); - - List volumeNames = volumeInfo.showAllVolumeName(); - List reStrings = null; - long size = 0L; - if (volumeNames == null) { - log.error("1201 showAllVolumeName error"); - return -1; - } - if (volumeNames.size() == 0) { - log.error("1202 It is not exist any volume"); - return 0; - } - - for (String str : volumeNames) { - String command = "df |grep " + str + "|awk \'{print $3}\'"; - reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, - Constant.port, command); - if (reStrings.isEmpty()) { - log.error("1202 The brick is unmount"); - } else { - size += Integer.valueOf(reStrings.get(0)); - } - - } - - return size; - } - - public static void main(String[] args) { - PropertyConfigurator.configure("log4j.properties"); - System.out.println(new SizeInfo().showAllSize()); - System.out.println(new SizeInfo().showUseSize()); - } +package com.platform.glusterfs; + + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; + +import com.platform.utils.Constant; + +public class SizeInfo { + public static Logger log = Logger.getLogger(ClusterInfo.class); + VolumeInfo volumeInfo = new VolumeInfo(); + + /** + * 获取集群�?��volume size + * 返回值:-1:错�? 0:没有volume long:size大小 + * @return + */ + public long showAllSize() { + log.info("get AllSize "); + List volumeNames = volumeInfo.showAllVolumeName(); + if (volumeNames == null) { + log.error("1201 showAllVolumeName error"); + return -1; + } + if (volumeNames.size() == 0) { + log.error("1202 It is not exist any volume"); + return 0; + } + List reStrings = null; + long size = 0L; + + for (String str : volumeNames) { + String command = "df |grep " + str + "|awk \'{print $2}\'"; + reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, Constant.port, + command); + if (reStrings.isEmpty()) { + log.error("1203 The brick is unmount"); + } else { + size += Long.parseLong(reStrings.get(0)); + } + + } + + return size; + } + /** + * 返回集群已用大小 + * @return + * 返回值:-1:错�? 0:没有volume long:size大小 + */ + public long showUseSize() { + log.info("get UseSize "); + + List volumeNames = volumeInfo.showAllVolumeName(); + List reStrings = null; + long size = 0L; + if (volumeNames == null) { + log.error("1201 showAllVolumeName error"); + return -1; + } + if (volumeNames.size() == 0) { + log.error("1202 It is not exist any volume"); + return 0; + } + + for (String str : volumeNames) { + String command = "df |grep " + str + "|awk \'{print $3}\'"; + reStrings = Constant.ganymedSSH.execCmdWait(Constant.hostIp, Constant.rootUser, Constant.rootPasswd, + Constant.port, command); + if (reStrings.isEmpty()) { + log.error("1202 The brick is unmount"); + } else { + size += Integer.valueOf(reStrings.get(0)); + } + + } + + return size; + } + + public static void main(String[] args) { + PropertyConfigurator.configure("log4j.properties"); + System.out.println(new SizeInfo().showAllSize()); + System.out.println(new SizeInfo().showUseSize()); + } } \ No newline at end of file diff --git a/src/com/platform/glusterfs/VolumeInfo.java b/src/com/platform/glusterfs/VolumeInfo.java index 9a65a86f..015dbef9 100644 --- a/src/com/platform/glusterfs/VolumeInfo.java +++ b/src/com/platform/glusterfs/VolumeInfo.java @@ -1,406 +1,406 @@ - -package com.platform.glusterfs; - -import java.io.File; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; -import org.junit.Test; -import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper; - -import com.platform.utils.Constant; -import com.platform.utils.GanymedSSH; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - * 获取volume信息 <功能详细描述> - * - * @author liliy - * @version [版本号,2016年9月13日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ -public class VolumeInfo { - public static Logger log = Logger.getLogger(VolumeInfo.class); - - /** - * 显示所有volume名称 <功能详细描述> - * - * @return - * @see [类、类#方法、类#成员] - */ - public List showAllVolumeName() { - log.info("get volume name"); - List volNames = new ArrayList(); - - /* - * String command = "echo \"" + Constant.rootPasswd + - * "\" |sudo -S gluster volume info|grep ^Volume.Name"; RunCommand - * runCommand = new RunCommand(); List reStrings = - * runCommand.runCommandWait(command); - */ - List reStrings = Constant.ganymedSSH - .execCmdWaitAcquiescent(Constant.glusterVolumeInfo + "|grep ^Volume.Name"); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("1401 get result is null"); - return null; - } - if (reStrings.size() == 0) { - log.error("1402 get result is nothing"); - return null; - } - if (reStrings.get(0).contains(Constant.noVolume)) { - reStrings.clear(); - return reStrings; - } - if (!(reStrings.get(0).split(":")[0].contains("Volume Name"))) { - log.error("1403 get result string wrong"); - return null; - } - - String nameInfo = ""; - for (Iterator it = reStrings.iterator(); it.hasNext();) { - String line = (String) it.next(); - String str[] = line.split(":"); - volNames.add(str[1].replaceAll(" ", "")); - } - return volNames; - - } - - /** - * 给定参数volume的名称获得volume的类型 - * - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public String getVolumeType(String volumeName) { - log.info("get volume type"); - String volType = ""; - - List reStrings = Constant.ganymedSSH - .execCmdWaitAcquiescent(Constant.glusterVolumeInfo + volumeName + "|grep ^Type"); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("1501 get result is null"); - return null; - } - if (reStrings.size() == 0) { - log.error("1502 get result is nothing"); - return null; - } - if (!(reStrings.get(0).split(":")[0].contains("Type"))) { - log.error("1503 get result string wrong"); - return null; - } - - // System.out.println(reStrings); - - for (Iterator it = reStrings.iterator(); it.hasNext();) { - String line = (String) it.next(); - String str[] = line.split(":"); - volType = str[1]; - } - volType = volType.replaceAll(" ", ""); - return volType; - } - - /** - * 获取volumeName的状态 如果出错返回null,如果volumeName不存在则返回Volume volumeName does not - * exist,正常返回状态Started,Stopped,Created - * - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public String getVolumeStatus(String volumeName) { - log.info("get volume status"); - String volStatus = ""; - String cmd = Constant.glusterVolumeInfo + " " + volumeName + " |grep ^Status"; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("1701 get result is null"); - return null; - } - if (reStrings.size() == 0) { - log.error("1702 get result is nothing"); - return null; - } - - if (reStrings.get(0).contains("does not exist")) { - log.error("1703 " + reStrings.get(0)); - return reStrings.get(0); - } - if (!(reStrings.get(0).split(":")[0].contains("Status"))) { - log.error("1704 get result string wrong"); - return null; - } - for (Iterator it = reStrings.iterator(); it.hasNext();) { - String line = (String) it.next(); - String str[] = line.split(":"); - volStatus = str[1].replaceAll(" ", ""); - } - - return volStatus; - } - - /** - * 获取volumeName的可用大小 - * volumeName不存在返回-1,获取大小错误返回-2 ,正常返回volumeName的可用大小 - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public Long getVolumeAvailableSize(String volumeName) { - log.info("get volume availableSize"); - Long allSize = 0L; - - String cmd = Constant.df + " | grep " + volumeName + "|awk '{print $4}'"; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("1802 get result is error"); - return -2L; - } - if (reStrings.size() == 0) { - log.error("1801 " + volumeName + " is not exists!"); - return -1L; - } - allSize = Long.parseLong(reStrings.get(0)); - return allSize; - } - - /** - * 获取volumeName已用空间 - * volumeName不存在返回-1,获取大小错误返回-2 ,正常返回volumeName的已用的大小 - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public Long getVolumeUseSize(String volumeName) { - log.info("get volume used size"); - Long usedSize = 0L; - if (volumeIsExists(volumeName) == false) { - log.error("1901 " + volumeName + " is not exists!"); - return -1L; - - } - - String cmd = "df | grep " + volumeName + "|awk '{print $3}'"; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("1901 get result is null"); - return -2L; - } - if (reStrings.size() == 0) { - log.error("1902 " + volumeName + " is not exists!"); - return -1L; - } - usedSize = Long.parseLong(reStrings.get(0)); - return usedSize; - } - - /** - * 获取volumeName的bricks - * 返回一个bircks的list ip:path,如果volumeName不存在返回null - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public List getVolumeBricks(String volumeName) { - log.info("get volume bricks"); - - String cmd = "gluster volume info " + volumeName + " |grep ^Brick'[0-9]\\+' |awk '{print $2}'"; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("1601 get volume bricks wrong"); - return null; - } - if (reStrings.size()==0) { - log.error("1602 "+volumeName+" is not exists!"); - return null; - } - return reStrings; - } - - /** - * 获取volumeName所有挂载点 - * <功能详细描述> - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public List getVolumeMountPoint(String volumeName) { - log.info("get volume MountPoint"); - List mountPoints = new ArrayList<>(); - String cmd=Constant.df + "|grep " + volumeName + "|awk '{print $6}'"; - List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("11001 get result string wrong"); - return null; - } - if (reStrings.size() == 0) { - log.error("11002 " + volumeName + " is not exists or no mountpoint"); - return null; - } - - for (String mountPoint : reStrings) { - mountPoint = mountPoint.replaceAll(" ", ""); - mountPoints.add(mountPoint); - } - return mountPoints; - } - - public String getOneVolumeMountPoint(String volumeName) { - log.info("get one volume MountPoint"); - - String mountPoint=null; - - List mountpoints = getVolumeMountPoint(volumeName); - // System.out.println(reStrings); - if (mountpoints == null || mountpoints.size() == 0) { - log.error("11001 get result string wrong"); - return null; - } - - mountPoint=mountpoints.get(0); - return mountPoint; - } - - /** - * 获取volumeName的所有brick中数据占用空间的大小 - * 返回一个map表示bricks和数据大小 - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public Map getVolumebricksDataSize(String volumeName) { - List bricks = getVolumeBricks(volumeName); - Map brick_size = new HashMap<>(); - if (bricks == null) { - return null; - } - for (String brick : bricks) { - String ipAndpath[] = brick.split(":"); - String ip = ipAndpath[0]; - String path = ipAndpath[1]; - String cmd = "du -d 0 " + path + "|awk '{print $1}'"; - List reStrings = Constant.ganymedSSH.execCmdWait(ip, Constant.rootUser, Constant.rootPasswd, - Constant.port, cmd); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("1901 get result is null"); - return null; - } - if (reStrings.size() == 0) { - log.error("1902 "+brick+" is not exits!"); - return null; - } - Pattern pattern = Pattern.compile("[0-9]*"); - Matcher isNum = pattern.matcher(reStrings.get(0)); - if (!isNum.matches()) { - log.error("1903 " + reStrings.get(0) + " is unexpect"); - return null; - } - brick_size.put(brick, Double.parseDouble(reStrings.get(0))); - } - return brick_size; - } - - /** - * 获取volumeName的所有brick中可用空间大小 - * 返回一个map表示bricks和可用空间大小 - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public Map getVolumebricksAvailableSize(String volumeName) { - List bricks = getVolumeBricks(volumeName); - Map brick_size = new HashMap<>(); - if (bricks == null) { - return null; - } - for (String brick : bricks) { - String ipAndpath[] = brick.split(":"); - String ip = ipAndpath[0]; - String path = ipAndpath[1]; - String cmd = "df " + path + "|awk '{print $4}'"; - List reStrings = Constant.ganymedSSH.execCmdWait(ip, Constant.rootUser, Constant.rootPasswd, - Constant.port, cmd); - // System.out.println(reStrings); - if (reStrings == null) { - log.error("1901 get result is null"); - return null; - } - if (reStrings.size() == 0) { - log.error("1902 get result is nothing"); - return null; - } - Pattern pattern = Pattern.compile("[0-9]*"); - Matcher isNum = pattern.matcher(reStrings.get(1)); - if (!isNum.matches()) { - log.error("1903 " + reStrings.get(1) + " is unexpect"); - return null; - } - brick_size.put(brick, Double.parseDouble(reStrings.get(1))); - } - return brick_size; - } - - /** - * 判断volumeName是否存在,存在返回true,不存在返回false - * - * @param volumeName - * @return - * @see [类、类#方法、类#成员] - */ - public boolean volumeIsExists(String volumeName) { - List volumes = showAllVolumeName(); - if (volumes == null) { - return false; - } - if (volumes.contains(volumeName)) { - return true; - } - return false; - } - - // @Test - public void test_getVolumebricksDataSize() { - System.out.println(getVolumebricksDataSize("gfs_ftp")); - } - - // @Test - public void test_getVolumebricksAvailableSize() { - System.out.println(getVolumebricksAvailableSize("gfs_ftp")); - } - - // @Test - public void test_getVolumeBricks() { - getVolumeBricks("gfs_ftp"); - } - - @Test - public void test_getVolumeStatus() { - System.out.println(getVolumeStatus("gs_fp")); - } - - // @Test - public void test_getVolumeMountPoint() { - System.out.println(getVolumeMountPoint("gfs_ftp")); - System.out.println(getVolumeMountPoint("v1")); - } -} + +package com.platform.glusterfs; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; +import org.junit.Test; +import org.omg.CosNaming.NamingContextExtPackage.StringNameHelper; + +import com.platform.utils.Constant; +import com.platform.utils.GanymedSSH; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +/** + * 获取volume信息 <功能详细描述> + * + * @author liliy + * @version [版本号,2016年9月13日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ +public class VolumeInfo { + public static Logger log = Logger.getLogger(VolumeInfo.class); + + /** + * 显示所有volume名称 <功能详细描述> + * + * @return + * @see [类、类#方法、类#成员] + */ + public List showAllVolumeName() { + log.info("get volume name"); + List volNames = new ArrayList(); + + /* + * String command = "echo \"" + Constant.rootPasswd + + * "\" |sudo -S gluster volume info|grep ^Volume.Name"; RunCommand + * runCommand = new RunCommand(); List reStrings = + * runCommand.runCommandWait(command); + */ + List reStrings = Constant.ganymedSSH + .execCmdWaitAcquiescent(Constant.glusterVolumeInfo + "|grep ^Volume.Name"); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("1401 get result is null"); + return null; + } + if (reStrings.size() == 0) { + log.error("1402 get result is nothing"); + return null; + } + if (reStrings.get(0).contains(Constant.noVolume)) { + reStrings.clear(); + return reStrings; + } + if (!(reStrings.get(0).split(":")[0].contains("Volume Name"))) { + log.error("1403 get result string wrong"); + return null; + } + + String nameInfo = ""; + for (Iterator it = reStrings.iterator(); it.hasNext();) { + String line = (String) it.next(); + String str[] = line.split(":"); + volNames.add(str[1].replaceAll(" ", "")); + } + return volNames; + + } + + /** + * 给定参数volume的名称获得volume的类型 + * + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public String getVolumeType(String volumeName) { + log.info("get volume type"); + String volType = ""; + + List reStrings = Constant.ganymedSSH + .execCmdWaitAcquiescent(Constant.glusterVolumeInfo + volumeName + "|grep ^Type"); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("1501 get result is null"); + return null; + } + if (reStrings.size() == 0) { + log.error("1502 get result is nothing"); + return null; + } + if (!(reStrings.get(0).split(":")[0].contains("Type"))) { + log.error("1503 get result string wrong"); + return null; + } + + // System.out.println(reStrings); + + for (Iterator it = reStrings.iterator(); it.hasNext();) { + String line = (String) it.next(); + String str[] = line.split(":"); + volType = str[1]; + } + volType = volType.replaceAll(" ", ""); + return volType; + } + + /** + * 获取volumeName的状态 如果出错返回null,如果volumeName不存在则返回Volume volumeName does not + * exist,正常返回状态Started,Stopped,Created + * + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public String getVolumeStatus(String volumeName) { + log.info("get volume status"); + String volStatus = ""; + String cmd = Constant.glusterVolumeInfo + " " + volumeName + " |grep ^Status"; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("1701 get result is null"); + return null; + } + if (reStrings.size() == 0) { + log.error("1702 get result is nothing"); + return null; + } + + if (reStrings.get(0).contains("does not exist")) { + log.error("1703 " + reStrings.get(0)); + return reStrings.get(0); + } + if (!(reStrings.get(0).split(":")[0].contains("Status"))) { + log.error("1704 get result string wrong"); + return null; + } + for (Iterator it = reStrings.iterator(); it.hasNext();) { + String line = (String) it.next(); + String str[] = line.split(":"); + volStatus = str[1].replaceAll(" ", ""); + } + + return volStatus; + } + + /** + * 获取volumeName的可用大小 + * volumeName不存在返回-1,获取大小错误返回-2 ,正常返回volumeName的可用大小 + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public Long getVolumeAvailableSize(String volumeName) { + log.info("get volume availableSize"); + Long allSize = 0L; + + String cmd = Constant.df + " | grep " + volumeName + "|awk '{print $4}'"; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("1802 get result is error"); + return -2L; + } + if (reStrings.size() == 0) { + log.error("1801 " + volumeName + " is not exists!"); + return -1L; + } + allSize = Long.parseLong(reStrings.get(0)); + return allSize; + } + + /** + * 获取volumeName已用空间 + * volumeName不存在返回-1,获取大小错误返回-2 ,正常返回volumeName的已用的大小 + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public Long getVolumeUseSize(String volumeName) { + log.info("get volume used size"); + Long usedSize = 0L; + if (volumeIsExists(volumeName) == false) { + log.error("1901 " + volumeName + " is not exists!"); + return -1L; + + } + + String cmd = "df | grep " + volumeName + "|awk '{print $3}'"; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("1901 get result is null"); + return -2L; + } + if (reStrings.size() == 0) { + log.error("1902 " + volumeName + " is not exists!"); + return -1L; + } + usedSize = Long.parseLong(reStrings.get(0)); + return usedSize; + } + + /** + * 获取volumeName的bricks + * 返回一个bircks的list ip:path,如果volumeName不存在返回null + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public List getVolumeBricks(String volumeName) { + log.info("get volume bricks"); + + String cmd = "gluster volume info " + volumeName + " |grep ^Brick'[0-9]\\+' |awk '{print $2}'"; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("1601 get volume bricks wrong"); + return null; + } + if (reStrings.size()==0) { + log.error("1602 "+volumeName+" is not exists!"); + return null; + } + return reStrings; + } + + /** + * 获取volumeName所有挂载点 + * <功能详细描述> + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public List getVolumeMountPoint(String volumeName) { + log.info("get volume MountPoint"); + List mountPoints = new ArrayList<>(); + String cmd=Constant.df + "|grep " + volumeName + "|awk '{print $6}'"; + List reStrings = Constant.ganymedSSH.execCmdWaitAcquiescent(cmd); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("11001 get result string wrong"); + return null; + } + if (reStrings.size() == 0) { + log.error("11002 " + volumeName + " is not exists or no mountpoint"); + return null; + } + + for (String mountPoint : reStrings) { + mountPoint = mountPoint.replaceAll(" ", ""); + mountPoints.add(mountPoint); + } + return mountPoints; + } + + public String getOneVolumeMountPoint(String volumeName) { + log.info("get one volume MountPoint"); + + String mountPoint=null; + + List mountpoints = getVolumeMountPoint(volumeName); + // System.out.println(reStrings); + if (mountpoints == null || mountpoints.size() == 0) { + log.error("11001 get result string wrong"); + return null; + } + + mountPoint=mountpoints.get(0); + return mountPoint; + } + + /** + * 获取volumeName的所有brick中数据占用空间的大小 + * 返回一个map表示bricks和数据大小 + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public Map getVolumebricksDataSize(String volumeName) { + List bricks = getVolumeBricks(volumeName); + Map brick_size = new HashMap<>(); + if (bricks == null) { + return null; + } + for (String brick : bricks) { + String ipAndpath[] = brick.split(":"); + String ip = ipAndpath[0]; + String path = ipAndpath[1]; + String cmd = "du -d 0 " + path + "|awk '{print $1}'"; + List reStrings = Constant.ganymedSSH.execCmdWait(ip, Constant.rootUser, Constant.rootPasswd, + Constant.port, cmd); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("1901 get result is null"); + return null; + } + if (reStrings.size() == 0) { + log.error("1902 "+brick+" is not exits!"); + return null; + } + Pattern pattern = Pattern.compile("[0-9]*"); + Matcher isNum = pattern.matcher(reStrings.get(0)); + if (!isNum.matches()) { + log.error("1903 " + reStrings.get(0) + " is unexpect"); + return null; + } + brick_size.put(brick, Double.parseDouble(reStrings.get(0))); + } + return brick_size; + } + + /** + * 获取volumeName的所有brick中可用空间大小 + * 返回一个map表示bricks和可用空间大小 + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public Map getVolumebricksAvailableSize(String volumeName) { + List bricks = getVolumeBricks(volumeName); + Map brick_size = new HashMap<>(); + if (bricks == null) { + return null; + } + for (String brick : bricks) { + String ipAndpath[] = brick.split(":"); + String ip = ipAndpath[0]; + String path = ipAndpath[1]; + String cmd = "df " + path + "|awk '{print $4}'"; + List reStrings = Constant.ganymedSSH.execCmdWait(ip, Constant.rootUser, Constant.rootPasswd, + Constant.port, cmd); + // System.out.println(reStrings); + if (reStrings == null) { + log.error("1901 get result is null"); + return null; + } + if (reStrings.size() == 0) { + log.error("1902 get result is nothing"); + return null; + } + Pattern pattern = Pattern.compile("[0-9]*"); + Matcher isNum = pattern.matcher(reStrings.get(1)); + if (!isNum.matches()) { + log.error("1903 " + reStrings.get(1) + " is unexpect"); + return null; + } + brick_size.put(brick, Double.parseDouble(reStrings.get(1))); + } + return brick_size; + } + + /** + * 判断volumeName是否存在,存在返回true,不存在返回false + * + * @param volumeName + * @return + * @see [类、类#方法、类#成员] + */ + public boolean volumeIsExists(String volumeName) { + List volumes = showAllVolumeName(); + if (volumes == null) { + return false; + } + if (volumes.contains(volumeName)) { + return true; + } + return false; + } + + // @Test + public void test_getVolumebricksDataSize() { + System.out.println(getVolumebricksDataSize("gfs_ftp")); + } + + // @Test + public void test_getVolumebricksAvailableSize() { + System.out.println(getVolumebricksAvailableSize("gfs_ftp")); + } + + // @Test + public void test_getVolumeBricks() { + getVolumeBricks("gfs_ftp"); + } + + @Test + public void test_getVolumeStatus() { + System.out.println(getVolumeStatus("gs_fp")); + } + + // @Test + public void test_getVolumeMountPoint() { + System.out.println(getVolumeMountPoint("gfs_ftp")); + System.out.println(getVolumeMountPoint("v1")); + } +} diff --git a/src/com/platform/kubernetes/SimpleKubeClient.java b/src/com/platform/kubernetes/SimpleKubeClient.java index 743623f2..ab1ab367 100644 --- a/src/com/platform/kubernetes/SimpleKubeClient.java +++ b/src/com/platform/kubernetes/SimpleKubeClient.java @@ -1,154 +1,154 @@ -package com.platform.kubernetes; - -import io.fabric8.kubernetes.api.model.Container; -import io.fabric8.kubernetes.api.model.ContainerPort; -import io.fabric8.kubernetes.api.model.Pod; -import io.fabric8.kubernetes.api.model.ReplicationController; -import io.fabric8.kubernetes.client.Config; -import io.fabric8.kubernetes.client.ConfigBuilder; -import io.fabric8.kubernetes.client.DefaultKubernetesClient; -import io.fabric8.kubernetes.client.KubernetesClient; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import com.platform.utils.Configs; -import com.platform.utils.UtilsHelper; - -public class SimpleKubeClient { - private KubernetesClient client; - private final static String DEFAULT_NAMESPACE = "default"; - - public SimpleKubeClient() { - this.client = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); - } - - public SimpleKubeClient(String masterUrl) { - this.client = new DefaultKubernetesClient(masterUrl); - } - - public SimpleKubeClient(Config config) { - Config cf = config; - if (null == config) { - cf = new ConfigBuilder().withMasterUrl(Configs.KUBE_MASTER_URL).build(); - } - this.client = new DefaultKubernetesClient(cf); - } - - public void updateOrAddReplicasLabelById(String namespace, - String resourceId, String key, String value) { - KubernetesClient kubeClient = client; - if (checkClientNull()) - kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); - kubeClient.replicationControllers().inNamespace(namespace) - .withName(resourceId).edit().editMetadata() - .addToLabels(key, value).endMetadata().done(); - } - - public void updateOrAddReplicasLabelByEntity(String namespace, - ReplicationController replicas, String key, String value) { - updateOrAddReplicasLabelById(namespace, replicas.getMetadata() - .getName(), key, value); - } - - public void updateOrAddReplicasLabelById(String resourceId, String key, - String value) { - updateOrAddReplicasLabelById(DEFAULT_NAMESPACE, resourceId, key, value); - } - - public void updateOrAddReplicasLabelByEntity( - ReplicationController replicas, String key, String value) { - updateOrAddReplicasLabelByEntity(DEFAULT_NAMESPACE, replicas, key, - value); - } - - @SuppressWarnings("resource") - public ReplicationController getReplicationController(String namespace, - String replicasName) { - KubernetesClient kubeClient = client; - if (checkClientNull()) - kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); - return kubeClient.replicationControllers().inNamespace(namespace) - .withName(replicasName).get(); - } - - public ReplicationController getReplicationController(String replicasName) { - return getReplicationController(DEFAULT_NAMESPACE, replicasName); - } - - @SuppressWarnings("resource") - public List getPodsForApplicaList(ReplicationController rc) { - Map selector = rc.getSpec().getSelector(); - KubernetesClient kubeClient = client; - if (checkClientNull()) - kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); - List podList = kubeClient.pods() - .inNamespace(rc.getMetadata().getNamespace()).list().getItems(); - return getPods(podList, selector); - } - - private boolean checkClientNull() { - return null == client; - } - - public List getPods(List pods, Map selector) { - List result = new ArrayList(); - for (int i = 0; i < pods.size(); i++) - if (UtilsHelper.isSubMap(getLabels(pods.get(i)), selector)) - result.add(pods.get(i)); - return result; - } - - private Map getLabels(Pod pod) { - return pod.getMetadata().getLabels(); - } - - public KubernetesClient getClient() { - // TODO Auto-generated method stub - return client; - } - - public int getPodContainerport(Pod pod) { - int port = Configs.ORACLE_DEFAULT_PORT; - List containers = pod.getSpec().getContainers(); - if (null != containers && containers.size() > 0) { - List ports = containers.get(0).getPorts(); - if (null != ports && ports.size() > 0) - port = ports.get(0).getHostPort(); - } - return port; - } - - public String getPodHostIp(Pod pod) { - return pod.getSpec().getNodeName(); - } - - @SuppressWarnings("resource") - public Map getReplicationControllerList( - String namespace) { - KubernetesClient kubeClient = client; - Map rcMap = new HashMap(); - if (checkClientNull()) - kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); - List replicasList = kubeClient - .replicationControllers().list().getItems(); - if (replicasList != null) - for (int i = 0; i < replicasList.size(); i++) { - ReplicationController rController = replicasList.get(i); - rcMap.put(rController.getMetadata().getName(), rController); - } - return rcMap; - } - - public Map getReplicationControllerList() { - return getReplicationControllerList(DEFAULT_NAMESPACE); - } - - public void close() { - if (!checkClientNull()) - client.close(); - } - -} +package com.platform.kubernetes; + +import io.fabric8.kubernetes.api.model.Container; +import io.fabric8.kubernetes.api.model.ContainerPort; +import io.fabric8.kubernetes.api.model.Pod; +import io.fabric8.kubernetes.api.model.ReplicationController; +import io.fabric8.kubernetes.client.Config; +import io.fabric8.kubernetes.client.ConfigBuilder; +import io.fabric8.kubernetes.client.DefaultKubernetesClient; +import io.fabric8.kubernetes.client.KubernetesClient; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.platform.utils.Configs; +import com.platform.utils.UtilsHelper; + +public class SimpleKubeClient { + private KubernetesClient client; + private final static String DEFAULT_NAMESPACE = "default"; + + public SimpleKubeClient() { + this.client = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); + } + + public SimpleKubeClient(String masterUrl) { + this.client = new DefaultKubernetesClient(masterUrl); + } + + public SimpleKubeClient(Config config) { + Config cf = config; + if (null == config) { + cf = new ConfigBuilder().withMasterUrl(Configs.KUBE_MASTER_URL).build(); + } + this.client = new DefaultKubernetesClient(cf); + } + + public void updateOrAddReplicasLabelById(String namespace, + String resourceId, String key, String value) { + KubernetesClient kubeClient = client; + if (checkClientNull()) + kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); + kubeClient.replicationControllers().inNamespace(namespace) + .withName(resourceId).edit().editMetadata() + .addToLabels(key, value).endMetadata().done(); + } + + public void updateOrAddReplicasLabelByEntity(String namespace, + ReplicationController replicas, String key, String value) { + updateOrAddReplicasLabelById(namespace, replicas.getMetadata() + .getName(), key, value); + } + + public void updateOrAddReplicasLabelById(String resourceId, String key, + String value) { + updateOrAddReplicasLabelById(DEFAULT_NAMESPACE, resourceId, key, value); + } + + public void updateOrAddReplicasLabelByEntity( + ReplicationController replicas, String key, String value) { + updateOrAddReplicasLabelByEntity(DEFAULT_NAMESPACE, replicas, key, + value); + } + + @SuppressWarnings("resource") + public ReplicationController getReplicationController(String namespace, + String replicasName) { + KubernetesClient kubeClient = client; + if (checkClientNull()) + kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); + return kubeClient.replicationControllers().inNamespace(namespace) + .withName(replicasName).get(); + } + + public ReplicationController getReplicationController(String replicasName) { + return getReplicationController(DEFAULT_NAMESPACE, replicasName); + } + + @SuppressWarnings("resource") + public List getPodsForApplicaList(ReplicationController rc) { + Map selector = rc.getSpec().getSelector(); + KubernetesClient kubeClient = client; + if (checkClientNull()) + kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); + List podList = kubeClient.pods() + .inNamespace(rc.getMetadata().getNamespace()).list().getItems(); + return getPods(podList, selector); + } + + private boolean checkClientNull() { + return null == client; + } + + public List getPods(List pods, Map selector) { + List result = new ArrayList(); + for (int i = 0; i < pods.size(); i++) + if (UtilsHelper.isSubMap(getLabels(pods.get(i)), selector)) + result.add(pods.get(i)); + return result; + } + + private Map getLabels(Pod pod) { + return pod.getMetadata().getLabels(); + } + + public KubernetesClient getClient() { + // TODO Auto-generated method stub + return client; + } + + public int getPodContainerport(Pod pod) { + int port = Configs.ORACLE_DEFAULT_PORT; + List containers = pod.getSpec().getContainers(); + if (null != containers && containers.size() > 0) { + List ports = containers.get(0).getPorts(); + if (null != ports && ports.size() > 0) + port = ports.get(0).getHostPort(); + } + return port; + } + + public String getPodHostIp(Pod pod) { + return pod.getSpec().getNodeName(); + } + + @SuppressWarnings("resource") + public Map getReplicationControllerList( + String namespace) { + KubernetesClient kubeClient = client; + Map rcMap = new HashMap(); + if (checkClientNull()) + kubeClient = new DefaultKubernetesClient(Configs.KUBE_MASTER_URL); + List replicasList = kubeClient + .replicationControllers().list().getItems(); + if (replicasList != null) + for (int i = 0; i < replicasList.size(); i++) { + ReplicationController rController = replicasList.get(i); + rcMap.put(rController.getMetadata().getName(), rController); + } + return rcMap; + } + + public Map getReplicationControllerList() { + return getReplicationControllerList(DEFAULT_NAMESPACE); + } + + public void close() { + if (!checkClientNull()) + client.close(); + } + +} diff --git a/src/com/platform/oracle/OracleConnector.java b/src/com/platform/oracle/OracleConnector.java index 90f29a7d..ddbb0f3b 100644 --- a/src/com/platform/oracle/OracleConnector.java +++ b/src/com/platform/oracle/OracleConnector.java @@ -1,79 +1,79 @@ -package com.platform.oracle; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.sql.Statement; - -import javax.validation.constraints.Pattern.Flag; - -import com.platform.utils.Configs; - -public class OracleConnector { - static { - try { - Class.forName("oracle.jdbc.driver.OracleDriver"); - Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功"); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - public static Connection ConnectionBuilder(String url, String user, - String password) { - Connection conn = null; - try { - - conn = DriverManager.getConnection(url, user, password); - } catch (SQLException e) { - return conn; - } - - return conn; - } - - public static boolean canConnect(String url, String user, String password) { - return (null != ConnectionBuilder(url, user, password)); - } - - public ResultSet getSQLExecResultSet(Connection conn, String sql) { - ResultSet resultSet = null; - try { - Statement statement = conn - .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, - ResultSet.CONCUR_UPDATABLE); - resultSet = statement.executeQuery(sql); - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - return resultSet; - } - - public ResultSet getSQLExecResultSet(String url, String user, - String password, String sql) { - return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql); - } - - /** - * 执行对oracle数据库的增、删 - * @param conn - * @param sql - * @return 是否执行成功 - */ - public boolean execOracleSQL(Connection conn, String sql) { - boolean flag = false; - try { - Statement statement = conn.createStatement(); - if (statement.executeUpdate(sql) > 0) - flag = true; - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return flag; - } -} +package com.platform.oracle; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import javax.validation.constraints.Pattern.Flag; + +import com.platform.utils.Configs; + +public class OracleConnector { + static { + try { + Class.forName("oracle.jdbc.driver.OracleDriver"); + Configs.CONSOLE_LOGGER.info("Oracle驱动加载成功"); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + public static Connection ConnectionBuilder(String url, String user, + String password) { + Connection conn = null; + try { + + conn = DriverManager.getConnection(url, user, password); + } catch (SQLException e) { + return conn; + } + + return conn; + } + + public static boolean canConnect(String url, String user, String password) { + return (null != ConnectionBuilder(url, user, password)); + } + + public ResultSet getSQLExecResultSet(Connection conn, String sql) { + ResultSet resultSet = null; + try { + Statement statement = conn + .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, + ResultSet.CONCUR_UPDATABLE); + resultSet = statement.executeQuery(sql); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + return resultSet; + } + + public ResultSet getSQLExecResultSet(String url, String user, + String password, String sql) { + return getSQLExecResultSet(ConnectionBuilder(url, user, password), sql); + } + + /** + * 执行对oracle数据库的增、删 + * @param conn + * @param sql + * @return 是否执行成功 + */ + public boolean execOracleSQL(Connection conn, String sql) { + boolean flag = false; + try { + Statement statement = conn.createStatement(); + if (statement.executeUpdate(sql) > 0) + flag = true; + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return flag; + } +} diff --git a/src/com/platform/service/DataInfoService.java b/src/com/platform/service/DataInfoService.java index c08d0850..c2e93ad2 100644 --- a/src/com/platform/service/DataInfoService.java +++ b/src/com/platform/service/DataInfoService.java @@ -1,16 +1,16 @@ - -package com.platform.service; - -import org.springframework.ui.ModelMap; - -import com.platform.dao.DataInfoDao; -import com.platform.entities.DataInfoEntity; -import com.platform.entities.PagerOptions; - -public interface DataInfoService { - public ModelMap getPagerTableData(PagerOptions pagerOptions); - - void deleteData(String[] id) throws Exception; - - int save(DataInfoEntity data) throws Exception; -} + +package com.platform.service; + +import org.springframework.ui.ModelMap; + +import com.platform.dao.DataInfoDao; +import com.platform.entities.DataInfoEntity; +import com.platform.entities.PagerOptions; + +public interface DataInfoService { + public ModelMap getPagerTableData(PagerOptions pagerOptions); + + void deleteData(String[] id) throws Exception; + + int save(DataInfoEntity data) throws Exception; +} diff --git a/src/com/platform/service/DataInfoServiceImp.java b/src/com/platform/service/DataInfoServiceImp.java index 47aeb118..50e3a0bd 100644 --- a/src/com/platform/service/DataInfoServiceImp.java +++ b/src/com/platform/service/DataInfoServiceImp.java @@ -1,77 +1,77 @@ -package com.platform.service; - -import java.util.ArrayList; -import java.util.List; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Service; -import org.springframework.ui.ModelMap; - -import com.platform.dao.DataInfoDao; -import com.platform.entities.DataInfoEntity; -import com.platform.entities.PagerOptions; - -@Service(value = "dataInfoService") -public class DataInfoServiceImp implements DataInfoService { - @Resource(name = "dataInfoDao") - private DataInfoDao dfdDao; - - public void setDfdDao(DataInfoDao dfdDao) { - this.dfdDao = dfdDao; - } - - @Override - public ModelMap getPagerTableData(PagerOptions pagerOptions) { - // TODO Auto-generated method stub - ModelMap modelMap = new ModelMap(); - int count = dfdDao.getLimitedDataCount(pagerOptions); //获取总记录条数 - System.out.println("total colume " + count); - int offset = 0; - if (pagerOptions.getCurrentPageNum() > 1) { - pagerOptions.setTotalLimit((pagerOptions.getCurrentPageNum() - 1) - * pagerOptions.getPriorTableSize()); - offset = dfdDao.getLimitedBeginId(pagerOptions); //获取起始查询id - System.out.println(offset); - } - pagerOptions.setOffset(offset + 1); - List result = dfdDao - .getLimitedDataInfoEntities(pagerOptions); - modelMap.addAttribute("data", result); - modelMap.addAttribute("length", count); - return modelMap; - } - - @Override - public void deleteData(String[] id) throws Exception { - // TODO Auto-generated method stub - List ids = new ArrayList(); - for(String idx: id){ - ids.add(Integer.parseInt(idx)); - } - if (ids.size() > 0) { - //数据在不在? - List paths = dfdDao.getIdIsExist(ids); - if(paths.size()>0){ - //删除文件操作 - for (int i = 0; i < paths.size(); i++) { - System.out.println(paths.get(i)); - } - //删除数据库记录 - dfdDao.removes(ids); - } - } - } - - @Override - public int save(DataInfoEntity data) throws Exception { - int result = 0; - try { - result = dfdDao.save(data); - } catch (Exception e) { - // TODO: handle exception - System.out.println(""); - } - return result; - } -} +package com.platform.service; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; +import org.springframework.ui.ModelMap; + +import com.platform.dao.DataInfoDao; +import com.platform.entities.DataInfoEntity; +import com.platform.entities.PagerOptions; + +@Service(value = "dataInfoService") +public class DataInfoServiceImp implements DataInfoService { + @Resource(name = "dataInfoDao") + private DataInfoDao dfdDao; + + public void setDfdDao(DataInfoDao dfdDao) { + this.dfdDao = dfdDao; + } + + @Override + public ModelMap getPagerTableData(PagerOptions pagerOptions) { + // TODO Auto-generated method stub + ModelMap modelMap = new ModelMap(); + int count = dfdDao.getLimitedDataCount(pagerOptions); //获取总记录条数 + System.out.println("total colume " + count); + int offset = 0; + if (pagerOptions.getCurrentPageNum() > 1) { + pagerOptions.setTotalLimit((pagerOptions.getCurrentPageNum() - 1) + * pagerOptions.getPriorTableSize()); + offset = dfdDao.getLimitedBeginId(pagerOptions); //获取起始查询id + System.out.println(offset); + } + pagerOptions.setOffset(offset + 1); + List result = dfdDao + .getLimitedDataInfoEntities(pagerOptions); + modelMap.addAttribute("data", result); + modelMap.addAttribute("length", count); + return modelMap; + } + + @Override + public void deleteData(String[] id) throws Exception { + // TODO Auto-generated method stub + List ids = new ArrayList(); + for(String idx: id){ + ids.add(Integer.parseInt(idx)); + } + if (ids.size() > 0) { + //数据在不在? + List paths = dfdDao.getIdIsExist(ids); + if(paths.size()>0){ + //删除文件操作 + for (int i = 0; i < paths.size(); i++) { + System.out.println(paths.get(i)); + } + //删除数据库记录 + dfdDao.removes(ids); + } + } + } + + @Override + public int save(DataInfoEntity data) throws Exception { + int result = 0; + try { + result = dfdDao.save(data); + } catch (Exception e) { + // TODO: handle exception + System.out.println(""); + } + return result; + } +} diff --git a/src/com/platform/service/EncodeInfoService.java b/src/com/platform/service/EncodeInfoService.java index 36a200bc..1da621a2 100644 --- a/src/com/platform/service/EncodeInfoService.java +++ b/src/com/platform/service/EncodeInfoService.java @@ -1,20 +1,20 @@ -package com.platform.service; - -import java.util.List; - -import com.platform.entities.EncodedInfoEntity; - -/** - * 数据库业务逻辑处理接口 - * - * @author wuming - * - */ -public interface EncodeInfoService { - - public List getAllEncodeInfo(String tableName); - - public int deleteEncodeByCode(String code, String tableName); - - public String getEncodeNameByCode(String code, String name); -} +package com.platform.service; + +import java.util.List; + +import com.platform.entities.EncodedInfoEntity; + +/** + * 数据库业务逻辑处理接口 + * + * @author wuming + * + */ +public interface EncodeInfoService { + + public List getAllEncodeInfo(String tableName); + + public int deleteEncodeByCode(String code, String tableName); + + public String getEncodeNameByCode(String code, String name); +} diff --git a/src/com/platform/service/EncodeInfoServiceImpl.java b/src/com/platform/service/EncodeInfoServiceImpl.java index 8492485d..4a403ec3 100644 --- a/src/com/platform/service/EncodeInfoServiceImpl.java +++ b/src/com/platform/service/EncodeInfoServiceImpl.java @@ -1,52 +1,52 @@ -package com.platform.service; - -import java.util.List; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Service; - -import com.platform.dao.EncodeInfoDao; -import com.platform.entities.EncodedInfoEntity; - -/** - * 业务逻辑的具体实现类 - * - * @author wuming - * - */ -@Service("encodeInfoService") -public class EncodeInfoServiceImpl implements EncodeInfoService { - - @Resource(name = "encodeInfoDao") - private EncodeInfoDao eiDao; - - public void setEiDao(EncodeInfoDao eiDao) { - this.eiDao = eiDao; - } - - /** - * 根据传递的tableName参数获取对应实体信息(行政区划/系统) - */ - @Override - public List getAllEncodeInfo(String tableName) { - return eiDao.getAllEntityInfo(tableName); - - } - - /** - * 测试事物 - */ - @Override - public int deleteEncodeByCode(String code, String tableName) { - // TODO Auto-generated method stub - int cursor = eiDao.deleteEncodeByCode(code, tableName); - //cursor = cursor / 0; - return cursor; - } - - @Override - public String getEncodeNameByCode(String code, String tableName) { - return eiDao.getEncodeNameByCode(code, tableName); - } -} +package com.platform.service; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.platform.dao.EncodeInfoDao; +import com.platform.entities.EncodedInfoEntity; + +/** + * 业务逻辑的具体实现类 + * + * @author wuming + * + */ +@Service("encodeInfoService") +public class EncodeInfoServiceImpl implements EncodeInfoService { + + @Resource(name = "encodeInfoDao") + private EncodeInfoDao eiDao; + + public void setEiDao(EncodeInfoDao eiDao) { + this.eiDao = eiDao; + } + + /** + * 根据传递的tableName参数获取对应实体信息(行政区划/系统) + */ + @Override + public List getAllEncodeInfo(String tableName) { + return eiDao.getAllEntityInfo(tableName); + + } + + /** + * 测试事物 + */ + @Override + public int deleteEncodeByCode(String code, String tableName) { + // TODO Auto-generated method stub + int cursor = eiDao.deleteEncodeByCode(code, tableName); + //cursor = cursor / 0; + return cursor; + } + + @Override + public String getEncodeNameByCode(String code, String tableName) { + return eiDao.getEncodeNameByCode(code, tableName); + } +} diff --git a/src/com/platform/service/ICodeService.java b/src/com/platform/service/ICodeService.java index 4f76bc75..32f13477 100644 --- a/src/com/platform/service/ICodeService.java +++ b/src/com/platform/service/ICodeService.java @@ -1,37 +1,40 @@ - -/** - * 文件名 : IGfsService.java - * 版权 : <版权/公司名> - * 描述 : <描述> - * @author chen - * 版本 : <版本> - * 修改时间: 2016年9月8日 - * 修改内容: <修改内容> - */ -package com.platform.service; - - -import java.util.List; - -import com.platform.entities.FolderNode; -import com.platform.entities.RegionalismEntity; -import com.platform.entities.SystemEntity; -import com.platform.entities.VolumeEntity; - - -/** - * <一句话功能简述> - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ - -public interface ICodeService { - - public List findSystem(SystemEntity sys) throws Exception; - - public List findRegionalism(RegionalismEntity region) throws Exception; - -} + +/** + * 文件名 : IGfsService.java + * 版权 : <版权/公司名> + * 描述 : <描述> + * @author chen + * 版本 : <版本> + * 修改时间: 2016年9月8日 + * 修改内容: <修改内容> + */ +package com.platform.service; + + +import java.util.List; +import java.util.Map; + +import com.platform.entities.FolderNode; +import com.platform.entities.RegionalismEntity; +import com.platform.entities.SystemEntity; +import com.platform.entities.VolumeEntity; + + +/** + * <一句话功能简述> + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ + +public interface ICodeService { + + public List findSystem(SystemEntity sys) throws Exception; + + public List findRegionalism(RegionalismEntity region) throws Exception; + + public Map findAll() throws Exception; + +} diff --git a/src/com/platform/service/IGfsService.java b/src/com/platform/service/IGfsService.java index e8a693fb..84a4e21a 100644 --- a/src/com/platform/service/IGfsService.java +++ b/src/com/platform/service/IGfsService.java @@ -1,76 +1,76 @@ - -/** - * 文件名 : IGfsService.java - * 版权 : <版权/公司名> - * 描述 : <描述> - * @author chen - * 版本 : <版本> - * 修改时间: 2016年9月8日 - * 修改内容: <修改内容> - */ -package com.platform.service; - - -import java.util.List; - -import com.platform.entities.FolderNode; -import com.platform.entities.VolumeEntity; - - -/** - * <一句话功能简述> - * <功能详细描述> - * @author chen - * @version [版本号,2016年9月8日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ - -public interface IGfsService { - - /** - * <一句话功能简述> 查找path,的所有子目录 - * <功能详细描述> - * @param path - * @return - * @throws Exception - * @see [类、类#方法、类#成员] - */ - public FolderNode getFolder(String path) throws Exception; - - /** - * <一句话功能简述> 复制path,的所有子目录 - * <功能详细描述> - * @param srcPath - * @param dstPath - * @return - * @throws Exception - * @see [类、类#方法、类#成员] - */ - - public int copyFolder(List srcFolders, String dstFolder, String name) throws Exception; - - /** - * <一句话功能简述> 获得volume下的 name \ allsize \ usedsize \ folderTree \ brick - * <功能详细描述> - * @return - * @throws Exception - * @see [类、类#方法、类#成员] - */ - public List getAllVolumes() throws Exception; - - /** - * <一句话功能简述> - * <功能详细描述> - * @return - * @throws Exception - * @see [类、类#方法、类#成员] - */ - public VolumeEntity getOneVolume(String volumeName) throws Exception; - - public int moveData(String volumeName, String srcPath, String dstPath) throws Exception; - - public int deleteData(String volumeName, String srcPath) throws Exception; - - -} + +/** + * 文件名 : IGfsService.java + * 版权 : <版权/公司名> + * 描述 : <描述> + * @author chen + * 版本 : <版本> + * 修改时间: 2016年9月8日 + * 修改内容: <修改内容> + */ +package com.platform.service; + + +import java.util.List; + +import com.platform.entities.FolderNode; +import com.platform.entities.VolumeEntity; + + +/** + * <一句话功能简述> + * <功能详细描述> + * @author chen + * @version [版本号,2016年9月8日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ + +public interface IGfsService { + + /** + * <一句话功能简述> 查找path,的所有子目录 + * <功能详细描述> + * @param path + * @return + * @throws Exception + * @see [类、类#方法、类#成员] + */ + public FolderNode getFolder(String path) throws Exception; + + /** + * <一句话功能简述> 复制path,的所有子目录 + * <功能详细描述> + * @param srcPath + * @param dstPath + * @return + * @throws Exception + * @see [类、类#方法、类#成员] + */ + + public int copyFolder(List srcFolders, String dstFolder, String name) throws Exception; + + /** + * <一句话功能简述> 获得volume下的 name \ allsize \ usedsize \ folderTree \ brick + * <功能详细描述> + * @return + * @throws Exception + * @see [类、类#方法、类#成员] + */ + public List getAllVolumes() throws Exception; + + /** + * <一句话功能简述> + * <功能详细描述> + * @return + * @throws Exception + * @see [类、类#方法、类#成员] + */ + public VolumeEntity getOneVolume(String volumeName) throws Exception; + + public int moveData(String volumeName, String srcPath, String dstPath) throws Exception; + + public int deleteData(String volumeName, String srcPath) throws Exception; + + +} diff --git a/src/com/platform/service/IMoveDataService.java b/src/com/platform/service/IMoveDataService.java index bddb1e04..84cb4c5e 100644 --- a/src/com/platform/service/IMoveDataService.java +++ b/src/com/platform/service/IMoveDataService.java @@ -1,40 +1,40 @@ -package com.platform.service; - -import java.util.List; - -import com.platform.entities.DataInfoEntity; -import com.platform.entities.DataInfoEntityMoveTmp; - -/** 数据迁移 - * @author chen - * - */ -public interface IMoveDataService { - - /** 迁移(新增) - * @param a dataInfo实体 - * @param dstPath volume下的某个folder路径(需要补齐路径,eg: XXX/320198_16/1,or XXX/320122KFQ_15/1) - * @return - * @throws Exception - */ - public boolean moveData(List data, String dstPath) throws Exception; - - /** 查询所有进度 - * @return 返回所有的实体 - * @throws Exception - */ - public List findAll() throws Exception; - - /** 删除 - * @return - * @throws Exception - */ - public int delete(DataInfoEntityMoveTmp dataMove) throws Exception; - - public int update(DataInfoEntityMoveTmp data) throws Exception; - - public int save(DataInfoEntityMoveTmp data) throws Exception; - - public int insertBatch(List list) throws Exception; - -} +package com.platform.service; + +import java.util.List; + +import com.platform.entities.DataInfoEntity; +import com.platform.entities.DataInfoEntityMoveTmp; + +/** 数据迁移 + * @author chen + * + */ +public interface IMoveDataService { + + /** 迁移(新增) + * @param a dataInfo实体 + * @param dstPath volume下的某个folder路径(需要补齐路径,eg: XXX/320198_16/1,or XXX/320122KFQ_15/1) + * @return + * @throws Exception + */ + public boolean moveData(List data, String dstPath) throws Exception; + + /** 查询所有进度 + * @return 返回所有的实体 + * @throws Exception + */ + public List findAll() throws Exception; + + /** 删除 + * @return + * @throws Exception + */ + public int delete(DataInfoEntityMoveTmp dataMove) throws Exception; + + public int update(DataInfoEntityMoveTmp data) throws Exception; + + public int save(DataInfoEntityMoveTmp data) throws Exception; + + public int insertBatch(List list) throws Exception; + +} diff --git a/src/com/platform/service/IMySqlService.java b/src/com/platform/service/IMySqlService.java index 4ab96ab0..a49dde61 100644 --- a/src/com/platform/service/IMySqlService.java +++ b/src/com/platform/service/IMySqlService.java @@ -1,25 +1,25 @@ -package com.platform.service; - -import java.util.List; - -import com.platform.entities.GatherOracleInfo; - -public interface IMySqlService { - - /** - * @return 查询 - * @throws Exception - */ - public List findAllMySql() throws Exception; - - /** 删除 - * @return - * @throws Exception - */ - public int deleteMySql(int id) throws Exception; - - public int insertOracle(GatherOracleInfo oracle) throws Exception; - - public int updateOracle(GatherOracleInfo oracle) throws Exception; - -} +package com.platform.service; + +import java.util.List; + +import com.platform.entities.GatherOracleInfo; + +public interface IMySqlService { + + /** + * @return 查询 + * @throws Exception + */ + public List findAllMySql() throws Exception; + + /** 删除 + * @return + * @throws Exception + */ + public int deleteMySql(int id) throws Exception; + + public int insertOracle(GatherOracleInfo oracle) throws Exception; + + public int updateOracle(GatherOracleInfo oracle) throws Exception; + +} diff --git a/src/com/platform/service/IOracleExtractService.java b/src/com/platform/service/IOracleExtractService.java index 7d4e9418..87386f82 100644 --- a/src/com/platform/service/IOracleExtractService.java +++ b/src/com/platform/service/IOracleExtractService.java @@ -1,22 +1,22 @@ -package com.platform.service; - -import java.util.List; -import java.util.Map; - -import com.platform.entities.DataInfoEntity; -import com.platform.entities.GatherOracleInfo; -import com.platform.entities.OracleConnectorParams; - -public interface IOracleExtractService { - - /** 抽取数据库 - * @param name - * @param dataInfo //采集库连接参数 - * @param oracleConnect - * @return - * @throws Exception - */ -// public boolean extractOracle(String name, List dataInfos, GatherOracleInfo oracleConnect) throws Exception; -// public boolean extractOracle(String name, List dataInfos, Map oracleConnect) throws Exception; - public boolean extractOracle(String name, List> dataInfo, Map oracleConnect) throws Exception; -} +package com.platform.service; + +import java.util.List; +import java.util.Map; + +import com.platform.entities.DataInfoEntity; +import com.platform.entities.GatherOracleInfo; +import com.platform.entities.OracleConnectorParams; + +public interface IOracleExtractService { + + /** 抽取数据库 + * @param name + * @param dataInfo //采集库连接参数 + * @param oracleConnect + * @return + * @throws Exception + */ +// public boolean extractOracle(String name, List dataInfos, GatherOracleInfo oracleConnect) throws Exception; +// public boolean extractOracle(String name, List dataInfos, Map oracleConnect) throws Exception; + public boolean extractOracle(String name, List> dataInfo, Map oracleConnect) throws Exception; +} diff --git a/src/com/platform/service/OracleExtractHelper.java b/src/com/platform/service/OracleExtractHelper.java index 82228e28..2175e0f3 100644 --- a/src/com/platform/service/OracleExtractHelper.java +++ b/src/com/platform/service/OracleExtractHelper.java @@ -1,163 +1,163 @@ -package com.platform.service; - -import java.sql.Connection; -import java.sql.ResultSet; -import java.sql.SQLException; - -import com.platform.entities.GatherOracleInfo; -import com.platform.entities.OracleConnectorParams; -import com.platform.oracle.OracleConnector; -import com.platform.utils.Configs; -import com.platform.utils.FileOperateHelper; - -public class OracleExtractHelper { - - private OracleConnector oConnector; - - /** - * 判断dblink是否已经存在 - * - * @param conn - * @param linkName - * dblink的名称 - * @return - */ - private boolean hasSameNameDBLink(Connection conn, String linkName) { - boolean flag = false; - String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK=" + linkName; - ResultSet rSet = oConnector.getSQLExecResultSet(conn, sql); - try { - rSet.last(); - if (rSet.getRow() > 0) - flag = true; - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return flag; - } - - /** - * 创建dblink - * -<<<<<<< HEAD -<<<<<<< HEAD - * @param conn - * @param oc -======= - * @param conn 汇总库的连接 - * @param oc 采集库 ->>>>>>> 355b6e47a4fa8d058029ec939fe4fefdaa751275 -======= - * @param conn 汇总库的连接 - * @param oc 采集库 ->>>>>>> web_backend_develope - * dblink连接参数实体 - */ - public void createDBLink(Connection conn, OracleConnectorParams oc) { - String linkName = "LinkTo" + oc.getName(); - String sql = "CREATE PUBLIC DATABASE LINK " - + linkName - + " CONNECT TO " - + oc.getUser() - + " IDENTIFIED BY " - + oc.getPassword() - + " USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = " - + oc.getIp() + ")(PORT = " + oc.getPort() - + ")))(CONNECT_DATA =(SERVICE_NAME =" + oc.getDatabaseName() - + ")))';"; - if (null != oc) { - if (hasSameNameDBLink(conn, linkName)) { // 如果dblink已经存在,先删除dblink,在创建dblink - String deleteSql = "DROP PUBLIC DATABASE LINK LinkTo" - + linkName; - FileOperateHelper - .fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), - deleteSql); - if (oConnector.execOracleSQL(conn, deleteSql)) { - FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION - + oc.getName(), sql); - oConnector.execOracleSQL(conn, sql); - } else { - Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!"); - FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION - + oc.getName(), "删除已有的DBLink失败,无法创建新的DBLink!"); - } - - } else { - // 否则,创建dblink - oConnector.execOracleSQL(conn, sql); - FileOperateHelper.fileWrite( - Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql); - } - } - } - - /** - * 创建表空间 - * - * @param conn 汇总库连接 - * @param oc 汇总库信息 - * @return - */ - public boolean createTableSpace(Connection conn, GatherOracleInfo oc) { - String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '" - + Configs.GATHER_TABLESPACE_NAME + "'"; - if (oConnector.execOracleSQL(conn, tmpSql)) { - return true; - } else { - String sql = "create tablespace " + Configs.GATHER_TABLESPACE_NAME - + " datafile '" + Configs.GATHER_TABLESPACE_PATH - + Configs.GATHER_TABLESPACE_NAME + ".dbf" - + "' size 512M autoextend on next 512M maxsize unlimited"; - return oConnector.execOracleSQL(conn, sql); - } - } - - /** - * 创建用户并授权 - * - * @param conn 汇总库连接 - * @param oc 汇总库信息 - */ - public void createUser(Connection conn, GatherOracleInfo oc) { - String strTUser = oc.getName() + Configs.TABLE_SUFFIX; - String sql = "Create user " + strTUser + " default tablespace " - + Configs.GATHER_TABLESPACE_NAME + " identified by " - + Configs.GATHER_TABLE_PASSWORD; - String grantSql = "grant connect, resource, dba to " + strTUser; - oConnector.execOracleSQL(conn, sql); - oConnector.execOracleSQL(conn, grantSql); - } - - /** - * 执行汇总操作 - * - * @param conn 汇总库连接 - * @param oc 采集库 - */ - public void extractColleDB(Connection conn, OracleConnectorParams oc) { - String strTUser = oc.getName() + Configs.TABLE_SUFFIX; - String sql = "SELECT 'create table " - + strTUser - + ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||" - + "'@linkTo" - + oc.getName() - + ";' FROM dba_tables@linkTo" - + oc.getName() - + " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')" - + " and t.owner||t.table_name not in (select owner||table_name from dba_tables@linkTo" - + oc.getName() + " where 'data_type'='CLOB')"; - ResultSet rsSet = oConnector.getSQLExecResultSet(conn, sql); - try { - while (rsSet.next()) { - String resultSql = rsSet.getString(0); - oConnector.execOracleSQL(conn, resultSql); - } - } catch (SQLException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } -} +package com.platform.service; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; + +import com.platform.entities.GatherOracleInfo; +import com.platform.entities.OracleConnectorParams; +import com.platform.oracle.OracleConnector; +import com.platform.utils.Configs; +import com.platform.utils.FileOperateHelper; + +public class OracleExtractHelper { + + private OracleConnector oConnector; + + /** + * 判断dblink是否已经存在 + * + * @param conn + * @param linkName + * dblink的名称 + * @return + */ + private boolean hasSameNameDBLink(Connection conn, String linkName) { + boolean flag = false; + String sql = "SELECT * FROM ALL_DB_LINKS WHERE DB_LINK=" + linkName; + ResultSet rSet = oConnector.getSQLExecResultSet(conn, sql); + try { + rSet.last(); + if (rSet.getRow() > 0) + flag = true; + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return flag; + } + + /** + * 创建dblink + * +<<<<<<< HEAD +<<<<<<< HEAD + * @param conn + * @param oc +======= + * @param conn 汇总库的连接 + * @param oc 采集库 +>>>>>>> 355b6e47a4fa8d058029ec939fe4fefdaa751275 +======= + * @param conn 汇总库的连接 + * @param oc 采集库 +>>>>>>> web_backend_develope + * dblink连接参数实体 + */ + public void createDBLink(Connection conn, OracleConnectorParams oc) { + String linkName = "LinkTo" + oc.getName(); + String sql = "CREATE PUBLIC DATABASE LINK " + + linkName + + " CONNECT TO " + + oc.getUser() + + " IDENTIFIED BY " + + oc.getPassword() + + " USING '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = " + + oc.getIp() + ")(PORT = " + oc.getPort() + + ")))(CONNECT_DATA =(SERVICE_NAME =" + oc.getDatabaseName() + + ")))';"; + if (null != oc) { + if (hasSameNameDBLink(conn, linkName)) { // 如果dblink已经存在,先删除dblink,在创建dblink + String deleteSql = "DROP PUBLIC DATABASE LINK LinkTo" + + linkName; + FileOperateHelper + .fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), + deleteSql); + if (oConnector.execOracleSQL(conn, deleteSql)) { + FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION + + oc.getName(), sql); + oConnector.execOracleSQL(conn, sql); + } else { + Configs.CONSOLE_LOGGER.error("删除已有的DBLink失败,无法创建新的DBLink!"); + FileOperateHelper.fileWrite(Configs.EXTRACT_LOG_LOCALTION + + oc.getName(), "删除已有的DBLink失败,无法创建新的DBLink!"); + } + + } else { + // 否则,创建dblink + oConnector.execOracleSQL(conn, sql); + FileOperateHelper.fileWrite( + Configs.EXTRACT_LOG_LOCALTION + oc.getName(), sql); + } + } + } + + /** + * 创建表空间 + * + * @param conn 汇总库连接 + * @param oc 汇总库信息 + * @return + */ + public boolean createTableSpace(Connection conn, GatherOracleInfo oc) { + String tmpSql = "select TABLESPACE_NAME from dba_tablespaces where TABLESPACE_NAME = '" + + Configs.GATHER_TABLESPACE_NAME + "'"; + if (oConnector.execOracleSQL(conn, tmpSql)) { + return true; + } else { + String sql = "create tablespace " + Configs.GATHER_TABLESPACE_NAME + + " datafile '" + Configs.GATHER_TABLESPACE_PATH + + Configs.GATHER_TABLESPACE_NAME + ".dbf" + + "' size 512M autoextend on next 512M maxsize unlimited"; + return oConnector.execOracleSQL(conn, sql); + } + } + + /** + * 创建用户并授权 + * + * @param conn 汇总库连接 + * @param oc 汇总库信息 + */ + public void createUser(Connection conn, GatherOracleInfo oc) { + String strTUser = oc.getName() + Configs.TABLE_SUFFIX; + String sql = "Create user " + strTUser + " default tablespace " + + Configs.GATHER_TABLESPACE_NAME + " identified by " + + Configs.GATHER_TABLE_PASSWORD; + String grantSql = "grant connect, resource, dba to " + strTUser; + oConnector.execOracleSQL(conn, sql); + oConnector.execOracleSQL(conn, grantSql); + } + + /** + * 执行汇总操作 + * + * @param conn 汇总库连接 + * @param oc 采集库 + */ + public void extractColleDB(Connection conn, OracleConnectorParams oc) { + String strTUser = oc.getName() + Configs.TABLE_SUFFIX; + String sql = "SELECT 'create table " + + strTUser + + ".J'|| substr(t.OWNER||'_'||t.TABLE_NAME,0,29)||' as select * from '||t.OWNER||'.'||t.TABLE_NAME||" + + "'@linkTo" + + oc.getName() + + ";' FROM dba_tables@linkTo" + + oc.getName() + + " t WHERE t.TABLESPACE_NAME NOT IN ('SYSTEM','SYSAUX')" + + " and t.owner||t.table_name not in (select owner||table_name from dba_tables@linkTo" + + oc.getName() + " where 'data_type'='CLOB')"; + ResultSet rsSet = oConnector.getSQLExecResultSet(conn, sql); + try { + while (rsSet.next()) { + String resultSql = rsSet.getString(0); + oConnector.execOracleSQL(conn, resultSql); + } + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } +} diff --git a/src/com/platform/service/OracleExtractService.java b/src/com/platform/service/OracleExtractService.java index 9b858706..1b23ed7c 100644 --- a/src/com/platform/service/OracleExtractService.java +++ b/src/com/platform/service/OracleExtractService.java @@ -1,24 +1,24 @@ -package com.platform.service; - - - -import com.platform.entities.OracleConnectorParams; -import com.platform.oracle.OracleConnector; -import com.platform.utils.Configs; - -public class OracleExtractService extends Thread implements Runnable { - private OracleConnectorParams ocp; - private java.sql.Connection conn; - - public OracleExtractService(OracleConnectorParams ocp){ - this.ocp=ocp; - String url = ""; - this.conn=OracleConnector.ConnectionBuilder(url, Configs.GATHER_USER_NAME, Configs.GATHER_USER_PASSWORD); - } - @Override - public void run() { - // TODO Auto-generated method stub - - } - -} +package com.platform.service; + + + +import com.platform.entities.OracleConnectorParams; +import com.platform.oracle.OracleConnector; +import com.platform.utils.Configs; + +public class OracleExtractService extends Thread implements Runnable { + private OracleConnectorParams ocp; + private java.sql.Connection conn; + + public OracleExtractService(OracleConnectorParams ocp){ + this.ocp=ocp; + String url = ""; + this.conn=OracleConnector.ConnectionBuilder(url, Configs.GATHER_USER_NAME, Configs.GATHER_USER_PASSWORD); + } + @Override + public void run() { + // TODO Auto-generated method stub + + } + +} diff --git a/src/com/platform/service/OracleStatusService.java b/src/com/platform/service/OracleStatusService.java index adb7ea00..86e54628 100644 --- a/src/com/platform/service/OracleStatusService.java +++ b/src/com/platform/service/OracleStatusService.java @@ -1,149 +1,149 @@ -package com.platform.service; - -import io.fabric8.kubernetes.api.model.Pod; -import io.fabric8.kubernetes.api.model.ReplicationController; - -import java.util.Hashtable; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Timer; -import java.util.TimerTask; - -import com.platform.entities.OracleConnectorParams; -import com.platform.kubernetes.SimpleKubeClient; -import com.platform.oracle.OracleConnector; -import com.platform.utils.Configs; - -public class OracleStatusService { - private static Map alliveTask = new Hashtable(); - public final static int EXEC_TIME = 10;// 连接多少次后不成功,取消链接 - public final static long INTERVAL_TIME = 60 * 1000;// 每隔多少毫秒执行一次连接任务 - public final static long DELAY_TIME = 0; // 延迟多少秒后执行 - - public void connectToOracle(String replicasName) { - SimpleKubeClient sKubeClient = new SimpleKubeClient(); - ReplicationController replicationController = sKubeClient - .getReplicationController(replicasName); - if (alliveTask.containsKey(replicasName)) { - killAlliveTask(replicasName); - } - if (null != replicationController) { - List filterPods = sKubeClient - .getPodsForApplicaList(replicationController); - if (filterPods != null && filterPods.size() > 0) { - Pod pod = filterPods.get(0); - OracleConnectorParams orp = new OracleConnectorParams( - String.valueOf(sKubeClient.getPodContainerport(pod)), - sKubeClient.getPodHostIp(pod), replicasName); - Timer timer = new Timer(); - alliveTask.put(replicasName, timer); - timer.schedule(new connectTask(orp, sKubeClient), DELAY_TIME, - INTERVAL_TIME); - } - } - - } - - public void cancelToOracle(String replicasName, String operate) { - if (operate.equals("stop")) { - SimpleKubeClient sKubeClient = new SimpleKubeClient(); - sKubeClient.updateOrAddReplicasLabelById(replicasName, "status", - "0"); - } - killAlliveTask(replicasName); - } - - /** - * 取消并移除指定定时任务 - * - * - * @param taskName - */ - public void killAlliveTask(String taskName) { - if (alliveTask.containsKey(taskName)) { - alliveTask.get(taskName).cancel(); - alliveTask.remove(taskName); - } - } - - public void killAlliveTasks(String... tasksName) { - for (String taskName : tasksName) - killAlliveTask(taskName); - } - - /** - * 清空定时任务 - */ - public void cleanUpAlliveTask() { - Iterator> iterator = alliveTask.entrySet() - .iterator(); - while (iterator.hasNext()) { - Map.Entry entry = iterator.next(); - entry.getValue().cancel(); - } - alliveTask.clear(); - } - - /** - * 链接oracle任务类 - * - * @author wuming - * - */ - class connectTask extends TimerTask { - private String taskName; - private int count; - private OracleConnectorParams ocp; - private SimpleKubeClient client; - - public connectTask(OracleConnectorParams ocp, SimpleKubeClient client) { - this.taskName = ocp.getName(); - this.ocp = ocp; - this.count = 0; - this.client = client; - } - - @Override - public void run() { - if (count == EXEC_TIME && alliveTask.containsKey(taskName)) { - killAlliveTask(taskName); - client.updateOrAddReplicasLabelById(taskName, "status", "1"); - } else { - String url = "jdbc:oracle:thin:@" + ocp.getIp() + ":" - + ocp.getPort() + "/" + ocp.getDatabaseName(); - boolean flag = OracleConnector.canConnect(url, ocp.getUser(), - ocp.getPassword()); - String message = "失败"; - if (flag && alliveTask.containsKey(taskName)) { - client.updateOrAddReplicasLabelById(taskName, "status", "2"); - message = "成功"; - killAlliveTask(taskName); // 连接成功,取消连接 - } - Configs.CONSOLE_LOGGER.info("连接到数据库服务: " + taskName - + "\t[连接结果: " + message + "]"); - } - count++; - } - - @Override - public boolean cancel() { - System.out.println("aaaaaaa"); - if (client != null) - this.client.close(); - return super.cancel(); - } - - public String getTaskName() { - return taskName; - } - - public void setTaskName(String taskName) { - this.taskName = taskName; - } - - public int getCount() { - return count; - } - } -} +package com.platform.service; + +import io.fabric8.kubernetes.api.model.Pod; +import io.fabric8.kubernetes.api.model.ReplicationController; + +import java.util.Hashtable; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; + +import com.platform.entities.OracleConnectorParams; +import com.platform.kubernetes.SimpleKubeClient; +import com.platform.oracle.OracleConnector; +import com.platform.utils.Configs; + +public class OracleStatusService { + private static Map alliveTask = new Hashtable(); + public final static int EXEC_TIME = 10;// 连接多少次后不成功,取消链接 + public final static long INTERVAL_TIME = 60 * 1000;// 每隔多少毫秒执行一次连接任务 + public final static long DELAY_TIME = 0; // 延迟多少秒后执行 + + public void connectToOracle(String replicasName) { + SimpleKubeClient sKubeClient = new SimpleKubeClient(); + ReplicationController replicationController = sKubeClient + .getReplicationController(replicasName); + if (alliveTask.containsKey(replicasName)) { + killAlliveTask(replicasName); + } + if (null != replicationController) { + List filterPods = sKubeClient + .getPodsForApplicaList(replicationController); + if (filterPods != null && filterPods.size() > 0) { + Pod pod = filterPods.get(0); + OracleConnectorParams orp = new OracleConnectorParams( + String.valueOf(sKubeClient.getPodContainerport(pod)), + sKubeClient.getPodHostIp(pod), replicasName); + Timer timer = new Timer(); + alliveTask.put(replicasName, timer); + timer.schedule(new connectTask(orp, sKubeClient), DELAY_TIME, + INTERVAL_TIME); + } + } + + } + + public void cancelToOracle(String replicasName, String operate) { + if (operate.equals("stop")) { + SimpleKubeClient sKubeClient = new SimpleKubeClient(); + sKubeClient.updateOrAddReplicasLabelById(replicasName, "status", + "0"); + } + killAlliveTask(replicasName); + } + + /** + * 取消并移除指定定时任务 + * + * + * @param taskName + */ + public void killAlliveTask(String taskName) { + if (alliveTask.containsKey(taskName)) { + alliveTask.get(taskName).cancel(); + alliveTask.remove(taskName); + } + } + + public void killAlliveTasks(String... tasksName) { + for (String taskName : tasksName) + killAlliveTask(taskName); + } + + /** + * 清空定时任务 + */ + public void cleanUpAlliveTask() { + Iterator> iterator = alliveTask.entrySet() + .iterator(); + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + entry.getValue().cancel(); + } + alliveTask.clear(); + } + + /** + * 链接oracle任务类 + * + * @author wuming + * + */ + class connectTask extends TimerTask { + private String taskName; + private int count; + private OracleConnectorParams ocp; + private SimpleKubeClient client; + + public connectTask(OracleConnectorParams ocp, SimpleKubeClient client) { + this.taskName = ocp.getName(); + this.ocp = ocp; + this.count = 0; + this.client = client; + } + + @Override + public void run() { + if (count == EXEC_TIME && alliveTask.containsKey(taskName)) { + killAlliveTask(taskName); + client.updateOrAddReplicasLabelById(taskName, "status", "1"); + } else { + String url = "jdbc:oracle:thin:@" + ocp.getIp() + ":" + + ocp.getPort() + "/" + ocp.getDatabaseName(); + boolean flag = OracleConnector.canConnect(url, ocp.getUser(), + ocp.getPassword()); + String message = "失败"; + if (flag && alliveTask.containsKey(taskName)) { + client.updateOrAddReplicasLabelById(taskName, "status", "2"); + message = "成功"; + killAlliveTask(taskName); // 连接成功,取消连接 + } + Configs.CONSOLE_LOGGER.info("连接到数据库服务: " + taskName + + "\t[连接结果: " + message + "]"); + } + count++; + } + + @Override + public boolean cancel() { + System.out.println("aaaaaaa"); + if (client != null) + this.client.close(); + return super.cancel(); + } + + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + + public int getCount() { + return count; + } + } +} diff --git a/src/com/platform/service/SimplePropertyReader.java b/src/com/platform/service/SimplePropertyReader.java index 51862917..4b34cb29 100644 --- a/src/com/platform/service/SimplePropertyReader.java +++ b/src/com/platform/service/SimplePropertyReader.java @@ -1,20 +1,20 @@ -package com.platform.service; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; - -import com.platform.entities.SimpleConfigParamsBean; - -public class SimplePropertyReader { - @Autowired @Qualifier("simpeConfig") - private SimpleConfigParamsBean configParamsBean; - - public void setConfigParamsBean(SimpleConfigParamsBean configParamsBean) { - this.configParamsBean = configParamsBean; - } - - public SimpleConfigParamsBean getConfigParamsBean() { - return configParamsBean; - } - -} +package com.platform.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; + +import com.platform.entities.SimpleConfigParamsBean; + +public class SimplePropertyReader { + @Autowired @Qualifier("simpeConfig") + private SimpleConfigParamsBean configParamsBean; + + public void setConfigParamsBean(SimpleConfigParamsBean configParamsBean) { + this.configParamsBean = configParamsBean; + } + + public SimpleConfigParamsBean getConfigParamsBean() { + return configParamsBean; + } + +} diff --git a/src/com/platform/service/impl/CodeServiceImpl.java b/src/com/platform/service/impl/CodeServiceImpl.java index 65aacf40..efda3f22 100644 --- a/src/com/platform/service/impl/CodeServiceImpl.java +++ b/src/com/platform/service/impl/CodeServiceImpl.java @@ -1,37 +1,66 @@ -package com.platform.service.impl; - -import java.util.ArrayList; -import java.util.List; - -import javax.annotation.Resource; - -import com.platform.dao.DataInfoDao; -import com.platform.dao.IRegionalismCodeDao; -import com.platform.dao.ISystemCodeDao; -import com.platform.entities.RegionalismEntity; -import com.platform.entities.SystemEntity; -import com.platform.service.ICodeService; - -public class CodeServiceImpl implements ICodeService { - - @Resource(name = "systemCodeDao") - private ISystemCodeDao systemCodeDao; - - @Resource(name = "regionalismCodeDao") - private IRegionalismCodeDao regionalismCodeDao; - - @Override - public List findSystem(SystemEntity sys) throws Exception { - List result = new ArrayList(); - result = systemCodeDao.findSubSystem(sys); - return result; - } - - @Override - public List findRegionalism(RegionalismEntity region) throws Exception { - List result = regionalismCodeDao.findSubRegionalism(region); - - return result; - } - -} +package com.platform.service.impl; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.platform.dao.DataInfoDao; +import com.platform.dao.IRegionalismCodeDao; +import com.platform.dao.ISystemCodeDao; +import com.platform.entities.RegionalismEntity; +import com.platform.entities.SystemEntity; +import com.platform.service.ICodeService; + +@Service(value = "codeService") +public class CodeServiceImpl implements ICodeService { + + @Resource(name = "systemCodeDao") + private ISystemCodeDao systemCodeDao; + + @Resource(name = "regionalismCodeDao") + private IRegionalismCodeDao regionalismCodeDao; + + @Override + public List findSystem(SystemEntity sys) throws Exception { + List result = null; + try { + result = new ArrayList(); + result = systemCodeDao.findSubSystem(sys); + } catch (Exception e) { + // TODO: handle exception + } + return result; + } + + @Override + public List findRegionalism(RegionalismEntity region) throws Exception { + List result = null; + try { + result = regionalismCodeDao.findSubRegionalism(region); + } catch (Exception e) { + // TODO: handle exception + } + return result; + } + + @Override + public Map findAll() throws Exception { + Map result = new HashMap(); + try { + List regions = regionalismCodeDao.findAllRegionalism(); + List syss = systemCodeDao.findAllSystem(); + result.put("system", syss); + result.put("regionalism", regions); + } catch (Exception e) { + // TODO: handle exception + } + return result; + } + + +} diff --git a/src/com/platform/service/impl/MoveDataServiceImpl.java b/src/com/platform/service/impl/MoveDataServiceImpl.java index 007fd0ee..7b401452 100644 --- a/src/com/platform/service/impl/MoveDataServiceImpl.java +++ b/src/com/platform/service/impl/MoveDataServiceImpl.java @@ -1,148 +1,148 @@ -package com.platform.service.impl; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.annotation.Resource; - -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; -import org.springframework.stereotype.Service; - -import com.platform.dao.DataInfoDao; -import com.platform.dao.DataInfoMoveTmpDao; -import com.platform.entities.DataInfoEntity; -import com.platform.entities.DataInfoEntityMoveTmp; -import com.platform.glusterfs.CheckoutMD5; -import com.platform.glusterfs.CopyData; -import com.platform.glusterfs.RemoveData; -import com.platform.glusterfs.ShowData; -import com.platform.service.IMoveDataService; -import com.platform.utils.Bean2MapUtils; -import com.platform.utils.Constant; -import com.platform.utils.DateForm; - -@Component -@Service(value = "moveDataService") -public class MoveDataServiceImpl implements IMoveDataService{ - - @Resource(name = "dataInfoDao") - private DataInfoDao dataInfoDao; - - private RemoveData removeservice = new RemoveData(); - - /** - * 迁移 - */ - CopyData copy = new CopyData(); - - /** - * MD5校验 - */ - CheckoutMD5 check = new CheckoutMD5(); - - @Resource(name = "dataInfoMoveTmpDao") - private DataInfoMoveTmpDao dataInfoMoveTmpDao; - - /** - * 查看数据 - */ - ShowData show = new ShowData(); - - @Override - public boolean moveData(List data, String dstPath) throws Exception { - boolean isSuccess = false; - String tailPath = ""; - if (null != data) { - //XXX/320198_16/1,or XXX/320122KFQ_15/1 ---> /320198_16/1, or /320122KFQ_15/1 - List exist = dataInfoMoveTmpDao.findAll(); - List existIds = new ArrayList(); - if (null != exist) { - for (DataInfoEntityMoveTmp dataInfoEntityMoveTmp : exist) { - if ("0".equals(dataInfoEntityMoveTmp.getCompleteStatus()) || "1".equals(dataInfoEntityMoveTmp.getCompleteStatus())) { - if (null != dataInfoEntityMoveTmp.getDataPath()) { - existIds.add(dataInfoEntityMoveTmp.getDataPath()); - } - } - } - } - Pattern pattern = Pattern.compile("\\/\\d+[a-z]*[A-Z]*_\\d+\\/\\d*\\/*$"); - // 末尾 含有 / - Pattern pattern2 = Pattern.compile("\\/$"); - Matcher matcher2 = pattern2.matcher(dstPath); - //去掉 最后 的 / 符合 - if (matcher2.find()) { - dstPath = dstPath.substring(0, dstPath.length()-1); - } - List moveList = new ArrayList(); - for (DataInfoEntity dataInfoEntity : data) { - if (existIds.contains(dataInfoEntity.getDataPath())) { - continue; - } - //TODO 正则:取出 data 的后面 的 路径,eg: XXX/320198_16/1,or XXX/320122KFQ_15/1) - Matcher matcher = pattern.matcher(dataInfoEntity.getDataPath()); - // tailPath 第一个字符是 / 符号 - if (matcher.find()) { - tailPath = matcher.group(); - } - String finalDestPath = dstPath + tailPath; - DataInfoEntityMoveTmp dataMove = new DataInfoEntityMoveTmp(); - dataMove.setSystemCode(dataInfoEntity.getSystemCode()); - dataMove.setRegionalismCode(dataInfoEntity.getRegionalismCode()); - dataMove.setDstPath(finalDestPath); - dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); - dataMove.setFkid(dataInfoEntity.getId()); - moveList.add(dataMove); - } - if (moveList.size() > 0) { - dataInfoMoveTmpDao.insertBatch(moveList); - isSuccess = true; - } - } - return isSuccess; - } - - @Override - public List findAll() throws Exception { - List result = new ArrayList(); - try { - result = dataInfoMoveTmpDao.findAll(); - - } catch (Exception e) { - System.err.println(e); - } - return result; - } - - @Override - public int delete(DataInfoEntityMoveTmp dataMove) throws Exception { - if ("1".equals(dataMove.getCompleteStatus())) { - removeservice.deleteFolder(dataMove.getDstPath()); - } - int result = dataInfoMoveTmpDao.remove(dataMove.getId()); - return result; - } - - - @Override - public int save(DataInfoEntityMoveTmp data) throws Exception { - dataInfoMoveTmpDao.save(data); - return 0; - } - - @Override - public int insertBatch(List list) throws Exception { - // TODO Auto-generated method stub - return 0; - } - - @Override - public int update(DataInfoEntityMoveTmp data) throws Exception { - int result = dataInfoMoveTmpDao.update(data); - return result; - } - -} +package com.platform.service.impl; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.annotation.Resource; + +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import com.platform.dao.DataInfoDao; +import com.platform.dao.DataInfoMoveTmpDao; +import com.platform.entities.DataInfoEntity; +import com.platform.entities.DataInfoEntityMoveTmp; +import com.platform.glusterfs.CheckoutMD5; +import com.platform.glusterfs.CopyData; +import com.platform.glusterfs.RemoveData; +import com.platform.glusterfs.ShowData; +import com.platform.service.IMoveDataService; +import com.platform.utils.Bean2MapUtils; +import com.platform.utils.Constant; +import com.platform.utils.DateForm; + +@Component +@Service(value = "moveDataService") +public class MoveDataServiceImpl implements IMoveDataService{ + + @Resource(name = "dataInfoDao") + private DataInfoDao dataInfoDao; + + private RemoveData removeservice = new RemoveData(); + + /** + * 迁移 + */ + CopyData copy = new CopyData(); + + /** + * MD5校验 + */ + CheckoutMD5 check = new CheckoutMD5(); + + @Resource(name = "dataInfoMoveTmpDao") + private DataInfoMoveTmpDao dataInfoMoveTmpDao; + + /** + * 查看数据 + */ + ShowData show = new ShowData(); + + @Override + public boolean moveData(List data, String dstPath) throws Exception { + boolean isSuccess = false; + String tailPath = ""; + if (null != data) { + //XXX/320198_16/1,or XXX/320122KFQ_15/1 ---> /320198_16/1, or /320122KFQ_15/1 + List exist = dataInfoMoveTmpDao.findAll(); + List existIds = new ArrayList(); + if (null != exist) { + for (DataInfoEntityMoveTmp dataInfoEntityMoveTmp : exist) { + if ("0".equals(dataInfoEntityMoveTmp.getCompleteStatus()) || "1".equals(dataInfoEntityMoveTmp.getCompleteStatus())) { + if (null != dataInfoEntityMoveTmp.getDataPath()) { + existIds.add(dataInfoEntityMoveTmp.getDataPath()); + } + } + } + } + Pattern pattern = Pattern.compile("\\/\\d+[a-z]*[A-Z]*_\\d+\\/\\d*\\/*$"); + // 末尾 含有 / + Pattern pattern2 = Pattern.compile("\\/$"); + Matcher matcher2 = pattern2.matcher(dstPath); + //去掉 最后 的 / 符合 + if (matcher2.find()) { + dstPath = dstPath.substring(0, dstPath.length()-1); + } + List moveList = new ArrayList(); + for (DataInfoEntity dataInfoEntity : data) { + if (existIds.contains(dataInfoEntity.getDataPath())) { + continue; + } + //TODO 正则:取出 data 的后面 的 路径,eg: XXX/320198_16/1,or XXX/320122KFQ_15/1) + Matcher matcher = pattern.matcher(dataInfoEntity.getDataPath()); + // tailPath 第一个字符是 / 符号 + if (matcher.find()) { + tailPath = matcher.group(); + } + String finalDestPath = dstPath + tailPath; + DataInfoEntityMoveTmp dataMove = new DataInfoEntityMoveTmp(); + dataMove.setSystemCode(dataInfoEntity.getSystemCode()); + dataMove.setRegionalismCode(dataInfoEntity.getRegionalismCode()); + dataMove.setDstPath(finalDestPath); + dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); + dataMove.setFkid(dataInfoEntity.getId()); + moveList.add(dataMove); + } + if (moveList.size() > 0) { + dataInfoMoveTmpDao.insertBatch(moveList); + isSuccess = true; + } + } + return isSuccess; + } + + @Override + public List findAll() throws Exception { + List result = new ArrayList(); + try { + result = dataInfoMoveTmpDao.findAll(); + + } catch (Exception e) { + System.err.println(e); + } + return result; + } + + @Override + public int delete(DataInfoEntityMoveTmp dataMove) throws Exception { + if ("1".equals(dataMove.getCompleteStatus())) { + removeservice.deleteFolder(dataMove.getDstPath()); + } + int result = dataInfoMoveTmpDao.remove(dataMove.getId()); + return result; + } + + + @Override + public int save(DataInfoEntityMoveTmp data) throws Exception { + dataInfoMoveTmpDao.save(data); + return 0; + } + + @Override + public int insertBatch(List list) throws Exception { + // TODO Auto-generated method stub + return 0; + } + + @Override + public int update(DataInfoEntityMoveTmp data) throws Exception { + int result = dataInfoMoveTmpDao.update(data); + return result; + } + +} diff --git a/src/com/platform/service/impl/MySqlServiceImpl.java b/src/com/platform/service/impl/MySqlServiceImpl.java index b880b9c0..7efaa3f8 100644 --- a/src/com/platform/service/impl/MySqlServiceImpl.java +++ b/src/com/platform/service/impl/MySqlServiceImpl.java @@ -1,56 +1,56 @@ -package com.platform.service.impl; - -import java.util.List; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Service; - -import com.platform.dao.GatherOracleDao; -import com.platform.entities.GatherOracleInfo; -import com.platform.service.IMySqlService; - -@Service(value = "mySqlService") -public class MySqlServiceImpl implements IMySqlService{ - - @Resource(name = "gatherOracleDao") - private GatherOracleDao gatherOracleDao; - - @Override - public List findAllMySql() throws Exception { - List result = gatherOracleDao.selectAllOracle(); - return result; - } - - @Override - public int deleteMySql(int id) throws Exception { - - int result = 0; - if (id > 0) { -// result = gatherOracleDao.deleteOracleById(id); - GatherOracleInfo oracle = new GatherOracleInfo(); - oracle.setId(id); - oracle.setRemove("1"); - result = gatherOracleDao.updateOracleById(oracle ); - } - return result; - } - - public int insertOracle(GatherOracleInfo oracle) throws Exception { - int result = gatherOracleDao.insertOracle(oracle); - return result; - } - - @Override - public int updateOracle(GatherOracleInfo oracle) throws Exception { - int result; - if (oracle.getId() > 0) { - result = gatherOracleDao.updateOracleById(oracle); - } - else { - result = gatherOracleDao.insertOracle(oracle); - } - return result; - } - -} +package com.platform.service.impl; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.platform.dao.GatherOracleDao; +import com.platform.entities.GatherOracleInfo; +import com.platform.service.IMySqlService; + +@Service(value = "mySqlService") +public class MySqlServiceImpl implements IMySqlService{ + + @Resource(name = "gatherOracleDao") + private GatherOracleDao gatherOracleDao; + + @Override + public List findAllMySql() throws Exception { + List result = gatherOracleDao.selectAllOracle(); + return result; + } + + @Override + public int deleteMySql(int id) throws Exception { + + int result = 0; + if (id > 0) { +// result = gatherOracleDao.deleteOracleById(id); + GatherOracleInfo oracle = new GatherOracleInfo(); + oracle.setId(id); + oracle.setRemove("1"); + result = gatherOracleDao.updateOracleById(oracle ); + } + return result; + } + + public int insertOracle(GatherOracleInfo oracle) throws Exception { + int result = gatherOracleDao.insertOracle(oracle); + return result; + } + + @Override + public int updateOracle(GatherOracleInfo oracle) throws Exception { + int result; + if (oracle.getId() > 0) { + result = gatherOracleDao.updateOracleById(oracle); + } + else { + result = gatherOracleDao.insertOracle(oracle); + } + return result; + } + +} diff --git a/src/com/platform/service/impl/OracleExtractServiceImpl.java b/src/com/platform/service/impl/OracleExtractServiceImpl.java index 9cf58a00..26c5ba86 100644 --- a/src/com/platform/service/impl/OracleExtractServiceImpl.java +++ b/src/com/platform/service/impl/OracleExtractServiceImpl.java @@ -1,94 +1,94 @@ -package com.platform.service.impl; - -import java.sql.Connection; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.springframework.stereotype.Service; - -import com.platform.entities.DataInfoEntity; -import com.platform.entities.GatherOracleInfo; -import com.platform.entities.OracleConnectorParams; -import com.platform.oracle.OracleConnector; -import com.platform.service.IOracleExtractService; -import com.platform.service.OracleExtractHelper; -import com.platform.utils.Bean2MapUtils; - -@Service(value = "OracleExtract") -public class OracleExtractServiceImpl implements IOracleExtractService { - - /** - * 抽取 - */ - private OracleExtractHelper oracleExtract = new OracleExtractHelper(); - - /** - * 数据库连接实现类 - */ - private OracleConnector connect = new OracleConnector(); - - @Override - public boolean extractOracle(String name, List> dataInfoMap, - Map oracleConnect) throws Exception { - boolean isSuccess = false; - try{ - //map转 bean(汇总库信息-带tableName的) - GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect); - - //采集库连接参数 - List datainfos = new ArrayList(); - for (Map map : dataInfoMap) { - OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect); - datainfos.add(dataInfoEntity); - } - - Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + "/" - + oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword()); - - for (OracleConnectorParams collectOracle : datainfos) { - - oracleExtract.createDBLink(conn, collectOracle); - oracleExtract.createTableSpace(conn, oracleModel); - oracleExtract.createUser(conn, oracleModel); - oracleExtract.extractColleDB(conn, collectOracle); - } - isSuccess = true; - }catch(Exception e){ - - } - return false; - } - -// @Override -// public boolean extractOracle(String name, List dataInfos, GatherOracleInfo oracleConnect) throws Exception { -// boolean isSuccess = false; -// try{ -// //map转 bean(汇总库信息-带tableName的) -//// GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect); -// -// //采集库连接参数 -//// List datainfos = new ArrayList(); -//// for (Map map : dataInfoMap) { -//// OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect); -//// datainfos.add(dataInfoEntity); -//// } -// -// Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/" -// + oracleConnect.getDatabaseName(), oracleConnect.getUser(), oracleConnect.getPassword()); -// -// for (OracleConnectorParams collectOracle : dataInfos) { -// -// oracleExtract.createDBLink(conn, collectOracle); -// oracleExtract.createTableSpace(conn, oracleConnect); -// oracleExtract.createUser(conn, oracleConnect); -// oracleExtract.extractColleDB(conn, collectOracle); -// } -// isSuccess = true; -// }catch(Exception e){ -// -// } -// return false; -// } - -} +package com.platform.service.impl; + +import java.sql.Connection; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.springframework.stereotype.Service; + +import com.platform.entities.DataInfoEntity; +import com.platform.entities.GatherOracleInfo; +import com.platform.entities.OracleConnectorParams; +import com.platform.oracle.OracleConnector; +import com.platform.service.IOracleExtractService; +import com.platform.service.OracleExtractHelper; +import com.platform.utils.Bean2MapUtils; + +@Service(value = "OracleExtract") +public class OracleExtractServiceImpl implements IOracleExtractService { + + /** + * 抽取 + */ + private OracleExtractHelper oracleExtract = new OracleExtractHelper(); + + /** + * 数据库连接实现类 + */ + private OracleConnector connect = new OracleConnector(); + + @Override + public boolean extractOracle(String name, List> dataInfoMap, + Map oracleConnect) throws Exception { + boolean isSuccess = false; + try{ + //map转 bean(汇总库信息-带tableName的) + GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect); + + //采集库连接参数 + List datainfos = new ArrayList(); + for (Map map : dataInfoMap) { + OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect); + datainfos.add(dataInfoEntity); + } + + Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleModel.getIp() + ":" + oracleModel.getPort() + "/" + + oracleModel.getDatabaseName(), oracleModel.getUser(), oracleModel.getPassword()); + + for (OracleConnectorParams collectOracle : datainfos) { + + oracleExtract.createDBLink(conn, collectOracle); + oracleExtract.createTableSpace(conn, oracleModel); + oracleExtract.createUser(conn, oracleModel); + oracleExtract.extractColleDB(conn, collectOracle); + } + isSuccess = true; + }catch(Exception e){ + + } + return false; + } + +// @Override +// public boolean extractOracle(String name, List dataInfos, GatherOracleInfo oracleConnect) throws Exception { +// boolean isSuccess = false; +// try{ +// //map转 bean(汇总库信息-带tableName的) +//// GatherOracleInfo oracleModel = (GatherOracleInfo) Bean2MapUtils.convertMap(GatherOracleInfo.class, oracleConnect); +// +// //采集库连接参数 +//// List datainfos = new ArrayList(); +//// for (Map map : dataInfoMap) { +//// OracleConnectorParams dataInfoEntity = (OracleConnectorParams) Bean2MapUtils.convertMap(OracleConnectorParams.class, oracleConnect); +//// datainfos.add(dataInfoEntity); +//// } +// +// Connection conn = OracleConnector.ConnectionBuilder("jdbc:oracle:thin:@" + oracleConnect.getIp() + ":" + oracleConnect.getPort() + "/" +// + oracleConnect.getDatabaseName(), oracleConnect.getUser(), oracleConnect.getPassword()); +// +// for (OracleConnectorParams collectOracle : dataInfos) { +// +// oracleExtract.createDBLink(conn, collectOracle); +// oracleExtract.createTableSpace(conn, oracleConnect); +// oracleExtract.createUser(conn, oracleConnect); +// oracleExtract.extractColleDB(conn, collectOracle); +// } +// isSuccess = true; +// }catch(Exception e){ +// +// } +// return false; +// } + +} diff --git a/src/com/platform/service/thread/ThreadMoveData.java b/src/com/platform/service/thread/ThreadMoveData.java index 4b30c1d4..800f209d 100644 --- a/src/com/platform/service/thread/ThreadMoveData.java +++ b/src/com/platform/service/thread/ThreadMoveData.java @@ -1,187 +1,189 @@ -package com.platform.service.thread; - -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import javax.annotation.Resource; - -import org.apache.log4j.Logger; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; -import org.springframework.stereotype.Service; - -import com.platform.dao.DataInfoDao; -import com.platform.dao.DataInfoMoveTmpDao; -import com.platform.dao.GatherOracleDao; -import com.platform.entities.DataInfoEntity; -import com.platform.entities.DataInfoEntityMoveTmp; -import com.platform.entities.GatherOracleInfo; -import com.platform.glusterfs.CheckoutMD5; -import com.platform.glusterfs.CopyData; -import com.platform.glusterfs.ShowData; -import com.platform.service.DataInfoService; -import com.platform.service.DataInfoServiceImp; -import com.platform.service.IMoveDataService; -import com.platform.service.impl.MoveDataServiceImpl; -import com.platform.utils.Bean2MapUtils; -import com.platform.utils.Constant; -import com.platform.utils.DateForm; - -@Component -public class ThreadMoveData{ - - public static Logger log = Logger.getLogger(ThreadMoveData.class); - - @Resource(name = "dataInfoDao") - private DataInfoDao dataInfoDao; - - /** - * 迁移 - */ - CopyData copy = new CopyData(); - - /** - * MD5校验 - */ - CheckoutMD5 check = new CheckoutMD5(); - - @Resource(name = "dataInfoMoveTmpDao") - private DataInfoMoveTmpDao dataInfoMoveTmpDao; - - /** - * 查看数据 - */ - ShowData show = new ShowData(); - - /** - * : 实时更新数据库--根据查询到的 正则迁移的数据 - */ - public ThreadMoveData() { - } - - //5秒 - @Scheduled(fixedDelay = 5000) - public void doSomething() { - - try { - List result = null; - //查询 表 move_data_tmp - result = dataInfoMoveTmpDao.findAll(); - if (null != result) { - //gfs 获取size, - int rsize = result.size(); - boolean isNoMove = true; - //该循环必须 循环每个,不能有 break; - // rate:大小:假的,待换成真实比例 - double realRate = 0.00; - int moveFileCurrNum = 0; - for (int i = 0; i < rsize; i++) { - DataInfoEntityMoveTmp dataMove = result.get(i); - //如果拷贝进度超过20分钟未进行-- 判断为 迁移失败。 - // "1" :正在上传,0:等待 迁移, 2:成功 3:失败 - if ("1".equals(dataMove.getCompleteStatus())) { - long nowTime = new Date().getTime(); - long timelong = nowTime - DateForm.string2DateBysecond(dataMove.getLastTime()).getTime(); - if (timelong > 1000*60*20) { - dataMove.setCompleteStatus("3"); - dataInfoMoveTmpDao.update(dataMove); - } - //正在上传的个数。 - moveFileCurrNum++; - if (moveFileCurrNum >= Constant.moveFileMaxNum) { - isNoMove = false; - } - // 查询大小:。//gfs 获取size, - long srcSize = show.getFolderSize(dataMove.getDataPath()); - long dstSize = show.getFolderSize(dataMove.getDstPath()); - if (srcSize < 0) { - log.error(dataMove.getDataPath() + " : 路径不存在! "); - continue; - } - if (dstSize < 0) { - log.error(dataMove.getDstPath() + " : 路径不存在! "); - continue; - } - if (srcSize > 0 && dstSize > 0) { - realRate = (dstSize*100 / srcSize ); - dataMove.setRate((int) realRate); - dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); - } - if (srcSize == dstSize) { - realRate = 100; - } - } - if("1".equals(dataMove.getCompleteStatus()) &&dataMove.getRate() > 0){ - //传输完毕:进行校验 - if (realRate == 100) { - //TODO 进行MD5校验 - int resl = check.checkoutMD5Folder(dataMove.getDataPath(), dataMove.getDstPath()); - //TODO 校验成功--则删除数据库记录 - if(resl == 1){ - //校验成功--修改 数据库记录-- - dataMove.setCompleteStatus("2"); - dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); - dataInfoMoveTmpDao.update(dataMove); - //TODO 新增 一条数据-到-dataInfo - DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap( - DataInfoEntity.class, Bean2MapUtils.convertBean(dataMove)); - data.setDataPath(dataMove.getDstPath()); - data.setYear(DateForm.date2StringByMin(new Date())); - dataInfoDao.save(data); - } - else { - // 3:表示 迁移失败 - dataMove.setCompleteStatus("3"); - } - } - dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); - dataInfoMoveTmpDao.update(dataMove); - } - } - //循环 完了, 确定没有上传的 ,没有正在上传的 - if (isNoMove) { - //查询 表 move_data_tmp - result = dataInfoMoveTmpDao.findAll(); - if (null != result) { - - int tmpsize = result.size(); - // 上传下一个后 - for (int i = 0; i < tmpsize; i++) { - DataInfoEntityMoveTmp next2move = result.get(i); - //如果是 待 迁移状态的 - if ("0".equals(next2move.getCompleteStatus())) { - //待迁移的数据 -- 开始迁移 - // 末尾 含有 / - Pattern pattern2 = Pattern.compile("\\/$"); - String dstPath = next2move.getDataPath(); - Matcher matcher2 = pattern2.matcher(dstPath); - //去掉 最后 的 / 符合 - if (matcher2.find()) { - dstPath = dstPath.substring(0, dstPath.length()-1); - } - //数据迁移。 - copy.copyFolder(dstPath+"/app", next2move.getDstPath()); - // "1" :正在上传,0:等待 迁移, 2:成功 3:失败 - next2move.setCompleteStatus("1"); - next2move.setLastTime(DateForm.date2StringBysecond(new Date())); - //更新sql - dataInfoMoveTmpDao.update(next2move); - break; - } - } - } - } - } - - Thread.sleep(Constant.update_dataInfo_sleep_time); - } catch (Exception e) { - System.err.println(e); - } - - } - -} +package com.platform.service.thread; + +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.annotation.Resource; + +import org.apache.log4j.Logger; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.stereotype.Service; + +import com.platform.dao.DataInfoDao; +import com.platform.dao.DataInfoMoveTmpDao; +import com.platform.dao.GatherOracleDao; +import com.platform.entities.DataInfoEntity; +import com.platform.entities.DataInfoEntityMoveTmp; +import com.platform.entities.GatherOracleInfo; +import com.platform.glusterfs.CheckoutMD5; +import com.platform.glusterfs.CopyData; +import com.platform.glusterfs.ShowData; +import com.platform.service.DataInfoService; +import com.platform.service.DataInfoServiceImp; +import com.platform.service.IMoveDataService; +import com.platform.service.impl.MoveDataServiceImpl; +import com.platform.utils.Bean2MapUtils; +import com.platform.utils.Constant; +import com.platform.utils.DateForm; + +@Component +public class ThreadMoveData{ + + public static Logger log = Logger.getLogger(ThreadMoveData.class); + + @Resource(name = "dataInfoDao") + private DataInfoDao dataInfoDao; + + /** + * 迁移 + */ + CopyData copy = new CopyData(); + + /** + * MD5校验 + */ + CheckoutMD5 check = new CheckoutMD5(); + + @Resource(name = "dataInfoMoveTmpDao") + private DataInfoMoveTmpDao dataInfoMoveTmpDao; + + /** + * 查看数据 + */ + ShowData show = new ShowData(); + + /** + * : 实时更新数据库--根据查询到的 正则迁移的数据 + */ + public ThreadMoveData() { + } + + //5秒 + @Scheduled(fixedDelay = 5000) + public void doSomething() { + + try { + List result = null; + //查询 表 move_data_tmp + result = dataInfoMoveTmpDao.findAll(); + if (null != result) { + //gfs 获取size, + int rsize = result.size(); + boolean isNoMove = true; + //该循环必须 循环每个,不能有 break; + // rate:大小:假的,待换成真实比例 + double realRate = 0.00; + int moveFileCurrNum = 0; + for (int i = 0; i < rsize; i++) { + DataInfoEntityMoveTmp dataMove = result.get(i); + //如果拷贝进度超过20分钟未进行-- 判断为 迁移失败。 + // "1" :正在上传,0:等待 迁移, 2:成功 3:失败 + if ("1".equals(dataMove.getCompleteStatus())) { + long nowTime = new Date().getTime(); + long timelong = nowTime - DateForm.string2DateBysecond(dataMove.getLastTime()).getTime(); + if (timelong > 1000*60*20) { + dataMove.setCompleteStatus("3"); + dataInfoMoveTmpDao.update(dataMove); + } + //正在上传的个数。 + moveFileCurrNum++; + if (moveFileCurrNum >= Constant.moveFileMaxNum) { + isNoMove = false; + } + // 查询大小:。//gfs 获取size, + long srcSize = show.getFolderSize(dataMove.getDataPath()); + long dstSize = show.getFolderSize(dataMove.getDstPath()); + if (srcSize < 0) { + log.error(dataMove.getDataPath() + " : 路径不存在! "); + continue; + } + if (dstSize < 0) { + log.error(dataMove.getDstPath() + " : 路径不存在! "); + continue; + } + if (srcSize > 0 && dstSize > 0) { + realRate = (dstSize*100 / srcSize ); + dataMove.setRate((int) realRate); + dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); + } + if (srcSize == dstSize) { + realRate = 100; + } + } + if("1".equals(dataMove.getCompleteStatus()) &&dataMove.getRate() > 0){ + //传输完毕:进行校验 + if (realRate == 100) { + //TODO 进行MD5校验 + int resl = check.checkoutMD5Folder(dataMove.getDataPath(), dataMove.getDstPath()); + //TODO 校验成功--则删除数据库记录 + if(resl == 1){ + //校验成功--修改 数据库记录-- + dataMove.setCompleteStatus("2"); + dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); + dataInfoMoveTmpDao.update(dataMove); + //TODO 新增 一条数据-到-dataInfo + DataInfoEntity data = (DataInfoEntity) Bean2MapUtils.convertMap( + DataInfoEntity.class, Bean2MapUtils.convertBean(dataMove)); + data.setDataPath(dataMove.getDstPath()); + data.setVolumeIp(dataMove.getDstVolumeIp()); + data.setVolumePath(dataMove.getDstVolumePath()); + data.setYear(DateForm.date2StringByMin(new Date())); + dataInfoDao.save(data); + } + else { + // 3:表示 迁移失败 + dataMove.setCompleteStatus("3"); + } + } + dataMove.setLastTime(DateForm.date2StringBysecond(new Date())); + dataInfoMoveTmpDao.update(dataMove); + } + } + //循环 完了, 确定没有上传的 ,没有正在上传的 + if (isNoMove) { + //查询 表 move_data_tmp + result = dataInfoMoveTmpDao.findAll(); + if (null != result) { + + int tmpsize = result.size(); + // 上传下一个后 + for (int i = 0; i < tmpsize; i++) { + DataInfoEntityMoveTmp next2move = result.get(i); + //如果是 待 迁移状态的 + if ("0".equals(next2move.getCompleteStatus())) { + //待迁移的数据 -- 开始迁移 + // 末尾 含有 / + Pattern pattern2 = Pattern.compile("\\/$"); + String dstPath = next2move.getDataPath(); + Matcher matcher2 = pattern2.matcher(dstPath); + //去掉 最后 的 / 符合 + if (matcher2.find()) { + dstPath = dstPath.substring(0, dstPath.length()-1); + } + //数据迁移。 + copy.copyFolder(dstPath+"/app", next2move.getDstPath()); + // "1" :正在上传,0:等待 迁移, 2:成功 3:失败 + next2move.setCompleteStatus("1"); + next2move.setLastTime(DateForm.date2StringBysecond(new Date())); + //更新sql + dataInfoMoveTmpDao.update(next2move); + break; + } + } + } + } + } + + Thread.sleep(Constant.update_dataInfo_sleep_time); + } catch (Exception e) { + System.err.println(e); + } + + } + +} diff --git a/src/com/platform/service/thread/TreadMoveData2Start.java b/src/com/platform/service/thread/TreadMoveData2Start.java index 91f9bb92..0e403186 100644 --- a/src/com/platform/service/thread/TreadMoveData2Start.java +++ b/src/com/platform/service/thread/TreadMoveData2Start.java @@ -1,47 +1,47 @@ -package com.platform.service.thread; - -import java.util.List; - -import javax.annotation.Resource; - -import org.springframework.stereotype.Service; - -import com.platform.dao.DataInfoMoveTmpDao; -import com.platform.entities.DataInfoEntityMoveTmp; -import com.platform.service.IMoveDataService; -import com.platform.service.impl.MoveDataServiceImpl; -import com.platform.utils.Constant; - -public class TreadMoveData2Start extends Thread{ - - - private IMoveDataService dataInfoMove= new MoveDataServiceImpl(); - - public TreadMoveData2Start() { - } - - @Override - public void run() { - boolean isBreak = false; - while(true){ - if (isBreak) { - break; - } - try { - List resultlist = dataInfoMove.findAll(); - for (DataInfoEntityMoveTmp moveEntity : resultlist) { - if ("1".equals(moveEntity.getCompleteStatus())) { - moveEntity.setCompleteStatus("3"); - dataInfoMove.update(moveEntity); - } - } - isBreak = true; - Thread.sleep(Constant.update_dataInfo_sleep_time); - } catch (Exception e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - -} +package com.platform.service.thread; + +import java.util.List; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import com.platform.dao.DataInfoMoveTmpDao; +import com.platform.entities.DataInfoEntityMoveTmp; +import com.platform.service.IMoveDataService; +import com.platform.service.impl.MoveDataServiceImpl; +import com.platform.utils.Constant; + +public class TreadMoveData2Start extends Thread{ + + + private IMoveDataService dataInfoMove= new MoveDataServiceImpl(); + + public TreadMoveData2Start() { + } + + @Override + public void run() { + boolean isBreak = false; + while(true){ + if (isBreak) { + break; + } + try { + List resultlist = dataInfoMove.findAll(); + for (DataInfoEntityMoveTmp moveEntity : resultlist) { + if ("1".equals(moveEntity.getCompleteStatus())) { + moveEntity.setCompleteStatus("3"); + dataInfoMove.update(moveEntity); + } + } + isBreak = true; + Thread.sleep(Constant.update_dataInfo_sleep_time); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + +} diff --git a/src/com/platform/utils/Bean2MapUtils.java b/src/com/platform/utils/Bean2MapUtils.java index 7fea556d..fd479317 100644 --- a/src/com/platform/utils/Bean2MapUtils.java +++ b/src/com/platform/utils/Bean2MapUtils.java @@ -1,87 +1,87 @@ -package com.platform.utils; - -import java.beans.BeanInfo; -import java.beans.IntrospectionException; -import java.beans.Introspector; -import java.beans.PropertyDescriptor; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.HashMap; -import java.util.Map; - -public class Bean2MapUtils { - - /** - * 将一个 Map 对象转化为一个 JavaBean - * @param type 要转化的类型 - * @param map 包含属性值的 map - * @return 转化出来的 JavaBean 对象 - * @throws IntrospectionException - * 如果分析类属性失败 - * @throws IllegalAccessException - * 如果实例化 JavaBean 失败 - * @throws InstantiationException - * 如果实例化 JavaBean 失败 - * @throws InvocationTargetException - * 如果调用属性的 setter 方法失败 - */ - public static Object convertMap(Class type, Map map) - throws IntrospectionException, IllegalAccessException, - InstantiationException, InvocationTargetException { - BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性 - Object obj = type.newInstance(); // 创建 JavaBean 对象 - - // 给 JavaBean 对象的属性赋值 - PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); - for (int i = 0; i< propertyDescriptors.length; i++) { - PropertyDescriptor descriptor = propertyDescriptors[i]; - String propertyName = descriptor.getName(); - try{ - if (map.containsKey(propertyName)) { - // 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。 - Object value = map.get(propertyName); - - Object[] args = new Object[1]; - args[0] = value; - - descriptor.getWriteMethod().invoke(obj, args); - } - } - catch(Exception e){ - - } - } - return obj; - } - - /** - * 将一个 JavaBean 对象转化为一个 Map - * @param bean 要转化的JavaBean 对象 - * @return 转化出来的 Map 对象 - * @throws IntrospectionException 如果分析类属性失败 - * @throws IllegalAccessException 如果实例化 JavaBean 失败 - * @throws InvocationTargetException 如果调用属性的 setter 方法失败 - */ - public static Map convertBean(Object bean) - throws IntrospectionException, IllegalAccessException, InvocationTargetException { - Class type = bean.getClass(); - Map returnMap = new HashMap(); - BeanInfo beanInfo = Introspector.getBeanInfo(type); - - PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); - for (int i = 0; i< propertyDescriptors.length; i++) { - PropertyDescriptor descriptor = propertyDescriptors[i]; - String propertyName = descriptor.getName(); - if (!propertyName.equals("class")) { - Method readMethod = descriptor.getReadMethod(); - Object result = readMethod.invoke(bean, new Object[0]); - if (result != null) { - returnMap.put(propertyName, result); - } else { - returnMap.put(propertyName, ""); - } - } - } - return returnMap; - } -} +package com.platform.utils; + +import java.beans.BeanInfo; +import java.beans.IntrospectionException; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; + +public class Bean2MapUtils { + + /** + * 将一个 Map 对象转化为一个 JavaBean + * @param type 要转化的类型 + * @param map 包含属性值的 map + * @return 转化出来的 JavaBean 对象 + * @throws IntrospectionException + * 如果分析类属性失败 + * @throws IllegalAccessException + * 如果实例化 JavaBean 失败 + * @throws InstantiationException + * 如果实例化 JavaBean 失败 + * @throws InvocationTargetException + * 如果调用属性的 setter 方法失败 + */ + public static Object convertMap(Class type, Map map) + throws IntrospectionException, IllegalAccessException, + InstantiationException, InvocationTargetException { + BeanInfo beanInfo = Introspector.getBeanInfo(type); // 获取类属性 + Object obj = type.newInstance(); // 创建 JavaBean 对象 + + // 给 JavaBean 对象的属性赋值 + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + for (int i = 0; i< propertyDescriptors.length; i++) { + PropertyDescriptor descriptor = propertyDescriptors[i]; + String propertyName = descriptor.getName(); + try{ + if (map.containsKey(propertyName)) { + // 下面一句可以 try 起来,这样当一个属性赋值失败的时候就不会影响其他属性赋值。 + Object value = map.get(propertyName); + + Object[] args = new Object[1]; + args[0] = value; + + descriptor.getWriteMethod().invoke(obj, args); + } + } + catch(Exception e){ + + } + } + return obj; + } + + /** + * 将一个 JavaBean 对象转化为一个 Map + * @param bean 要转化的JavaBean 对象 + * @return 转化出来的 Map 对象 + * @throws IntrospectionException 如果分析类属性失败 + * @throws IllegalAccessException 如果实例化 JavaBean 失败 + * @throws InvocationTargetException 如果调用属性的 setter 方法失败 + */ + public static Map convertBean(Object bean) + throws IntrospectionException, IllegalAccessException, InvocationTargetException { + Class type = bean.getClass(); + Map returnMap = new HashMap(); + BeanInfo beanInfo = Introspector.getBeanInfo(type); + + PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); + for (int i = 0; i< propertyDescriptors.length; i++) { + PropertyDescriptor descriptor = propertyDescriptors[i]; + String propertyName = descriptor.getName(); + if (!propertyName.equals("class")) { + Method readMethod = descriptor.getReadMethod(); + Object result = readMethod.invoke(bean, new Object[0]); + if (result != null) { + returnMap.put(propertyName, result); + } else { + returnMap.put(propertyName, ""); + } + } + } + return returnMap; + } +} diff --git a/src/com/platform/utils/ConfigLoder.java b/src/com/platform/utils/ConfigLoder.java index ce3b30a0..3d1e470a 100644 --- a/src/com/platform/utils/ConfigLoder.java +++ b/src/com/platform/utils/ConfigLoder.java @@ -1,84 +1,84 @@ -package com.platform.utils; - -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -import org.apache.commons.lang.StringUtils; - -public class ConfigLoder { - private String configPath; - private volatile static ConfigLoder configLoder; - - private ConfigLoder(String configPath) { - this.configPath = configPath; - } - - public static ConfigLoder Builder(String configPtah) { - if (null == configLoder) { - synchronized (ConfigLoder.class) { - if (null == configLoder) - configLoder = new ConfigLoder(configPtah); - } - } - return configLoder; - } - - /** - * 读取文Property中的属性值 - * - * @param key - * @return - */ - public String getProperty(String key) { - String value = null; - if (StringUtils.isEmpty(key)) - return value; - - try { - InputStream is = new BufferedInputStream(new FileInputStream( - new File(configPath))); - Properties properties = new Properties(); - properties.load(is); - value = properties.getProperty(key); - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return value; - } - - public Properties getProperties() { - Properties properties = null; - try { - InputStream is; - properties = new Properties(); - is = new BufferedInputStream(new FileInputStream(new File( - configPath))); - properties.load(is); - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return properties; - } - - public String getConfigPath() { - return configPath; - } - - public void setConfigPath(String configPath) { - this.configPath = configPath; - } - -} +package com.platform.utils; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import org.apache.commons.lang.StringUtils; + +public class ConfigLoder { + private String configPath; + private volatile static ConfigLoder configLoder; + + private ConfigLoder(String configPath) { + this.configPath = configPath; + } + + public static ConfigLoder Builder(String configPtah) { + if (null == configLoder) { + synchronized (ConfigLoder.class) { + if (null == configLoder) + configLoder = new ConfigLoder(configPtah); + } + } + return configLoder; + } + + /** + * 读取文Property中的属性值 + * + * @param key + * @return + */ + public String getProperty(String key) { + String value = null; + if (StringUtils.isEmpty(key)) + return value; + + try { + InputStream is = new BufferedInputStream(new FileInputStream( + new File(configPath))); + Properties properties = new Properties(); + properties.load(is); + value = properties.getProperty(key); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return value; + } + + public Properties getProperties() { + Properties properties = null; + try { + InputStream is; + properties = new Properties(); + is = new BufferedInputStream(new FileInputStream(new File( + configPath))); + properties.load(is); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return properties; + } + + public String getConfigPath() { + return configPath; + } + + public void setConfigPath(String configPath) { + this.configPath = configPath; + } + +} diff --git a/src/com/platform/utils/ConfigPropertyReader.java b/src/com/platform/utils/ConfigPropertyReader.java index d2a3bd9b..880a9c34 100644 --- a/src/com/platform/utils/ConfigPropertyReader.java +++ b/src/com/platform/utils/ConfigPropertyReader.java @@ -1,84 +1,84 @@ -package com.platform.utils; - -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.util.Properties; - -import org.apache.commons.lang.StringUtils; - -public class ConfigPropertyReader { - private String configPath; - private volatile static ConfigPropertyReader configLoder; - - private ConfigPropertyReader(String configPath) { - this.configPath = configPath; - } - - public static ConfigPropertyReader Builder(String configPtah) { - if (null == configLoder) { - synchronized (ConfigPropertyReader.class) { - if (null == configLoder) - configLoder = new ConfigPropertyReader(configPtah); - } - } - return configLoder; - } - - /** - * 读取文Property中的属性值 - * - * @param key - * @return - */ - public synchronized String getProperty(String key) { - String value = null; - if (StringUtils.isEmpty(key)) - return value; - - try { - InputStream is = new BufferedInputStream(new FileInputStream( - new File(configPath))); - Properties properties = new Properties(); - properties.load(is); - value = properties.getProperty(key); - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return value; - } - - public Properties getProperties() { - Properties properties = null; - try { - InputStream is; - properties = new Properties(); - is = new BufferedInputStream(new FileInputStream(new File( - configPath))); - properties.load(is); - } catch (FileNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return properties; - } - - public String getConfigPath() { - return configPath; - } - - public void setConfigPath(String configPath) { - this.configPath = configPath; - } - -} +package com.platform.utils; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.Properties; + +import org.apache.commons.lang.StringUtils; + +public class ConfigPropertyReader { + private String configPath; + private volatile static ConfigPropertyReader configLoder; + + private ConfigPropertyReader(String configPath) { + this.configPath = configPath; + } + + public static ConfigPropertyReader Builder(String configPtah) { + if (null == configLoder) { + synchronized (ConfigPropertyReader.class) { + if (null == configLoder) + configLoder = new ConfigPropertyReader(configPtah); + } + } + return configLoder; + } + + /** + * 读取文Property中的属性值 + * + * @param key + * @return + */ + public synchronized String getProperty(String key) { + String value = null; + if (StringUtils.isEmpty(key)) + return value; + + try { + InputStream is = new BufferedInputStream(new FileInputStream( + new File(configPath))); + Properties properties = new Properties(); + properties.load(is); + value = properties.getProperty(key); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return value; + } + + public Properties getProperties() { + Properties properties = null; + try { + InputStream is; + properties = new Properties(); + is = new BufferedInputStream(new FileInputStream(new File( + configPath))); + properties.load(is); + } catch (FileNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return properties; + } + + public String getConfigPath() { + return configPath; + } + + public void setConfigPath(String configPath) { + this.configPath = configPath; + } + +} diff --git a/src/com/platform/utils/Configs.java b/src/com/platform/utils/Configs.java index bb2afede..2160662d 100644 --- a/src/com/platform/utils/Configs.java +++ b/src/com/platform/utils/Configs.java @@ -1,52 +1,52 @@ -package com.platform.utils; - -import org.apache.log4j.Logger; - -public class Configs { - - /** 全局自定义异常--编码 */ - public static final String GLOBAL_EXP_CUSTOM = "3001001001"; - - /** 全局非自定义异常--编码 */ - public static final String GLOBAL_EXP_NOT_CUSTOM = "3001001002"; - - public static final String CONFIG_LOCALTION = "WebContent/WEB-INF/config/config.properties"; - - public static final Logger CONSOLE_LOGGER = Logger.getLogger("console"); - - public static final Logger DAILY_ROLLING_LOGGER = Logger - .getLogger("dailyRollingFile"); - - public static final Logger DAILY_LOGGER = Logger.getLogger("railyFile"); - - public static final Logger LOGGER = Logger.getLogger(Configs.class); - - public static String KUBE_MASTER_URL = "http://192.168.0.113:8080/"; // kubernetes集群的maser - // URl - - public static int ORACLE_DEFAULT_PORT = 1521; // oracle的默认端口号 - - public static String COLLECT_USER_NAME = "system"; //采集统一的登入用户名 - - public static String COLLECT_PASSWORD = "oracle"; //采集统一的登入密码 - - public static String COLLECT_SERVICE_NAME = "orcl"; //采集库统一的服务名 - - public static String GATHER_PORT ="1521"; //汇总库的端口号 - - public static String GATHER_USER_NAME = "system"; //汇总库的登入用户名 - - public static String GATHER_USER_PASSWORD = "1"; //汇总库的登入密码 - - public static String GATHER_SERVICE_NAME = "orcl"; //汇总库的服务名 - - public static String TABLE_SUFFIX = "_20152016"; //汇总库汇总表的后缀名 - - public static String EXTRACT_LOG_LOCALTION = "/home/log"; //数据汇总日志保存位置 - - public static String GATHER_TABLESPACE_NAME=""; //表空间名 - - public static String GATHER_TABLESPACE_PATH=""; //表空间路径 - - public static String GATHER_TABLE_PASSWORD=""; //登入密码 -} +package com.platform.utils; + +import org.apache.log4j.Logger; + +public class Configs { + + /** 全局自定义异常--编码 */ + public static final String GLOBAL_EXP_CUSTOM = "3001001001"; + + /** 全局非自定义异常--编码 */ + public static final String GLOBAL_EXP_NOT_CUSTOM = "3001001002"; + + public static final String CONFIG_LOCALTION = "WebContent/WEB-INF/config/config.properties"; + + public static final Logger CONSOLE_LOGGER = Logger.getLogger("console"); + + public static final Logger DAILY_ROLLING_LOGGER = Logger + .getLogger("dailyRollingFile"); + + public static final Logger DAILY_LOGGER = Logger.getLogger("railyFile"); + + public static final Logger LOGGER = Logger.getLogger(Configs.class); + + public static String KUBE_MASTER_URL = "http://192.168.0.113:8080/"; // kubernetes集群的maser + // URl + + public static int ORACLE_DEFAULT_PORT = 1521; // oracle的默认端口号 + + public static String COLLECT_USER_NAME = "system"; //采集统一的登入用户名 + + public static String COLLECT_PASSWORD = "oracle"; //采集统一的登入密码 + + public static String COLLECT_SERVICE_NAME = "orcl"; //采集库统一的服务名 + + public static String GATHER_PORT ="1521"; //汇总库的端口号 + + public static String GATHER_USER_NAME = "system"; //汇总库的登入用户名 + + public static String GATHER_USER_PASSWORD = "1"; //汇总库的登入密码 + + public static String GATHER_SERVICE_NAME = "orcl"; //汇总库的服务名 + + public static String TABLE_SUFFIX = "_20152016"; //汇总库汇总表的后缀名 + + public static String EXTRACT_LOG_LOCALTION = "/home/log"; //数据汇总日志保存位置 + + public static String GATHER_TABLESPACE_NAME=""; //表空间名 + + public static String GATHER_TABLESPACE_PATH=""; //表空间路径 + + public static String GATHER_TABLE_PASSWORD=""; //登入密码 +} diff --git a/src/com/platform/utils/DateForm.java b/src/com/platform/utils/DateForm.java index c6531466..db66520f 100644 --- a/src/com/platform/utils/DateForm.java +++ b/src/com/platform/utils/DateForm.java @@ -1,137 +1,137 @@ -package com.platform.utils; - -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; - -public class DateForm { - - private static final String date_format_second = "yyyy-MM-dd HH:mm:ss"; - - private static final String date_format_second_non = "yyyy-MM-dd_HH-mm-ss"; - - private static final String data_format_min = "yyyy-MM-dd HH:mm"; - - private static final String data_format_day = "yyyy-MM-dd"; - - private static ThreadLocal threadLocal_second = new ThreadLocal(); - - private static ThreadLocal threadLocal_second_non = new ThreadLocal(); - - private static ThreadLocal threadLocal_min = new ThreadLocal(); - - private static ThreadLocal threadLocal_day = new ThreadLocal(); - - public static String date2StringBysecond(Date date) { - if (date == null) { - return null; - } - DateFormat format = threadLocal_second.get(); - if(format == null){ - format = new SimpleDateFormat(date_format_second); - threadLocal_second.set(format); - } - return format.format(date); - } - - public static String date2StringBysecondNon(Date date) { - if (date == null) { - return null; - } - DateFormat format = threadLocal_second_non.get(); - if(format == null){ - format = new SimpleDateFormat(date_format_second_non); - threadLocal_second_non.set(format); - } - return format.format(date); - } - - public static String date2StringByMin(Date date) { - if (date == null) { - return null; - } - DateFormat format = threadLocal_min.get(); - if(format == null){ - format = new SimpleDateFormat(data_format_min); - threadLocal_min.set(format); - } - return format.format(date); - } - - public static String date2StringByDay(Date date) { - if (date == null) { - return null; - } - DateFormat format = threadLocal_day.get(); - if(format == null){ - format = new SimpleDateFormat(data_format_day); - threadLocal_day.set(format); - } - return format.format(date); - } - - public static Date string2DateBysecond(String date) { - if (date == null) { - return null; - } - date = date.trim(); - if (date.isEmpty()) { - return null; - } - DateFormat format = threadLocal_second.get(); - try { - if(format == null){ - format = new SimpleDateFormat(date_format_second); - threadLocal_second.set(format); - } - return format.parse(date); - } catch (ParseException e) { - e.printStackTrace(); - } - return null; - } - - public static Date string2DateByMin(String date) { - if (date == null) { - return null; - } - date = date.trim(); - if (date.isEmpty()) { - return null; - } - DateFormat format = threadLocal_min.get(); - try { - if(format == null){ - format = new SimpleDateFormat(data_format_min); - threadLocal_min.set(format); - } - return format.parse(date); - } catch (ParseException e) { - e.printStackTrace(); - } - return null; - } - - public static Date string2DateByDay(String date) { - if (date == null) { - return null; - } - date = date.trim(); - if (date.isEmpty()) { - return null; - } - DateFormat format = threadLocal_day.get(); - try { - if(format == null){ - format = new SimpleDateFormat(data_format_day); - threadLocal_day.set(format); - } - return format.parse(date); - } catch (ParseException e) { - e.printStackTrace(); - } - return null; - } - -} +package com.platform.utils; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class DateForm { + + private static final String date_format_second = "yyyy-MM-dd HH:mm:ss"; + + private static final String date_format_second_non = "yyyy-MM-dd_HH-mm-ss"; + + private static final String data_format_min = "yyyy-MM-dd HH:mm"; + + private static final String data_format_day = "yyyy-MM-dd"; + + private static ThreadLocal threadLocal_second = new ThreadLocal(); + + private static ThreadLocal threadLocal_second_non = new ThreadLocal(); + + private static ThreadLocal threadLocal_min = new ThreadLocal(); + + private static ThreadLocal threadLocal_day = new ThreadLocal(); + + public static String date2StringBysecond(Date date) { + if (date == null) { + return null; + } + DateFormat format = threadLocal_second.get(); + if(format == null){ + format = new SimpleDateFormat(date_format_second); + threadLocal_second.set(format); + } + return format.format(date); + } + + public static String date2StringBysecondNon(Date date) { + if (date == null) { + return null; + } + DateFormat format = threadLocal_second_non.get(); + if(format == null){ + format = new SimpleDateFormat(date_format_second_non); + threadLocal_second_non.set(format); + } + return format.format(date); + } + + public static String date2StringByMin(Date date) { + if (date == null) { + return null; + } + DateFormat format = threadLocal_min.get(); + if(format == null){ + format = new SimpleDateFormat(data_format_min); + threadLocal_min.set(format); + } + return format.format(date); + } + + public static String date2StringByDay(Date date) { + if (date == null) { + return null; + } + DateFormat format = threadLocal_day.get(); + if(format == null){ + format = new SimpleDateFormat(data_format_day); + threadLocal_day.set(format); + } + return format.format(date); + } + + public static Date string2DateBysecond(String date) { + if (date == null) { + return null; + } + date = date.trim(); + if (date.isEmpty()) { + return null; + } + DateFormat format = threadLocal_second.get(); + try { + if(format == null){ + format = new SimpleDateFormat(date_format_second); + threadLocal_second.set(format); + } + return format.parse(date); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + public static Date string2DateByMin(String date) { + if (date == null) { + return null; + } + date = date.trim(); + if (date.isEmpty()) { + return null; + } + DateFormat format = threadLocal_min.get(); + try { + if(format == null){ + format = new SimpleDateFormat(data_format_min); + threadLocal_min.set(format); + } + return format.parse(date); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + + public static Date string2DateByDay(String date) { + if (date == null) { + return null; + } + date = date.trim(); + if (date.isEmpty()) { + return null; + } + DateFormat format = threadLocal_day.get(); + try { + if(format == null){ + format = new SimpleDateFormat(data_format_day); + threadLocal_day.set(format); + } + return format.parse(date); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + +} diff --git a/src/com/platform/utils/DateHandle.java b/src/com/platform/utils/DateHandle.java index 90ebb9d7..ca51e11d 100644 --- a/src/com/platform/utils/DateHandle.java +++ b/src/com/platform/utils/DateHandle.java @@ -1,9 +1,9 @@ -package com.platform.utils; -import java.util.Date; -import java.text.SimpleDateFormat; -public class DateHandle { -public static String getNow() { - SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 - return df.format(new Date());// new Date()为获取当前系统时? -} -} +package com.platform.utils; +import java.util.Date; +import java.text.SimpleDateFormat; +public class DateHandle { +public static String getNow() { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式 + return df.format(new Date());// new Date()为获取当前系统时? +} +} diff --git a/src/com/platform/utils/FileOperateHelper.java b/src/com/platform/utils/FileOperateHelper.java index 3236c597..6773436c 100644 --- a/src/com/platform/utils/FileOperateHelper.java +++ b/src/com/platform/utils/FileOperateHelper.java @@ -1,95 +1,95 @@ -package com.platform.utils; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; - -import org.junit.Test; - -/** - * 文件读写操作帮助类 - * - * @author wuming - * - */ -public class FileOperateHelper { - - /** - * 以追加的方式将信息写入文件 - * - * @param path - * @param message - */ - @SuppressWarnings("resource") - public static void fileWrite(String path, String message) { - try { - File file = new File(path); - if (file.exists()) - file.createNewFile(); - FileOutputStream out = new FileOutputStream(file, true); // 如果追加方式用true - StringBuffer sb = new StringBuffer(); - sb.append(message).append("\n"); - out.write(sb.toString().getBytes("utf-8")); - } catch (IOException e) { - // TODO: handle exception - } - } - - /** - * 文件读取方法 - * @param path - * @return - */ - @SuppressWarnings("resource") - public static String fileReader(String path) { - StringBuffer sb = new StringBuffer(); - String tempString = ""; - try { - File file = new File(path); - if (!file.exists()) - return ""; - FileInputStream fis = new FileInputStream(file); - BufferedReader br = new BufferedReader(new InputStreamReader(fis)); - while ((tempString = br.readLine()) != null) { - sb.append(tempString); - } - } catch (Exception e) { - // TODO: handle exception - } - return sb.toString(); - } - - /** - * 文件读取方法 - * @param path - * @return - */ - - @SuppressWarnings("resource") - public static String fileReaderAndendline(String path) { - - StringBuffer sb = new StringBuffer(); - String tempString = ""; - try { - File file = new File(path); - if (!file.exists()) - - return ""; - - FileInputStream fis = new FileInputStream(file); - BufferedReader br = new BufferedReader(new InputStreamReader(fis)); - while ((tempString = br.readLine()) != null) { - sb.append(tempString+"\n"); - } - } catch (Exception e) { - // TODO: handle exception - } - return sb.toString(); - } - - - -} +package com.platform.utils; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; + +import org.junit.Test; + +/** + * 文件读写操作帮助类 + * + * @author wuming + * + */ +public class FileOperateHelper { + + /** + * 以追加的方式将信息写入文件 + * + * @param path + * @param message + */ + @SuppressWarnings("resource") + public static void fileWrite(String path, String message) { + try { + File file = new File(path); + if (file.exists()) + file.createNewFile(); + FileOutputStream out = new FileOutputStream(file, true); // 如果追加方式用true + StringBuffer sb = new StringBuffer(); + sb.append(message).append("\n"); + out.write(sb.toString().getBytes("utf-8")); + } catch (IOException e) { + // TODO: handle exception + } + } + + /** + * 文件读取方法 + * @param path + * @return + */ + @SuppressWarnings("resource") + public static String fileReader(String path) { + StringBuffer sb = new StringBuffer(); + String tempString = ""; + try { + File file = new File(path); + if (!file.exists()) + return ""; + FileInputStream fis = new FileInputStream(file); + BufferedReader br = new BufferedReader(new InputStreamReader(fis)); + while ((tempString = br.readLine()) != null) { + sb.append(tempString); + } + } catch (Exception e) { + // TODO: handle exception + } + return sb.toString(); + } + + /** + * 文件读取方法 + * @param path + * @return + */ + + @SuppressWarnings("resource") + public static String fileReaderAndendline(String path) { + + StringBuffer sb = new StringBuffer(); + String tempString = ""; + try { + File file = new File(path); + if (!file.exists()) + + return ""; + + FileInputStream fis = new FileInputStream(file); + BufferedReader br = new BufferedReader(new InputStreamReader(fis)); + while ((tempString = br.readLine()) != null) { + sb.append(tempString+"\n"); + } + } catch (Exception e) { + // TODO: handle exception + } + return sb.toString(); + } + + + +} diff --git a/src/com/platform/utils/GanymedSSH.java b/src/com/platform/utils/GanymedSSH.java index 31598f93..194be049 100644 --- a/src/com/platform/utils/GanymedSSH.java +++ b/src/com/platform/utils/GanymedSSH.java @@ -1,268 +1,268 @@ - -package com.platform.utils; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; - -import ch.ethz.ssh2.Connection; -import ch.ethz.ssh2.Session; -import ch.ethz.ssh2.StreamGobbler; - -import ch.ethz.ssh2.*; - - - -public class GanymedSSH { - public static Logger log = Logger.getLogger(GanymedSSH.class); - Connection conn; - - public boolean status = true;// 锟角凤拷锟斤拷锟街达拷锟斤拷锟斤拷锟阶刺� - - public GanymedSSH() { - // TODO Auto-generated constructor stub - - } - - public GanymedSSH(String host, String username, String password, int port) { - // TODO Auto-generated constructor stub - try { - conn = getOpenedConnection(host, username, password, port); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - - - public Connection getOpenedConnection(String host, String username, String password, int port) - throws IOException { - - conn = new Connection(host, port); - conn.connect(); // make sure the connection is opened - boolean isAuthenticated = conn.authenticateWithPassword(username, password); - if (isAuthenticated == false) - throw new IOException("Authentication failed."); - return conn; - } - - public void execCmdNoWaitAcquiescent(String cmd) { - String host=Constant.hostIp; - String username=Constant.rootUser; - String password=Constant.rootPasswd; - int port=Constant.port; - - Session sess = null; - try { - - sess = conn.openSession(); - // 执锟斤拷cmd - sess.execCommand(cmd); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } finally { - sess.close(); - - } - } - - public void execCmdNoWait(String host, String username, String password, int port, String cmd) { - - Session sess = null; - try { - conn = getOpenedConnection(host, username, password, port); - sess = conn.openSession(); - // 执锟斤拷cmd - sess.execCommand(cmd); - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } finally { - sess.close(); - - } - } - - public List execCmdWaitAcquiescent(String cmd) { - String host=Constant.hostIp; - String username=Constant.rootUser; - String password=Constant.rootPasswd; - int port=Constant.port; - List reStrings = new ArrayList(); - - Session sess = null; - try { - - sess = conn.openSession(); - // 执锟斤拷cmd - sess.execCommand(cmd); - - InputStream stdout = new StreamGobbler(sess.getStdout()); - InputStream stderr = new StreamGobbler(sess.getStderr()); - BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout)); - BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr)); - while (true) { - String line = stderrReader.readLine(); - - if (line != null) { -// System.out.println(line); - reStrings.add(line); - } else { - break; - } - } - - if(reStrings.size()==0){ - while (true) { - String line = stdoutReader.readLine(); - - if (line != null) { -// System.out.println(line); - reStrings.add(line); - } else { - break; - } - } - } - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } finally { - sess.close(); - - } - return reStrings; - } - - public List execCmdWait(String host, String username, String password, int port, String cmd) { - List reStrings = new ArrayList(); - - Session sess = null; - try { - - sess = conn.openSession(); - // 执锟斤拷cmd - sess.execCommand(cmd); - - InputStream stdout = new StreamGobbler(sess.getStdout()); - InputStream stderr = new StreamGobbler(sess.getStderr()); - BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout)); - BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr)); - while (true) { - String line = stdoutReader.readLine(); - - if (line != null) { -// System.out.println(line); - reStrings.add(line); - } else { - break; - } - } - if(reStrings.size()==0){ - while (true) { - String line = stderrReader.readLine(); - - if (line != null) { -// System.out.println(line); - reStrings.add(line); - } else { - break; - } - } - } - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } finally { - sess.close(); - - } - return reStrings; - } - - public Map execMD5cmd(String cmd) { - Map md5 = new HashMap(); - - - Session sess = null; - try { - - sess = conn.openSession(); - // 执锟斤拷cmd - sess.execCommand(cmd); - - InputStream stdout = new StreamGobbler(sess.getStdout()); - InputStream stderr = new StreamGobbler(sess.getStderr()); - BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout)); - BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr)); - while (true) { - String line = stdoutReader.readLine(); - - if (line != null) { - String[] lines = line.split(" "); - String key = lines[1].trim(); - String value = lines[0].trim(); - md5.put(key, value); - } else { - break; - } - } - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } finally { - sess.close(); - - } - return md5; - } - - public String execGetSize(String cmd) { - status = false; - String str_size = "0"; - Session sess = null; - try { - - // 执锟斤拷cmd - sess = conn.openSession(); - sess.execCommand(cmd); - InputStream stdout = new StreamGobbler(sess.getStdout()); - - @SuppressWarnings("resource") - BufferedReader br = new BufferedReader(new InputStreamReader(stdout)); - while (true) { - String line = br.readLine(); - if (line != null) { - // String[] lines=line.split(" "); - // str_size=lines[0]; - - str_size = line; - } else { - break; - } - - } - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } finally { - sess.close(); - } - status = true; - return str_size; - } - public static void main(String[] args) { - PropertyConfigurator.configure("log4j.properties"); - } - -} + +package com.platform.utils; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; + +import ch.ethz.ssh2.Connection; +import ch.ethz.ssh2.Session; +import ch.ethz.ssh2.StreamGobbler; + +import ch.ethz.ssh2.*; + + + +public class GanymedSSH { + public static Logger log = Logger.getLogger(GanymedSSH.class); + Connection conn; + + public boolean status = true;// 锟角凤拷锟斤拷锟街达拷锟斤拷锟斤拷锟阶刺� + + public GanymedSSH() { + // TODO Auto-generated constructor stub + + } + + public GanymedSSH(String host, String username, String password, int port) { + // TODO Auto-generated constructor stub + try { + conn = getOpenedConnection(host, username, password, port); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + } + + + public Connection getOpenedConnection(String host, String username, String password, int port) + throws IOException { + + conn = new Connection(host, port); + conn.connect(); // make sure the connection is opened + boolean isAuthenticated = conn.authenticateWithPassword(username, password); + if (isAuthenticated == false) + throw new IOException("Authentication failed."); + return conn; + } + + public void execCmdNoWaitAcquiescent(String cmd) { + String host=Constant.hostIp; + String username=Constant.rootUser; + String password=Constant.rootPasswd; + int port=Constant.port; + + Session sess = null; + try { + + sess = conn.openSession(); + // 执锟斤拷cmd + sess.execCommand(cmd); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + sess.close(); + + } + } + + public void execCmdNoWait(String host, String username, String password, int port, String cmd) { + + Session sess = null; + try { + conn = getOpenedConnection(host, username, password, port); + sess = conn.openSession(); + // 执锟斤拷cmd + sess.execCommand(cmd); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + sess.close(); + + } + } + + public List execCmdWaitAcquiescent(String cmd) { + String host=Constant.hostIp; + String username=Constant.rootUser; + String password=Constant.rootPasswd; + int port=Constant.port; + List reStrings = new ArrayList(); + + Session sess = null; + try { + + sess = conn.openSession(); + // 执锟斤拷cmd + sess.execCommand(cmd); + + InputStream stdout = new StreamGobbler(sess.getStdout()); + InputStream stderr = new StreamGobbler(sess.getStderr()); + BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout)); + BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr)); + while (true) { + String line = stderrReader.readLine(); + + if (line != null) { +// System.out.println(line); + reStrings.add(line); + } else { + break; + } + } + + if(reStrings.size()==0){ + while (true) { + String line = stdoutReader.readLine(); + + if (line != null) { +// System.out.println(line); + reStrings.add(line); + } else { + break; + } + } + } + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + sess.close(); + + } + return reStrings; + } + + public List execCmdWait(String host, String username, String password, int port, String cmd) { + List reStrings = new ArrayList(); + + Session sess = null; + try { + + sess = conn.openSession(); + // 执锟斤拷cmd + sess.execCommand(cmd); + + InputStream stdout = new StreamGobbler(sess.getStdout()); + InputStream stderr = new StreamGobbler(sess.getStderr()); + BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout)); + BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr)); + while (true) { + String line = stdoutReader.readLine(); + + if (line != null) { +// System.out.println(line); + reStrings.add(line); + } else { + break; + } + } + if(reStrings.size()==0){ + while (true) { + String line = stderrReader.readLine(); + + if (line != null) { +// System.out.println(line); + reStrings.add(line); + } else { + break; + } + } + } + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + sess.close(); + + } + return reStrings; + } + + public Map execMD5cmd(String cmd) { + Map md5 = new HashMap(); + + + Session sess = null; + try { + + sess = conn.openSession(); + // 执锟斤拷cmd + sess.execCommand(cmd); + + InputStream stdout = new StreamGobbler(sess.getStdout()); + InputStream stderr = new StreamGobbler(sess.getStderr()); + BufferedReader stdoutReader = new BufferedReader(new InputStreamReader(stdout)); + BufferedReader stderrReader = new BufferedReader(new InputStreamReader(stderr)); + while (true) { + String line = stdoutReader.readLine(); + + if (line != null) { + String[] lines = line.split(" "); + String key = lines[1].trim(); + String value = lines[0].trim(); + md5.put(key, value); + } else { + break; + } + } + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + sess.close(); + + } + return md5; + } + + public String execGetSize(String cmd) { + status = false; + String str_size = "0"; + Session sess = null; + try { + + // 执锟斤拷cmd + sess = conn.openSession(); + sess.execCommand(cmd); + InputStream stdout = new StreamGobbler(sess.getStdout()); + + @SuppressWarnings("resource") + BufferedReader br = new BufferedReader(new InputStreamReader(stdout)); + while (true) { + String line = br.readLine(); + if (line != null) { + // String[] lines=line.split(" "); + // str_size=lines[0]; + + str_size = line; + } else { + break; + } + + } + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } finally { + sess.close(); + } + status = true; + return str_size; + } + public static void main(String[] args) { + PropertyConfigurator.configure("log4j.properties"); + } + +} diff --git a/src/com/platform/utils/RunCommand.java b/src/com/platform/utils/RunCommand.java index 66292a2a..126c4453 100644 --- a/src/com/platform/utils/RunCommand.java +++ b/src/com/platform/utils/RunCommand.java @@ -1,60 +1,60 @@ -package com.platform.utils; - -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.List; -import org.apache.log4j.*; - -public class RunCommand { - - - public static Logger log = Logger.getLogger(RunCommand.class); - - public List runCommandWait(String command) { - List reStrings = null; - String cmds[] = { "/bin/bash", "-c", command }; - try { - Process ps = Runtime.getRuntime().exec(cmds); - ps.waitFor(); - BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream())); - reStrings = new ArrayList(); - String line; - while ((line = br.readLine()) != null) { - reStrings.add(line); - // System.out.println(line); - } - - br = new BufferedReader(new InputStreamReader(ps.getErrorStream())); - reStrings = new ArrayList(); - - while ((line = br.readLine()) != null) { - reStrings.add(line); - // System.out.println(line); - } - } catch (Exception e) { - - log.error("0001 runCommandWait is error"); - - e.printStackTrace(); - } - return reStrings; - } - - public int runCommand(String command) { - List reStrings = null; - String cmds[] = { "/bin/bash", "-c", command }; - try { - Process ps = Runtime.getRuntime().exec(cmds); - } catch (Exception e) { - - log.error("0002 runCommand execute " + command + " is error"); - - e.printStackTrace(); - return -1; - } - return 1; - } - - -} +package com.platform.utils; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; +import org.apache.log4j.*; + +public class RunCommand { + + + public static Logger log = Logger.getLogger(RunCommand.class); + + public List runCommandWait(String command) { + List reStrings = null; + String cmds[] = { "/bin/bash", "-c", command }; + try { + Process ps = Runtime.getRuntime().exec(cmds); + ps.waitFor(); + BufferedReader br = new BufferedReader(new InputStreamReader(ps.getInputStream())); + reStrings = new ArrayList(); + String line; + while ((line = br.readLine()) != null) { + reStrings.add(line); + // System.out.println(line); + } + + br = new BufferedReader(new InputStreamReader(ps.getErrorStream())); + reStrings = new ArrayList(); + + while ((line = br.readLine()) != null) { + reStrings.add(line); + // System.out.println(line); + } + } catch (Exception e) { + + log.error("0001 runCommandWait is error"); + + e.printStackTrace(); + } + return reStrings; + } + + public int runCommand(String command) { + List reStrings = null; + String cmds[] = { "/bin/bash", "-c", command }; + try { + Process ps = Runtime.getRuntime().exec(cmds); + } catch (Exception e) { + + log.error("0002 runCommand execute " + command + " is error"); + + e.printStackTrace(); + return -1; + } + return 1; + } + + +} diff --git a/src/com/platform/utils/Support.java b/src/com/platform/utils/Support.java index 1b4cdc92..4288021e 100644 --- a/src/com/platform/utils/Support.java +++ b/src/com/platform/utils/Support.java @@ -1,31 +1,31 @@ - -/** - * 文件名 : Support.java - * 版权 : <版权/公司名> - * 描述 : <描述> - * @author liliy - * 版本 : <版本> - * 修改时间: 2016年9月12日 - * 修改内容: <修改内容> - */ -package com.platform.utils; - -import java.util.regex.Pattern; - -/** - * <一句话功能简述> - * <功能详细描述> - * @author liliy - * @version [版本号,2016年9月12日] - * @see [相关类/方法] - * @since [产品/模块版本] - */ - -public class Support { - public static boolean checkIP(String str) { - Pattern pattern = Pattern - .compile("^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]" - + "|[*])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$"); - return pattern.matcher(str).matches(); - } -} + +/** + * 文件名 : Support.java + * 版权 : <版权/公司名> + * 描述 : <描述> + * @author liliy + * 版本 : <版本> + * 修改时间: 2016年9月12日 + * 修改内容: <修改内容> + */ +package com.platform.utils; + +import java.util.regex.Pattern; + +/** + * <一句话功能简述> + * <功能详细描述> + * @author liliy + * @version [版本号,2016年9月12日] + * @see [相关类/方法] + * @since [产品/模块版本] + */ + +public class Support { + public static boolean checkIP(String str) { + Pattern pattern = Pattern + .compile("^((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]" + + "|[*])\\.){3}(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]|[*])$"); + return pattern.matcher(str).matches(); + } +} diff --git a/src/com/platform/utils/TestSupport.java b/src/com/platform/utils/TestSupport.java index 74d938cb..a4e6f79d 100644 --- a/src/com/platform/utils/TestSupport.java +++ b/src/com/platform/utils/TestSupport.java @@ -1,14 +1,14 @@ -package com.platform.utils; - -import java.util.ArrayList; -import java.util.List; - -public class TestSupport { -public List strToList(String str) { - List reStrings=new ArrayList(); - for(String one:str.split("\n")){ - reStrings.add(one); - } - return reStrings; -} -} +package com.platform.utils; + +import java.util.ArrayList; +import java.util.List; + +public class TestSupport { +public List strToList(String str) { + List reStrings=new ArrayList(); + for(String one:str.split("\n")){ + reStrings.add(one); + } + return reStrings; +} +} diff --git a/src/com/platform/utils/ThreadVolume.java b/src/com/platform/utils/ThreadVolume.java index 1170c58d..8379c339 100644 --- a/src/com/platform/utils/ThreadVolume.java +++ b/src/com/platform/utils/ThreadVolume.java @@ -1,124 +1,124 @@ -package com.platform.utils; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.springframework.stereotype.Service; - -import com.platform.entities.Brick; -import com.platform.entities.FolderNode; -import com.platform.entities.VolumeEntity; -import com.platform.glusterfs.ClusterInfo; -import com.platform.glusterfs.GetTreeData; -import com.platform.glusterfs.VolumeInfo; - -public class ThreadVolume extends Thread implements Runnable{ - - /** - * 挂载点路径 -- 暂时无用的 - */ - private static String pointPath = "/home"; - - /** Volume信息查询 */ - private VolumeInfo volumeInfo = new VolumeInfo(); - - private ClusterInfo cluster = new ClusterInfo(); - - public ThreadVolume() { - // TODO Auto-generated constructor stub - } - - public ThreadVolume(String path) { - if (null != path && !"".equals(path.trim())) { - ThreadVolume.pointPath = path; - } - } - - /** gfs目录树形展示 */ - private GetTreeData gfsTree = new GetTreeData(); - - @Override - public void run() { - super.run(); - while(true){ - try { - List folderlist = new ArrayList(); - List volumeList = new ArrayList(); - // brick状态 map集合 - Map brickStatusMap = cluster.showClusterInfo(); - - //查询 volume name - List volumeNameList = volumeInfo.showAllVolumeName(); - if (null != volumeNameList) { - for (String volumeName : volumeNameList) { - VolumeEntity volume = new VolumeEntity(); - volume.setName(volumeName); - List path = volumeInfo.getVolumeMountPoint(volumeName); - //默认加载第一个路径 - if (null != path && path.size() > 0) { - volume.setPath(path.get(0)); - } - volume.setAllSize(volumeInfo.getVolumeAvailableSize(volumeName)); - volume.setUsedSize(volumeInfo.getVolumeUseSize(volumeName)); - //TODO 查询brick-- - //返回 ip:path - List brickStrs = volumeInfo.getVolumeBricks(volumeName); - //brick已用大小: - Map usedSize = volumeInfo.getVolumebricksDataSize(volumeName); - Map availableSize = volumeInfo.getVolumebricksAvailableSize(volumeName); - - List brickList = new ArrayList(); - for (String brickIpPath : brickStrs) { - Brick b = new Brick(); - String ipAndpath[] = brickIpPath.split(":"); - String brickip = ipAndpath[0]; - String brickpath = ipAndpath[1]; - //iP , path , - b.setIp(brickip); - if(brickStatusMap==null || brickStatusMap.size()==0){ - b.setStatus(false); - }else if (brickStatusMap.containsKey(brickip)) { - b.setStatus(true); - } - else { - b.setStatus(false); - } - b.setPath(brickpath); - b.setAvailableSize(availableSize.get(brickIpPath)); - b.setUsedSize(usedSize.get(brickIpPath)); - brickList.add(b); - } - volume.setBrick(brickList); - - - //默认加载第一个路径 - if (null != path && path.size() > 0) { - //装入 folder: - //查询 每个 volume 下的 folder - FolderNode foldertmp = gfsTree.getDatas(path.get(0)); - folderlist.add(foldertmp); - } - volumeList.add(volume); - } - } - //TODO 更新folder 目录 - CacheTreeData.setFolders(folderlist); - CacheTreeData.setVolumeList(volumeList); - - Thread.sleep(Constant.get_volume_sleep_time); - } catch (InterruptedException e) { - } - } - - } - - public static String getPointPath() { - return pointPath; - } - - public static void setPointPath(String pointPath) { - ThreadVolume.pointPath = pointPath; - } - -} +package com.platform.utils; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.springframework.stereotype.Service; + +import com.platform.entities.Brick; +import com.platform.entities.FolderNode; +import com.platform.entities.VolumeEntity; +import com.platform.glusterfs.ClusterInfo; +import com.platform.glusterfs.GetTreeData; +import com.platform.glusterfs.VolumeInfo; + +public class ThreadVolume extends Thread implements Runnable{ + + /** + * 挂载点路径 -- 暂时无用的 + */ + private static String pointPath = "/home"; + + /** Volume信息查询 */ + private VolumeInfo volumeInfo = new VolumeInfo(); + + private ClusterInfo cluster = new ClusterInfo(); + + public ThreadVolume() { + // TODO Auto-generated constructor stub + } + + public ThreadVolume(String path) { + if (null != path && !"".equals(path.trim())) { + ThreadVolume.pointPath = path; + } + } + + /** gfs目录树形展示 */ + private GetTreeData gfsTree = new GetTreeData(); + + @Override + public void run() { + super.run(); + while(true){ + try { + List folderlist = new ArrayList(); + List volumeList = new ArrayList(); + // brick状态 map集合 + Map brickStatusMap = cluster.showClusterInfo(); + + //查询 volume name + List volumeNameList = volumeInfo.showAllVolumeName(); + if (null != volumeNameList) { + for (String volumeName : volumeNameList) { + VolumeEntity volume = new VolumeEntity(); + volume.setName(volumeName); + List path = volumeInfo.getVolumeMountPoint(volumeName); + //默认加载第一个路径 + if (null != path && path.size() > 0) { + volume.setPath(path.get(0)); + } + volume.setAllSize(volumeInfo.getVolumeAvailableSize(volumeName)); + volume.setUsedSize(volumeInfo.getVolumeUseSize(volumeName)); + //TODO 查询brick-- + //返回 ip:path + List brickStrs = volumeInfo.getVolumeBricks(volumeName); + //brick已用大小: + Map usedSize = volumeInfo.getVolumebricksDataSize(volumeName); + Map availableSize = volumeInfo.getVolumebricksAvailableSize(volumeName); + + List brickList = new ArrayList(); + for (String brickIpPath : brickStrs) { + Brick b = new Brick(); + String ipAndpath[] = brickIpPath.split(":"); + String brickip = ipAndpath[0]; + String brickpath = ipAndpath[1]; + //iP , path , + b.setIp(brickip); + if(brickStatusMap==null || brickStatusMap.size()==0){ + b.setStatus(false); + }else if (brickStatusMap.containsKey(brickip)) { + b.setStatus(true); + } + else { + b.setStatus(false); + } + b.setPath(brickpath); + b.setAvailableSize(availableSize.get(brickIpPath)); + b.setUsedSize(usedSize.get(brickIpPath)); + brickList.add(b); + } + volume.setBrick(brickList); + + + //默认加载第一个路径 + if (null != path && path.size() > 0) { + //装入 folder: + //查询 每个 volume 下的 folder + FolderNode foldertmp = gfsTree.getDatas(path.get(0)); + folderlist.add(foldertmp); + } + volumeList.add(volume); + } + } + //TODO 更新folder 目录 + CacheTreeData.setFolders(folderlist); + CacheTreeData.setVolumeList(volumeList); + + Thread.sleep(Constant.get_volume_sleep_time); + } catch (InterruptedException e) { + } + } + + } + + public static String getPointPath() { + return pointPath; + } + + public static void setPointPath(String pointPath) { + ThreadVolume.pointPath = pointPath; + } + +} diff --git a/src/com/platform/utils/UtilsHelper.java b/src/com/platform/utils/UtilsHelper.java index 3da84c22..1c040bbc 100644 --- a/src/com/platform/utils/UtilsHelper.java +++ b/src/com/platform/utils/UtilsHelper.java @@ -1,113 +1,113 @@ -package com.platform.utils; - -import java.lang.reflect.Field; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.Iterator; -import java.util.Map; -import java.util.Map.Entry; - -public class UtilsHelper { - /** - * - * @param clazz - * @param req - * @return - */ - public static Object newObjAndSetAttrsByClass(Class clazz, - Map paramMap) { - Object object = null; - try { - object = clazz.newInstance(); - Field[] fileds = clazz.getDeclaredFields(); - for (Field fs : fileds) { - String fieldName = fs.getName(); - String fieldType = fs.getGenericType().toString() - .replace("class ", ""); // 如果type是类类型,则前面包含"class ",后面跟类名 - if (paramMap.containsKey(fieldName)) { - Method method = clazz.getDeclaredMethod( - getAttributeSetName(fs), Class.forName(fieldType)); - String value = paramMap.get(fieldName); - if ("java.lang.Integer".equals(fieldType)) { - method.invoke(object, Integer.valueOf(value)); - } else { - method.invoke(object, value); - } - } - } - } catch (InstantiationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalAccessException e) { - // TODO Auto-generated catch blockAQA - e.printStackTrace(); - } catch (NoSuchMethodException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (IllegalArgumentException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return object; - }; - - /** - * - * @param object - * @param req - * @return - */ - public static Object newObjAndSetAttrsByInstance(Object object, - Map mapParam) { - return newObjAndSetAttrsByClass(object.getClass(), mapParam); - } - - /** - * 生成属性{@fs}的set方法的名字 - * - * @param fs - * 属性对象 - * @return set方法的名字 - */ - private static String getAttributeSetName(Field fs) { - String fieldName = fs.getName(); - char[] cs = fieldName.toCharArray(); - cs[0] -= 32; - return "set" + String.valueOf(cs); - } - - public static Map updateMap(Map map1, Map map2) { - if (null == map1 || map1.size() <= 0) - return map2; - Iterator> iterator = map2.entrySet().iterator(); - while (iterator.hasNext()) { - Map.Entry entry = iterator.next(); - map1.put(entry.getKey(), entry.getValue()); - } - return map1; - } - - public static boolean isSubMap(Map map1, Map map2) { - boolean flag = true; - if (null == map2 || map2.size() <= 0 || null == map1) - return false; - Iterator> iterator = map1.entrySet().iterator(); - while (iterator.hasNext()) { - Map.Entry entry = iterator.next(); - if (!map2.containsKey(entry.getKey()) - || !map2.containsValue(entry.getValue())) - return false; - } - return flag; - } - -} +package com.platform.utils; + +import java.lang.reflect.Field; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.Iterator; +import java.util.Map; +import java.util.Map.Entry; + +public class UtilsHelper { + /** + * + * @param clazz + * @param req + * @return + */ + public static Object newObjAndSetAttrsByClass(Class clazz, + Map paramMap) { + Object object = null; + try { + object = clazz.newInstance(); + Field[] fileds = clazz.getDeclaredFields(); + for (Field fs : fileds) { + String fieldName = fs.getName(); + String fieldType = fs.getGenericType().toString() + .replace("class ", ""); // 如果type是类类型,则前面包含"class ",后面跟类名 + if (paramMap.containsKey(fieldName)) { + Method method = clazz.getDeclaredMethod( + getAttributeSetName(fs), Class.forName(fieldType)); + String value = paramMap.get(fieldName); + if ("java.lang.Integer".equals(fieldType)) { + method.invoke(object, Integer.valueOf(value)); + } else { + method.invoke(object, value); + } + } + } + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch blockAQA + e.printStackTrace(); + } catch (NoSuchMethodException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalArgumentException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (InvocationTargetException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return object; + }; + + /** + * + * @param object + * @param req + * @return + */ + public static Object newObjAndSetAttrsByInstance(Object object, + Map mapParam) { + return newObjAndSetAttrsByClass(object.getClass(), mapParam); + } + + /** + * 生成属性{@fs}的set方法的名字 + * + * @param fs + * 属性对象 + * @return set方法的名字 + */ + private static String getAttributeSetName(Field fs) { + String fieldName = fs.getName(); + char[] cs = fieldName.toCharArray(); + cs[0] -= 32; + return "set" + String.valueOf(cs); + } + + public static Map updateMap(Map map1, Map map2) { + if (null == map1 || map1.size() <= 0) + return map2; + Iterator> iterator = map2.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + map1.put(entry.getKey(), entry.getValue()); + } + return map1; + } + + public static boolean isSubMap(Map map1, Map map2) { + boolean flag = true; + if (null == map2 || map2.size() <= 0 || null == map1) + return false; + Iterator> iterator = map1.entrySet().iterator(); + while (iterator.hasNext()) { + Map.Entry entry = iterator.next(); + if (!map2.containsKey(entry.getKey()) + || !map2.containsValue(entry.getValue())) + return false; + } + return flag; + } + +} diff --git a/src/com/platform/utils/getTreeDataByPath.java b/src/com/platform/utils/getTreeDataByPath.java index 368b20a1..376de4de 100644 --- a/src/com/platform/utils/getTreeDataByPath.java +++ b/src/com/platform/utils/getTreeDataByPath.java @@ -1,50 +1,50 @@ - -package com.platform.utils; - -import java.util.List; - -import com.platform.entities.FolderNode; - -public class getTreeDataByPath { - - /** - * @param path - * @return - */ - public FolderNode findByPath(String path) { - List folderNodelist = CacheTreeData.getFolders(); - if (null == folderNodelist) { - return null; - } - FolderNode folder = null; - for (FolderNode folderNode : folderNodelist) { - folder = getFolder(folderNode, path); - if (null != folder) { - break; - } - } - return folder; - } - - /** - * @param f - * @return - */ - private FolderNode getFolder(FolderNode f, String path){ - FolderNode result = null; - if(path.equals(f.getPath())){ - return f; - } - List folds = f.getChildNodes(); - if (null != folds) { - for (FolderNode folderNode : folds) { - result = getFolder(folderNode, path); - if (null != result) { - break; - } - } - } - return result; - } -} - + +package com.platform.utils; + +import java.util.List; + +import com.platform.entities.FolderNode; + +public class getTreeDataByPath { + + /** + * @param path + * @return + */ + public FolderNode findByPath(String path) { + List folderNodelist = CacheTreeData.getFolders(); + if (null == folderNodelist) { + return null; + } + FolderNode folder = null; + for (FolderNode folderNode : folderNodelist) { + folder = getFolder(folderNode, path); + if (null != folder) { + break; + } + } + return folder; + } + + /** + * @param f + * @return + */ + private FolderNode getFolder(FolderNode f, String path){ + FolderNode result = null; + if(path.equals(f.getPath())){ + return f; + } + List folds = f.getChildNodes(); + if (null != folds) { + for (FolderNode folderNode : folds) { + result = getFolder(folderNode, path); + if (null != result) { + break; + } + } + } + return result; + } +} +