Neutron/LBaaS/CLI

= Scope =

This document describes commands that will be introduced into python-quantumclient in order to support LBaaS advanced service.

= Implementation Details =

All LBaaS commands have prefix lb- in order to avoid ambiguity. The set of commands corresponds to Quantum/LBaaS/API_1.0:

lb-healthmonitor-create       Create a health monitor lb-healthmonitor-delete       Delete a given health monitor lb-healthmonitor-list         List health monitors that belong to a given tenant lb-healthmonitor-show         Show information of a given health monitor lb-healthmonitor-update       Update health monitor's information

lb-healthmonitor-associate    Associate a health monitor with a pool lb-healthmonitor-disassociate Disassociate a health monitor with a pool

lb-member-create              Create a member lb-member-delete              Delete a given member lb-member-list                List members that belong to a given tenant lb-member-show                Show information of a given member lb-member-update              Update member's information

lb-pool-create                Create a pool lb-pool-delete                Delete a given pool lb-pool-list                  List pools that belong to a given tenant lb-pool-show                  Show information of a given pool lb-pool-update                Update pool's information

lb-pool-stats                 Retrieve traffic statistics for pool

lb-vip-create                 Create a vip lb-vip-delete                 Delete a given vip lb-vip-list                   List vips that belong to a given tenant lb-vip-show                   Show information of a given vip lb-vip-update                 Update vip's information

= Command Specification =

lb-healthmonitor-create
Create a new health monitor object.

lb-healthmonitor-create --type --delay --max-retries --timeout [--admin-state-down] [--http-method ] [--url-path ] [--expected-codes ] [--tenant-id ]


 * type: One of predefined health monitor types
 * 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.
 * http-method: The HTTP method used for requests by the monitor of type HTTP. If this attribute is not specified, it defaults to "GET".
 * url-path: The HTTP path used in the HTTP request used by the monitor to test a member's health. This must be a string beginning with a / (forward slash). If this is not specified it defaults to "/".
 * expected-codes: These are the list of HTTP status codes expected in response from the member to declare it healthy. This attribute can contain one value, or a list of values separated by comma, or a range of values (e.g. "200-299"). If this attribute is not specified, it defaults to "200".
 * tenant-id: ID of tenant that owns the health monitor

lb-healthmonitor-delete
Delete a given healthmonitor object.

lb-healthmonitor-delete 

lb-healthmonitor-list
Show list of health monitor objects available to tenant.

lb-healthmonitor-list

lb-healthmonitor-show
Shows information about a given health monitor object.

lb-healthmonitor-show 

lb-healthmonitor-update
Update information of a given health monitor object.

lb-healthmonitor-update  [--admin-state-down] [--delay ] [--max-retries ] [--timeout ] [--name ] [--http-method ] [--url-path ] [--expected-codes ]

lb-healthmonitor-associate
Associate a healthmonitor with a pool.

lb-healthmonitor-associate  

lb-healthmonitor-disassociate
Disassociate a healthmonitor with a pool.

lb-healthmonitor-disassociate  

lb-member-create
Create a member

lb-member-create --address  --protocol-port [--weight ] [--admin-state-down] [--tenant-id ] 


 * address: The IP address of the pool member on the pool's network.
 * protocol-port: The port on which the pool member listens for requests or connections.
 * weight: The weight of pool member in the pool.
 * pool-id: The pool to which the member is added.
 * tenant-id: ID of tenant that owns the member

lb-member-delete
Delete a given member

lb-member-delete 

lb-member-list
List members that belong to a given tenant

lb-member-list

lb-member-show
Show information of a given member

lb-member-show 

lb-member-update
Update member's information

lb-member-update  [--admin-state-down] [--pool-id ] [--weight ] [--admin-state ]

lb-pool-create
Create a pool

lb-pool-create --subnet-id  --lb-method  --protocol --name [--admin-state-down] [--description ] [--tenant-id ] [-- [--health_monitors {}]]


 * name: name of the pool
 * subnet_id: The subnet on which the members of the pool will be located. Only members that are on this subnet 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
 * description: Human-readable description of the pool
 * tenant-id: ID of tenant that owns the pool

The operation may also associate health monitors to the created pool, to achieve this a list of monitor ids needs to be specified in positional argument --health_monitors.

lb-pool-delete
Delete a given pool

lb-pool-delete <pool-id>

lb-pool-list
List pools that belong to a given tenant

lb-pool-list

lb-pool-show
Show information of a given pool

lb-pool-show <pool-id>

lb-pool-stats
Retrieve traffic statistics for a given pool

lb-pool-stats <pool-id>

lb-pool-update
Update pool's information

lb-pool-update <pool-id> [--admin-state-down] [--lb-method <lb-method>] [--description ] [--name ]

lb-vip-create
Create a vip

lb-vip-create --subnet-id <subnet-id> --protocol --protocol-port --name [--address ] [--admin-state-down] [--connection-limit ] [--description ] [--tenant-id ] <pool-id> [--session-persistence type=dict type= ,[cookie_name= ]]


 * subnet_id: The subnet on which to allocate the vip's address. A tenant can only create vips on subnets authorized by policy.
 * protocol: the protocol of the vip address.
 * protocol-port: the port on which to listen for client traffic that is associated with the vip address.
 * address: IP address of the vip
 * connection-limit: the maximum number of connections per second allowed for the vip.
 * description: human-readable description of the vip
 * pool_id: the id of the pool that contains the real servers to which traffic is load balanced.
 * tenant-id: ID of tenant that owns the vip
 * session-persistence: dictionary with session persistence parameters, e.g.:
 * type: the type of session persistence applied to traffic.
 * cookie-name: the name of cookie for cookie-based session persistence.

lb-vip-delete
Delete a given vip

lb-vip-delete <vip-id>

lb-vip-list
List vips that belong to a given tenant

lb-vip-list

lb-vip-show
Show information of a given vip

lb-vip-show <vip-id>

lb-vip-update
Update vip's information

lb-vip-update <vip-id> [--address ] [--admin-state-down] [--connection-limit ] [--description ] [--pool-id <pool-id>] [--name ] [--session-persistence-disable] [--session-persistence type=dict type= ,[cookie_name= ]]