| = OpenStack Nova Component |
| :doctitle: OpenStack Nova |
| :shortname: openstack-nova |
| :artifactid: camel-openstack |
| :description: Access OpenStack to manage compute resources. |
| :since: 2.19 |
| :supportlevel: Stable |
| :tabs-sync-option: |
| :component-header: Only producer is supported |
| //Manually maintained attributes |
| :group: OpenStack |
| |
| *Since Camel {since}* |
| |
| *{component-header}* |
| |
| The Openstack Nova component allows messages to be sent to an OpenStack compute services. |
| |
| == Dependencies |
| |
| Maven users will need to add the following dependency to their `pom.xml`. |
| |
| .pom.xml |
| [source,xml] |
| --------------------------------------- |
| <dependency> |
| <groupId>org.apache.camel</groupId> |
| <artifactId>camel-openstack</artifactId> |
| <version>${camel-version}</version> |
| </dependency> |
| --------------------------------------- |
| |
| where `${camel-version`} must be replaced by the actual version of Camel. |
| |
| |
| == URI Format |
| |
| ---------------------------- |
| openstack-nova://hosturl[?options] |
| ---------------------------- |
| |
| // component options: START |
| include::partial$component-configure-options.adoc[] |
| include::partial$component-endpoint-options.adoc[] |
| include::partial$component-endpoint-headers.adoc[] |
| // component options: END |
| |
| == Usage |
| |
| You can use the following settings for each subsystem: |
| |
| === Flavors |
| |
| ==== Operations you can perform with the Flavor producer |
| [width="100%",cols="20%,80%",options="header",] |
| |========================================================================= |
| |Operation | Description |
| |
| |`create` | Create new flavor. |
| |
| |`get` | Get the flavor. |
| |
| |`getAll` | Get all flavors. |
| |
| |`delete` | Delete the flavor. |
| |========================================================================= |
| |
| If you need more precise flavor settings, you can create a new object of the type `org.openstack4j.model.compute.Flavor` and send in the message body. |
| |
| === Servers |
| |
| ==== Operations you can perform with the Server producer |
| [width="100%",cols="20%,80%",options="header",] |
| |========================================================================= |
| |Operation | Description |
| |
| |`create` | Create a new server. |
| |
| |`createSnapshot` | Create snapshot of the server. |
| |
| |`get` | Get the server. |
| |
| |`getAll` | Get all servers. |
| |
| |`delete` | Delete the server. |
| |
| |`action` | Perform an action on the server. |
| |========================================================================= |
| |
| If you need more precise server settings, you can create a new object of the type `org.openstack4j.model.compute.ServerCreate` and send in the message body. |
| |
| === Key/Pairs |
| |
| ==== Operations you can perform with the Keypair producer |
| [width="100%",cols="20%,80%",options="header",] |
| |========================================================================= |
| |Operation | Description |
| |
| |`create` | Create new keypair. |
| |
| |`get` | Get the keypair. |
| |
| |`getAll` | Get all keypairs. |
| |
| |`delete` | Delete the keypair. |
| |
| |========================================================================= |
| |
| === Example |
| |
| The following route lists the servers. |
| The endpoint is the address of the identity service (Keystone), and the credentials are property placeholders: |
| |
| [source,yaml] |
| ---- |
| - route: |
| from: |
| uri: direct:listServers |
| steps: |
| - to: |
| uri: openstack-nova:http://controller:5000/v3 |
| parameters: |
| username: "{{openstack.username}}" |
| password: "{{openstack.password}}" |
| project: "{{openstack.project}}" |
| subsystem: servers |
| operation: getAll |
| - log: |
| message: "Found ${body.size()} servers" |
| ---- |