Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Florence.Chabanois committed Jan 19, 2012
1 parent 617aa5e commit a33b416
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 39 deletions.
Expand Up @@ -54,14 +54,18 @@ public Environment setUpEnvironment(AbstractBuild build, Launcher launcher, Buil
infraEnvVarsMaster.putAll(getJenkinsSystemVariablesMaster(build));
}

//Add build variables (such as parameter variables).
//Add build variables
if (envInjectJobProperty.isKeepBuildVariables()) {
logger.info("Jenkins build variables are kept.");
Map<String, String> buildVariables = variableGetter.getBuildVariables(build, logger);
infraEnvVarsNode.putAll(buildVariables);
infraEnvVarsMaster.putAll(buildVariables);
}

//Add build parameters (or override)
Map<String, String> parametersVariables = variableGetter.getParametersVariables(build);
infraEnvVarsNode.putAll(parametersVariables);

final FilePath rootPath = getNodeRootPath();
if (rootPath != null) {

Expand Down Expand Up @@ -185,12 +189,28 @@ private FilePath getNodeRootPath() {
return null;
}


private boolean parameter2exclude(EnvironmentContributingAction a) {

if ((EnvInjectBuilder.ENVINJECT_BUILDER_ACTION_NAME).equals(a.getDisplayName())) {
return true;
}

if (a instanceof ParametersAction) {
return true;
}

return false;
}

@Override
public void onCompleted(Run run, TaskListener listener) {
EnvInjectLogger logger = new EnvInjectLogger(listener);

//Add other plugins env vars contribution variables (exclude builder action and parameter actions already populated)
EnvVars envVars = new EnvVars();
for (EnvironmentContributingAction a : Util.filter(run.getActions(), EnvironmentContributingAction.class)) {
if (!(EnvInjectBuilder.ENVINJECT_BUILDER_ACTION_NAME).equals(a.getDisplayName())) {
if (!parameter2exclude(a)) {
a.buildEnvVars((AbstractBuild<?, ?>) run, envVars);
}
}
Expand Down
@@ -1,21 +1,17 @@
package org.jenkinsci.plugins.envinject.service;

import hudson.FilePath;
import hudson.Util;
import hudson.model.ParameterValue;
import hudson.model.TaskListener;
import hudson.model.TopLevelItem;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Computer;
import hudson.model.Hudson;
import hudson.model.Job;
import hudson.model.Node;
import hudson.model.ParametersAction;
import hudson.model.PasswordParameterValue;
import hudson.slaves.NodeProperty;
import hudson.model.*;
import hudson.slaves.EnvironmentVariablesNodeProperty;
import hudson.slaves.NodeProperty;
import hudson.util.LogTaskListener;
import org.jenkinsci.lib.envinject.EnvInjectAction;
import org.jenkinsci.lib.envinject.EnvInjectException;
import org.jenkinsci.lib.envinject.EnvInjectLogger;
import org.jenkinsci.lib.envinject.service.EnvInjectActionRetriever;
import org.jenkinsci.lib.envinject.service.EnvInjectDetector;
import org.jenkinsci.plugins.envinject.EnvInjectJobProperty;
import org.jenkinsci.plugins.envinject.EnvInjectJobPropertyInfo;

import java.io.IOException;
import java.util.HashMap;
Expand All @@ -25,14 +21,6 @@
import java.util.logging.Level;
import java.util.logging.Logger;

import org.jenkinsci.lib.envinject.EnvInjectAction;
import org.jenkinsci.lib.envinject.EnvInjectException;
import org.jenkinsci.lib.envinject.EnvInjectLogger;
import org.jenkinsci.lib.envinject.service.EnvInjectActionRetriever;
import org.jenkinsci.lib.envinject.service.EnvInjectDetector;
import org.jenkinsci.plugins.envinject.EnvInjectJobPropertyInfo;
import org.jenkinsci.plugins.envinject.EnvInjectJobProperty;

/**
* @author Gregory Boissinot
*/
Expand Down Expand Up @@ -81,8 +69,7 @@ public Map<String, String> getBuildVariables(AbstractBuild build, EnvInjectLogge

//Add build variables such as parameters, plugins contributions, ...
result.putAll(build.getBuildVariables());
result.putAll(addPasswordParameter(build));


//Add workspace variable
String workspace = getWorkspaceWithCreation(build, logger);
if (workspace != null) {
Expand All @@ -96,21 +83,26 @@ public Map<String, String> getBuildVariables(AbstractBuild build, EnvInjectLogge
return result;
}

private Map<String, String> addPasswordParameter(AbstractBuild build){
Map<String, String> r = new HashMap<String, String>();

ParametersAction params = build.getAction(ParametersAction.class);
if (params != null){
for (ParameterValue p : params){
if (p instanceof PasswordParameterValue){
r.put(p.getName(),"******");
}
}
}

return r;
public Map<String, String> getParametersVariables(AbstractBuild build) {
Map<String, String> result = new HashMap<String, String>();
ParametersAction params = build.getAction(ParametersAction.class);
if (params != null) {
for (ParameterValue p : params) {
if (p instanceof PasswordParameterValue) {
String value = p.createVariableResolver(build).resolve(p.getName());
if (value != null) {
StringBuffer password = new StringBuffer();
for (int i = 1; i < value.length(); i++) {
password.append('*');
}
result.put(p.getName(), password.toString());
}
}
}
}
return result;
}

private String getWorkspaceWithCreation(AbstractBuild build, EnvInjectLogger logger) throws EnvInjectException {
try {
Node node = build.getBuiltOn();
Expand Down

0 comments on commit a33b416

Please sign in to comment.