OpenStack Cinder

Since Camel 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

<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-cinder://hosturl[?options]

You can append query options to the URI in the following format ?options=value&option2=value&…​

URI Options

The OpenStack Cinder component has no options.

The OpenStack Cinder endpoint is configured using URI syntax:

openstack-cinder:host

with the following path and query parameters:

Path Parameters (1 parameters):

Name Description Default Type

host

Required OpenStack host url

String

Query Parameters (9 parameters):

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

Spring Boot Auto-Configuration

When using Spring Boot make sure to use the following Maven dependency to have support for auto configuration:

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-openstack-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

The component supports 2 options, which are listed below.

Name Description Default Type

camel.component.openstack-cinder.enabled

Enable openstack-cinder component

true

Boolean

camel.component.openstack-cinder.resolve-property-placeholders

Whether the component should resolve property placeholders on itself when starting. Only properties which are of String type can use property placeholders.

true

Boolean

Usage

You can use following settings for each subsystem:

volumes

Operations you can perform with the Volume producer

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

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

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

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.