Unifying behavior of Pod/ReplicationController/Service APIs
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/af39a71b Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/af39a71b Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/af39a71b Branch: refs/heads/master Commit: af39a71b13b2c69d8ed8b59837de413fa8c1bf87 Parents: 15c73fd Author: Nirmal Fernando <[email protected]> Authored: Mon Nov 3 14:21:12 2014 +0100 Committer: Nirmal Fernando <[email protected]> Committed: Mon Nov 3 14:21:12 2014 +0100 ---------------------------------------------------------------------- .../kubernetes/client/KubernetesApiClient.java | 26 +++++++++++--------- .../client/rest/KubernetesResponseHandler.java | 7 ++++++ 2 files changed, 22 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/af39a71b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java index 39f8c02..2859adf 100644 --- a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java +++ b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/KubernetesApiClient.java @@ -215,9 +215,9 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = gsonBuilder.create(); - ReplicationControllerList podList = gson.fromJson(content, ReplicationControllerList.class); + ReplicationControllerList controllerList = gson.fromJson(content, ReplicationControllerList.class); - return podList.getItems(); + return controllerList.getItems(); } catch (Exception e) { String msg = "Error while retrieving Replication Controllers."; log.error(msg, e); @@ -242,6 +242,11 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { KubernetesResponse res = restClient.doPost(uri, content); handleNullResponse("Replication Controller "+controller+" creation failed.", res); + + if (res.getStatusCode() == HttpStatus.SC_CONFLICT) { + log.warn("Replication Controller already created. "+controller); + return; + } if (res.getStatusCode() != HttpStatus.SC_ACCEPTED && res.getStatusCode() != HttpStatus.SC_OK) { @@ -359,7 +364,9 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { GsonBuilder gsonBuilder = new GsonBuilder(); Gson gson = gsonBuilder.create(); return gson.fromJson(content, Service.class); - } catch (Exception e) { + } catch (KubernetesClientException e) { + throw e; + } catch (Exception e) { String msg = "Error while retrieving Service info with Service ID: "+serviceId; log.error(msg, e); throw new KubernetesClientException(msg, e); @@ -408,6 +415,11 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { handleNullResponse("Service "+service+" creation failed.", res); + if (res.getStatusCode() == HttpStatus.SC_CONFLICT) { + log.warn("Service already created. "+service); + return; + } + if (res.getStatusCode() != HttpStatus.SC_ACCEPTED && res.getStatusCode() != HttpStatus.SC_OK) { String msg = "Service ["+service+"] creation failed. Error: "+ @@ -505,12 +517,4 @@ public class KubernetesApiClient implements KubernetesAPIClientInterface { } } - public String getBaseURL() { - return baseURL; - } - - public void setBaseURL(String baseURL) { - this.baseURL = baseURL; - } - } http://git-wip-us.apache.org/repos/asf/stratos/blob/af39a71b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/rest/KubernetesResponseHandler.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/rest/KubernetesResponseHandler.java b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/rest/KubernetesResponseHandler.java index ab93e0e..fa2442a 100644 --- a/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/rest/KubernetesResponseHandler.java +++ b/components/org.apache.stratos.kubernetes.client/src/main/java/org/apache/stratos/kubernetes/client/rest/KubernetesResponseHandler.java @@ -20,6 +20,8 @@ */ package org.apache.stratos.kubernetes.client.rest; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.StatusLine; @@ -34,6 +36,7 @@ import java.io.InputStreamReader; * Handles a HttpResponse and returns a {@link KubernetesResponse} */ public class KubernetesResponseHandler implements ResponseHandler<KubernetesResponse>{ + private static final Log log = LogFactory.getLog(KubernetesResponseHandler.class); @Override public KubernetesResponse handleResponse(HttpResponse response) throws ClientProtocolException, @@ -59,6 +62,10 @@ public class KubernetesResponseHandler implements ResponseHandler<KubernetesResp kubResponse.setContent(result); kubResponse.setReason(statusLine.getReasonPhrase()); + if (log.isDebugEnabled()) { + log.debug("Extracted Kubernetes Response: "+kubResponse.toString()); + } + return kubResponse; } }
