Java源码示例:com.openshift.restclient.ClientBuilder

示例1
private IClient openshiftClient() throws IOException {
    String kubeHost = serviceHost("kubernetes");
    int kubePort = servicePort("kubernetes");

    Path tokenFile = Paths.get("/var/run/secrets/kubernetes.io/serviceaccount/token");
    String scheme = "http";
    String token = null;
    if (Files.exists(tokenFile)) {
        token = new String(Files.readAllBytes(tokenFile));
        scheme = "https";
    }

    return new ClientBuilder(scheme + "://" + kubeHost + ":" + kubePort)
            .usingToken(token)
            .build();
}
 
示例2
default IClient getClient(TaskListener listener, String displayName,
        Map<String, String> overrides, String token) {
    Auth auth = getAuth();
    ClientBuilder cb = new ClientBuilder(getApiURL(overrides))
            .sslCertificateCallback(auth)
            .usingToken(token)
            .sslCertificateCollection(getApiURL(overrides), auth.getCerts());
    if (auth.useCert())
        cb.sslCertCallbackWithDefaultHostnameVerifier(true);
    IClient client = cb.build();
    if (client == null) {
        listener.getLogger().println(
                String.format(MessageConstants.CANNOT_GET_CLIENT,
                        displayName, getApiURL(overrides)));
    }
    return new RetryIClient(client, listener);
}
 
示例3
default IClient getClient(TaskListener listener, String displayName,
        Map<String, String> overrides, String token) {
    Auth auth = getAuth();
    ClientBuilder cb = null;
    long timeoutInMS = this.getTimeout(listener,
            Boolean.parseBoolean(getVerbose(overrides)), overrides);
    if (timeoutInMS > Integer.MAX_VALUE) {
        int timeoutInMin = (int) (timeoutInMS / 60000);
        cb = new ClientBuilder(getApiURL(overrides))
                .sslCertificateCallback(auth)
                .withReadTimeout(timeoutInMin, TimeUnit.MINUTES)
                .withWriteTimeout(timeoutInMin, TimeUnit.MINUTES)
                .withConnectTimeout(timeoutInMin, TimeUnit.MINUTES)
                .usingToken(token)
                .sslCertificateCollection(getApiURL(overrides),
                        auth.getCerts());
    } else {
        cb = new ClientBuilder(getApiURL(overrides))
                .sslCertificateCallback(auth)
                .withReadTimeout((int) timeoutInMS, TimeUnit.MILLISECONDS)
                .withWriteTimeout((int) timeoutInMS, TimeUnit.MILLISECONDS)
                .withConnectTimeout((int) timeoutInMS,
                        TimeUnit.MILLISECONDS)
                .usingToken(token)
                .sslCertificateCollection(getApiURL(overrides),
                        auth.getCerts());
    }

    if (auth.useCert())
        cb.sslCertCallbackWithDefaultHostnameVerifier(true);
    IClient client = cb.build();
    if (client == null) {
        listener.getLogger().println(
                String.format(MessageConstants.CANNOT_GET_CLIENT,
                        displayName, getApiURL(overrides)));
    }
    return new RetryIClient(client, listener);

}
 
示例4
private IClient getClient(ClientStorageProviderModel providerModel) {
    synchronized (this) {
        if (client == null) {
            client = new ClientBuilder(providerModel.get(OpenshiftClientStorageProviderFactory.CONFIG_PROPERTY_OPENSHIFT_URI)).build();
        }
    }

    return client;
}
 
示例5
default FormValidation doTestConnection(@QueryParameter String apiURL,
        @QueryParameter String authToken) {

    EnvVars allOverrides = buildEnvVars();

    if (apiURL == null || StringUtils.isEmpty(apiURL)) {
        if (allOverrides
                .containsKey(IOpenShiftPlugin.KUBERNETES_SERVICE_HOST_ENV_KEY)
                && !StringUtils
                        .isEmpty(allOverrides
                                .get(IOpenShiftPlugin.KUBERNETES_SERVICE_HOST_ENV_KEY))) {
            apiURL = "https://"
                    + allOverrides
                            .get(IOpenShiftPlugin.KUBERNETES_SERVICE_HOST_ENV_KEY);

            if (allOverrides
                    .containsKey(IOpenShiftPlugin.KUBERNETES_SERVICE_PORT_ENV_KEY)) {
                apiURL = apiURL
                        + ":"
                        + allOverrides
                                .get(IOpenShiftPlugin.KUBERNETES_SERVICE_PORT_ENV_KEY);
            }
        } else if (allOverrides
                .containsKey(IOpenShiftPlugin.KUBERNETES_MASTER_ENV_KEY)
                && !StringUtils.isEmpty(allOverrides
                        .get(IOpenShiftPlugin.KUBERNETES_MASTER_ENV_KEY))) {
            // this one already has the https:// prefix
            apiURL = allOverrides
                    .get(IOpenShiftPlugin.KUBERNETES_MASTER_ENV_KEY);
        } else {
            return FormValidation.error("Required fields not provided");
        }
    }

    try {

        Auth auth = Auth.createInstance(null,
                getOverride(apiURL, allOverrides), allOverrides);

        ClientBuilder cb = new ClientBuilder(getOverride(apiURL,
                allOverrides))
                .sslCertificateCallback(auth)
                .usingToken(
                        Auth.deriveBearerToken(
                                getOverride(authToken, allOverrides), null,
                                false, allOverrides))
                .sslCertificateCollection(
                        getOverride(apiURL, allOverrides), auth.getCerts());

        if (auth.useCert())
            cb.sslCertCallbackWithDefaultHostnameVerifier(true);
        
        LOGGER.info("OpenShift Pipeline Plugin: testing connection for " + getOverride(apiURL, allOverrides));

        DefaultClient client = (DefaultClient) cb.build();

        if (client == null) {
            return FormValidation.error("Connection unsuccessful");
        }

        String status = client.getServerReadyStatus();
        LOGGER.info("OpenShift Pipeline Plugin: server ready status: " + status);
        if (status == null || !status.equalsIgnoreCase("ok")) {
            return FormValidation
                    .error("Connection made but server status is:  "
                            + status);
        }

        // the ready status is good for verifying the apiURL, but not for a
        // bad token;
        // making this REST call against the api server to validate the
        // token
        Request request = client
                .newRequestBuilderTo(
                        getOverride(apiURL, allOverrides) + "/apis").get()
                .build();
        Response result = client.adapt(OkHttpClient.class).newCall(request)
                .execute();
        if (result != null)
            LOGGER.info("OpenShift Pipeline Plugin: HTTP get to " + getOverride(apiURL, allOverrides) + "/apis returned HTTP code " + result.code() + " and message " + result.message());
        else
            LOGGER.info("OpenShift Pipeline Plugin: HTTP get to " + getOverride(apiURL, allOverrides) + "/apis got a null response");

    } catch (Throwable e) {
        LOGGER.log(Level.SEVERE, "doTestConnection", e);
        // note, the UnauthorizedException from the restclient/okhttp3 had a
        // misleading suggestion of using Basic authentication,
        // so going with just the exception's class name
        return FormValidation.error("Connection unsuccessful: "
                + e.getClass().getName());
    }

    return FormValidation.ok("Connection successful");
}
 
