protected void doDeleteConfigMap(Exchange exchange, String operation) throws Exception { String configMapName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CONFIGMAP_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(configMapName)) { LOG.error("Delete a specific config map require specify a config map name"); throw new IllegalArgumentException("Delete a specific config map require specify a config map name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific config map require specify a namespace name"); throw new IllegalArgumentException("Delete a specific config map require specify a namespace name"); } boolean cfMapDeleted = getEndpoint().getKubernetesClient().configMaps().inNamespace(namespaceName).withName(configMapName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(cfMapDeleted); } }
public void process(Message message) throws IOException { String fileName = message.getHeader(Exchange.FILE_NAME, String.class); String type = MessageHelper.getContentType(message); type = type == null ? "text/html" : type; byte[] content = message.getBody(byte[].class); logger.info("saving " + fileName + ", " + type); putFile(fileName, type, content); }
@Handler public void printMessageHistory(Exchange exchange) { // print message history String routeStackTrace = MessageHelper.dumpMessageHistoryStacktrace(exchange, historyFormatter, false); LOG.debug(routeStackTrace); }
protected void doList(Exchange exchange, String operation) throws Exception { ServiceList servicesList = null; String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (!ObjectHelper.isEmpty(namespaceName)) { servicesList = getEndpoint().getKubernetesClient().services() .inNamespace(namespaceName).list(); } else { servicesList = getEndpoint().getKubernetesClient().services().inAnyNamespace() .list(); } MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(servicesList.getItems()); }
private void updateExchange(Exchange exchange, Object body) { exchange.getOut().setBody(body); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); } }
void onResponse(Exchange exchange, SpanCustomizer span) { String id = exchange.getExchangeId(); String mep = exchange.getPattern().name(); span.tag("camel.server.endpoint.url", url); span.tag("camel.server.exchange.id", id); span.tag("camel.server.exchange.pattern", mep); if (exchange.getException() != null) { String message = exchange.getException().getMessage(); span.tag("camel.server.exchange.failure", message); } else if (eventNotifier.isIncludeMessageBody() || eventNotifier.isIncludeMessageBodyStreams()) { boolean streams = eventNotifier.isIncludeMessageBodyStreams(); StreamCache cache = prepareBodyForLogging(exchange, streams); String body = MessageHelper.extractBodyForLogging(exchange.hasOut() ? exchange.getOut() : exchange.getIn(), "", streams, streams); span.tag("camel.server.exchange.message.response.body", body); if (cache != null) { cache.reset(); } } // lets capture http response code for http based components String responseCode = exchange.hasOut() ? exchange.getOut().getHeader(Exchange.HTTP_RESPONSE_CODE, String.class) : exchange.getIn().getHeader(Exchange.HTTP_RESPONSE_CODE, String.class); if (responseCode != null) { span.tag("camel.server.exchange.message.response.code", responseCode); } }
@Override @SuppressWarnings("unchecked") public boolean process(Exchange exchange, AsyncCallback callback) { Message in = exchange.getIn(); Message out = exchange.getOut(); MessageHelper.copyHeaders(exchange.getIn(), out, true); Object body = in.getBody(); Long millis; out.setBody(queue.addAll((Collection<? extends Object>) body)); } else { out.setBody(queue.add(body));
@Override public Object toHttpResponse(HttpServerExchange httpExchange, Message message) throws IOException { boolean failed = message.getExchange().isFailed(); int defaultCode = failed ? 500 : 200; int code = message.getHeader(Exchange.HTTP_RESPONSE_CODE, defaultCode, int.class); TypeConverter tc = message.getExchange().getContext().getTypeConverter(); Object value = entry.getValue(); final Iterator<?> it = ObjectHelper.createIterator(value, null); while (it.hasNext()) { String headerValue = tc.convertTo(String.class, it.next()); Object body = message.getBody(); Exception exception = message.getExchange().getException(); String contentType = MessageHelper.getContentType(message); if (contentType != null) {
protected void doDeleteNamespace(Exchange exchange, String operation) { String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific namespace require specify a namespace name"); throw new IllegalArgumentException( "Delete a specific namespace require specify a namespace name"); } Boolean namespace = getEndpoint().getKubernetesClient().namespaces() .withName(namespaceName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(namespace); } }
protected void doGetNode(Exchange exchange, String operation) throws Exception { Node node = null; String pvName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NODE_NAME, String.class); if (ObjectHelper.isEmpty(pvName)) { LOG.error("Get a specific Node require specify a Node name"); throw new IllegalArgumentException("Get a specific Node require specify a Node name"); } node = getEndpoint().getKubernetesClient().nodes().withName(pvName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(node); } }
protected void doListResourceQuotasByLabels(Exchange exchange, String operation) throws Exception { ResourceQuotaList resList = null; Map<String, String> labels = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_RESOURCES_QUOTA_LABELS, Map.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (!ObjectHelper.isEmpty(namespaceName)) { NonNamespaceOperation<ResourceQuota, ResourceQuotaList, DoneableResourceQuota, Resource<ResourceQuota, DoneableResourceQuota>> resQuota; resQuota = getEndpoint().getKubernetesClient().resourceQuotas() .inNamespace(namespaceName); for (Map.Entry<String, String> entry : labels.entrySet()) { resQuota.withLabel(entry.getKey(), entry.getValue()); } resList = resQuota.list(); } else { MixedOperation<ResourceQuota, ResourceQuotaList, DoneableResourceQuota, Resource<ResourceQuota, DoneableResourceQuota>> resQuota; resQuota = getEndpoint().getKubernetesClient().resourceQuotas(); for (Map.Entry<String, String> entry : labels.entrySet()) { resQuota.withLabel(entry.getKey(), entry.getValue()); } resList = resQuota.list(); } MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(resList.getItems()); }
protected void doGetPersistentVolume(Exchange exchange, String operation) throws Exception { PersistentVolume pv = null; String pvName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_PERSISTENT_VOLUME_NAME, String.class); if (ObjectHelper.isEmpty(pvName)) { LOG.error("Get a specific Persistent Volume require specify a Persistent Volume name"); throw new IllegalArgumentException( "Get a specific Persistent Volume require specify a Persistent Volume name"); } pv = getEndpoint().getKubernetesClient().persistentVolumes().withName(pvName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(pv); } }
protected void doListNamespaceByLabel(Exchange exchange, String operation) { Map<String, String> labels = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_LABELS, Map.class); if (ObjectHelper.isEmpty(labels)) { LOG.error("Get a specific namespace by labels require specify a labels set"); throw new IllegalArgumentException( "Get a specific namespace by labels require specify a labels set"); } NonNamespaceOperation<Namespace, NamespaceList, DoneableNamespace, Resource<Namespace, DoneableNamespace>> namespaces = getEndpoint().getKubernetesClient().namespaces(); for (Map.Entry<String, String> entry : labels.entrySet()) { namespaces.withLabel(entry.getKey(), entry.getValue()); } NamespaceList namespace = namespaces.list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(namespace.getItems()); }
protected void doGetDeployment(Exchange exchange, String operation) throws Exception { Deployment deployment = null; String deploymentName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, String.class); if (ObjectHelper.isEmpty(deploymentName)) { LOG.error("Get a specific Deployment require specify a Deployment name"); throw new IllegalArgumentException("Get a specific Deployment require specify a Deployment name"); } deployment = getEndpoint().getKubernetesClient().apps().deployments().withName(deploymentName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deployment); }
protected void doListPodsByLabel(Exchange exchange, String operation) { Map<String, String> labels = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_PODS_LABELS, Map.class); if (ObjectHelper.isEmpty(labels)) { LOG.error("Get pods by labels require specify a labels set"); throw new IllegalArgumentException( "Get pods by labels require specify a labels set"); } FilterWatchListMultiDeletable<Pod, PodList, Boolean, Watch, Watcher<Pod>> pods = getEndpoint().getKubernetesClient().pods().inAnyNamespace(); for (Map.Entry<String, String> entry : labels.entrySet()) { pods.withLabel(entry.getKey(), entry.getValue()); } PodList podList = pods.list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(podList.getItems()); }
protected void doListNodesByLabels(Exchange exchange, String operation) throws Exception { NodeList nodeList = null; Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NODES_LABELS, Map.class); NonNamespaceOperation<Node, NodeList, DoneableNode, Resource<Node, DoneableNode>> nodes = getEndpoint().getKubernetesClient().nodes(); for (Map.Entry<String, String> entry : labels.entrySet()) { nodes.withLabel(entry.getKey(), entry.getValue()); } nodeList = nodes.list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(nodeList.getItems()); }
protected void doListConfigMapsByLabels(Exchange exchange, String operation) throws Exception { ConfigMapList configMapsList = null; Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_CONFIGMAPS_LABELS, Map.class); FilterWatchListMultiDeletable<ConfigMap, ConfigMapList, Boolean, Watch, Watcher<ConfigMap>> configMaps = getEndpoint().getKubernetesClient().configMaps().inAnyNamespace(); for (Map.Entry<String, String> entry : labels.entrySet()) { configMaps.withLabel(entry.getKey(), entry.getValue()); } configMapsList = configMaps.list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(configMapsList.getItems()); }
protected void doListDeploymentsByLabels(Exchange exchange, String operation) throws Exception { DeploymentList deploymentList = null; Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS, Map.class); NonNamespaceOperation<Deployment, DeploymentList, DoneableDeployment, ScalableResource<Deployment, DoneableDeployment>> deployments = getEndpoint().getKubernetesClient() .apps().deployments(); for (Map.Entry<String, String> entry : labels.entrySet()) { deployments.withLabel(entry.getKey(), entry.getValue()); } deploymentList = deployments.list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deploymentList.getItems()); }
protected void doListPersistentVolumesByLabels(Exchange exchange, String operation) throws Exception { PersistentVolumeList pvList = null; Map<String, String> labels = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_PERSISTENT_VOLUMES_LABELS, Map.class); NonNamespaceOperation<PersistentVolume, PersistentVolumeList, DoneablePersistentVolume, Resource<PersistentVolume, DoneablePersistentVolume>> pvs; pvs = getEndpoint().getKubernetesClient().persistentVolumes(); for (Map.Entry<String, String> entry : labels.entrySet()) { pvs.withLabel(entry.getKey(), entry.getValue()); } pvList = pvs.list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(pvList.getItems()); }
protected void doCreateNamespace(Exchange exchange, String operation) { String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Create a specific namespace require specify a namespace name"); throw new IllegalArgumentException( "Create a specific namespace require specify a namespace name"); } Map<String, String> labels = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_LABELS, Map.class); Namespace ns = new NamespaceBuilder().withNewMetadata() .withName(namespaceName).withLabels(labels).endMetadata() .build(); Namespace namespace = getEndpoint().getKubernetesClient().namespaces() .create(ns); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(namespace); }