import org.onap.policy.common.parameters.BeanValidationResult;
import org.onap.policy.common.parameters.BeanValidator;
import org.onap.policy.common.parameters.annotations.NotNull;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
import org.onap.policy.controlloop.actorserviceprovider.ActorService;
import org.onap.policy.controlloop.actorserviceprovider.Operation;
import org.onap.policy.controlloop.actorserviceprovider.OperationOutcome;
+import org.onap.policy.controlloop.actorserviceprovider.TargetType;
import org.onap.policy.controlloop.actorserviceprovider.Util;
-import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
-import org.onap.policy.controlloop.policy.Target;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ControlLoopOperationParams {
private static final Logger logger = LoggerFactory.getLogger(ControlLoopOperationParams.class);
+ public static final String PARAMS_ENTITY_RESOURCEID = "resourceID";
+ public static final String PARAMS_ENTITY_MODEL_INVARIANT_ID = "modelInvariantId";
+ public static final String PARAMS_ENTITY_MODEL_VERSION_ID = "modelVersionId";
+ public static final String PARAMS_ENTITY_MODEL_NAME = "modelName";
+ public static final String PARAMS_ENTITY_MODEL_VERSION = "modelVersion";
+ public static final String PARAMS_ENTITY_MODEL_CUSTOMIZATION_ID = "modelCustomizationId";
+
/**
* Actor name.
*/
private ActorService actorService;
/**
- * Event for which the operation applies.
- */
- private ControlLoopEventContext context;
-
- /**
- * If {@code null}, this value is extracted from the context.
+ * Request ID with which all actor operations are associated. Used to track requests
+ * across various components/servers.
*/
+ @NotNull
private UUID requestId;
/**
* {@code True} if the preprocessing steps have already been executed, {@code false}
* otherwise.
*/
+ // TODO remove this once the rules no longer reference it
private boolean preprocessed;
/**
private Integer retry;
/**
- * The entity's target information. May be {@code null}, depending on the requirement
- * of the operation to be invoked.
+ * The Target Type information, extracted from the Policy. May be {@code null}, depending
+ * on the requirement of the operation to be invoked.
+ */
+ private TargetType targetType;
+
+ /**
+ * Target entitiy ids, extracted from the Policy. May be (@code null}, depending on
+ * the requirement of the operation to be invoked.
*/
- private Target target;
+ private Map<String, String> targetEntityIds;
/**
* Target entity.
*/
- @NotNull
+ // TODO to be removed
private String targetEntity;
/**
* @return the event's request ID, or {@code null} if no request ID is available
*/
public UUID getRequestId() {
- if (requestId == null && context != null && context.getEvent() != null) {
- // cache the request ID
- requestId = context.getEvent().getRequestId();
- }
-
return requestId;
}
*
* @return a new operation outcome
*/
+ // TODO to be removed
public OperationOutcome makeOutcome() {
+ return makeOutcome(getTargetEntity());
+ }
+
+ /**
+ * Makes an operation outcome, populating it from the parameters.
+ *
+ * @param targetEntity the target entity
+ *
+ * @return a new operation outcome
+ */
+ public OperationOutcome makeOutcome(String targetEntity) {
OperationOutcome outcome = new OperationOutcome();
outcome.setActor(getActor());
outcome.setOperation(getOperation());
* @return the validation result
*/
public BeanValidationResult validate() {
- BeanValidationResult result =
- new BeanValidator().validateTop(ControlLoopOperationParams.class.getSimpleName(), this);
-
- // validate that we have a request ID, or that we can get it from the context's
- // event
-
- if (context == null) {
- // no context specified - invoker must provide a request ID then
- result.validateNotNull("requestId", requestId);
-
- } else if (requestId == null) {
- // have a context, but no request ID - check the context's event for the
- // request ID
- BeanValidationResult contextResult = new BeanValidationResult("context", context);
- VirtualControlLoopEvent event = context.getEvent();
- contextResult.validateNotNull("event", event);
-
- if (event != null) {
- // cache the request id for later use
- BeanValidationResult eventResult = new BeanValidationResult("event", event);
- eventResult.validateNotNull("requestId", event.getRequestId());
-
- contextResult.addResult(eventResult);
- }
-
- result.addResult(contextResult);
- }
-
- return result;
+ return new BeanValidator().validateTop(ControlLoopOperationParams.class.getSimpleName(), this);
}
}