diff options
Diffstat (limited to 'src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java')
-rw-r--r-- | src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java | 59 |
1 files changed, 57 insertions, 2 deletions
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java b/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java index 4367bf45..990a421e 100644 --- a/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java +++ b/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java @@ -20,22 +20,51 @@ package org.onap.cps.ncmp.dmi.service; -import io.micrometer.core.instrument.util.StringUtils; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import java.util.ArrayList; +import java.util.List; +import lombok.extern.slf4j.Slf4j; +import org.apache.groovy.parser.antlr4.util.StringUtils; +import org.onap.cps.ncmp.dmi.config.DmiPluginConfig.DmiPluginProperties; +import org.onap.cps.ncmp.dmi.exception.CmHandleRegistrationException; import org.onap.cps.ncmp.dmi.exception.DmiException; import org.onap.cps.ncmp.dmi.exception.ModulesNotFoundException; +import org.onap.cps.ncmp.dmi.model.CmHandleOperation; +import org.onap.cps.ncmp.dmi.model.CreatedCmHandle; +import org.onap.cps.ncmp.dmi.service.client.NcmpRestClient; import org.onap.cps.ncmp.dmi.service.operation.SdncOperations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; + @Service +@Slf4j public class DmiServiceImpl implements DmiService { private SdncOperations sdncOperations; + private NcmpRestClient ncmpRestClient; + private ObjectMapper objectMapper; + private DmiPluginProperties dmiPluginProperties; + /** + * Constructor. + * + * @param dmiPluginProperties dmiPluginProperties + * @param ncmpRestClient ncmpRestClient + * @param objectMapper objectMapper + * @param sdncOperations sdncOperations + */ @Autowired - public DmiServiceImpl(final SdncOperations sdncOperations) { + public DmiServiceImpl(final DmiPluginProperties dmiPluginProperties, + final NcmpRestClient ncmpRestClient, + final ObjectMapper objectMapper, + final SdncOperations sdncOperations) { + this.dmiPluginProperties = dmiPluginProperties; + this.ncmpRestClient = ncmpRestClient; + this.objectMapper = objectMapper; this.sdncOperations = sdncOperations; } @@ -53,4 +82,30 @@ public class DmiServiceImpl implements DmiService { "response code : " + responseEntity.getStatusCode() + " message : " + responseEntity.getBody()); } } + + @Override + public void registerCmHandles(final List<String> cmHandles) { + final CmHandleOperation cmHandleOperation = new CmHandleOperation(); + cmHandleOperation.setDmiPlugin(dmiPluginProperties.getDmiServiceName()); + final List<CreatedCmHandle> createdCmHandleList = new ArrayList<>(); + for (final String cmHandle: cmHandles) { + final CreatedCmHandle createdCmHandle = new CreatedCmHandle(); + createdCmHandle.setCmHandle(cmHandle); + createdCmHandleList.add(createdCmHandle); + } + cmHandleOperation.setCreatedCmHandles(createdCmHandleList); + final String cmHandlesJson; + try { + cmHandlesJson = objectMapper.writeValueAsString(cmHandleOperation); + } catch (final JsonProcessingException e) { + log.error("Parsing error occurred while converting cm-handles to JSON {}", cmHandles); + throw new DmiException("Internal Server Error.", + "Parsing error occurred while converting given cm-handles object list to JSON "); + } + final ResponseEntity<String> responseEntity = ncmpRestClient.registerCmHandlesWithNcmp(cmHandlesJson); + if (!(responseEntity.getStatusCode() == HttpStatus.CREATED)) { + throw new CmHandleRegistrationException(responseEntity.getBody()); + } + } + } |