X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ONAP-PDP-REST%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpdp%2Frest%2Fapi%2Fservices%2FOptimizationPolicyService.java;h=7f9aec6fa323c0caeecbd808a794d177aed10fe4;hb=c47063d7cf7b6294547c7628630a5b9fca1daedc;hp=61038d9557415688f88417f059c529eee69fbfa8;hpb=54d873eda668d7c0dbd79f1ca7764cab75753ec6;p=policy%2Fengine.git diff --git a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/OptimizationPolicyService.java b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/OptimizationPolicyService.java index 61038d955..7f9aec6fa 100644 --- a/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/OptimizationPolicyService.java +++ b/ONAP-PDP-REST/src/main/java/org/onap/policy/pdp/rest/api/services/OptimizationPolicyService.java @@ -3,13 +3,14 @@ * ONAP-PDP-REST * ================================================================================ * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2018 Samsung Electronics Co., Ltd. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -21,6 +22,7 @@ package org.onap.policy.pdp.rest.api.services; import javax.json.JsonException; import javax.json.JsonObject; + import org.onap.policy.api.PolicyException; import org.onap.policy.api.PolicyParameters; import org.onap.policy.common.logging.flexlogger.FlexLogger; @@ -28,83 +30,104 @@ import org.onap.policy.common.logging.flexlogger.Logger; import org.onap.policy.pdp.rest.api.utils.PolicyApiUtils; import org.onap.policy.xacml.api.XACMLErrorConstants; import org.onap.policy.xacml.std.pap.StdPAPPolicy; +import org.onap.policy.xacml.std.pap.StdPAPPolicyParams; /** - * Optimization Policy implementation. - * + * Optimization Policy implementation. + * * @version 0.1 */ -public class OptimizationPolicyService{ - private static final Logger LOGGER = FlexLogger.getLogger(OptimizationPolicyService.class.getName()); - - private PAPServices papServices = null; - private PolicyParameters policyParameters = null; - private String message = null; - private String policyName = null; - private String policyScope = null; - private String date = null; +public class OptimizationPolicyService { + private static final Logger LOGGER = FlexLogger.getLogger(OptimizationPolicyService.class.getName()); + + private PAPServices papServices = null; + private PolicyParameters policyParameters = null; + private String message = null; + private String policyName = null; + private String policyScope = null; + private String date = null; + + public OptimizationPolicyService(String policyName, String policyScope, PolicyParameters policyParameters, + String date) { + this.policyParameters = policyParameters; + this.policyName = policyName; + this.policyScope = policyScope; + this.date = date; + papServices = new PAPServices(); + } - public OptimizationPolicyService(String policyName, String policyScope, PolicyParameters policyParameters, String date) { - this.policyParameters = policyParameters; - this.policyName = policyName; - this.policyScope = policyScope; - this.date = date; - papServices = new PAPServices(); - } + public String getMessage() { + return message; + } - public String getMessage() { - return message; - } - - public String getResult(boolean updateFlag) throws PolicyException{ - String response = null; + public String getResult(boolean updateFlag) throws PolicyException { + String response = null; String operation = null; - - if (updateFlag){ + + if (updateFlag) { operation = "update"; } else { operation = "create"; } - + // get values and attributes from the JsonObject String servicModel = null; - String policyDescription=null; - String priority=null; - String version=null; - - String onapName = policyParameters.getOnapName(); - JsonObject optimizationAttributes = null; - try{ - optimizationAttributes = PolicyApiUtils.stringToJsonObject(policyParameters.getConfigBody()); - } catch(JsonException| IllegalStateException e){ - message = XACMLErrorConstants.ERROR_DATA_ISSUE+ " improper JSON object : " + policyParameters.getConfigBody(); - LOGGER.error("Error while parsing JSON body for MicroService Policy creation. ", e); - return null; - } - - if (optimizationAttributes.get("service")!=null){ - servicModel = optimizationAttributes.get("service").toString().replace("\"", ""); + String policyDescription = null; + String priority = null; + String version = null; + + String onapName = policyParameters.getOnapName(); + JsonObject optimizationAttributes = null; + try { + optimizationAttributes = PolicyApiUtils.stringToJsonObject(policyParameters.getConfigBody()); + } catch (JsonException | IllegalStateException e) { + message = + XACMLErrorConstants.ERROR_DATA_ISSUE + " improper JSON object : " + + policyParameters.getConfigBody(); + LOGGER.error("Error while parsing JSON body for MicroService Policy creation. ", e); + return null; + } + + if (optimizationAttributes.get("service") != null) { + servicModel = optimizationAttributes.get("service").toString().replace("\"", ""); } - if(optimizationAttributes.containsKey("description")){ - policyDescription = optimizationAttributes.get("description").toString().replace("\"", ""); + if (optimizationAttributes.containsKey("description")) { + policyDescription = optimizationAttributes.get("description").toString().replace("\"", ""); } - if(optimizationAttributes.containsKey("priority")){ - priority = optimizationAttributes.get("priority").toString().replace("\"", ""); + if (optimizationAttributes.containsKey("priority")) { + priority = optimizationAttributes.get("priority").toString().replace("\"", ""); } - if(optimizationAttributes.containsKey("version")){ - version = optimizationAttributes.get("version").toString().replace("\"", ""); + if (optimizationAttributes.containsKey("version")) { + version = optimizationAttributes.get("version").toString().replace("\"", ""); } - + // Create Policy Object - StdPAPPolicy newPAPPolicy = new StdPAPPolicy("Optimization", policyName, policyDescription, onapName, - null, servicModel, null, null, optimizationAttributes.toString(), priority, - version, updateFlag, policyScope, 0, policyParameters.getRiskLevel(), - policyParameters.getRiskType(), String.valueOf(policyParameters.getGuard()), date); - + StdPAPPolicy newPAPPolicy = new StdPAPPolicy(StdPAPPolicyParams.builder() + .configPolicyType("Optimization") + .policyName(policyName) + .description(policyDescription) + .onapName(onapName) + .configName(null) + .serviceType(servicModel) + .uuid(null) + .msLocation(null) + .jsonBody(optimizationAttributes.toString()) + .priority(priority) + .version(version) + .editPolicy(updateFlag) + .domain(policyScope) + .highestVersion(0) + .riskLevel(policyParameters.getRiskLevel()) + .riskType(policyParameters.getRiskType()) + .guard(String.valueOf(policyParameters.getGuard())) + .ttlDate(date) + .build()); + // Send JSON Object to PAP - response = (String) papServices.callPAP(newPAPPolicy, new String[] {"operation="+operation, "apiflag=api", "policyType=Config"}, - policyParameters.getRequestID(), "ConfigOptimization"); + response = (String) papServices.callPAP(newPAPPolicy, new String[]{"operation=" + operation, "apiflag=api", + "policyType=Config"}, + policyParameters.getRequestID(), "ConfigOptimization"); LOGGER.info("Response: " + response); return response; - } + } }