package alien4cloud.it.provider.util; import java.io.IOException; import java.util.Map; import org.apache.commons.collections4.MapUtils; import org.junit.Assert; import alien4cloud.it.Context; import alien4cloud.it.application.ApplicationStepDefinitions; import alien4cloud.rest.model.RestResponse; import alien4cloud.rest.utils.JsonUtil; import com.google.common.collect.Maps; public class RuntimePropertiesUtil { public static Map<String, String> getProperties(String nodeName, String propertyName) throws IOException { Map<String, String> nodeRuntimeProperties = Maps.newHashMap(); RestResponse<?> response = JsonUtil.read(Context.getRestClientInstance().get( "/rest/v1/applications/" + ApplicationStepDefinitions.CURRENT_APPLICATION.getId() + "/environments/" + Context.getInstance().getDefaultApplicationEnvironmentId(ApplicationStepDefinitions.CURRENT_APPLICATION.getName()) + "/deployment/informations")); Map<String, Object> instancesInformation = (Map<String, Object>) response.getData(); Assert.assertFalse(MapUtils.isEmpty(instancesInformation)); Map<String, Object> nodeInformation = (Map<String, Object>) instancesInformation.get(nodeName); Assert.assertFalse(MapUtils.isEmpty(nodeInformation)); for (Map.Entry<String, Object> instanceInformationEntry : nodeInformation.entrySet()) { Map<String, Object> instanceInformation = (Map<String, Object>) instanceInformationEntry.getValue(); Map<String, Object> instanceRuntimeProperties = (Map<String, Object>) instanceInformation.get("runtimeProperties"); nodeRuntimeProperties.put(instanceInformationEntry.getKey(), (String) instanceRuntimeProperties.get(propertyName)); } return nodeRuntimeProperties; } public static String getProperty(String nodeName, String propertyName) throws IOException { Map<String, String> allInstancesRuntimeProperties = getProperties(nodeName, propertyName); Assert.assertTrue(MapUtils.isNotEmpty(allInstancesRuntimeProperties)); Assert.assertTrue(allInstancesRuntimeProperties.size() == 1); return allInstancesRuntimeProperties.values().iterator().next(); } }