Search in sources :

Example 11 with ParametersDefinitionProperty

use of hudson.model.ParametersDefinitionProperty in project hudson-2.x by hudson.

the class CascadingParameterDefinitionPropertiesTest method setUp.

@Before
public void setUp() throws Exception {
    p1 = new FreeStyleProjectMock("p1");
    p2 = new FreeStyleProjectMock("p2");
    p3 = new FreeStyleProjectMock("p3");
    p2.setCascadingProject(p1);
    CascadingUtil.linkCascadingProjectsToChild(p1, "p2");
    p3.setCascadingProject(p2);
    CascadingUtil.linkCascadingProjectsToChild(p2, "p3");
    Hudson hudson = createMock(Hudson.class);
    expect(hudson.getItem("p2")).andReturn(p2).anyTimes();
    expect(hudson.getItem("p3")).andReturn(p3).anyTimes();
    mockStatic(Hudson.class);
    expect(Hudson.getInstance()).andReturn(hudson).anyTimes();
    replay(Hudson.class, hudson);
    propertyKey = Job.PARAMETERS_DEFINITION_JOB_PROPERTY_PROPERTY_NAME;
    List<ParameterDefinition> parameterDefinitionList = new ArrayList<ParameterDefinition>();
    parameterDefinitionList.add(new BooleanParameterDefinition("name", true, "d1"));
    ParametersDefinitionProperty property = new ParametersDefinitionProperty(parameterDefinitionList);
    copyOnWriteList = new CopyOnWriteList<ParametersDefinitionProperty>();
    copyOnWriteList.add(property);
}
Also used : FreeStyleProjectMock(hudson.model.FreeStyleProjectMock) BooleanParameterDefinition(hudson.model.BooleanParameterDefinition) ParametersDefinitionProperty(hudson.model.ParametersDefinitionProperty) Hudson(hudson.model.Hudson) ArrayList(java.util.ArrayList) BooleanParameterDefinition(hudson.model.BooleanParameterDefinition) ParameterDefinition(hudson.model.ParameterDefinition) Before(org.junit.Before)

Example 12 with ParametersDefinitionProperty

use of hudson.model.ParametersDefinitionProperty in project blueocean-plugin by jenkinsci.

the class RunContainerImpl method getParameterValue.

private List<ParameterValue> getParameterValue(@Nonnull StaplerRequest request) {
    List<ParameterValue> values = new ArrayList<>();
    List<ParameterDefinition> pdsInRequest = new ArrayList<>();
    ParametersDefinitionProperty pp = (ParametersDefinitionProperty) job.getProperty(ParametersDefinitionProperty.class);
    if (pp == null) {
        return values;
    }
    try {
        JSONObject body = JSONObject.fromObject(IOUtils.toString(request.getReader()));
        if (body.get("parameters") == null && pp.getParameterDefinitions().size() > 0) {
            throw new ServiceException.BadRequestException("This is parameterized job, requires parameters");
        }
        if (body.get("parameters") != null) {
            JSONArray pds = JSONArray.fromObject(body.get("parameters"));
            for (Object o : pds) {
                JSONObject p = (JSONObject) o;
                String name = (String) p.get("name");
                if (name == null) {
                    throw new ServiceException.BadRequestException("parameters.name is required element");
                }
                ParameterDefinition pd = pp.getParameterDefinition(name);
                if (pd == null) {
                    throw new ServiceException.BadRequestException("No such parameter definition: " + name);
                }
                ParameterValue parameterValue = pd.createValue(request, p);
                if (parameterValue != null) {
                    values.add(parameterValue);
                    pdsInRequest.add(pd);
                } else {
                    throw new ServiceException.BadRequestException("Invalid value. Cannot retrieve the parameter value: " + name);
                }
            }
            // now check for missing parameters without default values
            if (pdsInRequest.size() != pp.getParameterDefinitions().size()) {
                for (ParameterDefinition pd : pp.getParameterDefinitions()) {
                    if (!pdsInRequest.contains(pd)) {
                        ParameterValue v = pd.getDefaultParameterValue();
                        if (v == null || v.getValue() == null) {
                            throw new ServiceException.BadRequestException("Missing parameter: " + pd.getName());
                        }
                        values.add(v);
                    }
                }
            }
        }
    } catch (IOException e) {
        throw new ServiceException.UnexpectedErrorException(e.getMessage(), e);
    }
    return values;
}
Also used : ParameterValue(hudson.model.ParameterValue) ArrayList(java.util.ArrayList) JSONArray(net.sf.json.JSONArray) IOException(java.io.IOException) ParametersDefinitionProperty(hudson.model.ParametersDefinitionProperty) JSONObject(net.sf.json.JSONObject) ServiceException(io.jenkins.blueocean.commons.ServiceException) JSONObject(net.sf.json.JSONObject) ParameterDefinition(hudson.model.ParameterDefinition)

