in commands/src/main/java/org/jclouds/karaf/commands/compute/ComputeCommandBase.java [251:279]
protected Configuration findOrCreateFactoryConfiguration(ConfigurationAdmin configurationAdmin, String factoryPid, String id, String provider, String api) throws IOException {
Configuration configuration = null;
if (configurationAdmin != null) {
try {
Configuration[] configurations = configurationAdmin.listConfigurations(String.format(FACTORY_FILTER, factoryPid));
if (configurations != null) {
for (Configuration conf : configurations) {
Dictionary<?, ?> dictionary = conf.getProperties();
//If id has been specified only try to match by id, ignore the rest.
if (dictionary != null && id != null) {
if (id.equals(dictionary.get(Constants.NAME))) {
return conf;
}
} else {
if (dictionary != null && provider != null && provider.equals(dictionary.get("provider"))) {
return conf;
} else if (dictionary != null && api != null && api.equals(dictionary.get("api"))) {
return conf;
}
}
}
}
} catch (Exception e) {
// noop
}
configuration = configurationAdmin.createFactoryConfiguration(factoryPid, null);
}
return configuration;
}