private void updateExchange(Exchange exchange, Object body) { exchange.getOut().setBody(body); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); } }
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 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 doGetPod(Exchange exchange, String operation) throws Exception { Pod pod = null; String podName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_POD_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(podName)) { LOG.error("Get a specific pod require specify a pod name"); throw new IllegalArgumentException( "Get a specific pod require specify a pod name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific pod require specify a namespace name"); throw new IllegalArgumentException( "Get a specific pod require specify a namespace name"); } pod = getEndpoint().getKubernetesClient().pods() .inNamespace(namespaceName).withName(podName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(pod); }
protected void doDeleteDeployment(Exchange exchange, String operation) { String deploymentName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(deploymentName)) { LOG.error("Delete a specific deployment require specify a deployment name"); throw new IllegalArgumentException("Delete a specific deployment require specify a deployment name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific deployment require specify a namespace name"); throw new IllegalArgumentException("Delete a specific deployment require specify a namespace name"); } Boolean deployment = getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespaceName).withName(deploymentName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deployment); }
protected void doDeleteJob(Exchange exchange, String operation) throws Exception { String jobName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_JOB_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(jobName)) { LOG.error("Delete a specific job require specify a job name"); throw new IllegalArgumentException("Delete a specific job require specify a job name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific job require specify a namespace name"); throw new IllegalArgumentException("Delete a specific job require specify a namespace name"); } getEndpoint().getKubernetesClient().batch().jobs().inNamespace(namespaceName).withName(jobName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); } }
protected void doGetHPA(Exchange exchange, String operation) throws Exception { HorizontalPodAutoscaler hpa = null; String podName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_HPA_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(podName)) { LOG.error("Get a specific hpa require specify an hpa name"); throw new IllegalArgumentException("Get a specific hpa require specify an hpa name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific hpa require specify a namespace name"); throw new IllegalArgumentException("Get a specific hpa require specify a namespace name"); } hpa = getEndpoint().getKubernetesClient().autoscaling().horizontalPodAutoscalers().inNamespace(namespaceName).withName(podName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(hpa); }
protected void doGetReplicationController(Exchange exchange, String operation) throws Exception { ReplicationController rc = null; String rcName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_REPLICATION_CONTROLLER_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(rcName)) { LOG.error("Get a specific replication controller require specify a replication controller name"); throw new IllegalArgumentException( "Get a specific replication controller require specify a replication controller name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific replication controller require specify a namespace name"); throw new IllegalArgumentException( "Get a specific replication controller require specify a namespace name"); } rc = getEndpoint().getKubernetesClient().replicationControllers() .inNamespace(namespaceName).withName(rcName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(rc); }
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));
protected void doDeleteService(Exchange exchange, String operation) throws Exception { String serviceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_SERVICE_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(serviceName)) { LOG.error("Delete a specific service require specify a service name"); throw new IllegalArgumentException( "Delete a specific service require specify a service name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific service require specify a namespace name"); throw new IllegalArgumentException( "Delete a specific service require specify a namespace name"); } boolean serviceDeleted = getEndpoint().getKubernetesClient().services() .inNamespace(namespaceName).withName(serviceName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(serviceDeleted); } }
@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 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); } }
protected void doGetSecret(Exchange exchange, String operation) throws Exception { Secret secret = null; String secretName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_SECRET_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(secretName)) { LOG.error("Get a specific Secret require specify a Secret name"); throw new IllegalArgumentException( "Get a specific Secret require specify a Secret name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific Secret require specify a namespace name"); throw new IllegalArgumentException( "Get a specific Secret require specify a namespace name"); } secret = getEndpoint().getKubernetesClient().secrets() .inNamespace(namespaceName).withName(secretName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(secret); }
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 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 doGetServiceAccount(Exchange exchange, String operation) throws Exception { ServiceAccount sa = null; String saName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_SERVICE_ACCOUNT_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(saName)) { LOG.error("Get a specific Service Account require specify a Service Account name"); throw new IllegalArgumentException( "Get a specific Service Account require specify a Service Account name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific Service Account require specify a namespace name"); throw new IllegalArgumentException( "Get a specific Service Account require specify a namespace name"); } sa = getEndpoint().getKubernetesClient().serviceAccounts() .inNamespace(namespaceName).withName(saName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(sa); }
protected void doDeletePersistentVolumeClaim(Exchange exchange, String operation) throws Exception { String pvcName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_PERSISTENT_VOLUME_CLAIM_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(pvcName)) { LOG.error("Delete a specific Persistent Volume Claim require specify a Persistent Volume Claim name"); throw new IllegalArgumentException( "Delete a specific Persistent Volume Claim require specify a Persistent Volume Claim name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific Persistent Volume Claim require specify a namespace name"); throw new IllegalArgumentException( "Delete a specific Persistent Volume Claim require specify a namespace name"); } boolean pvcDeleted = getEndpoint().getKubernetesClient() .persistentVolumeClaims().inNamespace(namespaceName) .withName(pvcName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(pvcDeleted); } }
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); } }