diff options
author | Piotr Borelowski <p.borelowski@partner.samsung.com> | 2020-04-29 14:40:27 +0200 |
---|---|---|
committer | Piotr Borelowski <p.borelowski@partner.samsung.com> | 2020-04-29 14:50:28 +0200 |
commit | 589118aacdc22bb5c2a975d857c4f2e62340bf8b (patch) | |
tree | 40826449e534cd4c44c2def74e4ce256fe71c0d5 /adapters/mso-ve-vnfm-adapter/src/main/java/org | |
parent | ac42fe6ee5e461c3053d40f23cc62882b6a59fe5 (diff) |
Rename to SOL002
Change the name of the project from mso-ve-vnfm-adapter
to etsi-sol002-adapter
Issue-ID: SO-2839
Signed-off-by: Piotr Borelowski <p.borelowski@partner.samsung.com>
Change-Id: Iba63d558fede145f2ff0086a75b3dadcd1296d00
Diffstat (limited to 'adapters/mso-ve-vnfm-adapter/src/main/java/org')
19 files changed, 0 insertions, 1363 deletions
diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/Application.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/Application.java deleted file mode 100644 index 875fddd7f0..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/Application.java +++ /dev/null @@ -1,36 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2019 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; - -@SpringBootApplication(scanBasePackages = {"org.onap.so"}) -public class Application { - - public static final String BASIC_PROFILE = "basic"; - - public static void main(final String... args) { - final SpringApplication springApplication = new SpringApplication(Application.class); - springApplication.setAdditionalProfiles(BASIC_PROFILE); - springApplication.run(args); - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/AaiConnection.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/AaiConnection.java deleted file mode 100644 index 70e4e1d88b..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/AaiConnection.java +++ /dev/null @@ -1,136 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.aai; - -import java.util.Collections; -import java.util.LinkedList; -import java.util.List; -import java.util.Optional; -import org.apache.logging.log4j.util.Strings; -import org.onap.aai.domain.yang.*; -import org.onap.so.adapters.vevnfm.exception.VeVnfmException; -import org.onap.so.client.aai.AAIObjectType; -import org.onap.so.client.aai.AAIResourcesClient; -import org.onap.so.client.aai.entities.uri.AAIResourceUri; -import org.onap.so.client.aai.entities.uri.AAIUriFactory; -import org.onap.so.client.graphinventory.entities.uri.Depth; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; - -@Service -public class AaiConnection { - - private static final Logger logger = LoggerFactory.getLogger(AaiConnection.class); - - private static final String SELFLINK = "selflink"; - private static final int FIRST_INDEX = 0; - - private AAIResourcesClient resourcesClient = null; - - private static void isValid(final List<EsrSystemInfo> infos) throws VeVnfmException { - if (infos == null || infos.isEmpty() || Strings.isBlank(infos.get(FIRST_INDEX).getServiceUrl())) { - throw new VeVnfmException("No 'url' field in VNFM info"); - } - } - - private AAIResourcesClient getResourcesClient() { - if (resourcesClient == null) { - resourcesClient = new AAIResourcesClient(); - } - - return resourcesClient; - } - - public List<EsrSystemInfo> receiveVnfm() throws VeVnfmException { - List<EsrSystemInfo> infos; - - try { - infos = receiveVnfmInternal(); - } catch (Exception e) { - throw new VeVnfmException(e); - } - - isValid(infos); - - return infos; - } - - private List<EsrSystemInfo> receiveVnfmInternal() { - final AAIResourceUri resourceUri = AAIUriFactory.createResourceUri(AAIObjectType.VNFM_LIST); - final Optional<EsrVnfmList> response = getResourcesClient().get(EsrVnfmList.class, resourceUri); - - if (response.isPresent()) { - final EsrVnfmList esrVnfmList = response.get(); - logger.info("The AAI ESR replied with: {}", esrVnfmList); - final List<EsrVnfm> esrVnfm = esrVnfmList.getEsrVnfm(); - - final List<EsrSystemInfo> infos = new LinkedList<>(); - - for (final EsrVnfm vnfm : esrVnfm) { - final String vnfmId = vnfm.getVnfmId(); - infos.addAll(receiveVnfmServiceUrl(vnfmId)); - } - - return infos; - } - - return null; - } - - private List<EsrSystemInfo> receiveVnfmServiceUrl(final String vnfmId) { - final Optional<EsrVnfm> response = getResourcesClient().get(EsrVnfm.class, - AAIUriFactory.createResourceUri(AAIObjectType.VNFM, vnfmId).depth(Depth.ONE)); - - if (response.isPresent()) { - final EsrVnfm esrVnfm = response.get(); - logger.info("The AAI ESR replied with: {}", esrVnfm); - final EsrSystemInfoList esrSystemInfoList = esrVnfm.getEsrSystemInfoList(); - - if (esrSystemInfoList != null) { - return esrSystemInfoList.getEsrSystemInfo(); - } - } - - return Collections.emptyList(); - } - - public String receiveGenericVnfId(final String href) { - final AAIResourceUri resourceUri = - AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNFS).queryParam(SELFLINK, href); - final Optional<GenericVnfs> response = getResourcesClient().get(GenericVnfs.class, resourceUri); - - if (response.isPresent()) { - final GenericVnfs vnfs = response.get(); - logger.info("The AAI replied with: {}", vnfs); - final List<GenericVnf> genericVnfList = vnfs.getGenericVnf(); - final int size = genericVnfList.size(); - - if (size == 1) { - return genericVnfList.get(FIRST_INDEX).getVnfId(); - } else if (size > 1) { - logger.warn("more generic vnfs available"); - } - } - - return null; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/AaiPropertiesExt.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/AaiPropertiesExt.java deleted file mode 100644 index e8660086c0..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/AaiPropertiesExt.java +++ /dev/null @@ -1,71 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.aai; - -import java.net.MalformedURLException; -import java.net.URL; -import org.onap.so.adapters.vevnfm.configuration.ConfigProperties; -import org.onap.so.client.aai.AAIProperties; -import org.onap.so.client.aai.AAIVersion; -import org.onap.so.spring.SpringContextHelper; -import org.springframework.context.ApplicationContext; - -public class AaiPropertiesExt implements AAIProperties { - - private static final String MSO = "MSO"; - - private final String endpoint; - private final String encryptedBasicAuth; - private final String encryptionKey; - - public AaiPropertiesExt() { - final ApplicationContext context = SpringContextHelper.getAppContext(); - final ConfigProperties configProperties = context.getBean(ConfigProperties.class); - this.endpoint = configProperties.getAaiEndpoint(); - this.encryptedBasicAuth = configProperties.getAaiAuth(); - this.encryptionKey = configProperties.getMsoKey(); - } - - @Override - public URL getEndpoint() throws MalformedURLException { - return new URL(endpoint); - } - - @Override - public String getSystemName() { - return MSO; - } - - @Override - public AAIVersion getDefaultVersion() { - return AAIVersion.V15; - } - - @Override - public String getAuth() { - return encryptedBasicAuth; - } - - @Override - public String getKey() { - return encryptionKey; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/EsrId.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/EsrId.java deleted file mode 100644 index 13ff2b6397..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/aai/EsrId.java +++ /dev/null @@ -1,45 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.aai; - -import org.onap.aai.domain.yang.EsrSystemInfo; - -public class EsrId { - - private EsrSystemInfo info; - private String id; - - public EsrSystemInfo getInfo() { - return info; - } - - public void setInfo(final EsrSystemInfo info) { - this.info = info; - } - - public String getId() { - return id; - } - - public void setId(final String id) { - this.id = id; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/ApplicationConfiguration.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/ApplicationConfiguration.java deleted file mode 100644 index 411572ff5b..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/ApplicationConfiguration.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.configuration; - -import org.onap.so.adapters.vevnfm.provider.AuthorizationHeadersProvider; -import org.onap.so.configuration.rest.HttpHeadersProvider; -import org.onap.so.rest.service.HttpRestServiceProvider; -import org.onap.so.rest.service.HttpRestServiceProviderImpl; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.client.RestTemplate; - -@Configuration -public class ApplicationConfiguration { - - @Bean - public AuthorizationHeadersProvider headersProvider() { - return new AuthorizationHeadersProvider(); - } - - @Bean - public HttpRestServiceProvider restProvider(final RestTemplate restTemplate, - final HttpHeadersProvider headersProvider) { - return new HttpRestServiceProviderImpl(restTemplate, headersProvider); - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/ConfigProperties.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/ConfigProperties.java deleted file mode 100644 index d4ca5af0f2..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/ConfigProperties.java +++ /dev/null @@ -1,134 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.configuration; - -import org.onap.so.adapters.vevnfm.constant.NotificationVnfFilterType; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -@Configuration -public class ConfigProperties { - - @Value("${vevnfmadapter.vnf-filter-json}") - private String vevnfmadapterVnfFilterJson; - - @Value("${vevnfmadapter.endpoint}") - private String vevnfmadapterEndpoint; - - @Value("${mso.key}") - private String msoKey; - - @Value("${aai.endpoint}") - private String aaiEndpoint; - - @Value("${aai.auth}") - private String aaiAuth; - - @Value("${vnfm.default-endpoint}") - private String vnfmDefaultEndpoint; - - @Value("${vnfm.subscription}") - private String vnfmSubscription; - - @Value("${vnfm.notification}") - private String vnfmNotification; - - @Value("${notification.vnf-filter-type}") - private NotificationVnfFilterType notificationVnfFilterType; - - @Value("${dmaap.endpoint}") - private String dmaapEndpoint; - - @Value("${dmaap.topic}") - private String dmaapTopic; - - @Value("${dmaap.closed-loop.control.name}") - private String dmaapClosedLoopControlName; - - @Value("${dmaap.version}") - private String dmaapVersion; - - @Value("${spring.security.usercredentials[0].username}") - private String springSecurityUsername; - - @Value("${spring.security.usercredentials[0].openpass}") - private String springSecurityOpenpass; - - public String getVevnfmadapterVnfFilterJson() { - return vevnfmadapterVnfFilterJson; - } - - public String getVevnfmadapterEndpoint() { - return vevnfmadapterEndpoint; - } - - public String getMsoKey() { - return msoKey; - } - - public String getAaiEndpoint() { - return aaiEndpoint; - } - - public String getAaiAuth() { - return aaiAuth; - } - - public String getVnfmDefaultEndpoint() { - return vnfmDefaultEndpoint; - } - - public String getVnfmSubscription() { - return vnfmSubscription; - } - - public String getVnfmNotification() { - return vnfmNotification; - } - - public NotificationVnfFilterType getNotificationVnfFilterType() { - return notificationVnfFilterType; - } - - public String getDmaapEndpoint() { - return dmaapEndpoint; - } - - public String getDmaapTopic() { - return dmaapTopic; - } - - public String getDmaapClosedLoopControlName() { - return dmaapClosedLoopControlName; - } - - public String getDmaapVersion() { - return dmaapVersion; - } - - public String getSpringSecurityUsername() { - return springSecurityUsername; - } - - public String getSpringSecurityOpenpass() { - return springSecurityOpenpass; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/StartupConfiguration.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/StartupConfiguration.java deleted file mode 100644 index 8b5afbf6a1..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/configuration/StartupConfiguration.java +++ /dev/null @@ -1,58 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.configuration; - -import java.util.List; -import org.onap.aai.domain.yang.EsrSystemInfo; -import org.onap.so.adapters.vevnfm.service.StartupService; -import org.onap.so.adapters.vevnfm.service.SubscriptionScheduler; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.event.ApplicationReadyEvent; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.event.EventListener; -import org.springframework.core.env.Environment; -import org.springframework.core.env.Profiles; - -@Configuration -public class StartupConfiguration { - - public static final String TEST_PROFILE = "test"; - - private final Environment environment; - private final StartupService startupService; - private final SubscriptionScheduler subscriptionScheduler; - - @Autowired - public StartupConfiguration(final Environment environment, final StartupService startupService, - final SubscriptionScheduler subscriptionScheduler) { - this.environment = environment; - this.startupService = startupService; - this.subscriptionScheduler = subscriptionScheduler; - } - - @EventListener(ApplicationReadyEvent.class) - public void onApplicationReadyEvent() throws Exception { - if (!environment.acceptsProfiles(Profiles.of(TEST_PROFILE))) { - final List<EsrSystemInfo> infos = startupService.receiveVnfm(); - subscriptionScheduler.setInfos(infos); - } - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/constant/NotificationVnfFilterType.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/constant/NotificationVnfFilterType.java deleted file mode 100644 index 57935a9fda..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/constant/NotificationVnfFilterType.java +++ /dev/null @@ -1,41 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.constant; - -/** - * Select which incoming Notification with particular VNF id should be supported - */ -public enum NotificationVnfFilterType { - /** - * None - */ - NONE, - - /** - * Only those which are valid in AAI - */ - AAI_CHECKED, - - /** - * All - */ - ALL -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/controller/NotificationController.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/controller/NotificationController.java deleted file mode 100644 index 36bc23d1b5..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/controller/NotificationController.java +++ /dev/null @@ -1,55 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2019 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.controller; - -import org.onap.so.adapters.etsi.sol003.adapter.lcm.lcn.model.VnfLcmOperationOccurrenceNotification; -import org.onap.so.adapters.vevnfm.service.DmaapConditionalSender; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RestController; - -@RestController -public class NotificationController { - - private static final Logger logger = LoggerFactory.getLogger(NotificationController.class); - - private final DmaapConditionalSender dmaapConditionalSender; - - public NotificationController(final DmaapConditionalSender dmaapConditionalSender) { - this.dmaapConditionalSender = dmaapConditionalSender; - } - - @PostMapping("${vnfm.notification}") - public ResponseEntity receiveNotification(@RequestBody final VnfLcmOperationOccurrenceNotification notification) { - logger.info("Notification received {}", notification); - - try { - dmaapConditionalSender.send(notification); - } catch (NullPointerException e) { - logger.warn("NullPointerException caught while sending to DMaaP", e); - } - - return ResponseEntity.ok().build(); - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/event/AaiEvent.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/event/AaiEvent.java deleted file mode 100644 index ceabb8a020..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/event/AaiEvent.java +++ /dev/null @@ -1,44 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.event; - -import com.fasterxml.jackson.annotation.JsonProperty; - -public class AaiEvent { - - private final boolean vserverIsClosedLoopDisabled; - private final String genericVnfVnfId; - - public AaiEvent(final boolean cld, final String id) { - this.vserverIsClosedLoopDisabled = cld; - this.genericVnfVnfId = id; - } - - @JsonProperty("vserver.is-closed-loop-disabled") - public boolean isVserverIsClosedLoopDisabled() { - return vserverIsClosedLoopDisabled; - } - - @JsonProperty("generic-vnf.vnf-id") - public String getGenericVnfVnfId() { - return genericVnfVnfId; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/event/DmaapEvent.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/event/DmaapEvent.java deleted file mode 100644 index a3ff2dcd6d..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/event/DmaapEvent.java +++ /dev/null @@ -1,110 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.event; - -import static java.time.temporal.ChronoField.INSTANT_SECONDS; -import com.fasterxml.jackson.annotation.JsonProperty; -import java.time.Instant; -import java.util.UUID; -import org.onap.so.adapters.etsi.sol003.adapter.lcm.lcn.model.VnfLcmOperationOccurrenceNotification; - -public class DmaapEvent { - - public static final String MSERVICE = "microservice.stringmatcher"; - public static final String ONSET = "ONSET"; - public static final String VNF = "VNF"; - public static final String VNFID = "generic-vnf.vnf-id"; - public static final String ETSI = "ETSI"; - - private final String closedLoopControlName; - private final long closedLoopAlarmStart; - private final String closedLoopEventClient; - private final String closedLoopEventStatus; - private final String requestId; - private final String targetType; - private final String target; - private final AaiEvent aaiEvent; - private final String from; - private final String version; - private final VnfLcmOperationOccurrenceNotification etsiLcmEvent; - - public DmaapEvent(final String closedLoopControlName, final String version, - final VnfLcmOperationOccurrenceNotification etsiLcmEvent, final String genericId) { - this.closedLoopControlName = closedLoopControlName; - this.closedLoopAlarmStart = Instant.now().getLong(INSTANT_SECONDS); - this.closedLoopEventClient = MSERVICE; - this.closedLoopEventStatus = ONSET; - this.requestId = UUID.randomUUID().toString(); - this.targetType = VNF; - this.target = VNFID; - this.aaiEvent = (genericId == null) ? null : new AaiEvent(false, genericId); - this.from = ETSI; - this.version = version; - this.etsiLcmEvent = etsiLcmEvent; - } - - public String getClosedLoopControlName() { - return closedLoopControlName; - } - - public long getClosedLoopAlarmStart() { - return closedLoopAlarmStart; - } - - public String getClosedLoopEventClient() { - return closedLoopEventClient; - } - - public String getClosedLoopEventStatus() { - return closedLoopEventStatus; - } - - @JsonProperty("requestID") - public String getRequestId() { - return requestId; - } - - @JsonProperty("target_type") - public String getTargetType() { - return targetType; - } - - public String getTarget() { - return target; - } - - @JsonProperty("AAI") - public AaiEvent getAaiEvent() { - return aaiEvent; - } - - public String getFrom() { - return from; - } - - public String getVersion() { - return version; - } - - public VnfLcmOperationOccurrenceNotification getEtsiLcmEvent() { - return etsiLcmEvent; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/exception/VeVnfmException.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/exception/VeVnfmException.java deleted file mode 100644 index a0c1c1e9db..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/exception/VeVnfmException.java +++ /dev/null @@ -1,32 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.exception; - -public class VeVnfmException extends Exception { - - public VeVnfmException(final String message) { - super(message); - } - - public VeVnfmException(final Throwable cause) { - super(cause); - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/provider/AuthorizationHeadersProvider.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/provider/AuthorizationHeadersProvider.java deleted file mode 100644 index 838a67d115..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/provider/AuthorizationHeadersProvider.java +++ /dev/null @@ -1,39 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.provider; - -import org.apache.logging.log4j.util.Strings; -import org.onap.so.configuration.rest.BasicHttpHeadersProvider; - -public class AuthorizationHeadersProvider extends BasicHttpHeadersProvider { - - public void addAuthorization(final String authorization) { - if (Strings.isBlank(authorization)) { - return; - } - - getHttpHeaders().set(AUTHORIZATION_HEADER, authorization); - } - - public void removeAuthorization() { - getHttpHeaders().remove(AUTHORIZATION_HEADER); - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/DmaapConditionalSender.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/DmaapConditionalSender.java deleted file mode 100644 index b96bffa58f..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/DmaapConditionalSender.java +++ /dev/null @@ -1,75 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.service; - -import org.apache.logging.log4j.util.Strings; -import org.onap.so.adapters.etsi.sol003.adapter.lcm.lcn.model.VnfLcmOperationOccurrenceNotification; -import org.onap.so.adapters.vevnfm.aai.AaiConnection; -import org.onap.so.adapters.vevnfm.configuration.ConfigProperties; -import org.onap.so.adapters.vevnfm.constant.NotificationVnfFilterType; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.stereotype.Service; - -@Service -public class DmaapConditionalSender { - - private static final Logger logger = LoggerFactory.getLogger(DmaapConditionalSender.class); - - private final NotificationVnfFilterType notificationVnfFilterType; - private final AaiConnection aaiConnection; - private final DmaapService dmaapService; - - public DmaapConditionalSender(final ConfigProperties configProperties, final AaiConnection aaiConnection, - final DmaapService dmaapService) { - this.notificationVnfFilterType = configProperties.getNotificationVnfFilterType(); - this.aaiConnection = aaiConnection; - this.dmaapService = dmaapService; - } - - public void send(final VnfLcmOperationOccurrenceNotification notification) { - final String href = notification.getLinks().getVnfInstance().getHref(); - boolean logSent = false; - - switch (notificationVnfFilterType) { - case ALL: - dmaapService.send(notification, aaiConnection.receiveGenericVnfId(href)); - logSent = true; - break; - case AAI_CHECKED: - final String genericId = aaiConnection.receiveGenericVnfId(href); - if (Strings.isNotBlank(genericId)) { - dmaapService.send(notification, genericId); - logSent = true; - } - break; - case NONE: - break; - default: - throw new IllegalArgumentException( - "The value of VnfNotificationFilterType is not supported: " + notificationVnfFilterType); - } - - final String vnfInstanceId = notification.getVnfInstanceId(); - final String not = logSent ? "" : "not "; - logger.info("The info with the VNF id '{}' is " + not + "sent to DMaaP", vnfInstanceId); - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/DmaapService.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/DmaapService.java deleted file mode 100644 index 278f9dee95..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/DmaapService.java +++ /dev/null @@ -1,70 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.service; - -import org.onap.so.adapters.etsi.sol003.adapter.lcm.lcn.model.VnfLcmOperationOccurrenceNotification; -import org.onap.so.adapters.vevnfm.configuration.ConfigProperties; -import org.onap.so.adapters.vevnfm.event.DmaapEvent; -import org.onap.so.rest.service.HttpRestServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; - -@Service -public class DmaapService { - - private static final Logger logger = LoggerFactory.getLogger(DmaapService.class); - - private final String endpoint; - private final String topic; - private final String closedLoopControlName; - private final String version; - private final HttpRestServiceProvider restProvider; - - @Autowired - public DmaapService(final ConfigProperties configProperties, final HttpRestServiceProvider restProvider) { - this.endpoint = configProperties.getDmaapEndpoint(); - this.topic = configProperties.getDmaapTopic(); - this.closedLoopControlName = configProperties.getDmaapClosedLoopControlName(); - this.version = configProperties.getDmaapVersion(); - this.restProvider = restProvider; - } - - public void send(final VnfLcmOperationOccurrenceNotification notification, final String genericId) { - try { - final DmaapEvent event = new DmaapEvent(closedLoopControlName, version, notification, genericId); - final ResponseEntity<String> response = restProvider.postHttpRequest(event, getUrl(), String.class); - final HttpStatus statusCode = response.getStatusCode(); - final String body = response.getBody(); - - logger.info("The DMaaP replied with the code {} and the body {}", statusCode, body); - } catch (Exception e) { - logger.warn("An issue connecting to DMaaP", e); - } - } - - private String getUrl() { - return endpoint + topic; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/StartupService.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/StartupService.java deleted file mode 100644 index c128275e43..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/StartupService.java +++ /dev/null @@ -1,66 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.service; - -import java.util.Collections; -import java.util.List; -import org.onap.aai.domain.yang.EsrSystemInfo; -import org.onap.so.adapters.vevnfm.aai.AaiConnection; -import org.onap.so.adapters.vevnfm.configuration.ConfigProperties; -import org.onap.so.adapters.vevnfm.exception.VeVnfmException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.retry.annotation.Backoff; -import org.springframework.retry.annotation.EnableRetry; -import org.springframework.retry.annotation.Recover; -import org.springframework.retry.annotation.Retryable; -import org.springframework.stereotype.Service; - -@Service -@EnableRetry -public class StartupService { - - private static final Logger logger = LoggerFactory.getLogger(StartupService.class); - - private final String vnfmDefaultEndpoint; - private final AaiConnection aaiConnection; - - @Autowired - public StartupService(final ConfigProperties configProperties, final AaiConnection aaiConnection) { - this.vnfmDefaultEndpoint = configProperties.getVnfmDefaultEndpoint(); - this.aaiConnection = aaiConnection; - } - - @Retryable(value = {Exception.class}, maxAttempts = 5, backoff = @Backoff(delay = 5000, multiplier = 2)) - public List<EsrSystemInfo> receiveVnfm() throws VeVnfmException { - return aaiConnection.receiveVnfm(); - } - - @Recover - public List<EsrSystemInfo> recoverReceiveVnfm(final Throwable t) { - logger.warn("Connection to AAI failed"); - final EsrSystemInfo info = new EsrSystemInfo(); - info.setServiceUrl(vnfmDefaultEndpoint); - logger.warn("This EsrSystemInfo is used by default: {}", info); - return Collections.singletonList(info); - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscribeSender.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscribeSender.java deleted file mode 100644 index be71c04c89..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscribeSender.java +++ /dev/null @@ -1,86 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.service; - -import com.fasterxml.jackson.annotation.JsonProperty; -import org.onap.aai.domain.yang.EsrSystemInfo; -import org.onap.so.adapters.vevnfm.configuration.ConfigProperties; -import org.onap.so.adapters.vevnfm.exception.VeVnfmException; -import org.onap.so.adapters.etsi.sol003.adapter.lcm.extclients.vnfm.model.LccnSubscriptionRequest; -import org.onap.so.rest.service.HttpRestServiceProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import lombok.ToString; - -@Service -public class SubscribeSender { - - public static final String SLASH = "/"; - - private static final Logger logger = LoggerFactory.getLogger(SubscribeSender.class); - - private final String vnfmSubscription; - private final HttpRestServiceProvider restProvider; - - @Autowired - public SubscribeSender(final ConfigProperties configProperties, final HttpRestServiceProvider restProvider) { - this.vnfmSubscription = configProperties.getVnfmSubscription(); - this.restProvider = restProvider; - } - - public String send(final EsrSystemInfo info, final LccnSubscriptionRequest request) throws VeVnfmException { - final ResponseEntity<SubscribeToManoResponse> response = - restProvider.postHttpRequest(request, getUrl(info), SubscribeToManoResponse.class); - - final HttpStatus statusCode = response.getStatusCode(); - final SubscribeToManoResponse body = response.getBody(); - - logger.info("The VNFM replied with the code {} and the body {}", statusCode, body); - - if (HttpStatus.CREATED != statusCode) { - throw new VeVnfmException("The status code was different than " + HttpStatus.CREATED); - } - - return body.id; - } - - public boolean check(final EsrSystemInfo info, final String id) { - final ResponseEntity<SubscribeToManoResponse> response = - restProvider.getHttpResponse(getUrl(info) + SLASH + id, SubscribeToManoResponse.class); - return response.getBody() != null && response.getBody().id.equals(id); - } - - private String getUrl(final EsrSystemInfo info) { - return info.getServiceUrl() + vnfmSubscription; - } - - @ToString - static class SubscribeToManoResponse { - @JsonProperty("id") - String id; - @JsonProperty("callbackUri") - String callbackUri; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscriberService.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscriberService.java deleted file mode 100644 index 32cd6ae22f..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscriberService.java +++ /dev/null @@ -1,120 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.service; - -import com.google.gson.Gson; -import com.squareup.okhttp.Credentials; -import java.util.Collections; -import org.apache.logging.log4j.util.Strings; -import org.onap.aai.domain.yang.EsrSystemInfo; -import org.onap.so.adapters.vevnfm.configuration.ConfigProperties; -import org.onap.so.adapters.vevnfm.exception.VeVnfmException; -import org.onap.so.adapters.vevnfm.provider.AuthorizationHeadersProvider; -import org.onap.so.adapters.etsi.sol003.adapter.lcm.extclients.vnfm.model.LccnSubscriptionRequest; -import org.onap.so.adapters.etsi.sol003.adapter.lcm.extclients.vnfm.model.SubscriptionsAuthentication; -import org.onap.so.adapters.etsi.sol003.adapter.lcm.extclients.vnfm.model.SubscriptionsAuthenticationParamsBasic; -import org.onap.so.adapters.etsi.sol003.adapter.lcm.extclients.vnfm.model.SubscriptionsFilter; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -@Service -public class SubscriberService { - - private static final Gson gson = new Gson(); - - private final String vnfFilter; - private final String endpoint; - private final String notification; - private final String username; - private final String openpass; - private final AuthorizationHeadersProvider headersProvider; - private final SubscribeSender sender; - - @Autowired - public SubscriberService(final ConfigProperties configProperties, - final AuthorizationHeadersProvider headersProvider, final SubscribeSender sender) { - this.vnfFilter = configProperties.getVevnfmadapterVnfFilterJson(); - this.endpoint = configProperties.getVevnfmadapterEndpoint(); - this.notification = configProperties.getVnfmNotification(); - this.username = configProperties.getSpringSecurityUsername(); - this.openpass = configProperties.getSpringSecurityOpenpass(); - this.headersProvider = headersProvider; - this.sender = sender; - } - - private static String getAuthorization(final EsrSystemInfo info) { - if (info == null) { - return null; - } - - final String userName = info.getUserName(); - - if (Strings.isBlank(userName)) { - return null; - } - - final String password = info.getPassword(); - return Credentials.basic(userName, password); - } - - public String subscribe(final EsrSystemInfo info) throws VeVnfmException { - try { - headersProvider.addAuthorization(getAuthorization(info)); - final LccnSubscriptionRequest request = createRequest(); - return sender.send(info, request); - } catch (Exception e) { - throw new VeVnfmException(e); - } finally { - headersProvider.removeAuthorization(); - } - } - - public boolean checkSubscription(final EsrSystemInfo info, final String id) throws VeVnfmException { - try { - return sender.check(info, id); - } catch (Exception e) { - throw new VeVnfmException(e); - } - } - - private LccnSubscriptionRequest createRequest() { - final LccnSubscriptionRequest request = new LccnSubscriptionRequest(); - request.filter(getFilter()); - request.callbackUri(getCallbackUri()); - final SubscriptionsAuthenticationParamsBasic paramsBasic = new SubscriptionsAuthenticationParamsBasic(); - final SubscriptionsAuthentication authentication = new SubscriptionsAuthentication(); - paramsBasic.setUserName(username); - paramsBasic.setPassword(openpass); - authentication.setAuthType(Collections.singletonList(SubscriptionsAuthentication.AuthTypeEnum.BASIC)); - authentication.setParamsBasic(paramsBasic); - request.authentication(authentication); - - return request; - } - - private SubscriptionsFilter getFilter() { - return gson.fromJson(vnfFilter, SubscriptionsFilter.class); - } - - private String getCallbackUri() { - return endpoint + notification; - } -} diff --git a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscriptionScheduler.java b/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscriptionScheduler.java deleted file mode 100644 index a696336011..0000000000 --- a/adapters/mso-ve-vnfm-adapter/src/main/java/org/onap/so/adapters/vevnfm/service/SubscriptionScheduler.java +++ /dev/null @@ -1,101 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SO - * ================================================================================ - * Copyright (C) 2020 Samsung. All rights reserved. - * ================================================================================ - * 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. - * ============LICENSE_END========================================================= - */ - -package org.onap.so.adapters.vevnfm.service; - -import java.util.LinkedList; -import java.util.List; -import org.onap.aai.domain.yang.EsrSystemInfo; -import org.onap.so.adapters.vevnfm.aai.EsrId; -import org.onap.so.adapters.vevnfm.exception.VeVnfmException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Service; - -@Service -@EnableScheduling -public class SubscriptionScheduler { - - private static final Logger logger = LoggerFactory.getLogger(SubscriptionScheduler.class); - - private final SubscriberService subscriberService; - private List<EsrId> esrIds; - - @Autowired - public SubscriptionScheduler(final SubscriberService subscriberService) { - this.subscriberService = subscriberService; - } - - public void setInfos(final List<EsrSystemInfo> infos) { - esrIds = new LinkedList<>(); - - for (final EsrSystemInfo info : infos) { - final EsrId esrId = new EsrId(); - esrId.setInfo(info); - esrIds.add(esrId); - } - } - - List<EsrId> getEsrIds() { - return esrIds; - } - - @Scheduled(fixedRate = 5000, initialDelay = 2000) - void subscribeTask() throws VeVnfmException { - if (isEsrIdsValid()) { - for (final EsrId esrId : esrIds) { - singleSubscribe(esrId); - } - } - } - - @Scheduled(fixedRate = 20000) - void checkSubscribeTask() throws VeVnfmException { - if (isEsrIdsValid()) { - for (final EsrId esrId : esrIds) { - singleCheckSubscription(esrId); - } - } - } - - private boolean isEsrIdsValid() { - return esrIds != null && !esrIds.isEmpty(); - } - - private void singleSubscribe(final EsrId esrId) throws VeVnfmException { - if (esrId.getId() == null) { - logger.info("Single subscribe task"); - esrId.setId(subscriberService.subscribe(esrId.getInfo())); - } - } - - private void singleCheckSubscription(final EsrId esrId) throws VeVnfmException { - if (esrId.getId() != null) { - logger.info("Checking subscription: {}", esrId.getId()); - if (!subscriberService.checkSubscription(esrId.getInfo(), esrId.getId())) { - logger.info("Subscription {} not available", esrId.getId()); - esrId.setId(null); - } - } - } -} |