use of org.jenkinsci.test.acceptance.plugins.credentials.ManagedCredentials in project acceptance-test-harness by jenkinsci.
the class SshSlaveController method install.
@Override
public Future<Slave> install(Jenkins j) {
ManagedCredentials credential = new ManagedCredentials(j);
try {
credential.open();
if (credential.checkIfCredentialsExist(fingerprint) == null) {
CredentialsPage cp = new CredentialsPage(j, ManagedCredentials.DEFAULT_DOMAIN);
SshPrivateKeyCredential sc = cp.add(SshPrivateKeyCredential.class);
sc.username.set(machine.getUser());
sc.description.set(fingerprint);
sc.selectEnterDirectly().privateKey.set(keyPair.readPrivateKey());
cp.create();
}
} catch (IOException e) {
throw new AssertionError(e);
}
final Slave s = create(machine.getPublicIpAddress(), j);
// Slave is configured, now wait till its online
return new Future<Slave>() {
@Override
public boolean cancel(boolean mayInterruptIfRunning) {
return false;
}
@Override
public boolean isCancelled() {
return slaveWaitComplete.get();
}
@Override
public boolean isDone() {
return slaveWaitComplete.get() || s.isOnline();
}
@Override
public Slave get() throws InterruptedException, ExecutionException {
waitForOnLineSlave(s, slaveReadyTimeOutInSec);
return s;
}
@Override
public Slave get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
if (unit != TimeUnit.SECONDS) {
timeout = unit.toSeconds(timeout);
}
waitForOnLineSlave(s, (int) timeout);
return s;
}
};
}
use of org.jenkinsci.test.acceptance.plugins.credentials.ManagedCredentials in project acceptance-test-harness by jenkinsci.
the class TSRCreateSlaveTest method newSlaveWithExistingCredential.
@Test
@WithPlugins("credentials@2.0.7")
public void newSlaveWithExistingCredential() throws Exception {
String username = "xyz";
String description = "SSH Key setup";
String privateKey = "1212121122121212";
CredentialsPage c = new CredentialsPage(jenkins, "_");
c.open();
SshPrivateKeyCredential sc = c.add(SshPrivateKeyCredential.class);
sc.username.set(username);
sc.description.set(description);
sc.selectEnterDirectly().privateKey.set(privateKey);
c.create();
// now verify
c.open();
ManagedCredentials mc = new ManagedCredentials(jenkins);
String href = mc.credentialById("ssh_creds");
c.setConfigUrl(href);
verifyValueForCredential(c, sc.username, username);
verifyValueForCredential(c, sc.selectEnterDirectly().privateKey, privateKey);
// Just to make sure the dumb slave is set up properly, we should seed it
// with a FS root and executors
final DumbSlave s = jenkins.slaves.create(DumbSlave.class);
SshSlaveLauncher l = s.setLauncher(SshSlaveLauncher.class);
l.host.set("127.0.0.1");
l.credentialsId.select(String.format("%s (%s)", username, description));
}
use of org.jenkinsci.test.acceptance.plugins.credentials.ManagedCredentials in project acceptance-test-harness by jenkinsci.
the class SshSlavesPluginTest method newSlaveWithExistingCredential.
@Test
public void newSlaveWithExistingCredential() throws Exception {
String username = "xyz";
String description = "ssh_creds";
String privateKey = "1212121122121212";
CredentialsPage c = new CredentialsPage(jenkins, "_");
c.open();
SshPrivateKeyCredential sc = c.add(SshPrivateKeyCredential.class);
sc.username.set(username);
sc.description.set(description);
sc.selectEnterDirectly().privateKey.set(privateKey);
c.create();
// now verify
ManagedCredentials mc = new ManagedCredentials(jenkins);
String href = mc.credentialById("ssh_creds");
c.setConfigUrl(href);
verifyValueForCredential(c, sc.username, username);
// See https://jenkins.io/doc/developer/security/secrets/#secrets-and-configuration-forms, available from Jenkins 2.171
if (jenkins.getVersion().isNewerThan(new VersionNumber("2.170"))) {
verifyUnexpectedValueForCredential("Credentials in plain text should not be accessible from Web UI", c, sc.selectEnterDirectly().privateKey, privateKey);
}
// Just to make sure the dumb slave is set up properly, we should seed it
// with a FS root and executors
final DumbSlave s = jenkins.slaves.create(DumbSlave.class);
SshSlaveLauncher l = s.setLauncher(SshSlaveLauncher.class);
l.host.set("127.0.0.1");
l.credentialsId.select(String.format("%s (%s)", username, description));
}
Aggregations