* ONAP
* ================================================================================
* Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2023 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.onap.policy.controlloop.actor.appc;
-import java.util.concurrent.CompletableFuture;
-import org.onap.aai.domain.yang.GenericVnf;
-import org.onap.policy.aai.AaiConstants;
-import org.onap.policy.aai.AaiCqResponse;
+import java.util.List;
import org.onap.policy.appc.Request;
-import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicConfig;
import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
public class ModifyConfigOperation extends AppcOperation {
- private static final Logger logger = LoggerFactory.getLogger(ModifyConfigOperation.class);
-
public static final String NAME = "ModifyConfig";
+ private static final List<String> PROPERTY_NAMES = List.of(OperationProperties.AAI_RESOURCE_VNF);
+
/**
* Constructs the object.
*
* @param config configuration for this operation
*/
public ModifyConfigOperation(ControlLoopOperationParams params, BidirectionalTopicConfig config) {
- super(params, config);
- }
-
- /**
- * Ensures that A&AI customer query has been performed, and then runs the guard query.
- */
- @Override
- @SuppressWarnings("unchecked")
- protected CompletableFuture<OperationOutcome> startPreprocessorAsync() {
- ControlLoopOperationParams cqParams = params.toBuilder().actor(AaiConstants.ACTOR_NAME)
- .operation(AaiCqResponse.OPERATION).payload(null).retry(null).timeoutSec(null).build();
-
- // run Custom Query and Guard, in parallel
- return allOf(() -> params.getContext().obtain(AaiCqResponse.CONTEXT_KEY, cqParams), this::startGuardAsync);
+ super(params, config, PROPERTY_NAMES);
}
@Override
protected Request makeRequest(int attempt) {
- AaiCqResponse cq = params.getContext().getProperty(AaiCqResponse.CONTEXT_KEY);
-
- GenericVnf genvnf = cq.getGenericVnfByModelInvariantId(params.getTarget().getResourceID());
- if (genvnf == null) {
- logger.info("{}: target entity could not be found for {}", getFullName(), params.getRequestId());
- throw new IllegalArgumentException("target vnf-id could not be found");
- }
-
- return makeRequest(attempt, genvnf.getVnfId());
+ return makeRequest(getRequiredProperty(OperationProperties.AAI_RESOURCE_VNF, "resource VNF"));
}
}