package com.sequenceiq.cloudbreak.controller; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Component; import com.sequenceiq.cloudbreak.api.endpoint.SettingsEndpoint; import com.sequenceiq.cloudbreak.api.model.DatabaseVendor; import com.sequenceiq.cloudbreak.api.model.SssdProviderType; import com.sequenceiq.cloudbreak.api.model.SssdSchemaType; import com.sequenceiq.cloudbreak.api.model.SssdTlsReqcertType; @Component public class SettingsController implements SettingsEndpoint { @Override public Map<String, Map<String, Object>> getAllSettings() { Map<String, Map<String, Object>> settings = new HashMap<>(); settings.put("sssdConfig", bundleSssdConfigSettings()); settings.put("recipe", bundleRecipeSettings()); settings.put("database", bundleDatabaseConfigSettings()); return settings; } @Override public Map<String, Object> getRecipeSettings() { return bundleRecipeSettings(); } private Map<String, Object> bundleRecipeSettings() { return new HashMap<>(); } @Override public Map<String, Object> getSssdConfigSettings() { return bundleSssdConfigSettings(); } private Map<String, Object> bundleSssdConfigSettings() { Map<String, Object> sssdConfig = new HashMap<>(); sssdConfig.put("providerTypes", SssdProviderType.values()); sssdConfig.put("schemaTypes", SssdSchemaType.values()); sssdConfig.put("tlsReqcertTypes", SssdTlsReqcertType.values()); return sssdConfig; } @Override public Map<String, Object> getDatabaseConfigSettings() { return bundleDatabaseConfigSettings(); } private Map<String, Object> bundleDatabaseConfigSettings() { Map<String, Object> dbConfig = new HashMap<>(); dbConfig.put("vendor", DatabaseVendor.availableVendors()); return dbConfig; } }