blob: c680006c53cb4cd65748604a23daa4e7714e87f7 [file] [log] [blame]
## OpenStack Cinder Component
*Available as of Camel version 2.19*
The openstack-cinder component allows messages to be sent to an OpenStack block storage 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
[source,java]
----------------------------
openstack-cinder://hosturl[?options]
----------------------------
You can append query options to the URI in the following format
`?options=value&option2=value&...`
### URI Options
// component options: START
The OpenStack Cinder component has no options.
// component options: END
// endpoint options: START
The OpenStack Cinder endpoint is configured using URI syntax:
openstack-cinder:host
with the following path and query parameters:
#### Path Parameters (1 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
|=======================================================================
| Name | Description | Default | Type
| **host** | *Required* OpenStack host url | | String
|=======================================================================
#### Query Parameters (9 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
|=======================================================================
| Name | Description | Default | Type
| **apiVersion** (producer) | OpenStack API version | V3 | String
| **config** (producer) | OpenStack configuration | | Config
| **domain** (producer) | Authentication domain | default | String
| **operation** (producer) | The operation to do | | String
| **password** (producer) | *Required* OpenStack password | | String
| **project** (producer) | *Required* The project ID | | String
| **subsystem** (producer) | *Required* OpenStack Cinder subsystem | | String
| **username** (producer) | *Required* OpenStack username | | String
| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
|=======================================================================
// endpoint options: END
### Usage
You can use following settings for each subsystem:
### volumes
#### Operations you can perform with the Volume producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
|`create` | Create new volume.
|`get` | Get the volume.
|`getAll` | Get all volumes.
|`getAllTypes` | Get volume types.
|`update` | Update the volume.
|`delete` | Delete the volume.
|=========================================================================
#### Message headers evaluated by the Volume producer
[width="100%",cols="10%,10%,80%",options="header",]
|=========================================================================
|Header |Type |Description
|`operation` | `String` | The operation to perform.
|`ID` | `String` | ID of the volume.
|`name` |`String` |The volume name.
|`description` |`String` | Volume description.
|`size` |`Integer` |Size of volume.
|`volumeType` |`String` | Volume type.
|`imageRef` |`String` | ID of image.
|`snapshotId` |`String` | ID of snapshot.
|`isBootable` |`Boolean` | Is bootable.
|=========================================================================
If you need more precise volume settings you can create new object of the type *org.openstack4j.model.storage.block.Volume* and send in the message body.
### snapshots
#### Operations you can perform with the Snapshot producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
|`create` | Create new snapshot.
|`get` | Get the snapshot.
|`getAll` | Get all snapshots.
|`update` | Get update the snapshot.
|`delete` | Delete the snapshot.
|=========================================================================
#### Message headers evaluated by the Snapshot producer
[width="100%",cols="10%,10%,80%",options="header",]
|=========================================================================
|Header |Type |Description
|`operation` | `String` | The operation to perform.
|`ID` | `String` | ID of the server.
|`name` |`String` |The server name.
|`description` |`String` | The snapshot description.
|`VolumeId` |`String` | The Volume ID.
|`force` |`Boolean` | Force.
|=========================================================================
If you need more precise server settings you can create new object of the type *org.openstack4j.model.storage.block.VolumeSnapshot* and send in the message body.
### See Also
* link:configuring-camel.html[Configuring Camel]
* link:component.html[Component]
* link:endpoint.html[Endpoint]
* link:getting-started.html[Getting Started]
* link:openstack.html[openstack Component]