@Nonnull public ParametersAction merge(@CheckForNull ParametersAction overrides) { if (overrides == null) { ParametersAction parametersAction = new ParametersAction(parameters, this.safeParameters); return parametersAction; } ParametersAction parametersAction = createUpdated(overrides.parameters); Set<String> safe = new TreeSet<>(); if (parametersAction.safeParameters != null && this.safeParameters != null) { safe.addAll(this.safeParameters); } if (overrides.safeParameters != null) { safe.addAll(overrides.safeParameters); } parametersAction.safeParameters = safe; return parametersAction; }
/** * Creates a new {@link ParametersAction} that contains all the parameters in this action * with the overrides / new values given as parameters. * @return New {@link ParametersAction}. The result may contain null {@link ParameterValue}s */ @Nonnull public ParametersAction createUpdated(Collection<? extends ParameterValue> overrides) { if(overrides == null) { ParametersAction parametersAction = new ParametersAction(parameters); parametersAction.safeParameters = this.safeParameters; return parametersAction; } List<ParameterValue> combinedParameters = Lists.<ParameterValue>newArrayList(overrides); Set<String> names = newHashSet(); for(ParameterValue v : overrides) { if (v == null) continue; names.add(v.getName()); } for (ParameterValue v : parameters) { if (v == null) continue; if (!names.contains(v.getName())) { combinedParameters.add(v); } } return new ParametersAction(combinedParameters, this.safeParameters); }
@CheckForNull Queue.Item scheduleBuild2(int quietPeriod, List<Action> actions) { if (!asJob().isBuildable()) return null; List<Action> queueActions = new ArrayList<Action>(actions); if (isParameterized() && Util.filter(queueActions, ParametersAction.class).isEmpty()) { queueActions.add(new ParametersAction(getDefaultParametersValues())); } return Jenkins.getInstance().getQueue().schedule2(asJob(), quietPeriod, queueActions).getItem(); }
@Override protected int run() throws Exception { Run r = getCurrentlyBuilding(); r.checkPermission(Run.UPDATE); StringParameterValue p = new StringParameterValue(name, value); ParametersAction a = r.getAction(ParametersAction.class); if (a!=null) { r.replaceAction(a.createUpdated(Collections.singleton(p))); } else { r.addAction(new ParametersAction(p)); } return 0; } }
public void buildWithParameters(StaplerRequest req, StaplerResponse rsp, @CheckForNull TimeDuration delay) throws IOException, ServletException { List<ParameterValue> values = new ArrayList<ParameterValue>(); for (ParameterDefinition d: parameterDefinitions) { ParameterValue value = d.createValue(req); if (value != null) { values.add(value); } } if (delay==null) delay=new TimeDuration(TimeUnit.MILLISECONDS.convert(getJob().getQuietPeriod(), TimeUnit.SECONDS)); Queue.Item item = Jenkins.getInstance().getQueue().schedule2( getJob(), delay.getTimeInSeconds(), new ParametersAction(values), ParameterizedJobMixIn.getBuildCause(getJob(), req)).getItem(); if (item != null) { rsp.sendRedirect(SC_CREATED, req.getContextPath() + '/' + item.getUrl()); } else { rsp.sendRedirect("."); } }
getJob(), delay.getTimeInSeconds(), new ParametersAction(values), new CauseAction(new Cause.UserIdCause())); if (item!=null) { String url = formData.optString("redirectTo");
a = new ParametersAction(values);
/** * Factory method for creating {@link ParametersAction} * @param parameters * @return */ public static ParametersAction createParametersAction(List<ParameterValue> parameters){ return new ParametersAction(parameters); } public static ParametersAction getParametersActions(Promotion build){
private static ParametersAction getParametersAction(List<Action> actions) { for (Action a : actions) { if (a instanceof ParametersAction) { return (ParametersAction)a; } } return new ParametersAction(); } }
public static ParametersAction createParameterAction( final ParametersDefinitionProperty parametersDefinitionProperty, final Map<String, String> resolvedVariables) { final List<ParameterValue> parameterList = getParametersWithRespectToDefaultValues(parametersDefinitionProperty, resolvedVariables); return new ParametersAction(parameterList); }
private void addBuildParameter(AbstractBuild<?, ?> build) { if (!CollectionUtils.isEmpty(this.latestBaselines)) { ArrayList<ParameterValue> parameters = new ArrayList<ParameterValue>(); String baselineName = latestBaselines.get(0); parameters.add(new StringParameterValue(ENV_CC_BASELINE_NAME, baselineName)); build.addAction(new ParametersAction(parameters)); } }
public Action getAction(AbstractBuild<?,?> build, TaskListener listener) throws IOException, InterruptedException { EnvVars env = getEnvironment(build, listener); Properties p = new Properties(); p.load(new StringInputStream(properties)); List<ParameterValue> values = new ArrayList<ParameterValue>(); for (Map.Entry<Object, Object> entry : p.entrySet()) { values.add(new StringParameterValue(entry.getKey().toString(), env.expand(entry.getValue().toString()))); } return new ParametersAction(values); }
private static ParametersAction mergeParameters(ParametersAction base, ParametersAction overlay) { LinkedHashMap<String,ParameterValue> params = new LinkedHashMap<String,ParameterValue>(); for (ParameterValue param : base.getParameters()) params.put(param.getName(), param); for (ParameterValue param : overlay.getParameters()) params.put(param.getName(), param); return new ParametersAction(params.values().toArray(new ParameterValue[params.size()])); }
private static ParametersAction getDefaultParameters(AbstractProject<?,?> project) { ParametersDefinitionProperty property = project.getProperty(ParametersDefinitionProperty.class); if (property == null) { return null; } List<ParameterValue> parameters = new ArrayList<ParameterValue>(); for (ParameterDefinition pd : property.getParameterDefinitions()) { ParameterValue param = pd.getDefaultParameterValue(); if (param != null) parameters.add(param); } return new ParametersAction(parameters); }
public ParametersAction transformParametersAction(ParametersAction a, Job<?,?> project) { Map<String, ParameterDefinition> parameterDefinitions = getParameterDefinitionsMap(project); List<ParameterValue> params = new ArrayList<ParameterValue>(); for (ParameterValue param : a.getParameters()) { params.add(convertToDefinedType(parameterDefinitions, param)); } /* Add default values from defined params in the target job */ return new ParametersAction(params); }
/** * Writes the complete report to the environment variable: BUILD_CONSTRAINT_LOG */ public void writeResultsToEnvVar() { List<ParameterValue> params = new ArrayList<ParameterValue>(); params.add(new StringParameterValue("BUILD_CONSTRAINT_LOG", getLoggerMsgAdv())); newBuild.addAction(new ParametersAction(params)); }
public Action getAction(AbstractBuild<?, ?> build, TaskListener listener) throws IOException, InterruptedException { String labelExpanded = nodeLabel; try { labelExpanded = TokenMacro.expandAll(build, listener, labelExpanded); } catch (MacroEvaluationException e) { labelExpanded = nodeLabel; e.printStackTrace(listener.getLogger()); } LabelParameterValue parameterValue = new LabelParameterValue(name, labelExpanded, false, new AllNodeEligibility()); listener.getLogger().println("define: " + parameterValue); return new ParametersAction(parameterValue); }
@Override public Action getAction(AbstractBuild<?, ?> build, TaskListener listener) throws IOException, InterruptedException, DontTriggerException { assert f.getChannel() == null; // we copied files locally. This file must be local to the master FileParameterValue fv = new FileParameterValue(parameterBinding.parameterName, new File(f.getRemote()), f.getName()); return new ParametersAction(fv); } });
@CheckForNull Queue.Item scheduleBuild2(int quietPeriod, List<Action> actions) { if (!asJob().isBuildable()) return null; List<Action> queueActions = new ArrayList<Action>(actions); if (isParameterized() && Util.filter(queueActions, ParametersAction.class).isEmpty()) { queueActions.add(new ParametersAction(getDefaultParametersValues())); } return Jenkins.getInstance().getQueue().schedule2(asJob(), quietPeriod, queueActions).getItem(); }
@Override public void evaluate() throws Throwable { WorkflowJob p = story.j.jenkins.createProject(WorkflowJob.class, "p"); p.addProperty(new ParametersDefinitionProperty(new StringParameterDefinition("param", ""))); p.setDefinition(new CpsFlowDefinition("echo \"run with ${param}\"", true)); WorkflowRun b1 = story.j.assertBuildStatusSuccess(p.scheduleBuild2(0, new ParametersAction(new StringParameterValue("param", "some value")))); story.j.assertLogContains("run with some value", b1); // When we replay a parameterized build, we expect the original parameter values to be set. WorkflowRun b2 = (WorkflowRun) b1.getAction(ReplayAction.class).run("echo \"run again with ${param}\"", Collections.<String,String>emptyMap()).get(); story.j.assertLogContains("run again with some value", story.j.assertBuildStatusSuccess(b2)); } });