All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hudson.slaves.AbstractCloudComputer Maven / Gradle / Ivy

The newest version!
/*******************************************************************************
 *
 * Copyright (c) 2010, InfraDNA, Inc.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *
 *
 *
 *
 *******************************************************************************/ 

package hudson.slaves;

import hudson.model.Computer;
import org.kohsuke.stapler.HttpRedirect;
import org.kohsuke.stapler.HttpResponse;
import org.kohsuke.stapler.HttpResponses;

import java.io.IOException;

/**
 * Partial implementation of {@link Computer} to be used in conjunction with
 * {@link AbstractCloudSlave}.
 *
 * @author Kohsuke Kawaguchi
 * @since 1.382
 */
public class AbstractCloudComputer extends SlaveComputer {

    public AbstractCloudComputer(T slave) {
        super(slave);
    }

    @Override
    public T getNode() {
        return (T) super.getNode();
    }

    /**
     * When the slave is deleted, free the node.
     */
    @Override
    public HttpResponse doDoDelete() throws IOException {
        checkPermission(DELETE);
        try {
            getNode().terminate();
            return new HttpRedirect("..");
        } catch (InterruptedException e) {
            return HttpResponses.error(500, e);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy