package com.nirima.jenkins.plugins.docker;
import com.nirima.jenkins.plugins.docker.utils.Consts;
import com.nirima.jenkins.plugins.docker.utils.JenkinsUtils;
import hudson.Extension;
import hudson.model.Describable;
import hudson.model.Descriptor;
import jenkins.model.Jenkins;
import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import javax.servlet.ServletException;
import java.io.IOException;
import java.util.Collection;
import java.util.Date;
/**
* Created by magnayn on 22/02/2014.
*/
public class DockerManagementServer implements Describable<DockerManagementServer> {
final String name;
final DockerCloud theCloud;
public Descriptor<DockerManagementServer> getDescriptor() {
return Jenkins.getInstance().getDescriptorByType(DescriptorImpl.class);
}
public String getUrl() {
return DockerManagement.get().getUrlName() + "/server/" + name;
}
public DockerManagementServer(String name) {
this.name = name;
theCloud = JenkinsUtils.getServer(name);
}
public Collection getImages(){
return theCloud.getClient().listImagesCmd().exec();
}
public Collection getProcesses() {
return theCloud.getClient().listContainersCmd().exec();
}
public String asTime(Long time) {
if( time == null )
return "";
long when = System.currentTimeMillis() - time;
Date dt = new Date(when);
return dt.toString();
}
public String getJsUrl(String jsName) {
return Consts.PLUGIN_JS_URL + jsName;
}
public void doControlSubmit(@QueryParameter("stopId") String stopId, StaplerRequest req, StaplerResponse rsp) throws ServletException,
IOException,
InterruptedException {
theCloud.getClient()
.stopContainerCmd(stopId).exec();
rsp.sendRedirect(".");
}
@Extension
public static final class DescriptorImpl extends Descriptor<DockerManagementServer> {
@Override
public String getDisplayName() {
return "server ";
}
}
}