diff options
author | Jim Hahn <jrh3@att.com> | 2021-07-26 09:48:31 -0400 |
---|---|---|
committer | Jim Hahn <jrh3@att.com> | 2021-07-26 13:44:01 -0400 |
commit | 9a3996ce25be50c01c644efcac075a056de37451 (patch) | |
tree | 155582fc747360c281c3a3b3d91a734dfe4cf230 /models-interactions/model-actors/actor.guard/src/main | |
parent | 07be24fc1c3b87f6aae0d52a26283ec18d33e772 (diff) |
Remove actor.guard from models
Replaced by actor.xacml.
Issue-ID: POLICY-3506
Change-Id: I41b6a9918df31b251eb93105fc9413deda04daf3
Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'models-interactions/model-actors/actor.guard/src/main')
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 |