public T fromSshKeyPair(SshKeyPair in) { return this .fingerprint(in.getFingerprint()) .name(in.getName()) .privateKey(in.getPrivateKey()); } }
public SshKeyPair build() { return new SshKeyPair(fingerprint, name, privateKey); }
@Override public String toString() { return string().toString(); }
SshKeyPair expected = SshKeyPair.builder().name("jclouds-keypair") .fingerprint("1c:06:74:52:3b:99:1c:95:5c:04:c2:f4:ba:77:6e:7b") .privateKey("-----BEGIN RSA PRIVATE KEY-----\n" + assertEquals(SshKeys.fingerprintPrivateKey(actual.getPrivateKey()), expected.getFingerprint());
if (templateOptions.getLoginPrivateKey() != null) { String pem = templateOptions.getLoginPrivateKey(); keyPair = SshKeyPair.builder().name(templateOptions.getKeyPair()) .fingerprint(fingerprintPrivateKey(pem)).privateKey(pem).build(); keyPairCache.asMap().put(keyPair.getName(), keyPair); options.keyPair(keyPair.getName()); } else if (client.getSSHKeyPairApi().getSSHKeyPair(templateOptions.getKeyPair()) != null) { keyPair = client.getSSHKeyPairApi().getSSHKeyPair(templateOptions.getKeyPair()); keyPairCache.asMap().put(keyPair.getName(), keyPair); options.keyPair(keyPair.getName()); keyPairCache.asMap().put(keyPair.getName(), keyPair); templateOptions.keyPair(keyPair.getName()); options.keyPair(keyPair.getName()); if (templateOptions.getKeyPair() != null) { SshKeyPair keyPair = keyPairCache.getUnchecked(templateOptions.getKeyPair()); credentialsBuilder.privateKey(keyPair.getPrivateKey()); } else if (vm.isPasswordEnabled()) { assert vm.getPassword() != null : vm;
protected void checkSSHKeyPair(SshKeyPair pair) { assert pair.getName() != null : pair; assertEquals(pair.getFingerprint(), client.getSSHKeyPairClient().getSSHKeyPair(pair.getName()).getFingerprint()); }
SshKeyPair expected = SshKeyPair.builder().name("jclouds-keypair") .fingerprint(expectedFingerprint).build(); assertEquals(expectedFingerprint, expected.getFingerprint());
@Override public void execute(CloudStackClient cloudStackClient, Pool pool, DelegateExecution execution) { String keyName = KeyPairs.formatNameFromBusinessKey(execution.getProcessBusinessKey()); LOG.info("Creating admin access key pair as {}", keyName); SSHKeyPairClient sshKeyPairClient = cloudStackClient.getSSHKeyPairClient(); try { SshKeyPair sshKeyPair = sshKeyPairClient.registerSSHKeyPair(keyName, pool.getAdminAccess().getPublicKey()); LOG.info("Registered remote key with fingerprint {}", sshKeyPair.getFingerprint()); } catch (IllegalStateException e) { LOG.warn("Key with name {} already exists", keyName); SshKeyPair key = sshKeyPairClient.getSSHKeyPair(keyName); if (key.getFingerprint().equals(SshKeys.fingerprintPublicKey(pool.getAdminAccess().getPublicKey()))) { LOG.info("Fingerprints match. Not updating admin access key pair."); } else { LOG.info("Fingerprint do not match. Replacing admin access key pair."); sshKeyPairClient.deleteSSHKeyPair(keyName); sshKeyPairClient.registerSSHKeyPair(keyName, pool.getAdminAccess().getPublicKey()); } } } }
@Override @SelectJson("sshkeypair") public Set<SshKeyPair> expected() { return ImmutableSet.<SshKeyPair> of(SshKeyPair.builder().name("jclouds-keypair") .fingerprint("1c:06:74:52:3b:99:1c:95:5c:04:c2:f4:ba:77:6e:7b").build()); }
SshKeyPair expected = SshKeyPair.builder().name("jclouds-keypair") .fingerprint("1c:06:74:52:3b:99:1c:95:5c:04:c2:f4:ba:77:6e:7b") .privateKey("-----BEGIN RSA PRIVATE KEY-----\n" + assertEquals(SshKeys.fingerprintPrivateKey(actual.getPrivateKey()), expected.getFingerprint());
protected void checkSSHKeyPair(SshKeyPair pair) { assert pair.getName() != null : pair; assertEquals(pair.getFingerprint(), client.getSSHKeyPairApi().getSSHKeyPair(pair.getName()).getFingerprint()); }
SshKeyPair expected = SshKeyPair.builder().name("jclouds-keypair") .fingerprint(expectedFingerprint).build(); assertEquals(expectedFingerprint, expected.getFingerprint());
@Override public boolean apply(SshKeyPair ext) { return name.apply(ext.getName()); }
@Override @SelectJson("sshkeypair") public Set<SshKeyPair> expected() { return ImmutableSet.<SshKeyPair> of(SshKeyPair.builder().name("jclouds-keypair") .fingerprint("1c:06:74:52:3b:99:1c:95:5c:04:c2:f4:ba:77:6e:7b").build()); }
public T fromSshKeyPair(SshKeyPair in) { return this .fingerprint(in.getFingerprint()) .name(in.getName()) .privateKey(in.getPrivateKey()); } }
private void cleanupOrphanedKeyPairsInZone(Set<String> groups, String zoneId) { for (String group : groups) { for (SshKeyPair pair : Iterables.filter(client.getSSHKeyPairApi().listSSHKeyPairs(), nameMatches(namingConvention.create().containsGroup(group)))) { logger.debug(">> deleting keypair(%s)", pair.getName()); client.getSSHKeyPairApi().deleteSSHKeyPair(pair.getName()); // TODO: test this clear happens keyPairCache.invalidate(pair.getName()); logger.debug("<< deleted keypair(%s)", pair.getName()); } keyPairCache.invalidate(namingConvention.create().sharedNameForGroup(group)); } }
@Test public void testListAndGetSSHKeyPairsWhenResponseIs2xx() { HttpResponse response = HttpResponse.builder() .statusCode(200) .payload(payloadFromResource("/listsshkeypairsresponse.json")) .build(); SSHKeyPairClient client = requestSendsResponse(HttpRequest.builder() .method("GET") .endpoint( URI.create("http://localhost:8080/client/api?response=json&" + "command=listSSHKeyPairs&listAll=true&apiKey=identity&signature=5d2J9u%2BdKpkQsadDbl9i9OcUSLQ%3D")) .addHeader("Accept", "application/json") .build(), response); assertEquals(client.listSSHKeyPairs(), ImmutableSet.of( SshKeyPair.builder().name("jclouds-keypair") .fingerprint("1c:06:74:52:3b:99:1c:95:5c:04:c2:f4:ba:77:6e:7b").build())); client = requestSendsResponse(HttpRequest.builder() .method("GET") .endpoint( URI.create("http://localhost:8080/client/api?response=json&command=listSSHKeyPairs&listAll=true&" + "name=jclouds-keypair&apiKey=identity&signature=hJIVCFOHhdOww3aq19tFHpeD2HI%3D")) .addHeader("Accept", "application/json") .build(), response); assertEquals(client.getSSHKeyPair("jclouds-keypair"), SshKeyPair.builder().name("jclouds-keypair") .fingerprint("1c:06:74:52:3b:99:1c:95:5c:04:c2:f4:ba:77:6e:7b").build()); }
@Override public String toString() { return string().toString(); }
public SshKeyPair build() { return new SshKeyPair(fingerprint, name, privateKey); }