use of com.vip.saturn.job.console.domain.ZkTree in project Saturn by vipshop.
the class ZkTreeController method convertFileToZkTree.
@RequestMapping(value = "convertFileToZkTree", method = RequestMethod.POST)
public RequestResult convertFileToZkTree(MultipartHttpServletRequest request) {
RequestResult requestResult = new RequestResult();
try {
Iterator<String> fileNames = request.getFileNames();
MultipartFile file = null;
while (fileNames.hasNext()) {
if (file != null) {
requestResult.setSuccess(false);
requestResult.setMessage("仅支持单文件导入");
return requestResult;
}
file = request.getFile(fileNames.next());
}
if (file == null) {
requestResult.setSuccess(false);
requestResult.setMessage("请选择导入的文件");
return requestResult;
}
String originalFilename = file.getOriginalFilename();
if (originalFilename == null || !originalFilename.endsWith(".json")) {
requestResult.setSuccess(false);
requestResult.setMessage("仅支持.json文件导入");
return requestResult;
}
ZkTree zkTree = zkTreeService.convertInputStreamToZkTree(file.getInputStream());
requestResult.setObj(zkTree);
requestResult.setSuccess(true);
} catch (SaturnJobConsoleException e) {
requestResult.setSuccess(false);
requestResult.setMessage(e.getMessage());
} catch (Throwable t) {
requestResult.setSuccess(false);
requestResult.setMessage(t.toString());
}
return requestResult;
}
use of com.vip.saturn.job.console.domain.ZkTree in project Saturn by vipshop.
the class ZkTreeServiceImpl method getZkTree.
private ZkTree getZkTree(String path, String name, CuratorRepository.CuratorFrameworkOp curatorFrameworkOp) {
ZkTree zkTree = new ZkTree();
zkTree.setName(name);
zkTree.setData(curatorFrameworkOp.getData(path));
zkTree.setStat(curatorFrameworkOp.getStat(path));
List<String> children = curatorFrameworkOp.getChildren(path);
if (children != null && !children.isEmpty()) {
// Be care, the list must be mutable for sorting.
Collections.sort(children);
for (String child : children) {
ZkTree childZkTree = getZkTree(path + "/" + child, child, curatorFrameworkOp);
zkTree.getChildren().add(childZkTree);
}
}
return zkTree;
}
use of com.vip.saturn.job.console.domain.ZkTree in project Saturn by vipshop.
the class ZkTreeController method getZkTreeByNamespaceOfSession.
@RequestMapping(value = "downLoadZkTreeByNamespace")
public void getZkTreeByNamespaceOfSession(HttpServletResponse response, String namespace) throws IOException {
File file = null;
try {
checkMissingParameter("namespace", namespace);
ZkTree zkTree = zkTreeService.getZkTreeByNamespace(namespace);
file = zkTreeService.convertZkTreeToFile(zkTree);
String currentTime = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
String fileName = namespace + "_zk_tree_" + currentTime + ".json";
response.setContentType("application/octet-stream");
response.setHeader("Content-disposition", "attachment; filename=" + new String(fileName.getBytes("UTF-8"), "ISO8859-1"));
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
bis.close();
bos.close();
} catch (SaturnJobConsoleException e) {
printErrorToJsAlert("下载zk树出错:" + e.getMessage(), response);
} catch (Throwable t) {
printErrorToJsAlert("下载zk树出错:" + t.toString(), response);
} finally {
if (file != null) {
file.delete();
}
}
}
Aggregations