import org.onap.dcaegen2.services.prh.adapter.aai.api.get.AaiHttpGetClient;
import org.onap.dcaegen2.services.prh.adapter.aai.api.patch.AaiHttpPatchClient;
import org.onap.dcaegen2.services.prh.adapter.aai.main.AaiHttpClientFactory;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiServiceInstanceQueryModel;
import org.onap.dcaegen2.services.prh.model.AaiJsonBodyBuilderImpl;
import org.onap.dcaegen2.services.prh.model.AaiPnfResultModel;
import org.onap.dcaegen2.services.prh.model.AaiServiceInstanceResultModel;
+import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.prh.model.utils.PrhModelAwareGsonBuilder;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
private CbsConfiguration cbsConfiguration;
@Bean
- public AaiHttpClient<AaiModel, HttpResponse> getPatchClientFactory() {
+ public AaiHttpClient<ConsumerDmaapModel, HttpResponse> getPatchClientFactory() {
return createLazyConfigClient(
(config, client) -> new AaiHttpPatchClient(config, new AaiJsonBodyBuilderImpl(), client));
}
}
@Bean
- public AaiHttpClient<AaiModel, AaiPnfResultModel> getGetClient() {
+ public AaiHttpClient<ConsumerDmaapModel, AaiPnfResultModel> getGetClient() {
return createLazyConfigClient(
(config, client) -> new AaiHttpGetClient(config, client)
.map(httpResponse -> {
package org.onap.dcaegen2.services.prh.tasks;
import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
import org.onap.dcaegen2.services.prh.exceptions.AaiNotFoundException;
import org.onap.dcaegen2.services.prh.exceptions.DmaapNotFoundException;
import org.onap.dcaegen2.services.prh.exceptions.PrhTaskException;
private static final Logger LOGGER = LoggerFactory.getLogger(AaiProducerTaskImpl.class);
- private final AaiHttpClient<AaiModel, HttpResponse> aaiHttpPatchClient;
+ private final AaiHttpClient<ConsumerDmaapModel, HttpResponse> aaiHttpPatchClient;
@Autowired
- public AaiProducerTaskImpl(final AaiHttpClient<AaiModel, HttpResponse> aaiHttpPatchClient) {
+ public AaiProducerTaskImpl(final AaiHttpClient<ConsumerDmaapModel, HttpResponse> aaiHttpPatchClient) {
this.aaiHttpPatchClient = aaiHttpPatchClient;
}
package org.onap.dcaegen2.services.prh.tasks;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
+import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import reactor.core.publisher.Mono;
@FunctionalInterface
public interface AaiQueryTask {
- Mono<Boolean> execute(final AaiModel aaiModel);
+ Mono<Boolean> execute(final ConsumerDmaapModel aaiModel);
}
import java.util.Optional;
import java.util.stream.Stream;
import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiServiceInstanceQueryModel;
import org.onap.dcaegen2.services.prh.adapter.aai.model.ImmutableAaiServiceInstanceQueryModel;
import org.onap.dcaegen2.services.prh.model.AaiPnfResultModel;
import org.onap.dcaegen2.services.prh.model.AaiServiceInstanceResultModel;
+import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.prh.model.Relationship;
import org.onap.dcaegen2.services.prh.model.RelationshipData;
import org.onap.dcaegen2.services.prh.model.RelationshipDict;
static final String SERVICE_TYPE = "service-subscription.service-type";
static final String SERVICE_INSTANCE_ID = "service-instance.service-instance-id";
- private final AaiHttpClient<AaiModel, AaiPnfResultModel> getPnfModelClient;
+ private final AaiHttpClient<ConsumerDmaapModel, AaiPnfResultModel> getPnfModelClient;
private final AaiHttpClient<AaiServiceInstanceQueryModel, AaiServiceInstanceResultModel> getServiceClient;
@Autowired
public AaiQueryTaskImpl(
- final AaiHttpClient<AaiModel, AaiPnfResultModel> getPnfModelClient,
+ final AaiHttpClient<ConsumerDmaapModel, AaiPnfResultModel> getPnfModelClient,
final AaiHttpClient<AaiServiceInstanceQueryModel, AaiServiceInstanceResultModel> getServiceClient) {
this.getPnfModelClient = getPnfModelClient;
this.getServiceClient = getServiceClient;
}
@Override
- public Mono<Boolean> execute(AaiModel aaiModel) {
+ public Mono<Boolean> execute(ConsumerDmaapModel aaiModel) {
return getPnfModelClient
.getAaiResponse(aaiModel)
.flatMap(this::checkIfPnfHasRelationToService)
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
import java.util.Collections;
import java.util.List;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiServiceInstanceQueryModel;
import org.onap.dcaegen2.services.prh.model.AaiPnfResultModel;
import org.onap.dcaegen2.services.prh.model.AaiServiceInstanceResultModel;
+import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.prh.model.ImmutableRelationshipData;
import org.onap.dcaegen2.services.prh.model.Relationship;
import org.onap.dcaegen2.services.prh.model.RelationshipData;
@ExtendWith(MockitoExtension.class)
class AaiQueryTaskImplTest {
@Mock
- private AaiHttpClient<AaiModel, AaiPnfResultModel> getPnfModelClient;
+ private AaiHttpClient<ConsumerDmaapModel, AaiPnfResultModel> getPnfModelClient;
@Mock
private AaiHttpClient<AaiServiceInstanceQueryModel, AaiServiceInstanceResultModel> getServiceClient;
private AaiQueryTask sut;
- private final AaiModel aaiModel = () -> "SomePNF";
+ private final ConsumerDmaapModel aaiModel = mock(ConsumerDmaapModel.class);
@BeforeEach
void setUp() {
Assertions.assertTrue(task::block);
}
- private void configurePnfClient(final AaiModel aaiModel, final AaiPnfResultModel pnfResultModel) {
+ private void configurePnfClient(final ConsumerDmaapModel aaiModel, final AaiPnfResultModel pnfResultModel) {
given(getPnfModelClient.getAaiResponse(aaiModel)).willReturn(Mono.just(pnfResultModel));
}
}
import io.vavr.collection.HashMap;
import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfiguration;
import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
+import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.ImmutableHttpRequest;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
import reactor.core.publisher.Mono;
-public final class AaiHttpGetClient implements AaiHttpClient<AaiModel, HttpResponse> {
+public final class AaiHttpGetClient implements AaiHttpClient<ConsumerDmaapModel, HttpResponse> {
private final RxHttpClient httpClient;
private final AaiClientConfiguration configuration;
}
@Override
- public Mono<HttpResponse> getAaiResponse(AaiModel aaiModel) {
+ public Mono<HttpResponse> getAaiResponse(ConsumerDmaapModel aaiModel) {
return httpClient.call(ImmutableHttpRequest.builder()
.method(HttpMethod.GET)
.url(configuration.pnfUrl() + "/" + aaiModel.getCorrelationId())
import io.vavr.collection.Map;
import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfiguration;
import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiHttpClient;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.JsonBodyBuilder;
+import org.onap.dcaegen2.services.prh.model.AaiJsonBodyBuilderImpl;
+import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpMethod;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.ImmutableHttpRequest;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
import reactor.core.publisher.Mono;
-public final class AaiHttpPatchClient implements AaiHttpClient<AaiModel, HttpResponse> {
+public final class AaiHttpPatchClient implements AaiHttpClient<ConsumerDmaapModel, HttpResponse> {
private final static Map<String, String> CONTENT_TYPE = HashMap.of("Content-Type", "application/merge-patch+json");
private RxHttpClient httpClient;
private final AaiClientConfiguration configuration;
- private final JsonBodyBuilder jsonBodyBuilder;
+ private final AaiJsonBodyBuilderImpl jsonBodyBuilder;
- public AaiHttpPatchClient(final AaiClientConfiguration configuration, JsonBodyBuilder jsonBodyBuilder,
+ public AaiHttpPatchClient(final AaiClientConfiguration configuration, AaiJsonBodyBuilderImpl jsonBodyBuilder,
RxHttpClient httpClient) {
this.configuration = configuration;
this.jsonBodyBuilder = jsonBodyBuilder;
this.httpClient = httpClient;
}
- public Mono<HttpResponse> getAaiResponse(AaiModel aaiModel) {
+ public Mono<HttpResponse> getAaiResponse(ConsumerDmaapModel aaiModel) {
final Map<String, String> headers = CONTENT_TYPE.merge(HashMap.ofAll(configuration.aaiHeaders()));
String jsonBody = jsonBodyBuilder.createJsonBody(aaiModel);
return httpClient.call(ImmutableHttpRequest.builder()
- .url(configuration.pnfUrl() + "/" + aaiModel.getCorrelationId())
+ .url(configuration.pnfUrl() + "/" + aaiModel.getCorrelationId())
.customHeaders(headers)
.diagnosticContext(createRequestDiagnosticContext())
.body(RequestBody.fromString(jsonBody))
+++ /dev/null
-/*
- * ============LICENSE_START=======================================================
- * DCAEGEN2-SERVICES-SDK
- * ================================================================================
- * Copyright (C) 2019 NOKIA Intellectual Property. 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.dcaegen2.services.prh.adapter.aai.model;
-
-@FunctionalInterface
-public interface AaiModel {
-
- String getCorrelationId();
-}
+++ /dev/null
-/*
- * ============LICENSE_START=======================================================
- * DCAEGEN2-SERVICES-SDK
- * ================================================================================
- * Copyright (C) 2019 NOKIA Intellectual Property. 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.dcaegen2.services.prh.adapter.aai.model;
-
-@FunctionalInterface
-public interface JsonBodyBuilder<T> {
-
- /**
- * Method for serialization object by GSON.
- *
- * @param t - object which will be serialized
- * @return string from serialization
- */
-
- String createJsonBody(T t);
-}
\ No newline at end of file
* ============LICENSE_START=======================================================
* PNF-REGISTRATION-HANDLER
* ================================================================================
- * Copyright (C) 2018 NOKIA Intellectual Property. All rights reserved.
+ * Copyright (C) 2019 NOKIA Intellectual Property. 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.
import com.google.gson.GsonBuilder;
import com.google.gson.TypeAdapterFactory;
import java.util.ServiceLoader;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.JsonBodyBuilder;
import org.onap.dcaegen2.services.prh.model.ImmutableConsumerDmaapModel.Builder;
import org.springframework.util.StringUtils;
-public class AaiJsonBodyBuilderImpl implements JsonBodyBuilder<ConsumerDmaapModel> {
+public class AaiJsonBodyBuilderImpl {
- /**
- * Method for serialization object by GSON.
- *
- * @param consumerDmaapModel - object which will be serialized
- * @return string from serialization
- */
public String createJsonBody(ConsumerDmaapModel consumerDmaapModel) {
GsonBuilder gsonBuilder = new GsonBuilder();
ServiceLoader.load(TypeAdapterFactory.class).forEach(gsonBuilder::registerTypeAdapterFactory);
import com.google.gson.annotations.SerializedName;
import org.immutables.gson.Gson;
import org.immutables.value.Value;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
import org.springframework.lang.Nullable;
/**
@Value.Immutable
@Gson.TypeAdapters(fieldNamingStrategy = true)
-public interface ConsumerDmaapModel extends AaiModel {
+public interface ConsumerDmaapModel {
@SerializedName(value = "correlationId", alternate = "correlationId")
String getCorrelationId();
import static org.mockito.Mockito.mock;
import org.onap.dcaegen2.services.prh.adapter.aai.api.AaiClientConfiguration;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.AaiModel;
-import org.onap.dcaegen2.services.prh.adapter.aai.model.JsonBodyBuilder;
+import org.onap.dcaegen2.services.prh.model.AaiJsonBodyBuilderImpl;
+import org.onap.dcaegen2.services.prh.model.ConsumerDmaapModel;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.HttpResponse;
import org.onap.dcaegen2.services.sdk.rest.services.adapters.http.RxHttpClient;
public class AbstractHttpClientTest {
- protected final AaiModel aaiModel = () -> "test-id";
+ protected final ConsumerDmaapModel aaiModel = mock(ConsumerDmaapModel.class);
protected final RxHttpClient httpClient = mock(RxHttpClient.class);
- protected final JsonBodyBuilder bodyBuilder = mock(JsonBodyBuilder.class);
+ protected final AaiJsonBodyBuilderImpl bodyBuilder = mock(AaiJsonBodyBuilderImpl.class);
protected final HttpResponse response = mock(HttpResponse.class);