21b76d1b7147366bd7bf4ddb3dce755a5ec9e8f1
[policy/clamp.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  *  Copyright (C) 2024-2025 Nordix Foundation.
4  * ================================================================================
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *      http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  * SPDX-License-Identifier: Apache-2.0
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.clamp.acm.participant.intermediary.api.impl;
22
23 import jakarta.ws.rs.core.Response;
24 import org.onap.policy.clamp.acm.participant.intermediary.api.AutomationCompositionElementListener;
25 import org.onap.policy.clamp.acm.participant.intermediary.api.CompositionDto;
26 import org.onap.policy.clamp.acm.participant.intermediary.api.CompositionElementDto;
27 import org.onap.policy.clamp.acm.participant.intermediary.api.InstanceElementDto;
28 import org.onap.policy.clamp.acm.participant.intermediary.api.ParticipantIntermediaryApi;
29 import org.onap.policy.clamp.models.acm.concepts.AcTypeState;
30 import org.onap.policy.clamp.models.acm.concepts.DeployState;
31 import org.onap.policy.clamp.models.acm.concepts.LockState;
32 import org.onap.policy.clamp.models.acm.concepts.StateChangeResult;
33 import org.onap.policy.models.base.PfModelException;
34
35 /**
36  * Wrapper of AutomationCompositionElementListener.
37  * Valid since 7.1.1 release.
38  */
39 public abstract class AcElementListenerV2 extends AcElementListenerV3
40         implements AutomationCompositionElementListener, AutomationCompositionElementListenerV2 {
41
42     protected static final String NOT_SUPPORTED = "not supported!";
43
44     protected AcElementListenerV2(ParticipantIntermediaryApi intermediaryApi) {
45         super(intermediaryApi);
46     }
47
48     public void handleRestartComposition(CompositionDto composition, AcTypeState state) throws PfModelException {
49         throw new PfModelException(Response.Status.BAD_REQUEST, NOT_SUPPORTED);
50     }
51
52     public void handleRestartInstance(CompositionElementDto compositionElement, InstanceElementDto instanceElement,
53                                       DeployState deployState, LockState lockState) throws PfModelException {
54         throw new PfModelException(Response.Status.BAD_REQUEST, NOT_SUPPORTED);
55     }
56
57     @Override
58     public void migrate(CompositionElementDto compositionElement, CompositionElementDto compositionElementTarget,
59                         InstanceElementDto instanceElement, InstanceElementDto instanceElementMigrate, int stage)
60         throws PfModelException {
61         migrate(compositionElement, compositionElementTarget, instanceElement, instanceElementMigrate);
62     }
63
64     @Override
65     public void migrate(CompositionElementDto compositionElement, CompositionElementDto compositionElementTarget,
66                         InstanceElementDto instanceElement, InstanceElementDto instanceElementMigrate)
67         throws PfModelException {
68         intermediaryApi.updateAutomationCompositionElementState(instanceElementMigrate.instanceId(),
69             instanceElementMigrate.elementId(), DeployState.DEPLOYED, null, StateChangeResult.NO_ERROR, "Migrated");
70     }
71 }