aboutsummaryrefslogtreecommitdiffstats
path: root/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java
diff options
context:
space:
mode:
Diffstat (limited to 'a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java')
-rw-r--r--a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java
index e6b938a0..b677a405 100644
--- a/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java
+++ b/a1-policy-management/src/main/java/org/onap/ccsdk/oran/a1policymanagementservice/controllers/v2/ConfigurationController.java
@@ -36,6 +36,8 @@ import java.util.Optional;
import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ApplicationConfigParser;
import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ConfigurationFile;
import org.onap.ccsdk.oran.a1policymanagementservice.controllers.VoidResponse;
+import org.onap.ccsdk.oran.a1policymanagementservice.exceptions.ServiceException;
+import org.onap.ccsdk.oran.a1policymanagementservice.tasks.RefreshConfigTask;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -58,6 +60,9 @@ public class ConfigurationController {
@Autowired
ConfigurationFile configurationFile;
+ @Autowired
+ RefreshConfigTask refreshConfigTask;
+
private static Gson gson = new GsonBuilder() //
.create(); //
@@ -77,6 +82,7 @@ public class ConfigurationController {
})
public ResponseEntity<Object> putConfiguration(@RequestBody Object configuration) {
try {
+ validateConfigFileIsUsed();
String configAsString = gson.toJson(configuration);
JsonObject configJson = JsonParser.parseString(configAsString).getAsJsonObject();
ApplicationConfigParser configParser = new ApplicationConfigParser();
@@ -86,11 +92,10 @@ public class ConfigurationController {
return new ResponseEntity<>(HttpStatus.OK);
} catch (IOException ioe) {
logger.warn("Configuration file not written, {}.", ioe.getMessage());
- return ErrorResponse.create("Internal error when writing the configuration. Try again.",
+ return ErrorResponse.create("Internal error when writing the configuration.",
HttpStatus.INTERNAL_SERVER_ERROR);
} catch (Exception e) {
- return ErrorResponse.create(String.format("Faulty configuration. %s", e.getMessage()),
- HttpStatus.BAD_REQUEST);
+ return ErrorResponse.create(e, HttpStatus.BAD_REQUEST);
}
}
@@ -108,6 +113,7 @@ public class ConfigurationController {
})
public ResponseEntity<Object> getConfiguration() {
try {
+ validateConfigFileIsUsed();
Optional<JsonObject> rootObject = configurationFile.readFile();
if (rootObject.isPresent()) {
return new ResponseEntity<>(rootObject.get().toString(), HttpStatus.OK);
@@ -119,4 +125,11 @@ public class ConfigurationController {
}
}
+ private void validateConfigFileIsUsed() throws ServiceException {
+ if (this.refreshConfigTask.isConsulUsed()) {
+ throw new ServiceException("Config file not used (Consul is used)", HttpStatus.FORBIDDEN);
+ }
+
+ }
+
}