/*
* Copyright 2015 Google Inc. All Rights Reserved.
*
*Licensed under the Apache License, Version 2.0 (the "License");
*you may not use this file except in compliance with the License.
*You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
*Unless required by applicable law or agreed to in writing, software
*distributed under the License is distributed on an "AS IS" BASIS,
*WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*See the License for the specific language governing permissions and
*limitations under the License.
*/
package org.jenkinsci.plugins.jenkernetes.workflowsteps;
import org.jenkinsci.plugins.workflow.steps.AbstractStepDescriptorImpl;
import org.kohsuke.stapler.DataBoundConstructor;
import hudson.Extension;
/**
* Step Object associated with creating a Kubernetes resource
*/
public class KubeCreateStep extends KubeStep{
public final transient Object payload;
/**
* @param resource A String that is one of { "pods", "services", "replicationControllers" }
* @param payload A Groovy Map that defines the resource according to the Kubernetes API
*/
@DataBoundConstructor
public KubeCreateStep(String resource, Object payload){
super(resource);
this.payload = payload;
}
@Extension public static final class DescriptorImpl extends AbstractStepDescriptorImpl{
public DescriptorImpl() {
super(Execution.class);
}
@Override
public String getFunctionName(){
return "kube_create";
}
@Override
public String getDisplayName(){
return "Create a resource using the Kubernetes API";
}
}
public static class Execution extends KubeStepExecution<KubeCreateStep>{
private static final long serialVersionUID = -8821023885822732793L;
/* (non-Javadoc)
* @see org.jenkinsci.plugins.kubernetesworkflowsteps.KubeStepExecution#request()
*/
@Override
protected Object run() throws Exception {
return KubernetesClient.create(step.resource, step.payload);
}
}
}