From 3649f2b3bc34fcdc407aa2f829a4ff640750d863 Mon Sep 17 00:00:00 2001 From: Jeff Cantrill Date: Fri, 4 Sep 2015 15:07:15 -0400 Subject: [PATCH] [OSJC-217] Use the resources version when creating lists of things --- .../internal/restclient/DefaultClient.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/openshift/internal/restclient/DefaultClient.java b/src/main/java/com/openshift/internal/restclient/DefaultClient.java index 2a1ca128..5fdf642e 100644 --- a/src/main/java/com/openshift/internal/restclient/DefaultClient.java +++ b/src/main/java/com/openshift/internal/restclient/DefaultClient.java @@ -159,7 +159,7 @@ public Collection create(IList list, String namespace){ List results = new ArrayList(list.getItems().size()); for (IResource resource : list.getItems()) { try{ - results.add(create(resource, namespace)); + results.add(createVersion(resource, namespace, resource.getApiVersion())); }catch(OpenShiftException e){ if(e.getStatus() != null){ results.add(e.getStatus()); @@ -176,8 +176,13 @@ public T create(T resource) { return create(resource, resource.getNamespace()); } + @Override public T create(T resource, String namespace) { + return createVersion(resource, namespace, null); + } + + private T createVersion(T resource, String namespace, String version) { if(ResourceKind.LIST.equals(resource.getKind())) throw new UnsupportedOperationException("Generic create operation not supported for resource type 'List'"); try { namespace = ResourceKind.PROJECT.equals(resource.getKind()) ? "" : namespace; @@ -363,11 +368,13 @@ private > List getVersion(Class klass, String endpoint) return new ArrayList(); } } - private Map getTypeMappings(){ + return getTypeMappings(null); + } + private Map getTypeMappings(String apiVersion){ if(typeMappings.isEmpty()){ //OpenShift endpoints - final String version = getOpenShiftAPIVersion(); + final String version = StringUtils.defaultIfEmpty(apiVersion, getOpenShiftAPIVersion()); final String osEndpoint = String.format("%s/%s", OpenShiftAPIVersion.v1beta3.toString().equals(version) ? OS_API_LEGACY_ENDPOINT : OS_API_ENDPOINT, version); typeMappings.put(ResourceKind.BUILD, osEndpoint); typeMappings.put(ResourceKind.BUILD_CONFIG, osEndpoint); @@ -391,7 +398,8 @@ private Map getTypeMappings(){ typeMappings.put(ResourceKind.PROCESSED_TEMPLATES, osEndpoint); //Kubernetes endpoints - final String k8eEndpoint = String.format("%s/%s", API_ENDPOINT, getKubernetesVersion()); + final String k8eApiVersion = StringUtils.defaultIfEmpty(apiVersion, getKubernetesVersion()); + final String k8eEndpoint = String.format("%s/%s", API_ENDPOINT, k8eApiVersion); typeMappings.put(ResourceKind.EVENT, k8eEndpoint); typeMappings.put(ResourceKind.POD, k8eEndpoint); typeMappings.put(ResourceKind.PVC, k8eEndpoint);