diff options
Diffstat (limited to 'runtime-acm/src/main')
5 files changed, 209 insertions, 2 deletions
diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/ParticipantControllerStub.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/ParticipantControllerStub.java new file mode 100644 index 000000000..e87accf20 --- /dev/null +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/main/rest/stub/ParticipantControllerStub.java @@ -0,0 +1,70 @@ +/*- + * ============LICENSE_START======================================================= + * 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. + * 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. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.clamp.acm.runtime.main.rest.stub; + +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; +import lombok.RequiredArgsConstructor; +import org.onap.policy.clamp.acm.runtime.main.rest.gen.ParticipantMonitoringApi; +import org.onap.policy.clamp.acm.runtime.main.web.AbstractRestController; +import org.onap.policy.clamp.models.acm.concepts.ParticipantInformation; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@Profile("stub") +@RequiredArgsConstructor +public class ParticipantControllerStub extends AbstractRestController implements ParticipantMonitoringApi { + + private final StubUtils stubUtils; + @Value("${stub.getSingleParticipantResponse}") + private String pathToSingleParticipant; + + @Value("${stub.getMultipleParticipantResponse}") + private String pathToParticipantList; + + @Override + public ResponseEntity<ParticipantInformation> getParticipant(UUID participantId, UUID xonaprequestid) { + return stubUtils.getResponse(pathToSingleParticipant, ParticipantInformation.class); + } + + @Override + public ResponseEntity<Void> orderAllParticipantsReport(UUID xonaprequestid) { + return new ResponseEntity(HttpStatus.ACCEPTED); + } + + @Override + public ResponseEntity<Void> orderParticipantReport(UUID participantId, UUID xonaprequestid) { + return new ResponseEntity(HttpStatus.ACCEPTED); + } + + @Override + public ResponseEntity<List<ParticipantInformation>> queryParticipants(String name, String version, + UUID xonaprequestid) { + List<ParticipantInformation> participantInformationList = new ArrayList<>(); + return (ResponseEntity<List<ParticipantInformation>>) stubUtils + .getResponse(pathToParticipantList, participantInformationList.getClass()); + } +} diff --git a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/participants/AcmParticipantProvider.java b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/participants/AcmParticipantProvider.java index de3fc753b..d0fcdd936 100644 --- a/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/participants/AcmParticipantProvider.java +++ b/runtime-acm/src/main/java/org/onap/policy/clamp/acm/runtime/participants/AcmParticipantProvider.java @@ -59,6 +59,10 @@ public class AcmParticipantProvider { participants.forEach(participant -> { ParticipantInformation participantInformation = new ParticipantInformation(); participantInformation.setParticipant(participant); + participantInformation.setAcElementInstanceMap(getAutomationCompositionElementsForParticipant(participant + .getParticipantId())); + participantInformation.setAcNodeTemplateStateDefinitionMap(getNodeTemplateStatesForParticipant(participant + .getParticipantId())); participantInformationList.add(participantInformation); }); return participantInformationList; diff --git a/runtime-acm/src/main/resources/application-stub.yaml b/runtime-acm/src/main/resources/application-stub.yaml index e752df3fd..39641e39d 100644 --- a/runtime-acm/src/main/resources/application-stub.yaml +++ b/runtime-acm/src/main/resources/application-stub.yaml @@ -8,6 +8,8 @@ stub: getAllCompositionInstancesResponse: "/openapi/examples/getAllCompositionInstancesResponse.json" getCompositionInstancesResponse: "/openapi/examples/getCompositionInstancesResponse.json" getSingleCompositionDefinition: "/openapi/examples/getSingleCompositionDefinition.json" + getSingleParticipantResponse: "/openapi/examples/getSingleParticipantResponse.json" + getMultipleParticipantResponse: "/openapi/examples/getMultipleParticipantResponse.json" postCommissionResponse: "/openapi/examples/postCommissionCompositionDefinitionsResponse.json" postCompositionDefinitions: "/openapi/examples/postCompositionDefinitions.json" postCompositionInstance: "/openapi/examples/postCompositionInstance.json" @@ -16,6 +18,6 @@ stub: putCompositionDefinitionUpdateResponse: "/openapi/examples/putCompositionDefinitionUpdateResponse.json" putCompositionInstanceUpdate: "/openapi/examples/putCompositionInstanceUpdate.json" putCompositionInstanceUpdateResponse: " /openapi/examples/putCompositionInstanceUpdateResponse.json" - - + + diff --git a/runtime-acm/src/main/resources/openapi/examples/getMultipleParticipantResponse.json b/runtime-acm/src/main/resources/openapi/examples/getMultipleParticipantResponse.json new file mode 100644 index 000000000..7e277c5a3 --- /dev/null +++ b/runtime-acm/src/main/resources/openapi/examples/getMultipleParticipantResponse.json @@ -0,0 +1,88 @@ +[ + { + "participant": { + "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c03", + "participantState": "ON_LINE", + "participantSupportedElementTypes": { + "3012010d-e59e-4dde-bab1-3ee544e49b6d": { + "id": "3012010d-e59e-4dde-bab1-3ee544e49b6d", + "typeName": "org.onap.policy.clamp.acm.AutomationCompositionElement", + "typeVersion": "1.0.1" + }, + "8d9e947e-c444-471c-9420-29f1c6584f8c": { + "id": "8d9e947e-c444-471c-9420-29f1c6584f8c", + "typeName": "org.onap.policy.clamp.acm.PolicyAutomationCompositionElement", + "typeVersion": "1.0.1" + } + } + }, + "acNodeTemplateStateDefinitionMap": { + "8cf8b401-dfd7-4ffe-90ff-c6543da10789": { + "nodeTemplateStateId": "8cf8b401-dfd7-4ffe-90ff-c6543da10789", + "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c03", + "nodeTemplateId": { + "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + "state": "PRIMED" + } + }, + "acElementInstanceMap": { + "709c62b3-8918-41b9-a747-d21eb79c6c22": { + "id": "709c62b3-8918-41b9-a747-d21eb79c6c22", + "definition": { + "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c03", + "deployState": "DEPLOYED", + "lockState": "UNLOCKED", + "description": "Automation composition element for the operational policy for Performance Management Subscription Handling", + "properties": {} + } + } + }, + { + "participant": { + "participantId": "985d73aa-abba-11ed-afa1-0242ac120002", + "participantState": "ON_LINE", + "participantSupportedElementTypes": { + "cded8a5a-abba-11ed-afa1-0242ac120002": { + "id": "cded8a5a-abba-11ed-afa1-0242ac120002", + "typeName": "org.onap.policy.clamp.acm.K8SMicroserviceAutomationCompositionElement", + "typeVersion": "1.0.1" + }, + "25ac7864-abbb-11ed-afa1-0242ac120002": { + "id": "25ac7864-abbb-11ed-afa1-0242ac120002", + "typeName": "org.onap.policy.clamp.acm.AutomationCompositionElement", + "typeVersion": "1.0.1" + } + } + }, + "acNodeTemplateStateDefinitionMap": { + "34b4d248-abbb-11ed-afa1-0242ac120002": { + "nodeTemplateStateId": "34b4d248-abbb-11ed-afa1-0242ac120002", + "participantId": "985d73aa-abba-11ed-afa1-0242ac120002", + "nodeTemplateId": { + "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + "state": "PRIMED" + } + }, + "acElementInstanceMap": { + "3dd7a936-abbb-11ed-afa1-0242ac120002": { + "id": "3dd7a936-abbb-11ed-afa1-0242ac120002", + "definition": { + "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + "participantId": "985d73aa-abba-11ed-afa1-0242ac120002", + "deployState": "DEPLOYED", + "lockState": "UNLOCKED", + "description": "Automation composition element for the operational policy for Performance Management Subscription Handling", + "properties": {} + } + } + } +] diff --git a/runtime-acm/src/main/resources/openapi/examples/getSingleParticipantResponse.json b/runtime-acm/src/main/resources/openapi/examples/getSingleParticipantResponse.json new file mode 100644 index 000000000..350fd29d7 --- /dev/null +++ b/runtime-acm/src/main/resources/openapi/examples/getSingleParticipantResponse.json @@ -0,0 +1,43 @@ +{ + "participant": { + "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c03", + "participantState": "ON_LINE", + "participantSupportedElementTypes": { + "3012010d-e59e-4dde-bab1-3ee544e49b6d": { + "id": "3012010d-e59e-4dde-bab1-3ee544e49b6d", + "typeName": "org.onap.policy.clamp.acm.AutomationCompositionElement", + "typeVersion": "1.0.1" + }, + "8d9e947e-c444-471c-9420-29f1c6584f8c": { + "id": "8d9e947e-c444-471c-9420-29f1c6584f8c", + "typeName": "org.onap.policy.clamp.acm.PolicyAutomationCompositionElement", + "typeVersion": "1.0.1" + } + } + }, + "acNodeTemplateStateDefinitionMap": { + "8cf8b401-dfd7-4ffe-90ff-c6543da10789": { + "nodeTemplateStateId": "8cf8b401-dfd7-4ffe-90ff-c6543da10789", + "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c03", + "nodeTemplateId": { + "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + "state": "PRIMED" + } + }, + "acElementInstanceMap": { + "709c62b3-8918-41b9-a747-d21eb79c6c22": { + "id": "709c62b3-8918-41b9-a747-d21eb79c6c22", + "definition": { + "name": "org.onap.domain.pmsh.PMSH_OperationalPolicyAutomationCompositionElement", + "version": "1.2.3" + }, + "participantId": "101c62b3-8918-41b9-a747-d21eb79c6c03", + "deployState": "DEPLOYED", + "lockState": "UNLOCKED", + "description": "Automation composition element for the operational policy for Performance Management Subscription Handling", + "properties": {} + } + } +} |