X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-interactions%2Fmodel-actors%2Factor.aai%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fcontrolloop%2Factor%2Faai%2FAaiGetOperation.java;h=3fb978d882ae188c8effb53164c833b017360843;hb=8722cb8a654ddcdcb472546a58809e041fe84eba;hp=3bc359af29b727483cc74b93b61133678f82cbf9;hpb=3b4884e5688a71116b3935e3a4ad243ab6287c80;p=policy%2Fmodels.git diff --git a/models-interactions/model-actors/actor.aai/src/main/java/org/onap/policy/controlloop/actor/aai/AaiGetOperation.java b/models-interactions/model-actors/actor.aai/src/main/java/org/onap/policy/controlloop/actor/aai/AaiGetOperation.java index 3bc359af2..3fb978d88 100644 --- a/models-interactions/model-actors/actor.aai/src/main/java/org/onap/policy/controlloop/actor/aai/AaiGetOperation.java +++ b/models-interactions/model-actors/actor.aai/src/main/java/org/onap/policy/controlloop/actor/aai/AaiGetOperation.java @@ -20,17 +20,19 @@ package org.onap.policy.controlloop.actor.aai; +import java.util.List; import java.util.Map; -import java.util.Set; +import java.util.Map.Entry; import java.util.concurrent.CompletableFuture; -import javax.ws.rs.core.MediaType; +import javax.ws.rs.client.Invocation.Builder; +import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Response; -import org.onap.policy.aai.AaiConstants; import org.onap.policy.common.utils.coder.StandardCoderObject; import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome; +import org.onap.policy.controlloop.actorserviceprovider.OperationProperties; import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation; -import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperator; import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams; +import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,16 +46,7 @@ public class AaiGetOperation extends HttpOperation { public static final int DEFAULT_RETRY = 3; - // operation names - public static final String TENANT = "Tenant"; - - // property prefixes - private static final String TENANT_KEY_PREFIX = AaiConstants.CONTEXT_PREFIX + TENANT + "."; - - /** - * Operation names supported by this operator. - */ - public static final Set OPERATIONS = Set.of(TENANT); + private static final List PROPERTY_NAMES = List.of(OperationProperties.AAI_TARGET_ENTITY); /** @@ -66,38 +59,47 @@ public class AaiGetOperation extends HttpOperation { * Constructs the object. * * @param params operation parameters - * @param operator operator that created this operation + * @param config configuration for this operation */ - public AaiGetOperation(ControlLoopOperationParams params, HttpOperator operator) { - super(params, operator, StandardCoderObject.class); - this.propertyPrefix = operator.getFullName() + "."; + public AaiGetOperation(ControlLoopOperationParams params, HttpConfig config) { + super(params, config, StandardCoderObject.class, PROPERTY_NAMES); + this.propertyPrefix = getFullName() + "."; + } + + @Override + public void generateSubRequestId(int attempt) { + setSubRequestId(String.valueOf(attempt)); } /** - * Gets the "context key" for the tenant query response associated with the given - * target entity. + * Adds a query parameter to a web target. * - * @param targetEntity target entity - * @return the "context key" for the response associated with the given target + * @param web target to which the parameter should be added + * @param str the separator and parameter are appended here, for logging purposes + * @param separator separator to be added to "str"; that's its only use + * @param name parameter name + * @param value parameter value + * @return "web" */ - public static String getTenantKey(String targetEntity) { - return (TENANT_KEY_PREFIX + targetEntity); - } - - @Override - protected CompletableFuture startOperationAsync(int attempt, OperationOutcome outcome) { + protected WebTarget addQuery(WebTarget web, StringBuilder str, String separator, String name, String value) { + str.append(separator); + str.append(name); + str.append('='); + str.append(value); - Map headers = makeHeaders(); - - headers.put("Accept", MediaType.APPLICATION_JSON); - String url = makeUrl(); - - logRestRequest(url, null); + return web.queryParam(name, value); + } - // @formatter:off - return handleResponse(outcome, url, - callback -> operator.getClient().get(callback, makePath(), headers)); - // @formatter:on + /** + * Adds headers to the web builder. + * + * @param webldr builder to which the headers should be added + * @param headers headers to be added + */ + protected void addHeaders(Builder webldr, Map headers) { + for (Entry header : headers.entrySet()) { + webldr.header(header.getKey(), header.getValue()); + } } @Override @@ -105,22 +107,20 @@ public class AaiGetOperation extends HttpOperation { return AaiUtil.makeHeaders(params); } - @Override - public String makePath() { - return (operator.getPath() + "/" + params.getTargetEntity()); - } - /** * Injects the response into the context. */ @Override - protected void postProcessResponse(OperationOutcome outcome, String url, Response rawResponse, - StandardCoderObject response) { - String entity = params.getTargetEntity(); + protected CompletableFuture postProcessResponse(OperationOutcome outcome, String url, + Response rawResponse, StandardCoderObject response) { - logger.info("{}: caching response of {} for {}", getFullName(), entity, params.getRequestId()); + if (params.getContext() != null) { + String entity = getTargetEntity(); + logger.info("{}: caching response of {} for {}", getFullName(), entity, params.getRequestId()); + params.getContext().setProperty(propertyPrefix + entity, response); + } - params.getContext().setProperty(propertyPrefix + entity, response); + return super.postProcessResponse(outcome, url, rawResponse, response); } /**