ParameterDefinition pd = pdp.getParameterDefinition(name); if (pd==null) { String nearest = EditDistance.findNearest(name, pdp.getParameterDefinitionNames());
String name = jo.getString("name"); ParameterDefinition d = getParameterDefinition(name); if(d==null) throw new IllegalArgumentException("No such parameter definition: " + name);
private static List<ParameterDefinition> findParameters(AbstractProject implementationProject) { List<ParameterDefinition> definitions = new LinkedList<ParameterDefinition>(); @SuppressWarnings("unchecked") ParametersDefinitionProperty parametersDefinitionProperty = (ParametersDefinitionProperty) implementationProject.getProperty(ParametersDefinitionProperty.class); if (parametersDefinitionProperty != null) { for (String parameterName : parametersDefinitionProperty.getParameterDefinitionNames()) { definitions.add(parametersDefinitionProperty.getParameterDefinition(parameterName)); } } return definitions; }
@Issue("JENKINS-44621") @Test public void externalParamsNotRemoved() throws Exception { WorkflowRun b = getAndStartNonRepoBuild("simpleParameters"); j.assertBuildStatusSuccess(j.waitForCompletion(b)); WorkflowJob job = b.getParent(); ParametersDefinitionProperty paramProp = job.getProperty(ParametersDefinitionProperty.class); assertNotNull(paramProp); assertEquals(1, paramProp.getParameterDefinitions().size()); List<ParameterDefinition> newParams = new ArrayList<>(); newParams.addAll(paramProp.getParameterDefinitions()); newParams.add(new StringParameterDefinition("DO_NOT_DELETE", "something")); job.removeProperty(paramProp); job.addProperty(new ParametersDefinitionProperty(newParams)); job.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); j.buildAndAssertSuccess(job); ParametersDefinitionProperty newProp = job.getProperty(ParametersDefinitionProperty.class); assertNotNull(newProp); assertEquals(1, newProp.getParameterDefinitions().size()); ParameterDefinition paramDef = newProp.getParameterDefinition("DO_NOT_DELETE"); assertNotNull(paramDef); } }
protected int run() throws Exception { job.checkPermission(Item.BUILD); ParametersAction a = null; if (!parameters.isEmpty()) { ParametersDefinitionProperty pdp = job.getProperty(ParametersDefinitionProperty.class); if (pdp==null) throw new AbortException(job.getFullDisplayName()+" is not parameterized but the -p option was specified"); List<ParameterValue> values = new ArrayList<ParameterValue>(); for (Entry<String, String> e : parameters.entrySet()) { String name = e.getKey(); ParameterDefinition pd = pdp.getParameterDefinition(name); if (pd==null) throw new AbortException(String.format("\'%s\' is not a valid parameter. Did you mean %s?", name, EditDistance.findNearest(name, pdp.getParameterDefinitionNames()))); values.add(pd.createValue(this,e.getValue())); } for (ParameterDefinition pd : pdp.getParameterDefinitions()) { if (parameters.get(pd.getName()) == null) { values.add(pd.getDefaultParameterValue()); } } a = new ParametersAction(values); } Future<? extends AbstractBuild> f = job.scheduleBuild2(0, new CLICause(), a); if (!sync) return 0; AbstractBuild b = f.get(); // wait for the completion stdout.println("Completed "+b.getFullDisplayName()+" : "+b.getResult()); return b.getResult().ordinal; }
public ParameterDefinition getParameterDefinition(String name) { return super.getParameterDefinition(name); }
/** * If a subversion remote uses $VAR or ${VAR} as a parameterized build, * we expand the url. This will expand using the DEFAULT item. If there * is a choice parameter, it will expand with the FIRST item. */ public ModuleLocation getExpandedLocation(Job<?, ?> project) { String url = this.getURL(); String returnURL = url; for (JobProperty property : project.getProperties().values()) { if (property instanceof ParametersDefinitionProperty) { ParametersDefinitionProperty pdp = (ParametersDefinitionProperty) property; for (String propertyName : pdp.getParameterDefinitionNames()) { if (url.contains(propertyName)) { ParameterDefinition pd = pdp.getParameterDefinition(propertyName); ParameterValue pv = pd.getDefaultParameterValue(); String replacement = ""; if (pv != null) { replacement = String.valueOf(pv.createVariableResolver(null).resolve(propertyName)); } returnURL = returnURL.replace("${" + propertyName + "}", replacement); returnURL = returnURL.replace("$" + propertyName, replacement); } } } } return new ModuleLocation(returnURL, credentialsId, getLocalDir(), getDepthOption(), isIgnoreExternalsOption(), isCancelProcessOnExternalsFail()); }
protected int run() throws Exception { job.checkPermission(Item.BUILD); ParametersAction a = null; if (!parameters.isEmpty()) { ParametersDefinitionProperty pdp = job.getProperty(ParametersDefinitionProperty.class); if (pdp==null) throw new AbortException(job.getFullDisplayName()+" is not parameterized but the -p option was specified"); List<ParameterValue> values = new ArrayList<ParameterValue>(); for (Entry<String, String> e : parameters.entrySet()) { String name = e.getKey(); ParameterDefinition pd = pdp.getParameterDefinition(name); if (pd==null) throw new AbortException(String.format("\'%s\' is not a valid parameter. Did you mean %s?", name, EditDistance.findNearest(name, pdp.getParameterDefinitionNames()))); values.add(pd.createValue(this,e.getValue())); } for (ParameterDefinition pd : pdp.getParameterDefinitions()) { if (parameters.get(pd.getName()) == null) { values.add(pd.getDefaultParameterValue()); } } a = new ParametersAction(values); } Future<? extends AbstractBuild> f = job.scheduleBuild2(0, new CLICause(), a); if (!sync) return 0; AbstractBuild b = f.get(); // wait for the completion stdout.println("Completed "+b.getFullDisplayName()+" : "+b.getResult()); return b.getResult().ordinal; }
@Override public ParameterDefinition getParameterDefinition(String name) { return super.getParameterDefinition(name); }
protected int run() throws Exception { job.checkPermission(Item.BUILD); ParametersAction a = null; if (!parameters.isEmpty()) { ParametersDefinitionProperty pdp = job.getProperty(ParametersDefinitionProperty.class); if (pdp==null) throw new AbortException(job.getFullDisplayName()+" is not parameterized but the -p option was specified"); List<ParameterValue> values = new ArrayList<ParameterValue>(); for (Entry<String, String> e : parameters.entrySet()) { String name = e.getKey(); ParameterDefinition pd = pdp.getParameterDefinition(name); if (pd==null) throw new AbortException(String.format("\'%s\' is not a valid parameter. Did you mean %s?", name, EditDistance.findNearest(name, pdp.getParameterDefinitionNames()))); values.add(pd.createValue(this,e.getValue())); } for (ParameterDefinition pd : pdp.getParameterDefinitions()) { if (parameters.get(pd.getName()) == null) { values.add(pd.getDefaultParameterValue()); } } a = new ParametersAction(values); } Future<? extends AbstractBuild> f = job.scheduleBuild2(0, new CLICause(), a); if (!sync) return 0; AbstractBuild b = f.get(); // wait for the completion stdout.println("Completed "+b.getFullDisplayName()+" : "+b.getResult()); return b.getResult().ordinal; }
public String resolve(String name) { String result = null; if(ExtendedChoiceParameterValue.this.getName().equals(name)) { result = value; if(build != null) { ParametersDefinitionProperty parametersDefinitionProperty = build.getProject().getProperty(ParametersDefinitionProperty.class); if(parametersDefinitionProperty != null) { ParameterDefinition parameterDefinition = parametersDefinitionProperty.getParameterDefinition(name); if(parameterDefinition != null && parameterDefinition instanceof ExtendedChoiceParameterDefinition) { ExtendedChoiceParameterDefinition extendedChoiceParameterDefinition = (ExtendedChoiceParameterDefinition)parameterDefinition; if(ExtendedChoiceParameterDefinition.PARAMETER_TYPE_JSON.equals(extendedChoiceParameterDefinition.getType()) && extendedChoiceParameterDefinition.isSaveJSONParameterToFile()) { File jsonParametersDir = new File(build.getRootDir(), "parameters"); jsonParametersDir.mkdirs(); try { File jsonParameterFile = new File(jsonParametersDir, getName() + ".json"); FileUtils.writeStringToFile(jsonParameterFile, value); result = jsonParameterFile.getAbsolutePath(); } catch(IOException e) { LOGGER.log(Level.SEVERE, e.getMessage(), e); } } } } } } return result; } };
public ListBoxModel doFillTagItems(@AncestorInPath Job<?,?> context, @QueryParameter String param) { ListBoxModel model = new ListBoxModel(); if (context != null && context.hasPermission(Item.BUILD)) { ParametersDefinitionProperty prop = context.getProperty(ParametersDefinitionProperty.class); if (prop != null) { ParameterDefinition def = prop.getParameterDefinition(param); if (def instanceof ListSubversionTagsParameterDefinition) { for (String tag : ((ListSubversionTagsParameterDefinition) def).getTags(context)) { if (tag.startsWith("!")) { model.add(tag.substring(1), ""); } else { model.add(tag); } } } } } return model; }
paramDef = paramDefProp.getParameterDefinition(parameterName); if (paramDef != null) { return paramDef.createValue(req, jo);
for (ParameterValue value : action.getParameters()) { String name = value.getName(); ParameterDefinition pd = pdp.getParameterDefinition(name); if (pd == null) { continue; // This project does not have this parameter
/** * Interprets the form submission and schedules a build for a parameterized job. * * <p> * This method is supposed to be invoked from {@link AbstractProject#doBuild(StaplerRequest, StaplerResponse)}. */ public void _doBuild(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { if(!req.getMethod().equals("POST")) { // show the parameter entry form. req.getView(this,"index.jelly").forward(req,rsp); return; } List<ParameterValue> values = new ArrayList<ParameterValue>(); JSONObject formData = req.getSubmittedForm(); JSONArray a = JSONArray.fromObject(formData.get("parameter")); for (Object o : a) { JSONObject jo = (JSONObject) o; String name = jo.getString("name"); ParameterDefinition d = getParameterDefinition(name); if(d==null) throw new IllegalArgumentException("No such parameter definition: " + name); ParameterValue parameterValue = d.createValue(req, jo); values.add(parameterValue); } Hudson.getInstance().getQueue().schedule( owner, owner.getDelay(req), new ParametersAction(values), new CauseAction(new Cause.UserCause())); // send the user back to the job top page. rsp.sendRedirect("."); }
/** * Interprets the form submission and schedules a build for a parameterized job. * * <p> * This method is supposed to be invoked from {@link AbstractProject#doBuild(StaplerRequest, StaplerResponse)}. */ public void _doBuild(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { if(!req.getMethod().equals("POST")) { // show the parameter entry form. req.getView(this,"index.jelly").forward(req,rsp); return; } List<ParameterValue> values = new ArrayList<ParameterValue>(); JSONObject formData = req.getSubmittedForm(); JSONArray a = JSONArray.fromObject(formData.get("parameter")); for (Object o : a) { JSONObject jo = (JSONObject) o; String name = jo.getString("name"); ParameterDefinition d = getParameterDefinition(name); if(d==null) throw new IllegalArgumentException("No such parameter definition: " + name); ParameterValue parameterValue = d.createValue(req, jo); values.add(parameterValue); } Hudson.getInstance().getQueue().schedule( owner, owner.getDelay(req), new ParametersAction(values), new CauseAction(new Cause.UserCause())); // send the user back to the job top page. rsp.sendRedirect("."); }
/** * Interprets the form submission and schedules a build for a parameterized job. * * <p> * This method is supposed to be invoked from {@link AbstractProject#doBuild(StaplerRequest, StaplerResponse)}. */ public void _doBuild(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { if(!req.getMethod().equals("POST")) { // show the parameter entry form. req.getView(this,"index.jelly").forward(req,rsp); return; } List<ParameterValue> values = new ArrayList<ParameterValue>(); JSONObject formData = req.getSubmittedForm(); JSONArray a = JSONArray.fromObject(formData.get("parameter")); for (Object o : a) { JSONObject jo = (JSONObject) o; String name = jo.getString("name"); ParameterDefinition d = getParameterDefinition(name); if(d==null) throw new IllegalArgumentException("No such parameter definition: " + name); ParameterValue parameterValue = d.createValue(req, jo); values.add(parameterValue); } Hudson.getInstance().getQueue().schedule( owner, owner.getDelay(req), new ParametersAction(values), new CauseAction(new Cause.UserCause())); // send the user back to the job top page. rsp.sendRedirect("."); }
String name = jo.getString("name"); ParameterDefinition d = getParameterDefinition(name); if (d == null) { throw new IllegalArgumentException("No such parameter definition: " + name);
String name = jo.getString("name"); ParameterDefinition d = getParameterDefinition(name); if(d==null) throw new IllegalArgumentException("No such parameter definition: " + name);
@LocalData @Test public void trackerPropertyUpgrade() throws Exception { WorkflowJob p = j.jenkins.getItemByFullName("trackerPropertyUpgrade", WorkflowJob.class); assertNotNull(p); WorkflowRun b1 = p.getLastBuild(); assertNotNull(b1); assertNotNull(b1.getAction(DeclarativeJobPropertyTrackerAction.class)); assertNull(p.getAction(DeclarativeJobPropertyTrackerAction.class)); p.addProperty(new DisableConcurrentBuildsJobProperty()); p.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("simpleParameters"), true)); WorkflowRun b2 = j.buildAndAssertSuccess(p); assertNull(b2.getAction(DeclarativeJobPropertyTrackerAction.class)); assertNull(p.getProperty(BuildDiscarderProperty.class)); ParametersDefinitionProperty parameters = p.getProperty(ParametersDefinitionProperty.class); assertNotNull(parameters); assertNotNull(parameters.getParameterDefinition("flag")); DeclarativeJobPropertyTrackerAction action2 = p.getAction(DeclarativeJobPropertyTrackerAction.class); assertNotNull(action2); assertFalse(action2.getParameters().isEmpty()); assertEquals("flag", action2.getParameters().iterator().next()); p.setDefinition(new CpsFlowDefinition(pipelineSourceFromResources("propsTriggersParamsRemoved"), true)); WorkflowRun b3 = j.buildAndAssertSuccess(p); assertNull(b3.getAction(DeclarativeJobPropertyTrackerAction.class)); assertNull(p.getProperty(BuildDiscarderProperty.class)); assertNull(p.getProperty(ParametersDefinitionProperty.class)); DeclarativeJobPropertyTrackerAction action3 = p.getAction(DeclarativeJobPropertyTrackerAction.class); assertNotNull(action3); assertTrue(action3.getParameters().isEmpty()); }