Skip to content

Commit

Permalink
Fixes arquillian#815: defer choice of configuration url to a later stage
Browse files Browse the repository at this point in the history
  • Loading branch information
nicolaferraro committed Oct 5, 2017
1 parent bcd6ea9 commit eacb5b9
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 22 deletions.
Expand Up @@ -130,7 +130,7 @@ public static DefaultConfiguration fromMap(Map<String, String> map) {
asUrlOrResource(getStringProperty(ENVIRONMENT_SETUP_SCRIPT_URL, map, null)))
.withEnvironmentTeardownScriptUrl(
asUrlOrResource(getStringProperty(ENVIRONMENT_TEARDOWN_SCRIPT_URL, map, null)))
.withEnvironmentConfigUrl(getKubernetesConfigurationUrl(map, DEFAULT_CONFIG_FILE_NAME))
.withEnvironmentConfigUrl(getKubernetesConfigurationUrl(map))
.withEnvironmentDependencies(
asURL(Strings.splitAndTrimAsList(getStringProperty(ENVIRONMENT_DEPENDENCIES, map, ""), "\\s+")))
.withNamespaceLazyCreateEnabled(
Expand Down Expand Up @@ -189,21 +189,20 @@ public static String getDockerRegistry(Map<String, String> map) throws Malformed
* @param map
* The arquillian configuration.
*/
public static URL getKubernetesConfigurationUrl(Map<String, String> map, String defaultFileName) throws MalformedURLException {
public static URL getKubernetesConfigurationUrl(Map<String, String> map) throws MalformedURLException {
if (map.containsKey(ENVIRONMENT_CONFIG_URL)) {
return new URL(map.get(ENVIRONMENT_CONFIG_URL));
} else if (map.containsKey(ENVIRONMENT_CONFIG_RESOURCE_NAME)) {
String resourceName = map.get(ENVIRONMENT_CONFIG_RESOURCE_NAME);
return findConfigResource(resourceName);
} else if (Strings.isNotNullOrEmpty(Utils.getSystemPropertyOrEnvVar(ENVIRONMENT_CONFIG_URL, ""))) {
return new URL(Utils.getSystemPropertyOrEnvVar(ENVIRONMENT_CONFIG_URL, ""));
} else if (Strings.isNotNullOrEmpty(Utils.getSystemPropertyOrEnvVar(ENVIRONMENT_CONFIG_RESOURCE_NAME, ""))) {
String resourceName = Utils.getSystemPropertyOrEnvVar(ENVIRONMENT_CONFIG_RESOURCE_NAME, "");
return findConfigResource(resourceName);
} else {
String defaultValue = ROOT + defaultFileName;
String resourceName = Utils.getSystemPropertyOrEnvVar(ENVIRONMENT_CONFIG_RESOURCE_NAME, defaultValue);
URL answer = findConfigResource(resourceName);
if (answer == null) {
}
return answer;
// Let the resource locator find the resource
return null;
}
}

Expand Down
Expand Up @@ -46,8 +46,6 @@ public class CubeOpenShiftConfiguration extends DefaultConfiguration {
private static final String OPENSHIFT_ROUTER_HTTP_PORT = "openshiftRouterHttpPort";
private static final String OPENSHIFT_ROUTER_HTTPS_PORT = "openshiftRouterHttpsPort";

private static final String DEFAULT_OPENSHIFT_CONFIG_FILE_NAME = "openshift.json";

private final boolean keepAliveGitServer;
private final String definitions;
private final String definitionsFile;
Expand Down Expand Up @@ -141,7 +139,7 @@ public static CubeOpenShiftConfiguration fromMap(Map<String, String> map) {
asUrlOrResource(getStringProperty(ENVIRONMENT_SETUP_SCRIPT_URL, map, null)))
.withEnvironmentTeardownScriptUrl(
asUrlOrResource(getStringProperty(ENVIRONMENT_TEARDOWN_SCRIPT_URL, map, null)))
.withEnvironmentConfigUrl(getKubernetesConfigurationUrl(map, DEFAULT_OPENSHIFT_CONFIG_FILE_NAME))
.withEnvironmentConfigUrl(getKubernetesConfigurationUrl(map))
.withEnvironmentConfigAdditionalUrls(additionalUrls)
.withEnvironmentDependencies(
asURL(Strings.splitAndTrimAsList(getStringProperty(ENVIRONMENT_DEPENDENCIES, map, ""), "\\s+")))
Expand Down
@@ -1,26 +1,25 @@
package org.arquillian.cube.openshift.impl.locator;

import org.arquillian.cube.kubernetes.api.KubernetesResourceLocator;
import io.fabric8.kubernetes.clnt.v2_6.KubernetesClient;
import io.fabric8.openshift.clnt.v2_6.OpenShiftClient;
import org.arquillian.cube.kubernetes.impl.locator.DefaultKubernetesResourceLocator;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.api.annotation.Inject;

public class OpenshiftKubernetesResourceLocator extends DefaultKubernetesResourceLocator {

private static final String[] RESOURCE_NAMES =
new String[] {"openshift", "META-INF/fabric8/openshift", "kubernetes", "META-INF/fabric8/kubernetes"};
private static final String[] ALLOWED_SUFFIXES = {".json", ".yml", ".yaml"};

@Inject
protected Instance<KubernetesClient> client;

@Override
protected String[] getResourceNames() {
if (!client.get().isAdaptable(OpenShiftClient.class)) {
return super.getResourceNames();
}
return RESOURCE_NAMES;
}

@Override
protected String[] getAllowedSuffixes() {
return ALLOWED_SUFFIXES;
}

@Override
public KubernetesResourceLocator toImmutable() {
return this;
}
}

0 comments on commit eacb5b9

Please sign in to comment.