blob: cad06ce6a992b3389f31e6c9b5d346628107f9c9 [file]
[[openstack-neutron-component]]
== OpenStack Neutron Component
*Available as of Camel version 2.19*
The openstack-neutron component allows messages to be sent to an OpenStack network 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-neutron://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 Neutron component has no options.
// component options: END
// endpoint options: START
The OpenStack Neutron endpoint is configured using URI syntax:
----
openstack-neutron: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 Neutron 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:
### networks
#### Operations you can perform with the Network producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
|`create` | Create new network.
|`get` | Get the network.
|`getAll` | Get all networks.
|`delete` | Delete the network.
|=========================================================================
#### Message headers evaluated by the Network producer
[width="100%",cols="10%,10%,80%",options="header",]
|=========================================================================
|Header |Type |Description
|`operation` | `String` | The operation to perform.
|`ID` | `String` | ID of the network.
|`name` |`String` |The network name.
|`tenantId` |`String` |Tenant ID.
|`adminStateUp` |`Boolean` |AdminStateUp header.
|`networkType` |`org.openstack4j.model.network.NetworkType` |Network type.
|`physicalNetwork` |`String` |Physical network.
|`segmentId` |`String` |Segment ID.
|`isShared` |`Boolean` |Is shared.
|`isRouterExternal` |`Boolean` | Is router external.
|=========================================================================
If you need more precise network settings you can create new object of the type *org.openstack4j.model.network.Network* and send in the message body.
### subnets
#### Operations you can perform with the Subnet producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
|`create` | Create new subnet.
|`get` | Get the subnet.
|`getAll` | Get all subnets.
|`delete` | Delete the subnet.
|`action` | Perform an action on the subnet.
|=========================================================================
#### Message headers evaluated by the Subnet producer
[width="100%",cols="10%,10%,80%",options="header",]
|=========================================================================
|Header |Type |Description
|`operation` | `String` | The operation to perform.
|`ID` | `String` | ID of the subnet.
|`name` |`String` |The subnet name.
|`networkId` |`String` |Network ID.
|`enableDHCP` |`Boolean` | Enable DHCP.
|`gateway` |`String` |Gateway.
|=========================================================================
If you need more precise subnet settings you can create new object of the type *org.openstack4j.model.network.Subnet* and send in the message body.
### ports
#### Operations you can perform with the Port producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
|`create` | Create new port.
|`get` | Get the port.
|`getAll` | Get all ports.
|`update` | Update the port.
|`delete` | Delete the port.
|=========================================================================
#### Message headers evaluated by the Port producer
[width="100%",cols="10%,10%,80%",options="header",]
|=========================================================================
|Header |Type |Description
|`operation` | `String` | The operation to perform.
|`name` |`String` |The port name.
|`networkId` |`String` |Network ID.
|`tenantId` |`String` |Tenant ID.
|`deviceId` | `String` | Device ID.
|`macAddress` | `String` | MAC address.
|=========================================================================
### routers
#### Operations you can perform with the Router producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
|`create` | Create new router.
|`get` | Get the router.
|`getAll` | Get all routers.
|`update` | Update the router.
|`delete` | Delete the router.
|`attachInterface` | Attach an interface.
|`detachInterface` | Detach an interface.
|=========================================================================
#### Message headers evaluated by the Port producer
[width="100%",cols="10%,10%,80%",options="header",]
|=========================================================================
|Header |Type |Description
|`operation` | `String` | The operation to perform.
|`name` |`String` |The router name.
|`routerId` |`String` |Router ID.
|`subnetId` |`String` |Subnet ID.
|`portId` |`String` |Port ID.
|`interfaceType` | `org.openstack4j.model.network.AttachInterfaceType` | Interface type.
|`tenantId` | `String` | Tenant ID.
|=========================================================================
### See Also
* Configuring Camel
* Component
* Endpoint
* Getting Started
* openstack Component