Package hudson.os.windows

Source Code of hudson.os.windows.WindowsRemoteFileSystem

package hudson.os.windows;

import hudson.tools.JDKInstaller.FileSystem;
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbFile;

import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.util.List;

import static java.util.Arrays.asList;

/**
* {@link FileSystem} implementation for remote Windows system.
*
* @author Kohsuke Kawaguchi
*/
public class WindowsRemoteFileSystem implements FileSystem {
    private final String hostName;
    private final NtlmPasswordAuthentication auth;

    public WindowsRemoteFileSystem(String hostName, NtlmPasswordAuthentication auth) {
        this.hostName = hostName;
        this.auth = auth;
    }

    private SmbFile $(String path) throws MalformedURLException {
        return new SmbFile("smb://" + hostName + "/" + path.replace('\\', '/').replace(':', '$')+"/",auth);
    }

    public void delete(String file) throws IOException, InterruptedException {
        $(file).delete();
    }

    public void chmod(String file, int mode) throws IOException, InterruptedException {
        // no-op on Windows
    }

    public InputStream read(String file) throws IOException {
        return $(file).getInputStream();
    }

    public List<String> listSubDirectories(String dir) throws IOException, InterruptedException {
        return asList($(dir).list());
    }

    public void pullUp(String from, String to) throws IOException, InterruptedException {
        SmbFile src = $(from);
        SmbFile dst = $(to);
        for (SmbFile e : src.listFiles()) {
            e.renameTo(new SmbFile(dst,e.getName()));
        }
        src.delete();
    }
   
    public void mkdirs(String path) throws IOException {
        $(path).mkdirs();
    }
}
TOP

Related Classes of hudson.os.windows.WindowsRemoteFileSystem

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.