aboutsummaryrefslogtreecommitdiffstats
path: root/models-interactions/model-actors/actor.guard/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'models-interactions/model-actors/actor.guard/src/main')
-rw-r--r--models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperation.java168
-rw-r--r--models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperator.java52
-rw-r--r--models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardActor.java40
-rw-r--r--models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardActorParams.java48
-rw-r--r--models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardConfig.java68
-rw-r--r--models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardParams.java48
-rw-r--r--models-interactions/model-actors/actor.guard/src/main/resources/META-INF/services/org.onap.policy.controlloop.actorserviceprovider.spi.Actor1
7 files changed, 0 insertions, 425 deletions
diff --git a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperation.java b/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperation.java
deleted file mode 100644
index 6291c9331..000000000
--- a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperation.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP
- * ================================================================================
- * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop.actor.guard;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.concurrent.CompletableFuture;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
-import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
-import org.onap.policy.controlloop.actorserviceprovider.CallbackManager;
-import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
-import org.onap.policy.controlloop.actorserviceprovider.OperationResult;
-import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
-import org.onap.policy.controlloop.actorserviceprovider.impl.OperationPartial;
-import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
-import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
-import org.onap.policy.models.decisions.concepts.DecisionRequest;
-import org.onap.policy.models.decisions.concepts.DecisionResponse;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Guard Operation. The outcome message is set to the guard response. If the guard is
- * permitted or indeterminate, then the outcome is set to SUCCESS.
- * <p/>
- * The input to the request is taken from the payload, where properties are mapped to the
- * field names in the {@link DecisionRequest} object. Properties whose names begin with
- * "resource." are placed into the "resource" field of the {@link DecisionRequest}. The
- * following will be provided, if not specified in the payload:
- * <dl>
- * <dt>action</dt>
- * <dd>"guard"</dd>
- * <dt>request ID</dt>
- * <dd>generated</dd>
- * </dl>
- */
-public class DecisionOperation extends HttpOperation<DecisionResponse> {
- private static final Logger logger = LoggerFactory.getLogger(DecisionOperation.class);
-
- // operation name
- public static final String NAME = OperationPartial.GUARD_OPERATION_NAME;
-
- public static final String PERMIT = "Permit";
- public static final String DENY = "Deny";
- public static final String INDETERMINATE = "Indeterminate";
-
- /**
- * Prefix for properties in the payload that should be copied to the "resource" field
- * of the request.
- */
- public static final String RESOURCE_PREFIX = "resource.";
-
- private final GuardConfig config;
-
-
- /**
- * Constructs the object.
- *
- * @param params operation parameters
- * @param config configuration for this operation
- */
- public DecisionOperation(ControlLoopOperationParams params, HttpConfig config) {
- super(params, config, DecisionResponse.class, Collections.emptyList());
- this.config = (GuardConfig) config;
- }
-
- @Override
- public CompletableFuture<OperationOutcome> start() {
- if (!config.isDisabled()) {
- // enabled - do full guard operation
- return super.start();
- }
-
- // guard is disabled, thus it is always treated as a success
- logger.info("{}: guard disabled, always succeeds for {}", getFullName(), params.getRequestId());
-
- final var executor = params.getExecutor();
- final var callbacks = new CallbackManager();
-
- return CompletableFuture.completedFuture(makeOutcome())
- .whenCompleteAsync(callbackStarted(callbacks), executor)
- .whenCompleteAsync(callbackCompleted(callbacks), executor);
- }
-
- @Override
- protected CompletableFuture<OperationOutcome> startOperationAsync(int attempt, OperationOutcome outcome) {
- DecisionRequest request = makeRequest();
-
- Map<String, Object> headers = makeHeaders();
-
- headers.put("Accept", MediaType.APPLICATION_JSON);
- String url = getUrl();
-
- String strRequest = prettyPrint(request);
- logMessage(EventType.OUT, CommInfrastructure.REST, url, strRequest);
-
- Entity<String> entity = Entity.entity(strRequest, MediaType.APPLICATION_JSON);
-
- // @formatter:off
- return handleResponse(outcome, url,
- callback -> getClient().post(callback, getPath(), entity, headers));
- // @formatter:on
- }
-
- /**
- * Makes a request from the payload.
- *
- * @return a new request
- */
- protected DecisionRequest makeRequest() {
- if (params.getPayload() == null) {
- throw new IllegalArgumentException("missing payload");
- }
-
- DecisionRequest req = config.makeRequest();
- req.setRequestId(getSubRequestId());
- req.setResource(Map.of("guard", params.getPayload()));
-
- return req;
- }
-
- @Override
- protected CompletableFuture<OperationOutcome> postProcessResponse(OperationOutcome outcome, String url,
- Response rawResponse, DecisionResponse response) {
-
- outcome.setResponse(response);
-
- // determine the result
- String status = response.getStatus();
- if (status == null) {
- outcome.setResult(OperationResult.FAILURE);
- outcome.setMessage("response contains no status");
- return CompletableFuture.completedFuture(outcome);
- }
-
- if (PERMIT.equalsIgnoreCase(status) || INDETERMINATE.equalsIgnoreCase(status)) {
- outcome.setResult(OperationResult.SUCCESS);
- } else {
- outcome.setResult(OperationResult.FAILURE);
- }
-
- // set the message
- outcome.setMessage(response.getStatus());
-
- return CompletableFuture.completedFuture(outcome);
- }
-}
diff --git a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperator.java b/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperator.java
deleted file mode 100644
index f86d370e9..000000000
--- a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/DecisionOperator.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop.actor.guard;
-
-import java.util.Map;
-import org.onap.policy.common.parameters.ValidationResult;
-import org.onap.policy.controlloop.actorserviceprovider.Util;
-import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperation;
-import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperator;
-import org.onap.policy.controlloop.actorserviceprovider.impl.OperationMaker;
-import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
-import org.onap.policy.controlloop.actorserviceprovider.parameters.ParameterValidationRuntimeException;
-
-/**
- * Guard Operator.
- */
-public class DecisionOperator extends HttpOperator {
-
- public DecisionOperator(String actorName, String name,
- OperationMaker<HttpConfig, HttpOperation<?>> operationMaker) {
- super(actorName, name, operationMaker);
- }
-
- @Override
- protected HttpConfig makeConfiguration(Map<String, Object> parameters) {
- GuardParams params = Util.translate(getFullName(), parameters, GuardParams.class);
- ValidationResult result = params.validate(getFullName());
- if (!result.isValid()) {
- throw new ParameterValidationRuntimeException("invalid parameters", result);
- }
-
- return new GuardConfig(getBlockingExecutor(), params, getClientFactory());
- }
-}
diff --git a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardActor.java b/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardActor.java
deleted file mode 100644
index 59b509291..000000000
--- a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardActor.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP
- * ================================================================================
- * Copyright (C) 2018-2019 Huawei Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
- * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop.actor.guard;
-
-import org.onap.policy.controlloop.actorserviceprovider.impl.HttpActor;
-import org.onap.policy.controlloop.actorserviceprovider.impl.OperationPartial;
-
-public class GuardActor extends HttpActor<GuardActorParams> {
- // actor name
- public static final String NAME = OperationPartial.GUARD_ACTOR_NAME;
-
- /**
- * Constructs the object.
- */
- public GuardActor() {
- super(NAME, GuardActorParams.class);
-
- addOperator(new DecisionOperator(NAME, DecisionOperation.NAME, DecisionOperation::new));
- }
-}
diff --git a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardActorParams.java b/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardActorParams.java
deleted file mode 100644
index aa6d7273f..000000000
--- a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardActorParams.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop.actor.guard;
-
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.Setter;
-import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpActorParams;
-
-@Getter
-@Setter
-@EqualsAndHashCode(callSuper = true)
-public class GuardActorParams extends HttpActorParams {
- public static final String DEFAULT_ACTION = "guard";
-
- /*
- * Optional, default values that are used if missing from the operation-specific
- * parameters.
- */
-
- private String onapName;
- private String onapComponent;
- private String onapInstance;
- private String action = DEFAULT_ACTION;
-
- /**
- * {@code True} if guard operations are disabled.
- */
- private boolean disabled = false;
-}
diff --git a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardConfig.java b/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardConfig.java
deleted file mode 100644
index 7dca3bf37..000000000
--- a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardConfig.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop.actor.guard;
-
-import java.util.concurrent.Executor;
-import lombok.Getter;
-import org.onap.policy.common.endpoints.http.client.HttpClient;
-import org.onap.policy.common.endpoints.http.client.HttpClientFactory;
-import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
-import org.onap.policy.models.decisions.concepts.DecisionRequest;
-
-/**
- * Configuration for Guard Operators.
- */
-public class GuardConfig extends HttpConfig {
- private final DecisionRequest defaultRequest = new DecisionRequest();
-
- /**
- * {@code True} if the associated guard operation is disabled.
- */
- @Getter
- private boolean disabled;
-
- /**
- * Constructs the object.
- *
- * @param blockingExecutor executor to be used for tasks that may perform blocking I/O
- * @param params operator parameters
- * @param clientFactory factory from which to obtain the {@link HttpClient}
- */
- public GuardConfig(Executor blockingExecutor, GuardParams params, HttpClientFactory clientFactory) {
- super(blockingExecutor, params, clientFactory);
-
- defaultRequest.setOnapComponent(params.getOnapComponent());
- defaultRequest.setOnapInstance(params.getOnapInstance());
- defaultRequest.setOnapName(params.getOnapName());
- defaultRequest.setAction(params.getAction());
-
- this.disabled = params.isDisabled();
- }
-
- /**
- * Creates a new request, with the default values.
- *
- * @return a new request
- */
- public DecisionRequest makeRequest() {
- return new DecisionRequest(defaultRequest);
- }
-}
diff --git a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardParams.java b/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardParams.java
deleted file mode 100644
index 959b4d3ef..000000000
--- a/models-interactions/model-actors/actor.guard/src/main/java/org/onap/policy/controlloop/actor/guard/GuardParams.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * ONAP
- * ================================================================================
- * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop.actor.guard;
-
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.experimental.SuperBuilder;
-import org.onap.policy.common.parameters.annotations.NotBlank;
-import org.onap.policy.common.parameters.annotations.NotNull;
-import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpParams;
-
-/**
- * Guard parameters.
- */
-@NotBlank
-@NotNull
-@Data
-@EqualsAndHashCode(callSuper = true)
-@SuperBuilder(toBuilder = true)
-public class GuardParams extends HttpParams {
- private String onapName;
- private String onapComponent;
- private String onapInstance;
- private String action;
-
- /**
- * {@code True} if the associated guard operation is disabled.
- */
- private boolean disabled;
-}
diff --git a/models-interactions/model-actors/actor.guard/src/main/resources/META-INF/services/org.onap.policy.controlloop.actorserviceprovider.spi.Actor b/models-interactions/model-actors/actor.guard/src/main/resources/META-INF/services/org.onap.policy.controlloop.actorserviceprovider.spi.Actor
deleted file mode 100644
index 16d7591fa..000000000
--- a/models-interactions/model-actors/actor.guard/src/main/resources/META-INF/services/org.onap.policy.controlloop.actorserviceprovider.spi.Actor
+++ /dev/null
@@ -1 +0,0 @@
-org.onap.policy.controlloop.actor.guard.GuardActor