示例6
public OpenshiftStartedEnvironment(
        ExecutorService executor,
        OpenshiftBuildAgentConfig openshiftBuildAgentConfig,
        OpenshiftEnvironmentDriverModuleConfig environmentConfiguration,
        PollingMonitor pollingMonitor,
        RepositorySession repositorySession,
        String systemImageId,
        DebugData debugData,
        String accessToken,
        boolean tempBuild,
        Instant temporaryBuildExpireDate,
        MetricsConfiguration metricsConfiguration,
        Map<String, String> parameters) {

    creationPodRetry = DEFAULT_CREATION_POD_RETRY;

    if (environmentConfiguration.getCreationPodRetry() != null) {
        try {
            creationPodRetry = Integer.parseInt(environmentConfiguration.getCreationPodRetry());
        } catch (NumberFormatException e) {
            logger.error("Couldn't parse the value of creation pod retry from the configuration. Using default");
        }
    }

    logger.info("Creating new build environment using image id: " + environmentConfiguration.getImageId());

    this.executor = executor;
    this.openshiftBuildAgentConfig = openshiftBuildAgentConfig;
    this.environmentConfiguration = environmentConfiguration;
    this.pollingMonitor = pollingMonitor;
    this.repositorySession = repositorySession;
    this.imageId = systemImageId == null ? environmentConfiguration.getImageId() : systemImageId;
    this.debugData = debugData;
    if (metricsConfiguration != null) {
        this.gaugeMetric = Optional.of(metricsConfiguration.getGaugeMetric());
    }

    createRoute = environmentConfiguration.getExposeBuildAgentOnPublicUrl();

    client = new ClientBuilder(environmentConfiguration.getRestEndpointUrl())
            .usingToken(environmentConfiguration.getRestAuthToken())
            .build();
    client.getServerReadyStatus(); // make sure client is connected

    environmetVariables = new HashMap<>();

    final String buildAgentHost = environmentConfiguration.getBuildAgentHost();
    String expiresDateStamp = Long.toString(temporaryBuildExpireDate.toEpochMilli());

    Boolean proxyActive = !StringUtils.isEmpty(environmentConfiguration.getProxyServer())
            && !StringUtils.isEmpty(environmentConfiguration.getProxyPort());

    environmetVariables.put("image", imageId);
    environmetVariables
            .put("firewallAllowedDestinations", environmentConfiguration.getFirewallAllowedDestinations());
    // This property sent as Json
    environmetVariables.put(
            "allowedHttpOutgoingDestinations",
            toEscapedJsonString(environmentConfiguration.getAllowedHttpOutgoingDestinations()));
    environmetVariables.put("isHttpActive", proxyActive.toString().toLowerCase());
    environmetVariables.put("proxyServer", environmentConfiguration.getProxyServer());
    environmetVariables.put("proxyPort", environmentConfiguration.getProxyPort());
    environmetVariables.put("nonProxyHosts", environmentConfiguration.getNonProxyHosts());

    environmetVariables.put("AProxDependencyUrl", repositorySession.getConnectionInfo().getDependencyUrl());
    environmetVariables.put("AProxDeployUrl", repositorySession.getConnectionInfo().getDeployUrl());

    environmetVariables.put("build-agent-host", buildAgentHost);
    environmetVariables.put("containerPort", environmentConfiguration.getContainerPort());
    environmetVariables.put("buildContentId", repositorySession.getBuildRepositoryId());
    environmetVariables.put("accessToken", accessToken);
    environmetVariables.put("tempBuild", Boolean.toString(tempBuild));
    environmetVariables.put("expiresDate", "ts" + expiresDateStamp);
    MDCUtils.getUserId().ifPresent(v -> environmetVariables.put("logUserId", v));
    MDCUtils.getProcessContext().ifPresent(v -> environmetVariables.put("logProcessContext", v));
    environmetVariables.put("resourcesMemory", builderPodMemory(environmentConfiguration, parameters));

    createEnvironment();
}