@Override public boolean isEnabled() { return LocationConfigUtils.isResolverPrefixEnabled(managementContext, getPrefix()); }
public static boolean isResolverPrefixEnabled(ManagementContext mgmt, String resolverIdPrefix) { return isEnabled(mgmt, BROOKLYN_LOCATION_PREFIX+"."+resolverIdPrefix); }
/** returns the un-passphrased key-pair info if a key is being used, or else null */ public KeyPair findKeyPair() { OsCredential creds = LocationConfigUtils.getOsCredential(config().getBag()); if (creds.hasKey()) { String data = creds.getPrivateKeyData(); return SecureKeys.readPem(data.getBytes(), getConfig(SshTool.PROP_PRIVATE_KEY_PASSPHRASE)); } else { return null; } }
private static String getKeyDataFromDataKeyOrFileKey(ConfigBag config, ConfigKey<String> dataKey, ConfigKey<String> fileKey) { boolean unused = config.isUnused(dataKey); String data = config.get(dataKey); if (Strings.isNonBlank(data) && !unused) { return data.trim(); } String file = config.get(fileKey); if (groovyTruth(file)) { List<String> files = Arrays.asList(file.split(File.pathSeparator)); List<String> filesTidied = tidyFilePaths(files); String fileData = getFileContents(filesTidied); if (fileData == null) { log.warn("Invalid file" + (files.size() > 1 ? "s" : "") + " for " + fileKey + " (given " + files + (files.equals(filesTidied) ? "" : "; converted to " + filesTidied) + ") " + "may fail provisioning " + config.getDescription()); } else if (groovyTruth(data)) { if (!fileData.trim().equals(data.trim())) log.warn(dataKey.getName()+" and "+fileKey.getName()+" both specified; preferring the former"); } else { data = fileData; config.put(dataKey, data); config.get(dataKey); } } return data; }
.configure(flags) .configure(MultiLocation.SUB_LOCATION_SPECS.getName(), targets) .configure(LocationConfigUtils.finalAndOriginalSpecs(spec, locationFlags, globalProperties, namedLocation));
public void testInfersPublicKeyFileFromPrivateKeyFile() throws Exception { ConfigBag config = ConfigBag.newInstance(); config.put(LocationConfigKeys.PRIVATE_KEY_FILE, SSH_PRIVATE_KEY_FILE); String data = LocationConfigUtils.getOsCredential(config).getPublicKeyData(); assertTrue(data != null && data.length() > 0); } }
.configure("location", target) .configure("locationFlags", flags.getAllConfig()) .configure(LocationConfigUtils.finalAndOriginalSpecs(spec, locationFlags, globalProperties, namedLocation));
@Override public boolean isEnabled() { return LocationConfigUtils.isResolverPrefixEnabled(managementContext, getPrefix()); }
public void testReadsPrivateKeyFileWithMultipleColonSeparatedFilesWithGoodFirst() throws Exception { ConfigBag config = ConfigBag.newInstance(); config.put(LocationConfigKeys.PRIVATE_KEY_FILE, SSH_PRIVATE_KEY_FILE+File.pathSeparator+"/path/does/not/exist"); String data = LocationConfigUtils.getOsCredential(config).getPreferredCredential(); assertTrue(data != null && data.length() > 0); }
@Override public LocationSpec<?> newLocationSpecFromString(String spec, Map<?,?> locationFlags, LocationRegistry registry) { ConfigBag config = extractConfig(locationFlags, spec, registry); @SuppressWarnings("unchecked") Map<String,?> globalProperties = registry.getProperties(); String namedLocation = (String) locationFlags.get(LocationInternal.NAMED_SPEC_NAME.getName()); if (registry != null) { LocationPropertiesFromBrooklynProperties.setLocalTempDir(globalProperties, config); } return LocationSpec.create(getLocationType()) .configure(config.getAllConfig()) .configure(LocationConfigUtils.finalAndOriginalSpecs(spec, locationFlags, globalProperties, namedLocation)); }
@Override public boolean isEnabled() { // right now these two checks, but in case the generic mechanism in super changes... return super.isEnabled() && LocationConfigUtils.isEnabled(managementContext, BROOKLYN_LOCATION_LOCALHOST_PREFIX); }
@Override public boolean isEnabled() { return LocationConfigUtils.isResolverPrefixEnabled(managementContext, getPrefix()); }
public void testReadsPrivateKeyFileWithMultipleColonSeparatedFilesWithGoodLast() throws Exception { ConfigBag config = ConfigBag.newInstance(); config.put(LocationConfigKeys.PRIVATE_KEY_FILE, "/path/does/not/exist"+File.pathSeparator+SSH_PRIVATE_KEY_FILE); String data = LocationConfigUtils.getOsCredential(config).getPreferredCredential(); assertTrue(data != null && data.length() > 0); }
@Override public LocationSpec<?> newLocationSpecFromString(String spec, Map<?, ?> locationFlags, LocationRegistry registry) { ConfigBag config = extractConfig(locationFlags, spec, registry); Map<?,?> globalProperties = registry.getProperties(); String namedLocation = (String) locationFlags.get(LocationInternal.NAMED_SPEC_NAME.getName()); String scope = config.get(PortForwardManager.SCOPE); return LocationSpec.create(PortForwardManagerImpl.class) .configure(config.getAllConfig()) .configure(LocationConfigUtils.finalAndOriginalSpecs(spec, locationFlags, globalProperties, namedLocation)) .configure(PortForwardManagerConstructor.SCOPE, scope) .configure(Config.SPECIAL_CONSTRUCTOR, PortForwardManagerConstructor.class); }
@Override public boolean isEnabled() { return LocationConfigUtils.isResolverPrefixEnabled(managementContext, getPrefix()); }
@Test(groups="Integration") // requires ~/.ssh/id_rsa public void testReadsPrivateKeyFileWithTildePath() throws Exception { ConfigBag config = ConfigBag.newInstance(); config.put(LocationConfigKeys.PRIVATE_KEY_FILE, SSH_PRIVATE_KEY_FILE_WITH_TILDE); // don't mind if it has a passphrase String data = LocationConfigUtils.getOsCredential(config).doKeyValidation(false).getPreferredCredential(); assertTrue(data != null && data.length() > 0); }
@Override public LocationSpec<?> newLocationSpecFromString(String spec, Map<?, ?> locationFlags, LocationRegistry registry) { ConfigBag config = extractConfig(locationFlags, spec, registry); @SuppressWarnings("rawtypes") Map globalProperties = registry.getProperties(); String namedLocation = (String) locationFlags.get(LocationInternal.NAMED_SPEC_NAME.getName()); if (registry != null) { LocationPropertiesFromBrooklynProperties.setLocalTempDir(globalProperties, config); } if (config.getStringKey("target") == null) { throw new IllegalArgumentException("target must be specified in single-machine spec"); } String target = config.getStringKey("target").toString(); config.remove("target"); Maybe<LocationSpec<?>> testResolve = managementContext.getLocationRegistry().getLocationSpec(target); if (!testResolve.isPresent()) { throw new IllegalArgumentException("Invalid target location '" + target + "' for location '"+SINGLE+"': "+ Exceptions.collapseText( Maybe.getException(testResolve) ), Maybe.getException(testResolve)); } return LocationSpec.create(SingleMachineProvisioningLocation.class) .configure("location", target) .configure("locationFlags", config.getAllConfig()) .configure(LocationConfigUtils.finalAndOriginalSpecs(spec, locationFlags, globalProperties, namedLocation)); }
@Override public boolean isEnabled() { return LocationConfigUtils.isResolverPrefixEnabled(managementContext, getPrefix()); }
@Test(groups="Integration") // requires ~/.ssh/id_rsa public void testReadsPublicKeyFileWithTildePath() throws Exception { ConfigBag config = ConfigBag.newInstance(); config.put(LocationConfigKeys.PUBLIC_KEY_FILE, SSH_PUBLIC_KEY_FILE_WITH_TILDE); // don't mind if it has a passphrase String data = LocationConfigUtils.getOsCredential(config).doKeyValidation(false).getPublicKeyData(); assertTrue(data != null && data.length() > 0); }
@Override public boolean isEnabled() { return LocationConfigUtils.isResolverPrefixEnabled(managementContext, getPrefix()); }