OpenStack Nova

Since Camel 2.19

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 has no options.

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 (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 Nova 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-nova.enabled

Enable openstack-nova component

true

Boolean

camel.component.openstack-nova.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:

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.