Search in sources :

Example 1 with ZkTree

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;
}
Also used : ZkTree(com.vip.saturn.job.console.domain.ZkTree) RequestResult(com.vip.saturn.job.console.domain.RequestResult) MultipartFile(org.springframework.web.multipart.MultipartFile) SaturnJobConsoleException(com.vip.saturn.job.console.exception.SaturnJobConsoleException) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 2 with ZkTree

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;
}
Also used : ZkTree(com.vip.saturn.job.console.domain.ZkTree)

Example 3 with 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();
        }
    }
}
Also used : ZkTree(com.vip.saturn.job.console.domain.ZkTree) SaturnJobConsoleException(com.vip.saturn.job.console.exception.SaturnJobConsoleException) MultipartFile(org.springframework.web.multipart.MultipartFile) SimpleDateFormat(java.text.SimpleDateFormat) Date(java.util.Date) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

ZkTree (com.vip.saturn.job.console.domain.ZkTree)3 SaturnJobConsoleException (com.vip.saturn.job.console.exception.SaturnJobConsoleException)2 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)2 MultipartFile (org.springframework.web.multipart.MultipartFile)2 RequestResult (com.vip.saturn.job.console.domain.RequestResult)1 SimpleDateFormat (java.text.SimpleDateFormat)1 Date (java.util.Date)1