OpenStack Nova Component

Since Camel 2.19

Only producer is supported

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

<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]

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

URI Options

The OpenStack Nova component supports 3 options, which are listed below.

Name Description Default Type

basicPropertyBinding (advanced)

Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities

false

boolean

lazyStartProducer (producer)

Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.

false

boolean

bridgeErrorHandler (consumer)

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.

false

boolean

The OpenStack Nova endpoint is configured using URI syntax:

openstack-nova:host

with the following path and query parameters:

Path Parameters (1 parameters):

Name Description Default Type

host

Required OpenStack host url

String

Query Parameters (11 parameters):

Name Description Default Type

apiVersion (producer)

OpenStack API version

V3

String

config (producer)

OpenStack configuration

Config

domain (producer)

Authentication domain

default

String

lazyStartProducer (producer)

Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.

false

boolean

operation (producer)

The operation to do

String

password (producer)

Required OpenStack password

String

project (producer)

Required The project ID

String

subsystem (producer)

Required OpenStack Nova subsystem

String

username (producer)

Required OpenStack username

String

basicPropertyBinding (advanced)

Whether the endpoint should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities

false

boolean

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.springboot</groupId>
  <artifactId>camel-openstack-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

The component supports 4 options, which are listed below.

Name Description Default Type

camel.component.openstack-nova.basic-property-binding

Whether the component should use basic property binding (Camel 2.x) or the newer property binding with additional capabilities

false

Boolean

camel.component.openstack-nova.bridge-error-handler

Allows for bridging the consumer to the Camel routing Error Handler, which mean any exceptions occurred while the consumer is trying to pickup incoming messages, or the likes, will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions, that will be logged at WARN or ERROR level and ignored.

false

Boolean

camel.component.openstack-nova.enabled

Enable openstack-nova component

true

Boolean

camel.component.openstack-nova.lazy-start-producer

Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel’s routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing.

false

Boolean

Usage

You can use following settings for each subsystem:

flavors

Operations you can perform with the Flavor producer

Operation Description

create

Create new flavor.

get

Get the flavor.

getAll

Get all flavors.

delete

Delete the flavor.

Message headers evaluated by the Flavor producer

Header Type Description

operation

String

The operation to perform.

ID

String

ID of the flavor.

name

String

The flavor name.

VCPU

Integer

The number of flavor VCPU.

ram

Integer

Size of RAM.

disk

Integer

Size of disk.

swap

Integer

Size of swap.

rxtxFactor

Integer

Rxtx Factor.

If you need more precise flavor settings you can create 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

Operation Description

create

Create 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.

Message headers evaluated by the Server producer

Header Type Description

operation

String

The operation to perform.

ID

String

ID of the server.

name

String

The server name.

ImageId

String

The Image ID.

FlavorId

String

The ID of flavor which will be used.

KeypairName

String

The Keypair name.

NetworkId

String

The network ID.

AdminPassword

String

Admin password of the new server.

action

org.openstack4j.model.compute.Action

An action to perform.

If you need more precise server settings you can create new object of the type org.openstack4j.model.compute.ServerCreate and send in the message body.

keypairs

Operations you can perform with the Keypair producer

Operation Description

create

Create new keypair.

get

Get the keypair.

getAll

Get all keypairs.

delete

Delete the keypair.

Message headers evaluated by the Keypair producer

Header Type Description

operation

String

The operation to perform.

name

String

The keypair name.