protected void doGetBuild(Exchange exchange, String operation) throws Exception { Build build = null; String buildName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_BUILD_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(buildName)) { LOG.error("Get a specific Build require specify a Build name"); throw new IllegalArgumentException("Get a specific Build require specify a Build name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific Build require specify a namespace name"); throw new IllegalArgumentException("Get a specific Build require specify a namespace name"); } build = getEndpoint().getKubernetesClient().adapt(OpenShiftClient.class).builds().inNamespace(namespaceName).withName(buildName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(build); } }
protected void doListBuildByLabels(Exchange exchange, String operation) throws Exception { BuildList buildList = null; Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_BUILDS_LABELS, Map.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (!ObjectHelper.isEmpty(namespaceName)) { NonNamespaceOperation<Build, BuildList, DoneableBuild, BuildResource<Build, DoneableBuild, String, LogWatch>> builds = getEndpoint().getKubernetesClient() .adapt(OpenShiftClient.class).builds().inNamespace(namespaceName); for (Map.Entry<String, String> entry : labels.entrySet()) { builds.withLabel(entry.getKey(), entry.getValue()); } buildList = builds.list(); } else { FilterWatchListMultiDeletable<Build, BuildList, Boolean, Watch, Watcher<Build>> builds = getEndpoint().getKubernetesClient().adapt(OpenShiftClient.class).builds() .inAnyNamespace(); for (Map.Entry<String, String> entry : labels.entrySet()) { builds.withLabel(entry.getKey(), entry.getValue()); } buildList = builds.list(); } MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(buildList.getItems()); }
@Override public String trigger(String namespace, final String buildName) { final BlockingQueue<String> uuid = new ArrayBlockingQueue<>(1); try (Watch watch = kubernetes.adapt(OpenShiftClient.class).builds().inNamespace(namespace).watch(new Watcher<Build>() { @Override public void eventReceived(Action action, Build build) { if (action == Action.ADDED && KubernetesHelper.getName(build).equals(buildName)) { uuid.add(Builds.getUid(build)); } } @Override public void onClose(KubernetesClientException e) { // ignore } })) { return uuid.poll(60, TimeUnit.SECONDS); } catch (InterruptedException e) { throw KubernetesClientException.launderThrowable(e); } } }
protected void doList(Exchange exchange, String operation) throws Exception { BuildList buildList = getEndpoint().getKubernetesClient().adapt(OpenShiftClient.class).builds().inAnyNamespace().list(); exchange.getOut().setBody(buildList.getItems()); }
public void start() { final BuildList builds; if (namespace != null && !namespace.isEmpty()) { builds = getOpenShiftClient().builds().inNamespace(namespace).withField("status", BuildPhases.RUNNING).list(); buildsWatch = getOpenShiftClient().builds().inNamespace(namespace).withResourceVersion(builds.getMetadata().getResourceVersion()).watch(this); } else { builds = getOpenShiftClient().builds().withField("status", BuildPhases.RUNNING).list(); buildsWatch = getOpenShiftClient().builds().withResourceVersion(builds.getMetadata().getResourceVersion()).watch(this); } }
public void start() { final BuildList builds; if (namespace != null && !namespace.isEmpty()) { builds = getOpenShiftClient().builds().inNamespace(namespace).withField("status", BuildPhases.NEW).list(); buildsWatch = getOpenShiftClient().builds().inNamespace(namespace).withResourceVersion(builds.getMetadata().getResourceVersion()).watch(this); } else { builds = getOpenShiftClient().builds().withField("status", BuildPhases.NEW).list(); buildsWatch = getOpenShiftClient().builds().withResourceVersion(builds.getMetadata().getResourceVersion()).watch(this);
"Failed to tail build log", logTerminateLatch, log); Watcher<Build> buildWatcher = getBuildWatcher(latch, buildName, buildHolder); try (Watch watcher = client.builds().withName(buildName).watch(buildWatcher)) { Build lastBuild = client.builds().withName(buildName).get(); if (OpenshiftHelper.isFinished(KubernetesResourceUtil.getBuildStatusPhase(lastBuild))) { log.debug("Build %s is already finished", buildName); if (build == null) { log.debug("Build watcher on %s was closed prematurely", buildName); build = client.builds().withName(buildName).get();
public static void cancelOpenShiftBuild(Build build) { logger.info("cancelling build in namespace " + build.getMetadata().getNamespace() + " with name: " + build.getMetadata().getName()); getOpenShiftClient().builds().inNamespace(build.getMetadata().getNamespace()).withName(build.getMetadata().getName()) .edit() .editStatus().withPhase(CANCELLED).endStatus() .done(); }
String yaml = KubernetesHelper.toYaml(environmentRollout); OpenShiftClient oClient = openShiftClient(); BuildResource<Build, DoneableBuild, String, LogWatch> resource = oClient.builds().inNamespace(this.buildConfigNamespace).withName(buildName); try { Build build = resource.get();
String yaml = KubernetesHelper.toYaml(environmentRollout); OpenShiftClient oClient = openShiftClient(); BuildResource<Build, DoneableBuild, String, LogWatch> resource = oClient.builds().inNamespace(this.buildConfigNamespace).withName(buildName); try { Build build = resource.get();
private void logBuildFailure(OpenShiftClient client, String buildName) throws Fabric8ServiceException { try { List<Build> builds = client.builds().inNamespace(client.getNamespace()).list().getItems(); for(Build build : builds) { if(build.getMetadata().getName().contains(buildName)) { log.error(build.getMetadata().getName() + "\t" + "\t" + build.getStatus().getReason() + "\t" + build.getStatus().getMessage()); throw new Fabric8ServiceException("Unable to build the image using the OpenShift build service", new KubernetesClientException(build.getStatus().getReason() + " " + build.getStatus().getMessage())); } } log.error("Also, check cluster events via `oc get events` to see what could have possibly gone wrong"); } catch (KubernetesClientException clientException) { Status status = clientException.getStatus(); if (status != null) log.error("OpenShift Error: [%d] %s", status.getCode(), status.getMessage()); } }
getOpenShiftClient().builds().inNamespace(cause.getNamespace()).withName(cause.getName()).edit() .editMetadata() .addToAnnotations(ANNOTATION_JENKINS_STATUS_JSON, json)