// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: MIT-0
package com.amazonaws.example.library.metadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Consul Metadata Provider chain that looks for metadata in this order:
*
*
* - Environment Variables
* - EC2 Metadata
*
*/
public class DefaultConsulMetadataProvider implements ConsulMetaDataProvider {
private static final Logger logger = LoggerFactory.getLogger(DefaultConsulMetadataProvider.class);
private final Map metadata;
public DefaultConsulMetadataProvider() {
//Create the Provider List. Can be refactored to look from Configuration or Properties file in the future
List providerList = new ArrayList<>();
providerList.add(new EnvironmentConsulMetadataProvider());
providerList.add(new EC2ConsulMetadataProvider());
logger.debug("Consolidating Metadata...");
metadata = new HashMap<>();
for (ConsulMetaDataProvider provider : providerList) {
metadata.putAll(provider.getMetadata());
}
}
@Override
public Map getMetadata() {
return this.metadata;
}
}