blob: 804c833f22315d4f32a27b2b6bc7115d27ea0465 [file]
= 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"
----