Example 13 with ParametersDefinitionProperty

use of hudson.model.ParametersDefinitionProperty in project blueocean-plugin by jenkinsci.

the class PipelineApiTest method parameterizedFreestyleTestWithoutDefaultParam.

@Test
public void parameterizedFreestyleTestWithoutDefaultParam() throws Exception {
    FreeStyleProject p = j.createFreeStyleProject("pp");
    p.addProperty(new ParametersDefinitionProperty(new TestStringParameterDefinition("version", null, "version number")));
    p.getBuildersList().add(new Shell("echo hello!"));
    Map resp = get("/organizations/jenkins/pipelines/pp/");
    List<Map<String, Object>> parameters = (List<Map<String, Object>>) resp.get("parameters");
    assertEquals(1, parameters.size());
    assertEquals("version", parameters.get(0).get("name"));
    assertEquals("TestStringParameterDefinition", parameters.get(0).get("type"));
    assertEquals("version number", parameters.get(0).get("description"));
    assertNull(parameters.get(0).get("defaultParameterValue"));
    validatePipeline(p, resp);
    resp = post("/organizations/jenkins/pipelines/pp/runs/", ImmutableMap.of("parameters", ImmutableList.of()), 400);
}
Also used : Shell(hudson.tasks.Shell) ParametersDefinitionProperty(hudson.model.ParametersDefinitionProperty) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) FreeStyleProject(hudson.model.FreeStyleProject) Map(java.util.Map) ImmutableMap(com.google.common.collect.ImmutableMap) Test(org.junit.Test)

Example 14 with ParametersDefinitionProperty

use of hudson.model.ParametersDefinitionProperty in project blueocean-plugin by jenkinsci.

the class PipelineApiTest method testPipelineQueue.

@Test
public void testPipelineQueue() throws Exception {
    FreeStyleProject p1 = j.createFreeStyleProject("pipeline1");
    p1.setConcurrentBuild(true);
    p1.addProperty(new ParametersDefinitionProperty(new StringParameterDefinition("test", "test")));
    p1.getBuildersList().add(new Shell("echo hello!\nsleep 300"));
    p1.scheduleBuild2(0).waitForStart();
    p1.scheduleBuild2(0).waitForStart();
    Jenkins.getInstance().getQueue().schedule(p1, 0, new ParametersAction(new StringParameterValue("test", "test1")), new CauseAction(new Cause.UserIdCause()));
    Jenkins.getInstance().getQueue().schedule(p1, 0, new ParametersAction(new StringParameterValue("test", "test2")), new CauseAction(new Cause.UserIdCause()));
    List queue = request().get("/organizations/jenkins/pipelines/pipeline1/queue").build(List.class);
    Assert.assertEquals(2, queue.size());
    Assert.assertEquals(4, ((Map) queue.get(0)).get("expectedBuildNumber"));
    Assert.assertEquals(3, ((Map) queue.get(1)).get("expectedBuildNumber"));
    Assert.assertEquals("Waiting for next available executor", ((Map) queue.get(0)).get("causeOfBlockage"));
    Assert.assertEquals("Waiting for next available executor", ((Map) queue.get(1)).get("causeOfBlockage"));
    Run r = QueueUtil.getRun(p1, Long.parseLong((String) ((Map) queue.get(0)).get("id")));
    // its not moved out of queue yet
    assertNull(r);
}
Also used : Shell(hudson.tasks.Shell) StringParameterDefinition(hudson.model.StringParameterDefinition) ParametersDefinitionProperty(hudson.model.ParametersDefinitionProperty) StringParameterValue(hudson.model.StringParameterValue) CauseAction(hudson.model.CauseAction) List(java.util.List) ImmutableList(com.google.common.collect.ImmutableList) Run(hudson.model.Run) FreeStyleProject(hudson.model.FreeStyleProject) ParametersAction(hudson.model.ParametersAction) Test(org.junit.Test)

