aboutsummaryrefslogtreecommitdiffstats
path: root/appc-adapters/appc-chef-adapter
diff options
context:
space:
mode:
authorMichal Kabaj <michal.kabaj@nokia.com>2018-03-12 15:04:50 +0100
committerTakamune Cho <tc012c@att.com>2018-03-12 18:33:57 +0000
commitf8f6d212382f458e1cb31081dad744e78f92e521 (patch)
treed7482fc483dae47de3d77ccfcc829254157380c9 /appc-adapters/appc-chef-adapter
parent20eaa8a699ea41b7c40bbee7364dd3554af45606 (diff)
Decouple ChefApiClientImpl from header creation
Introduce new FunctionalInterface HttpHeaderFactory to allow customization of http header providers when creating ChefApiClientImpl using ChefApiClientFactory This allows for better encapsulation of header specific values such as: userId,organizations,pemPath. Change-Id: Iec2c7cff8e664a18e15d7e973920152fdb158c98 Issue-ID: APPC-437 Signed-off-by: Michal Kabaj <michal.kabaj@nokia.com>
Diffstat (limited to 'appc-adapters/appc-chef-adapter')
-rw-r--r--appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/ChefApiClientFactory.java9
-rw-r--r--appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImpl.java24
-rw-r--r--appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/HttpHeaderFactory.java28
-rw-r--r--appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImplTest.java2
4 files changed, 42 insertions, 21 deletions
diff --git a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/ChefApiClientFactory.java b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/ChefApiClientFactory.java
index 818d51694..1815266f3 100644
--- a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/ChefApiClientFactory.java
+++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/ChefApiClientFactory.java
@@ -31,11 +31,10 @@ public class ChefApiClientFactory {
private ChefApiHeaderFactory chefApiHeaderFactory = new ChefApiHeaderFactory();
public ChefApiClient create(String endPoint, String organizations, String userId, String pemPath) {
- return new ChefApiClientImpl(httpClient,
- chefApiHeaderFactory,
+ return new ChefApiClientImpl(
+ httpClient,
endPoint,
- organizations,
- userId,
- pemPath);
+ (methodName, requestPath, body) -> chefApiHeaderFactory
+ .create(methodName, requestPath, body, userId, organizations, pemPath));
}
}
diff --git a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImpl.java b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImpl.java
index b26f69a9e..8edc2b566 100644
--- a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImpl.java
+++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImpl.java
@@ -38,20 +38,13 @@ import org.onap.appc.adapter.chef.chefclient.impl.ChefRequestBuilder.OngoingRequ
public class ChefApiClientImpl implements ChefApiClient {
private final HttpClient httpClient;
- private final ChefApiHeaderFactory chefApiHeaderFactory;
- private String endpoint;
- private String userId;
- private String pemPath;
- private String organizations;
+ private final String endpoint;
+ private final HttpHeaderFactory httpHeaderFactory;
- public ChefApiClientImpl(HttpClient httpClient, ChefApiHeaderFactory chefApiHeaderFactory,
- String endpoint, String organizations, String userId, String pemPath) {
+ public ChefApiClientImpl(HttpClient httpClient, String endpoint, HttpHeaderFactory httpHeaderFactory) {
this.httpClient = httpClient;
- this.chefApiHeaderFactory = chefApiHeaderFactory;
this.endpoint = endpoint;
- this.organizations = organizations;
- this.userId = userId;
- this.pemPath = pemPath;
+ this.httpHeaderFactory = httpHeaderFactory;
}
@Override
@@ -59,7 +52,7 @@ public class ChefApiClientImpl implements ChefApiClient {
OngoingRequestBuilder requestBuilder = ChefRequestBuilder.newRequestTo(endpoint)
.httpGet()
.withPath(path)
- .withHeaders(chefApiHeaderFactory.create("GET", path, "", userId, organizations, pemPath));
+ .withHeaders(httpHeaderFactory.create("GET", path, ""));
return execute(requestBuilder);
}
@@ -68,7 +61,7 @@ public class ChefApiClientImpl implements ChefApiClient {
OngoingRequestBuilder requestBuilder = ChefRequestBuilder.newRequestTo(endpoint)
.httpDelete()
.withPath(path)
- .withHeaders(chefApiHeaderFactory.create("DELETE", path, "", userId, organizations, pemPath));
+ .withHeaders(httpHeaderFactory.create("DELETE", path, ""));
return execute(requestBuilder);
}
@@ -77,7 +70,7 @@ public class ChefApiClientImpl implements ChefApiClient {
OngoingRequestBuilder requestBuilder = ChefRequestBuilder.newRequestTo(endpoint)
.httpPost(body)
.withPath(path)
- .withHeaders(chefApiHeaderFactory.create("POST", path, body, userId, organizations, pemPath));
+ .withHeaders(httpHeaderFactory.create("POST", path, body));
return execute(requestBuilder);
}
@@ -86,7 +79,7 @@ public class ChefApiClientImpl implements ChefApiClient {
OngoingRequestBuilder requestBuilder = ChefRequestBuilder.newRequestTo(endpoint)
.httpPut(body)
.withPath(path)
- .withHeaders(chefApiHeaderFactory.create("PUT", path, body, userId, organizations, pemPath));
+ .withHeaders(httpHeaderFactory.create("PUT", path, body));
return execute(requestBuilder);
}
@@ -104,3 +97,4 @@ public class ChefApiClientImpl implements ChefApiClient {
}
}
}
+
diff --git a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/HttpHeaderFactory.java b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/HttpHeaderFactory.java
new file mode 100644
index 000000000..4a9d6c81e
--- /dev/null
+++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/main/java/org/onap/appc/adapter/chef/chefclient/impl/HttpHeaderFactory.java
@@ -0,0 +1,28 @@
+/*
+ * ============LICENSE_START=======================================================
+ * ONAP : APPC
+ * ================================================================================
+ * Copyright (C) 2018 Nokia. 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.appc.adapter.chef.chefclient.impl;
+
+import com.google.common.collect.ImmutableMap;
+
+@FunctionalInterface
+public interface HttpHeaderFactory {
+
+ ImmutableMap<String, String> create(String methodName, String requestPath, String body);
+}
diff --git a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImplTest.java b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImplTest.java
index 21e607de7..ed39efb1b 100644
--- a/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImplTest.java
+++ b/appc-adapters/appc-chef-adapter/appc-chef-adapter-bundle/src/test/java/org/onap/appc/adapter/chef/chefclient/impl/ChefApiClientImplTest.java
@@ -55,6 +55,7 @@ public class ChefApiClientImplTest {
private static final String USER_ID = "testUser";
private static final String REQUEST_PATH = "/test/path";
private static final String BODY = "SOME BODY STRING";
+ private static final String PEM_FILEPATH = "path/to/pemFile";
private static final ImmutableMap<String, String> HEADERS = ImmutableMap.<String, String>builder()
.put("Content-type", "application/json")
.put("Accept", "application/json")
@@ -71,7 +72,6 @@ public class ChefApiClientImplTest {
@InjectMocks
private ChefApiClientFactory chefApiClientFactory;
- private static final String PEM_FILEPATH = "path/to/pemFile";
private ChefApiClient chefApiClient;
@Before