in commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeServiceCreateCommand.java [130:181]
private void registerComputeService(final ConfigurationAdmin configurationAdmin,final String name, final String provider,
final String api, final String identity, final String credential, final String endpoint,
final Map<String, String> props) throws Exception {
Runnable registrationTask = new Runnable() {
@Override
public void run() {
try {
Configuration configuration = findOrCreateFactoryConfiguration(configurationAdmin, "org.jclouds.compute", name, provider, api);
if (configuration != null) {
Dictionary<String, Object> dictionary = configuration.getProperties();
if (dictionary == null) {
dictionary = new Hashtable<String, Object>();
}
String providerValue = EnvHelper.getComputeProvider(provider);
String apiValue = EnvHelper.getComputeApi(api);
String identityValue = EnvHelper.getComputeIdentity(identity);
String endpointValue = EnvHelper.getComputeEndpoint(endpoint);
String credentialValue = EnvHelper.getComputeCredential(providerValue, credential);
if (name != null) {
dictionary.put(Constants.NAME, name);
}
if (providerValue != null) {
dictionary.put(Constants.PROVIDER, providerValue);
}
if (apiValue != null) {
dictionary.put(Constants.API, apiValue);
}
if (endpointValue != null) {
dictionary.put(Constants.ENDPOINT, endpointValue);
}
if (credentialValue != null) {
dictionary.put(Constants.CREDENTIAL, credentialValue);
}
if (identityValue != null) {
dictionary.put(Constants.IDENTITY, identityValue);
}
for (Map.Entry<String, String> entry : props.entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
dictionary.put(key, value);
}
configuration.update(dictionary);
}
} catch (Exception ex) {
// noop
}
}
};
new Thread(registrationTask).start();
}