Available as of Camel 2.14
The openshift component is a component for managing your OpenShift applications.
Maven users will need to add the following dependency to their pom.xml for this component:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-openshift</artifactId>
<version>x.x.x</version>
<!-- use the same version as your Camel core version -->
</dependency>
|
openshift:clientId[?options] |
You can append query options to the URI in the following format, ?option=value&option=value&...
|
// sending route
from("direct:apps")
.to("openshift:myClient?username=foo&password=secret&operation=list");
.to("log:apps");
|
In this case the information about all the applications is returned as pojo. If you want a json response, then set mode=json.
// stopping the foobar application
from("direct:control")
.to("openshift:myClient?username=foo&password=secret&operation=stop&application=foobar");
|
In the example above we stop the application named foobar.
Polling for gear state changes
The consumer is used for polling state changes in gears. Such as when a new gear is added/removed/ or its lifecycle is changed, eg started, or stopped etc.
// trigger when state changes on our gears
from("openshift:myClient?username=foo&password=secret&delay=30s")
.log("Event ${header.CamelOpenShiftEventType} on application ${body.name} changed state to ${header.CamelOpenShiftEventNewState}"); |
When the consumer emits an Exchange then the body contains the com.openshift.client.IApplication as the message body. And the following headers is included.
| Header | May be null | Description |
|---|---|---|
| CamelOpenShiftEventType | No | The type of the event which can be one of: added, removed or changed. |
| CamelOpenShiftEventOldState | Yes | The old state, when the event type is changed. |
| CamelOpenShiftEventNewState | No | The new state, for any of the event types |