Difference between revisions of "Neutron/LBaaS/CLI"
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
+ | <<[[TableOfContents]]()>> | ||
+ | |||
= Scope = | = Scope = | ||
This document describes commands that will be introduced into python-quantumclient in order to support LBaaS advanced service. The implementation is proposed to be extensible to support different types of Quantum advanced services. | This document describes commands that will be introduced into python-quantumclient in order to support LBaaS advanced service. The implementation is proposed to be extensible to support different types of Quantum advanced services. | ||
− | + | = Implementation Details = | |
− | In the upcoming Grizzly release Quantum core will be extended by advanced service framework. The similar extension mechanism will be introduced into the Client in order to support new REST API operations | + | In the upcoming Grizzly release Quantum core will be extended by advanced service framework. The similar extension mechanism will be introduced into the Client in order to support new REST API operations. |
− | + | The extension framework is responsible for enumerating and loading extensions. Every extension announces itself with command prefix and set of supported commands. The resulting command have format <code><nowiki> [service] command </nowiki></code>, where ''service'' part may be optional and needed only to avoid interference with other extensions. | |
+ | |||
+ | In interactive mode user may specify what extension to use (in order to minimize the number of accessible commands). Note that it is not proposed to use sub-shell, since it would be harder in usage and implementation. | ||
== LBaaS Command List == | == LBaaS Command List == | ||
Line 60: | Line 64: | ||
=== healthmonitor-delete === | === healthmonitor-delete === | ||
− | |||
This command deletes a given healthmonitor object. | This command deletes a given healthmonitor object. | ||
− | |||
<pre><nowiki> | <pre><nowiki> | ||
Line 70: | Line 72: | ||
=== healthmonitor-list === | === healthmonitor-list === | ||
− | |||
This command shows list of health monitor objects available to tenant. | This command shows list of health monitor objects available to tenant. | ||
− | |||
<pre><nowiki> | <pre><nowiki> | ||
Line 81: | Line 81: | ||
=== healthmonitor-show === | === healthmonitor-show === | ||
This command shows information about a given health monitor object. | This command shows information about a given health monitor object. | ||
− | |||
<pre><nowiki> | <pre><nowiki> | ||
Line 90: | Line 89: | ||
=== healthmonitor-update === | === healthmonitor-update === | ||
This command updates information of a given health monitor object. | This command updates information of a given health monitor object. | ||
+ | |||
+ | <pre><nowiki> | ||
+ | healthmonitor-update [--type <type>] [--delay <delay>] [--max_retries <max_retries>] [--timeout <timeout>] [--name <name>] <healthmonitor-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === healthmonitor-associate === | ||
+ | Associate a healthmonitor with a pool. | ||
+ | |||
+ | <pre><nowiki> | ||
+ | healthmonitor-associate <healthmonitor-id> <pool-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === healthmonitor-disassociate === | ||
+ | Disassociate a healthmonitor with a pool. | ||
+ | |||
+ | <pre><nowiki> | ||
+ | healthmonitor-disassociate <healthmonitor-id> <pool-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === member-create === | ||
+ | Create a member | ||
+ | |||
+ | <pre><nowiki> | ||
+ | member-create --address <IP> --port <tcp port> <pool-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | * address: the IP address of the pool member on the pool's network. | ||
+ | * port: The port on which the pool member listens for requests or connections. | ||
+ | * pool_id: The pool to which the member is added. | ||
+ | |||
+ | === member-delete === | ||
+ | Delete a given member | ||
+ | |||
+ | <pre><nowiki> | ||
+ | member-delete <member-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === member-list === | ||
+ | List members that belong to a given tenant | ||
+ | |||
+ | <pre><nowiki> | ||
+ | member-list | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === member-show === | ||
+ | Show information of a given member | ||
+ | |||
+ | <pre><nowiki> | ||
+ | member-show <member-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === member-update === | ||
+ | Update member's information | ||
+ | |||
+ | <pre><nowiki> | ||
+ | member-update [--address <IP>] [--port <tcp port>] <pool-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === pool-create === | ||
+ | Create a pool | ||
+ | |||
+ | <pre><nowiki> | ||
+ | pool-create [--network-id <network-id>] [--lb-method <lb-method>] [--protocol <protocol>] <name> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | * name: name of the pool | ||
+ | * network_id: The network on which the members of the pool will be located. Only members that are on this network can be added to the pool. | ||
+ | * lb_method: The algorithm used to distribute load between the members of the pool. | ||
+ | * protocol: The protocol used by the pool members | ||
+ | |||
+ | === pool-delete === | ||
+ | Delete a given pool | ||
+ | |||
+ | <pre><nowiki> | ||
+ | pool-delete <pool-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === pool-list === | ||
+ | List pools that belong to a given tenant | ||
+ | |||
+ | <pre><nowiki> | ||
+ | pool-list | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === pool-show === | ||
+ | Show information of a given pool | ||
+ | |||
+ | <pre><nowiki> | ||
+ | pool-show <pool-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === pool-update === | ||
+ | Update pool's information | ||
+ | |||
+ | <pre><nowiki> | ||
+ | pool-update [--network-id <network-id>] [--lb-method <lb-method>] [--protocol <protocol>] [--name <name>] | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === vip-create === | ||
+ | Create a vip | ||
+ | |||
+ | <pre><nowiki> | ||
+ | vip-create --network-id <network-id> --protocol <protocol> --port <tcp port> <pool-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | * network_id: The network on which to allocate the vip's address. A tenant can only create vips on networks authorized by policy (e.g. her own networks or shared/provider networks). | ||
+ | * protocol: the protocol of the vip address. | ||
+ | * port: the port on which to listen for client traffic that is associated with the vip address. | ||
+ | * pool_id: the id of the pool that contains the real servers to which traffic is load balanced. | ||
+ | |||
+ | === vip-delete === | ||
+ | Delete a given vip | ||
+ | |||
+ | <pre><nowiki> | ||
+ | vip-delete <vip-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === vip-list === | ||
+ | List vips that belong to a given tenant | ||
+ | |||
+ | <pre><nowiki> | ||
+ | vip-list | ||
+ | </nowiki></pre> | ||
+ | |||
+ | |||
+ | === vip-show === | ||
+ | Show information of a given vip | ||
+ | |||
+ | <pre><nowiki> | ||
+ | vip-show <vip-id> | ||
+ | </nowiki></pre> | ||
+ | |||
+ | === vip-update === | ||
+ | Update vip's information | ||
<pre><nowiki> | <pre><nowiki> | ||
− | + | vip-update [--network-id <network-id>] [--protocol <protocol>] [--port <tcp port>] [--pool-id <pool-id>] [--name <name>] | |
</nowiki></pre> | </nowiki></pre> |
Revision as of 16:54, 9 November 2012
<<TableOfContents()>>
Scope
This document describes commands that will be introduced into python-quantumclient in order to support LBaaS advanced service. The implementation is proposed to be extensible to support different types of Quantum advanced services.
Implementation Details
In the upcoming Grizzly release Quantum core will be extended by advanced service framework. The similar extension mechanism will be introduced into the Client in order to support new REST API operations.
The extension framework is responsible for enumerating and loading extensions. Every extension announces itself with command prefix and set of supported commands. The resulting command have format [service] command
, where service part may be optional and needed only to avoid interference with other extensions.
In interactive mode user may specify what extension to use (in order to minimize the number of accessible commands). Note that it is not proposed to use sub-shell, since it would be harder in usage and implementation.
LBaaS Command List
The command set corresponds to Quantum/LBaaS/API_1.0
healthmonitor-create Create a healthmonitor healthmonitor-delete Delete a given healthmonitor healthmonitor-list List healthmonitors that belong to a given tenant healthmonitor-show Show information of a given healthmonitor healthmonitor-update Update healthmonitor's information healthmonitor-associate Associate a healthmonitor with a pool healthmonitor-disassociate Disassociate a healthmonitor with a pool member-create Create a member member-delete Delete a given member member-list List members that belong to a given tenant member-show Show information of a given member member-update Update member's information pool-create Create a pool pool-delete Delete a given pool pool-list List pools that belong to a given tenant pool-show Show information of a given pool pool-update Update pool's information vip-create Create a vip vip-delete Delete a given vip vip-list List vips that belong to a given tenant vip-show Show information of a given vip vip-update Update vip's information
healthmonitor-create
This command creates a new healthmonitor object.
healthmonitor-create --type <type> --delay <delay> --max_retries <max_retries> [--timeout <timeout>] <name>
- delay: This is the minimum time in seconds between regular connections of the member.
- timeout: Maximum number of seconds for a monitor to wait for a connection to be established before it times out. The value must be less than the delay value.
- max_retries: Number of permissible connection failures before changing the member's status to INACTIVE. Must be a number between 1 and 10.
healthmonitor-delete
This command deletes a given healthmonitor object.
healthmonitor-delete <healthmonitor-id>
healthmonitor-list
This command shows list of health monitor objects available to tenant.
healthmonitor-list
healthmonitor-show
This command shows information about a given health monitor object.
healthmonitor-show <healthmonitor-id>
healthmonitor-update
This command updates information of a given health monitor object.
healthmonitor-update [--type <type>] [--delay <delay>] [--max_retries <max_retries>] [--timeout <timeout>] [--name <name>] <healthmonitor-id>
healthmonitor-associate
Associate a healthmonitor with a pool.
healthmonitor-associate <healthmonitor-id> <pool-id>
healthmonitor-disassociate
Disassociate a healthmonitor with a pool.
healthmonitor-disassociate <healthmonitor-id> <pool-id>
member-create
Create a member
member-create --address <IP> --port <tcp port> <pool-id>
- address: the IP address of the pool member on the pool's network.
- port: The port on which the pool member listens for requests or connections.
- pool_id: The pool to which the member is added.
member-delete
Delete a given member
member-delete <member-id>
member-list
List members that belong to a given tenant
member-list
member-show
Show information of a given member
member-show <member-id>
member-update
Update member's information
member-update [--address <IP>] [--port <tcp port>] <pool-id>
pool-create
Create a pool
pool-create [--network-id <network-id>] [--lb-method <lb-method>] [--protocol <protocol>] <name>
- name: name of the pool
- network_id: The network on which the members of the pool will be located. Only members that are on this network can be added to the pool.
- lb_method: The algorithm used to distribute load between the members of the pool.
- protocol: The protocol used by the pool members
pool-delete
Delete a given pool
pool-delete <pool-id>
pool-list
List pools that belong to a given tenant
pool-list
pool-show
Show information of a given pool
pool-show <pool-id>
pool-update
Update pool's information
pool-update [--network-id <network-id>] [--lb-method <lb-method>] [--protocol <protocol>] [--name <name>]
vip-create
Create a vip
vip-create --network-id <network-id> --protocol <protocol> --port <tcp port> <pool-id>
- network_id: The network on which to allocate the vip's address. A tenant can only create vips on networks authorized by policy (e.g. her own networks or shared/provider networks).
- protocol: the protocol of the vip address.
- port: the port on which to listen for client traffic that is associated with the vip address.
- pool_id: the id of the pool that contains the real servers to which traffic is load balanced.
vip-delete
Delete a given vip
vip-delete <vip-id>
vip-list
List vips that belong to a given tenant
vip-list
vip-show
Show information of a given vip
vip-show <vip-id>
vip-update
Update vip's information
vip-update [--network-id <network-id>] [--protocol <protocol>] [--port <tcp port>] [--pool-id <pool-id>] [--name <name>]