Search in sources :

Example 16 with EChainResponse

use of com.fo0.robot.chain.EChainResponse in project Robot by fo0.

the class ChainActionItem method tar.

public EChainResponse tar(List<KeyValue> list) throws Exception {
    List<KeyValue> zipList = list;
    KeyValue zipSrc = zipList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.SOURCE)).findFirst().orElse(null);
    KeyValue zipDest = zipList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.DESTINATION)).findFirst().orElse(KeyValue.builder().build());
    ctx.addToLog(type, "SRC: " + zipSrc.getValue());
    ctx.addToLog(type, "DST: " + zipDest.getValue());
    // old method
    // ZipUtils.zip(zipSrc.getValue(), zipDest.getValue());
    Archiver zipArchive = ArchiverFactory.createArchiver(ArchiveFormat.TAR);
    zipArchive.create(new File(zipDest.getValue()).getName(), new File(zipDest.getValue()).getParentFile(), new File(zipSrc.getValue()));
    return EChainResponse.Continue;
}
Also used : KeyValue(com.fo0.robot.model.KeyValue) Archiver(org.rauschig.jarchivelib.Archiver) File(java.io.File)

Example 17 with EChainResponse

use of com.fo0.robot.chain.EChainResponse in project Robot by fo0.

the class ChainActionItem method ftp.

public EChainResponse ftp(List<KeyValue> list) throws Exception {
    List<KeyValue> ftpList = list;
    KeyValue ftpHost = ftpList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.HOST)).findFirst().orElse(null);
    KeyValue ftpPort = ftpList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.PORT)).findFirst().orElse(KeyValue.builder().key("PORT").value("21").build());
    KeyValue ftpUser = ftpList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.USER)).findFirst().orElse(KeyValue.builder().key("USER").value("anonymous").build());
    KeyValue ftpPassword = ftpList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.PASSWORD)).findFirst().orElse(KeyValue.builder().key("PASSWORD").value("").build());
    KeyValue ftpSrc = ftpList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.SOURCE)).findFirst().orElse(null);
    KeyValue ftpDst = ftpList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.DESTINATION)).findFirst().orElse(null);
    ctx.addToLog(type, "HOST: " + ftpHost.getValue());
    ctx.addToLog(type, "PORT: " + ftpPort.getValue());
    ctx.addToLog(type, "User: " + ftpUser.getValue());
    ctx.addToLog(type, "Password: " + StringUtils.join(IntStream.range(0, ftpPassword.getValue().length()).mapToObj(e -> "*").toArray(String[]::new)));
    ctx.addToLog(type, "SRC: " + ftpSrc.getValue());
    ctx.addToLog(type, "DST: " + ftpDst.getValue());
    FTPClient ftpClient = new FTPClient(Host.builder().address(ftpHost.getValue()).port(Integer.parseInt(ftpPort.getValue())).username(ftpUser.getValue()).password(ftpPassword.getValue()).build());
    if (!ftpClient.connect()) {
        ctx.addToLog(type, "failed to connect to Host");
        return EChainResponse.Failed;
    }
    FileTransferData ftpData = ftpClient.download(ftpDst.getValue(), ftpSrc.getValue());
    try {
        ctx.addToLog(type, "Transfer: " + ftpData.info());
    } catch (Exception e2) {
        e2.printStackTrace();
    }
    return EChainResponse.Continue;
}
Also used : KeyValue(com.fo0.robot.model.KeyValue) FileTransferData(com.fo0.robot.model.FileTransferData) FTPClient(com.fo0.robot.connector.FTPClient)

Example 18 with EChainResponse

use of com.fo0.robot.chain.EChainResponse in project Robot by fo0.

the class ChainActionItem method sevenZip.

public EChainResponse sevenZip(List<KeyValue> list) throws Exception {
    List<KeyValue> zipList = list;
    KeyValue zipSrc = zipList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.SOURCE)).findFirst().orElse(null);
    KeyValue zipDest = zipList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.DESTINATION)).findFirst().orElse(KeyValue.builder().build());
    ctx.addToLog(type, "SRC: " + zipSrc.getValue());
    ctx.addToLog(type, "DST: " + zipDest.getValue());
    // old method
    // ZipUtils.zip(zipSrc.getValue(), zipDest.getValue());
    Archiver zipArchive = ArchiverFactory.createArchiver(ArchiveFormat.SEVEN_Z);
    zipArchive.create(new File(zipDest.getValue()).getName(), new File(zipDest.getValue()).getParentFile(), new File(zipSrc.getValue()));
    return EChainResponse.Continue;
}
Also used : KeyValue(com.fo0.robot.model.KeyValue) Archiver(org.rauschig.jarchivelib.Archiver) File(java.io.File)

Example 19 with EChainResponse

use of com.fo0.robot.chain.EChainResponse in project Robot by fo0.

the class ChainActionItem method untar.

public EChainResponse untar(List<KeyValue> list) throws Exception {
    List<KeyValue> unzipList = list;
    KeyValue unzipSrc = unzipList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.SOURCE)).findFirst().orElse(null);
    KeyValue unzipDst = unzipList.stream().filter(e -> e.getKey().equals(CONSTANTS_PATTERN.DESTINATION)).findFirst().orElse(KeyValue.builder().build());
    ctx.addToLog(type, "SRC: " + unzipSrc.getValue());
    ctx.addToLog(type, "DST: " + unzipDst.getValue());
    Archiver unzipArchive = ArchiverFactory.createArchiver(ArchiveFormat.TAR);
    unzipArchive.extract(new File(unzipSrc.getValue()), new File(unzipDst.getValue()));
    return EChainResponse.Continue;
}
Also used : KeyValue(com.fo0.robot.model.KeyValue) Archiver(org.rauschig.jarchivelib.Archiver) File(java.io.File)

Aggregations

KeyValue (com.fo0.robot.model.KeyValue)17 File (java.io.File)9 Archiver (org.rauschig.jarchivelib.Archiver)8 Commander (com.fo0.robot.commander.Commander)2 ActionItem (com.fo0.robot.model.ActionItem)2 FileTransferData (com.fo0.robot.model.FileTransferData)2 EChainResponse (com.fo0.robot.chain.EChainResponse)1 FTPClient (com.fo0.robot.connector.FTPClient)1 SCPClient (com.fo0.robot.connector.SCPClient)1 SimpleSSHClient (com.fo0.robot.connector.SimpleSSHClient)1 Stopwatch (com.google.common.base.Stopwatch)1 URL (java.net.URL)1