Example 15 with ParametersDefinitionProperty

use of hudson.model.ParametersDefinitionProperty in project workflow-cps-plugin by jenkinsci.

the class ParamsVariable method getValue.

@SuppressWarnings("unchecked")
@Override
public Object getValue(CpsScript script) throws Exception {
    Run<?, ?> b = script.$build();
    if (b == null) {
        throw new IllegalStateException("cannot find owning build");
    }
    // Could extend AbstractMap and make a Serializable lazy wrapper, but getValue impls seem cheap anyway.
    Map<String, Object> values = new HashMap<>();
    ParametersAction action = b.getAction(ParametersAction.class);
    if (action != null) {
        List<ParameterValue> parameterValues;
        try {
            // TODO 1.651.2+ remove reflection
            parameterValues = (List<ParameterValue>) ParametersAction.class.getMethod("getAllParameters").invoke(action);
        } catch (NoSuchMethodException x) {
            parameterValues = action.getParameters();
        }
        for (ParameterValue parameterValue : parameterValues) {
            addValue(values, parameterValue);
        }
    }
    ParametersDefinitionProperty prop = b.getParent().getProperty(ParametersDefinitionProperty.class);
    if (prop != null) {
        // JENKINS-35698: look for default values as well
        for (ParameterDefinition param : prop.getParameterDefinitions()) {
            if (!values.containsKey(param.getName())) {
                ParameterValue defaultParameterValue = param.getDefaultParameterValue();
                if (defaultParameterValue != null) {
                    addValue(values, defaultParameterValue);
                }
            }
        }
    }
    return Collections.unmodifiableMap(values);
}
Also used : ParameterValue(hudson.model.ParameterValue) ParametersDefinitionProperty(hudson.model.ParametersDefinitionProperty) HashMap(java.util.HashMap) ParametersAction(hudson.model.ParametersAction) ParameterDefinition(hudson.model.ParameterDefinition)

Aggregations

ParametersDefinitionProperty (hudson.model.ParametersDefinitionProperty)21 Test (org.junit.Test)13 StringParameterDefinition (hudson.model.StringParameterDefinition)12 ParameterDefinition (hudson.model.ParameterDefinition)11 FreeStyleProject (hudson.model.FreeStyleProject)9 ParametersAction (hudson.model.ParametersAction)8 StringParameterValue (hudson.model.StringParameterValue)8 Issue (org.jvnet.hudson.test.Issue)7 ArrayList (java.util.ArrayList)6 ParameterValue (hudson.model.ParameterValue)5 BooleanParameterDefinition (hudson.model.BooleanParameterDefinition)4 ImmutableList (com.google.common.collect.ImmutableList)3 Shell (hudson.tasks.Shell)3 List (java.util.List)3 WorkflowJob (org.jenkinsci.plugins.workflow.job.WorkflowJob)3 ImmutableMap (com.google.common.collect.ImmutableMap)2 FreeStyleBuild (hudson.model.FreeStyleBuild)2 JobPropertyImpl (hudson.plugins.promoted_builds.JobPropertyImpl)2 Promotion (hudson.plugins.promoted_builds.Promotion)2 PromotionProcess (hudson.plugins.promoted_builds.PromotionProcess)2