import org.onap.usecaseui.server.service.lcm.domain.sdc.SDCCatalogClient;
import org.onap.usecaseui.server.service.lcm.domain.vfc.VfcClient;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
+import io.micrometer.core.instrument.binder.okhttp3.OkHttpObservationInterceptor;
+import io.micrometer.observation.ObservationRegistry;
import lombok.RequiredArgsConstructor;
import okhttp3.Credentials;
import okhttp3.Interceptor;
private final SDCClientProperties clientProperties;
- OkHttpClient okHttpClient() {
- return new OkHttpClient().newBuilder().addInterceptor(new Interceptor() {
- @Override
- public okhttp3.Response intercept(Chain chain) throws IOException {
- Request originalRequest = chain.request();
- Request.Builder builder = originalRequest.newBuilder()
- .header("Authorization", Credentials.basic(clientProperties.getUsername(), clientProperties.getPassword()))
- .header(HttpHeaders.ACCEPT, "application/json")
- .header("X-ECOMP-InstanceID", "777");
- Request newRequest = builder.build();
- return chain.proceed(newRequest);
- }
- }).build();
+ @Bean("okHttpClientSDC")
+ OkHttpClient okHttpClient(ObservationRegistry observationRegistry) {
+ return new OkHttpClient().newBuilder()
+ .addInterceptor(
+ OkHttpObservationInterceptor.builder(observationRegistry, "http.client.requests").build())
+ .addInterceptor(new Interceptor() {
+ @Override
+ public okhttp3.Response intercept(Chain chain) throws IOException {
+ Request originalRequest = chain.request();
+ Request.Builder builder = originalRequest.newBuilder()
+ .header("Authorization", Credentials.basic(clientProperties.getUsername(), clientProperties.getPassword()))
+ .header(HttpHeaders.ACCEPT, "application/json")
+ .header("X-ECOMP-InstanceID", "777");
+ Request newRequest = builder.build();
+ return chain.proceed(newRequest);
+ }
+ }).build();
}
- Retrofit retrofit() {
+ @Bean("retrofitSDC")
+ Retrofit retrofit(@Qualifier("okHttpClientSDC") OkHttpClient okHttpClient) {
return new Retrofit.Builder()
.baseUrl(clientProperties.getBaseUrl())
.addConverterFactory(JacksonConverterFactory.create())
- .client(okHttpClient())
+ .client(okHttpClient)
.build();
}
@Bean
- SDCCatalogClient sdcCatalogClient() {
- return retrofit().create(SDCCatalogClient.class);
+ SDCCatalogClient sdcCatalogClient(@Qualifier("retrofitSDC") Retrofit retrofit) {
+ return retrofit.create(SDCCatalogClient.class);
}
@Bean
- VfcClient vfcClient() {
- return retrofit().create(VfcClient.class);
+ VfcClient vfcClient(@Qualifier("retrofitSDC") Retrofit retrofit) {
+ return retrofit.create(VfcClient.class);
}
}
import org.onap.usecaseui.server.service.lcm.domain.so.SOClient;
import org.onap.usecaseui.server.service.slicingdomain.kpi.KpiSliceClient;
import org.onap.usecaseui.server.service.slicingdomain.so.SOSliceClient;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpHeaders;
+import io.micrometer.core.instrument.binder.okhttp3.OkHttpObservationInterceptor;
+import io.micrometer.observation.ObservationRegistry;
import okhttp3.Credentials;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
@Value("${uui-server.client.so.password}")
String password;
- OkHttpClient okHttpClient() {
- return new OkHttpClient().newBuilder().addInterceptor(new Interceptor() {
- @Override
- public okhttp3.Response intercept(Chain chain) throws IOException {
- Request originalRequest = chain.request();
- Request.Builder builder = originalRequest.newBuilder()
- .header("Authorization", Credentials.basic(username, password))
- .header(HttpHeaders.ACCEPT, "application/json")
- .header("X-TransactionId", "9999")
- .header("X-FromAppId", "onap-cli");
- Request newRequest = builder.build();
- return chain.proceed(newRequest);
- }
- }).build();
+ @Bean("okHttpClientSO")
+ OkHttpClient okHttpClient(ObservationRegistry observationRegistry) {
+ return new OkHttpClient().newBuilder()
+ .addInterceptor(
+ OkHttpObservationInterceptor.builder(observationRegistry, "http.client.requests").build())
+ .addInterceptor(new Interceptor() {
+ @Override
+ public okhttp3.Response intercept(Chain chain) throws IOException {
+ Request originalRequest = chain.request();
+ Request.Builder builder = originalRequest.newBuilder()
+ .header("Authorization", Credentials.basic(username, password))
+ .header(HttpHeaders.ACCEPT, "application/json")
+ .header("X-TransactionId", "9999")
+ .header("X-FromAppId", "onap-cli");
+ Request newRequest = builder.build();
+ return chain.proceed(newRequest);
+ }
+ }).build();
}
- Retrofit retrofit() {
+ @Bean("retrofitSO")
+ Retrofit retrofitSo(@Qualifier("okHttpClientSO") OkHttpClient okHttpClient) {
return new Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(JacksonConverterFactory.create())
- .client(okHttpClient())
+ .client(okHttpClient)
.build();
}
@Bean
- SOClient soClient() {
- return retrofit().create(SOClient.class);
+ SOClient soClient(@Qualifier("retrofitSO") Retrofit retrofit) {
+ return retrofit.create(SOClient.class);
}
@Bean
- SOSliceClient soSliceClient() {
- return retrofit().create(SOSliceClient.class);
+ SOSliceClient soSliceClient(@Qualifier("retrofitSO") Retrofit retrofit) {
+ return retrofit.create(SOSliceClient.class);
}
@Bean
- IntentSoClient intentSoClient() {
- return retrofit().create(IntentSoClient.class);
+ IntentSoClient intentSoClient(@Qualifier("retrofitSO") Retrofit retrofit) {
+ return retrofit.create(IntentSoClient.class);
}
@Bean
// not at all clear whether this service should interface with SO
- KpiSliceClient kpiSliceClient() {
- return retrofit().create(KpiSliceClient.class);
+ KpiSliceClient kpiSliceClient(@Qualifier("retrofitSO") Retrofit retrofit) {
+ return retrofit.create(KpiSliceClient.class);
}
}
public interface SOSliceClient {
- @GET("/api/so-serviceInstances/v3/{serviceId}/operations/{operationId}")
+ @GET("onap/so/infra/e2eServiceInstances/v3/{serviceId}/operations/{operationId}")
Call<SOOperation> queryOperationProgress(@Path("serviceId") String serviceId,
@Path("operationId") String operationId);
- @POST("/api/so-serviceInstances/v3/{serviceInstanceId}/activate")
+ @POST("onap/so/infra/serviceInstantiation/v3/serviceInstances/{serviceInstanceId}/activate")
Call<ActivateService> activeService(@Path("serviceInstanceId") String serviceInstanceId, @Body RequestBody body);
- @POST("/api/so-serviceInstances/v3/{serviceInstanceId}/deactivate")
+ @POST("onap/so/infra/serviceInstantiation/v3/serviceInstances/{serviceInstanceId}/deactivate")
Call<ActivateService> deactiveService(@Path("serviceInstanceId") String serviceInstanceId, @Body RequestBody body);
- @HTTP(method = "DELETE",path = "/api/so-serviceInstances/v3/{serviceInstanceId}",hasBody = true)
+ @HTTP(method = "DELETE",path = "onap/so/infra/serviceInstantiation/v3/serviceInstances/{serviceInstanceId}",hasBody = true)
Call<ActivateService> terminateService(@Path("serviceInstanceId") String serviceInstanceId, @Body RequestBody body);
- @GET("/api/so-orchestrationTasks/v4")
+ @GET("onap/so/infra/tasks/v4")
Call<JSONArray> listTask();
- @GET("/api/so-orchestrationTasks/v4")
+ @GET("onap/so/infra/tasks/v4")
Call<JSONArray> listTaskByStage(@Query("status") String status );
- @GET("/api/so-orchestrationTasks/v4/{taskId}")
+ @GET("onap/so/infra/tasks/v4/{taskId}")
Call<SOTask> getTaskById(@Path("taskId") String taskId);
- @GET("/api/so-orchestrationTasks/v4/{taskId}")
+ @GET("onap/so/infra/tasks/v4/{taskId}")
Call<SOTask> getTaskByIdD(@Path("taskId") String taskId);
- @PUT("/api/so-orchestrationTasks/v4/{taskId}")
+ @PUT("onap/so/infra/orchestrationTasks/v4/{taskId}")
Call<ResponseBody> updateService(@Path("taskId") String taskId, @Body RequestBody body);
- @POST("/api/so-orchestrationTasks/v4/{taskId}/commit")
+ @POST("onap/so/infra/orchestrationTasks/v4/{taskId}/commit")
Call<ResponseBody> commitTask(@Path("taskId") String taskId);
- @POST("/api/so-serviceInstances/v3")
+ // It's not quite clear if this should be
+ // infra/e2eServiceInstances/{version} or infra/orchestrationTasks/{version}
+ @POST("onap/so/infra/e2eServiceInstances/v3")
Call<CreateResponse> submitOrders(@Body RequestBody body);
}
byte[] requestBytes = Files.readAllBytes(Paths.get("src/test/resources/__files/requests/submitOrdersRequest.json"));
String expectedRequestBody = new String(requestBytes, StandardCharsets.UTF_8);
stubFor(
- post("/api/so-serviceInstances/v3")
+ post("/onap/so/infra/e2eServiceInstances/v3")
.withBasicAuth(soUsername, soPassword)
.withHeader(HttpHeaders.ACCEPT, equalTo("application/json"))
.withHeader("X-TransactionId", equalTo("9999"))
import static com.github.tomakehurst.wiremock.client.WireMock.aResponse;
import static com.github.tomakehurst.wiremock.client.WireMock.equalTo;
-import static com.github.tomakehurst.wiremock.client.WireMock.get;
import static com.github.tomakehurst.wiremock.client.WireMock.post;
import static com.github.tomakehurst.wiremock.client.WireMock.stubFor;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
-import java.util.Collections;
import java.util.List;
import org.junit.jupiter.api.Test;
import org.onap.usecaseui.server.bean.nsmf.monitor.ServiceList;
import org.onap.usecaseui.server.bean.nsmf.monitor.ServiceOnlineUserInfo;
import org.onap.usecaseui.server.bean.nsmf.monitor.ServiceOnlineUserList;
-import org.onap.usecaseui.server.config.AAIClientConfig;
import org.onap.usecaseui.server.config.SOClientConfig;
-import org.onap.usecaseui.server.controller.lcm.CustomerController;
-import org.onap.usecaseui.server.service.lcm.CustomerService;
-import org.onap.usecaseui.server.service.lcm.domain.aai.bean.AAICustomer;
-import org.onap.usecaseui.server.service.lcm.impl.DefaultCustomerService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.http.HttpHeaders;
import org.wiremock.spring.EnableWireMock;
+@EnableAutoConfiguration
@EnableWireMock
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = {
SOClientConfig.class, ResourceMonitorServiceImpl.class, ResourceMonitorServiceConvert.class