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