in chef/core/src/main/java/org/jclouds/karaf/chef/core/ChefHelper.java [310:353]
public static ApiContext<ChefApi> createChefService(ApiMetadata apiMetadata, String name, String clientName,
String clientCredential, String clientKeyFile, String validatorName, String validatorCredential,
String validatorKeyFile, String endpoint) throws Exception {
if (Strings.isNullOrEmpty(clientName) && apiMetadata != null && !apiMetadata.getDefaultCredential().isPresent()) {
LOGGER.warn("No client specified for api {}.", apiMetadata.getId());
return null;
}
if (Strings.isNullOrEmpty(validatorName) && apiMetadata != null && !apiMetadata.getDefaultCredential().isPresent()) {
LOGGER.warn("No validator name specified for api {}.", apiMetadata.getId());
return null;
}
if (Strings.isNullOrEmpty(validatorCredential) && !Strings.isNullOrEmpty(validatorKeyFile)) {
validatorCredential = credentialsFromPath(validatorKeyFile);
}
if (Strings.isNullOrEmpty(clientCredential) && !Strings.isNullOrEmpty(clientKeyFile)) {
clientCredential = credentialsFromPath(clientKeyFile);
} else if (Strings.isNullOrEmpty(clientCredential)) {
clientCredential = credentialForClient(clientName);
}
Properties chefConfig = new Properties();
chefConfig.put(ChefProperties.CHEF_VALIDATOR_NAME, validatorName);
chefConfig.put(ChefProperties.CHEF_VALIDATOR_CREDENTIAL, validatorCredential);
ContextBuilder builder = null;
if (apiMetadata != null) {
builder = ContextBuilder.newBuilder(apiMetadata).overrides(chefConfig);
}
if (!Strings.isNullOrEmpty(endpoint)) {
builder = builder.endpoint(endpoint);
}
builder = builder.name(name).modules(ImmutableSet.<Module>of(new SLF4JLoggingModule()));
builder = builder.name(name).credentials(clientName, clientCredential).overrides(chefConfig);
// builder.build() does not compile on JDK 6
return builder.build(CHEF_TOKEN);
}