Jump to: navigation, search

Difference between revisions of "OpenStackClient/Commands"

(API v2 (1.1))
Line 3,575: Line 3,575:
 
|}
 
|}
  
== Volume ==
 
  
{| class="wikitable"
+
== Network ==
|-
 
! Cinder Option !!  Environment Variable !!  !!  OSC Option !!  Environment Variable
 
|-
 
| --os-volume-api-version <ver> || OS_VOLUME_API_VERSION ||  || --os-volume-api-version <ver> || OS_VOLUME_API_VERSION
 
|-
 
| --service-type <type> ||  ||  ||  ||
 
|-
 
| --service-name <name> || CINDER_SERVICE_NAME ||  ||  ||
 
|-
 
| --volume-service-name <name> || CINDER_VOLUME_SERVICE_NAME ||  ||  ||
 
|-
 
| --endpoint-type <type> || CINDER_ENDPOINT_TYPE ||  ||  ||
 
|-
 
| --retries <int> ||  ||  ||  ||
 
|-
 
|}
 
  
 +
The Network commands in <code>neutron</code> are actually in pretty good shape.  It appears most update commands have not be
 +
en implemented, but looks pretty solid other than that.  Note some questions:
  
=== API v1.0 ===
+
* Note: Should the --request-format option be a global option.  Nice from a developers perspective if you want to test XML for ins
 +
tance, but why would users really care.
  
==== limits ====
+
* Note: Should we have --os-network-api-version <ver> argument since neutron currently only supports one version?
  
See [[#limits|limits]] in the [[#Cross_API|cross API section]].
+
NOTE(dtroyer): yes for consistency
 
 
==== quota ====
 
 
 
See [[#quota|quota]] in the [[#Cross_API|cross API section]].
 
  
==== snapshot ====
 
  
 
{| class="wikitable"
 
{| class="wikitable"
 +
|-
 +
! OSC Option !! Environment Variable !! !! Nova Option !! Environment Variable
 
|-
 
|-
! OSC Command !! Implemented !! !! Cinder command
+
| || || || --os-auth-strategy || OS_AUTH_STRATEGY
 
|-
 
|-
|
+
| --os-auth-url || OS_AUTH_URL || || --os-auth-url || OS_AUTH_URL
<source lang="bash">
 
os snapshot create
 
    --name <name>
 
    [--description <description>]
 
    [--force]
 
    <volume>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder snapshot-create
 
    --force <True|False>
 
    --display-name <display-name>
 
    --display-description <display-description>
 
    <volume-id>
 
</source>
 
 
|-
 
|-
|
+
| --os-project-name || OS_PROJECT_NAME || || --os-tenant-name || OS_TENANT_NAME
<source lang="bash">
 
os snapshot delete
 
    <snapshot>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder snapshot-delete
 
    <snapshot-id>
 
</source>
 
 
|-
 
|-
|
+
| --os-project-id || OS_PROJECT_ID || || --os-tenant-id || OS_TENANT_ID
<source lang="bash">
+
|-
os snapshot list
+
| --os-username || OS_USERNAME || || --os-username || OS_USERNAME
</source>
 
|| yes (no opts yet)
 
|| ||
 
<source lang="bash">
 
cinder snapshot-list
 
    --all-tenants [<0|1>]
 
    --display-name <display-name>
 
    --status <status>
 
    --volume-id <volume-id>
 
</source>
 
 
|-
 
|-
|
+
| --os-password || OS_PASSWORD || || --os-password || OS_PASSWORD
<source lang="bash">
 
os snapshot set
 
    [--name <new-name>]
 
    [--description <new-description>]
 
    <snapshot>
 
</source>
 
|| yes
 
|| ||
 
<source lang="bash">
 
cinder snapshot-rename
 
    --display-description <display-description>
 
    --display-name <display-name>
 
    <snapshot-id>
 
</source>
 
 
|-
 
|-
|
+
| --os-region-name || OS_REGION_NAME || || --os-region-name || OS_REGION_NAME
<source lang="bash">
+
|-
os snapshot show
+
| --os-token || OS_TOKEN || || --os-token || OS_TOKEN
    <snapshot>
+
|-
</source>
+
| --os-url || OS_URL || || --os-url || OS_URL
|| yes
+
|-
|| ||
+
| --os-cacert || OS_CACERT || || --os-cacert || OS_CACERT
<source lang="bash">
+
|-
cinder snapshot-show
+
| --os-network-api-version <ver> || OS_NETWORK_API_VERSION || || ||
    <snapshot-id>
 
</source>
 
 
|}
 
|}
  
==== volume ====
+
 
 +
=== API v2.0 ===
 +
 
 +
NOTE(dtroyer): I am removing all of the default cliff options for clarity.  Also, apparently neutronclient has a different idea of how these are used than OSC.
 +
 
 +
 
 +
==== Agent ====
 +
 
 +
NOTE: There is no agent create in neutron at the moment.  I assume these should replace the compute commands.
 +
 
 +
NOTE(dtroyer): The compute agent refers to the bits of code that run inside a VM.  A Neutron agent is code that runs on a host system; there are at least 4 different types: plugin, dhcp, l3 and metadata.
  
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! OSC Command !! Implemented !! !! Cinder command
+
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os agent delete
os volume create
+
     <agent>
    --size <size>
 
    [--description <description>]
 
    [--volume-type <volume-type>]
 
    [--snapshot-id <snapshot-id>]
 
    [--source <volid>]
 
    [--image <image-id>]
 
    [--availability-zone <availability-zone>]
 
    [--property <key=value>]
 
    [--user <user>]          # admin only
 
    [--project <project>]    # admin only
 
     <name>
 
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
cinder create
+
neutron agent-delete <agent>
    [--snapshot-id <snapshot-id>]
 
    [--source-volid <source-volid>]
 
    [--image-id <image-id>]
 
    [--display-name <display-name>]
 
    [--display-description <display-description>]
 
    [--volume-type <volume-type>]
 
    [--availability-zone <availability-zone>]
 
    [--metadata <key=value>]
 
    <size>
 
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
 +
os agent list
 +
    [--long]
 +
</source>
 +
NOTE(dtroyer): list commands always use --long for their 'show me more stuff' option
 +
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
os volume delete
+
neutron agent-list
    [--force]
+
  [-D, --show-details]
     <volume>
+
  [-F FIELD, --field FIELD]
 +
  [--quote {all,minimal,none,nonnumeric}]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os agent update
 +
     <agent>
 
</source>
 
</source>
|| yes
+
NOTE(dtroyer): update commands often map to the OSC verb 'set'.  but with no value to set???
|| ||
+
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
cinder delete
+
neutron agent-update <agent>
    <volume-id>
+
# NOTE: no args, what does this update?
 
 
cinder force-delete
 
    <volume-id>
 
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
 +
os agent show
 +
    <agent>
 +
</source>
 +
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
os volume list
+
neutron agent-show <agent>
    [--name <name>]
+
  [-D, --show-details]
     [--status <status>]
+
  [-F FIELD, --field FIELD]
     [--long]
+
</source>
     [--all-tenants]           # admin only
+
|}
 +
 
 +
==== Cisco ====
 +
 
 +
NOTE(dtroyer): We need to think about how to handle vendor-plugin-specific bits.  I don't want these in the default set...
 +
 
 +
Note all of these "network pofile" and "policy profile", why not just network and policy, profile is useless.
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 +
|-
 +
|<source lang="bash">
 +
os cisco credential create <credential_name> <credential_type>
 +
     [--tenant-id TENANT_ID]
 +
     [--username USERNAME]
 +
     [--password PASSWORD]
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
cinder list
+
neutron cisco-credential-create <credential_name> <credential_type>
     --all-tenants [<0|1>]
+
     [--tenant-id TENANT_ID]
     --display-name <display-name>
+
     [--username USERNAME]
     --status <status>
+
     [--password PASSWORD]
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os cisco credential delete <credential>
os volume set
 
    [--name <new-name>]
 
    [--description <new-description>]
 
    [--property <key=value>]
 
    <volume>
 
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
cinder metadata
+
neutron cisco-credential-delete <credential>
    <volume-id>
 
    <action>
 
    <key=value>
 
 
 
cinder rename
 
    --display-description <display-description>
 
    <volume-id>
 
    <display-name>
 
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os cisco credential list
os volume show
+
     [-F FIELD]
     <volume>
 
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
cinder show
+
neutron cisco-credential-list
     <volume-id>
+
     [-F FIELD]
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os cisco credential show <credential>
os volume unset
+
     [-F FIELD]
     [--property <key>]
 
    <volume>
 
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
 +
neutron cisco-credential-show <credential>
 +
    [-F FIELD]
 
</source>
 
</source>
|}
 
 
==== volume type ====
 
 
{| class="wikitable"
 
 
|-
 
|-
! OSC Command !! Implemented !! !! Cinder command
+
|<source lang="bash">
|-
+
os cisco network profile create <name> <vlan|overlay|multi-segment|trunk>
|
+
    [--tenant-id TENANT_ID]               
<source lang="bash">
+
    [--sub_type SUB_TYPE]                 
os volume type create
+
     [--segment_range SEGMENT_RANGE]       
     [--property <key=value>]
+
    [--physical_network PHYSICAL_NETWORK] 
     <name>
+
    [--multicast_ip_range MULTICAST_IP_RANGE]
 +
     [--add-tenant ADD_TENANT]
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
cinder type-create
+
neutron cisco-network-profile-create <name> <vlan|overlay|multi-segment|trunk>
     <type-name>
+
    [--tenant-id TENANT_ID]               
 +
    [--sub_type SUB_TYPE]                 
 +
     [--segment_range SEGMENT_RANGE]       
 +
    [--physical_network PHYSICAL_NETWORK] 
 +
    [--multicast_ip_range MULTICAST_IP_RANGE]
 +
    [--add-tenant ADD_TENANT]
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os cisco network profile delete <profile>
os volume type delete
+
     [--request-format {json,xml}]
     <volume-type>
 
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
cinder type-delete
+
neutron cisco-network-profile-delete <profile>
     <type-id>
+
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
 +
os cisco network profile list
 +
    [-F FIELD]
 +
</source>
 +
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
os volume type list
+
neutron cisco-network-profile-list
     [--long]
+
     [-F FIELD]
 
</source>
 
</source>
|| yes
+
|-
|| ||
+
|<source lang="bash">
 +
os cisco network profile show <profile>
 +
    [-F FIELD]
 +
</source>
 +
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
cinder type-list
+
neutron cisco-network-profile-show <profile>
 
+
    [-F FIELD]
cinder extra-specs-list
 
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os cisco network profile update <profile>
os volume type set
+
     [--request-format {json,xml}]
     [--property <key=value>]
 
    <volume-type>
 
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
cinder type-key
+
neutron cisco-network-profile-update <profile>
    <type-id>
+
     [--request-format {json,xml}]
    <set>
 
     <key=value>
 
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os cisco policy profile list
os volume type unset
+
    [-F FIELD]
     [--property <key>]
+
</source>
     <volume-type>
+
|| no || ||
 +
<source lang="bash">
 +
neutron cisco-policy-profile-list
 +
    [-F FIELD]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os cisco policy profile show <profile>
 +
     [--request-format {json,xml}] [-D]   
 +
    [-F FIELD]
 +
</source>
 +
|| no || ||
 +
<source lang="bash">
 +
neutron cisco-policy-profile-show <profile>
 +
    [--request-format {json,xml}] [-D]  
 +
     [-F FIELD]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os cisco policy profile update <profile>
 +
    [--request-format {json,xml}]
 
</source>
 
</source>
|| yes
+
|| no || ||
|| ||
 
 
<source lang="bash">
 
<source lang="bash">
cinder type-key
+
neutron cisco-policy-profile-update <profile>
    <type-id>
+
     [--request-format {json,xml}]
    <unset>
 
     <key>
 
 
</source>
 
</source>
 
|}
 
|}
  
== Network ==
 
  
The Network commands in <code>neutron</code> are actually in pretty good shapeIt appears most update commands have not be
+
==== DHCP Agent ====
en implemented, but looks pretty solid other than that. Note some questions:
+
 
 +
* NOTE(dtroyer): here, 'dhcp agent' will be a two-word object (for now, suggest something shorter?  'dhcp' seems ambiguous)
 +
 
 +
 
 +
* Note: In general, should we support these generic -h and --request-format options from neutron.  i think not.
  
* Note: Should the --request-format option be a global optionNice from a developers perspective if you want to test XML for ins
+
NOTE(dtroyer): the --request-format option seems to want to support structured input data.  While interesting that is not something we have addressed with OSC yetSo for now, lets leave them TDB.
tance, but why would users really care.
 
* Note: Should we have --os-network-api-version <ver> argument since neutron currently only supports one version?
 
  
 
{| class="wikitable"
 
{| class="wikitable"
|-
 
! OSC Option !! Environment Variable !! !! Nova Option !! Environment Variable
 
 
|-
 
|-
| || || || --os-auth-strategy || OS_AUTH_STRATEGY
+
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
| --os-auth-url || OS_AUTH_URL || || --os-auth-url || OS_AUTH_URL
+
|<source lang="bash">
 +
os dhcp agent add network
 +
    <dhcp_agent>
 +
    <network>
 +
</source>
 +
|| no || ||
 +
<source lang="bash">
 +
neutron dhcp-agent-network-add <dhcp_agent> <network>
 +
  [--request-format {json,xml}]
 +
</source>
 
|-
 
|-
| --os-project-name || OS_PROJECT_NAME || || --os-tenant-name || OS_TENANT_NAME
+
|<source lang="bash">
|-
+
os dhcp agent delete network
| --os-project-id || OS_PROJECT_ID || || --os-tenant-id || OS_TENANT_ID
+
    <dhcp_agent>
|-
+
    <network>
| --os-username || OS_USERNAME || || --os-username || OS_USERNAME
+
</source>
 +
# Note: delete instead of remove; Maybe just "dhcp delete"
 +
 
 +
NOTE(dtroyer): this removes a network from an agent (see [[/OpenStackClient/HumanInterfaceGuidelines#Command_Object.28s.29_and_Action|command structure]])
 +
|| no || ||
 +
<source lang="bash">
 +
neutron dhcp-agent-network-remove <dhcp_agent> <network>
 +
  [--request-format {json,xml}]
 +
</source>
 
|-
 
|-
| --os-password || OS_PASSWORD || || --os-password || OS_PASSWORD
+
|<source lang="bash">
|-
+
os dhcp agent list
| --os-region-name || OS_REGION_NAME || || --os-region-name || OS_REGION_NAME
+
    [--long]
|-
+
    <network>
| --os-token || OS_TOKEN || || --os-token || OS_TOKEN
+
</source>
|-
+
Note why isn't this "dhcp list"?
| --os-url || OS_URL || || --os-url || OS_URL
+
 
|-
+
NOTE(dtroyer): see above, we need to decide if 'dhcp' is a clear enough object name for the dhcp agent
| --os-cacert || OS_CACERT || || --os-cacert || OS_CACERT
+
|| no || ||
|-
+
<source lang="bash">
| --os-network-api-version <ver> || OS_NETWORK_API_VERSION || || ||
+
neutron dhcp-agent-list-hosting-net <network>
 +
    [--request-format {json,xml}] [-D]   
 +
    [-F FIELD]
 +
</source>
 
|}
 
|}
  
  
=== API v2.0 ===
+
==== Extension ====
  
NOTE(dtroyer): I am removing all of the default cliff options for clarity.  Also, apparently neutronclient has a different idea of how these are used than OSC.
+
Note: Perhaps this would be a nice general feature.
  
====Agent====
+
NOTE(dtroyer): yes it wouldWe don't have this for any of the other APIs yet so we can play with the structure a bit here
 
 
NOTE: There is no agent create in neutron at the moment.  I assume these should replace the compute commands.
 
 
 
NOTE(dtroyer): The compute agent refers to the bits of code that run inside a VMA Neutron agent is code that runs on a host system; there are at least 4 different types: plugin, dhcp, l3 and metadata.
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 3,927: Line 3,889:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os agent delete
+
os extension list
     <agent>
+
     [--long]
 +
    [--service <service>]
 
</source>
 
</source>
 +
Note: Do we want to provide service as an option for this command?
 +
 +
NOTE(dtroyer): maybe.  what service exactly?  in the Identity API, service means things like 'compute v2', 'identity v3', etc.
 +
we need at least the API, I'm not certain if we should expect a user to know that though...
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron agent-delete <agent>
+
neutron ext-list
 +
    [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os agent list
+
os extension show
     [--long]
+
     <extension>
 
</source>
 
</source>
NOTE(dtroyer): list commands always use --long for their 'show me more stuff' option
 
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron agent-list
+
neutron ext-show <extension> [-f {shell,table}] [-c COLUMN]
  [-D, --show-details]
+
    [--variable VARIABLE] [--prefix PREFIX]
  [-F FIELD, --field FIELD]
+
    [--request-format {json,xml}] [-D] [-F FIELD]
  [--quote {all,minimal,none,nonnumeric}]
 
 
</source>
 
</source>
|-
+
|}
|<source lang="bash">
 
os agent update
 
    <agent>
 
</source>
 
NOTE(dtroyer): update commands often map to the OSC verb 'set'.  but with no value to set???
 
|| no || ||
 
<source lang="bash">
 
neutron agent-update <agent>
 
# NOTE: no args, what does this update?
 
</source>
 
|-
 
|<source lang="bash">
 
os agent show
 
    <agent>
 
</source>
 
|| no || ||
 
<source lang="bash">
 
neutron agent-show <agent>
 
  [-D, --show-details]
 
  [-F FIELD, --field FIELD]
 
</source>
 
|}
 
  
====Cisco====
 
  
NOTE(dtroyer): We need to think about how to handle vendor-plugin-specific bits.  I don't want these in the default set...
+
==== Firewall ====
  
Note all of these "network pofile" and "policy profile", why not just network and policy, profile is useless.
 
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 3,982: Line 3,923:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco credential create <credential_name> <credential_type>
+
os firewall create <policy>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
     [--tenant-id TENANT_ID]
+
     [--tenant-id TENANT_ID] [--name NAME]
     [--username USERNAME]
+
     [--description DESCRIPTION] [--shared]
     [--password PASSWORD]
+
     [--admin-state-down]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-credential-create <credential_name> <credential_type>
+
neutron firewall-create <policy>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
     [--tenant-id TENANT_ID]
+
     [--tenant-id TENANT_ID] [--name NAME]
     [--username USERNAME]
+
     [--description DESCRIPTION] [--shared]
     [--password PASSWORD]
+
     [--admin-state-down]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco credential delete <credential>
+
os firewall delete <firewall>
 +
    [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-credential-delete <credential>
+
neutron firewall-delete <firewall>
 +
    [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco credential list
+
os firewall list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
     [-F FIELD]
+
     [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-credential-list
+
neutron firewall-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
     [-F FIELD]
+
     [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco credential show <credential>
+
os firewall policy create <name>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}]
     [-F FIELD]
+
    [--tenant-id TENANT_ID]
 +
    [--description DESCRIPTION] [--shared]
 +
     [--firewall-rules FIREWALL_RULES]
 +
    [--audited]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-credential-show <credential>
+
neutron firewall-policy-create <name>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}]    
     [-F FIELD]
+
    [--tenant-id TENANT_ID]          
 +
     [--description DESCRIPTION] [--shared]
 +
    [--firewall-rules FIREWALL_RULES]
 +
    [--audited]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco network profile create <name> <vlan|overlay|multi-segment|trunk>
+
os firewall policy delete <policy>
    [-f {shell,table}]
+
     [--request-format {json,xml}]
    [-c COLUMN] [--variable VARIABLE]     
 
    [--prefix PREFIX]                     
 
     [--request-format {json,xml}]         
 
    [--tenant-id TENANT_ID]               
 
    [--sub_type SUB_TYPE]                 
 
    [--segment_range SEGMENT_RANGE]       
 
    [--physical_network PHYSICAL_NETWORK] 
 
    [--multicast_ip_range MULTICAST_IP_RANGE]
 
    [--add-tenant ADD_TENANT]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-network-profile-create <name> <vlan|overlay|multi-segment|trunk>
+
neutron firewall-policy-delete <policy>
    [-f {shell,table}]
+
     [--request-format {json,xml}]
    [-c COLUMN] [--variable VARIABLE]     
+
</source>
    [--prefix PREFIX]                     
+
|-
     [--request-format {json,xml}]         
+
|<source lang="bash">
    [--tenant-id TENANT_ID]               
+
os firewall policy rule add <policy> <rule>
    [--sub_type SUB_TYPE]                 
 
    [--segment_range SEGMENT_RANGE]       
 
    [--physical_network PHYSICAL_NETWORK] 
 
    [--multicast_ip_range MULTICAST_IP_RANGE]
 
    [--add-tenant ADD_TENANT]
 
</source>
 
|-
 
|<source lang="bash">
 
os cisco network profile delete <profile>
 
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--insert-before FIREWALL_RULE]
 +
    [--insert-after FIREWALL_RULE]
 +
    # Note: Command change
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-network-profile-delete <profile>
+
neutron firewall-policy-insert-rule <policy> <rule>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--insert-before FIREWALL_RULE]       
 +
    [--insert-after FIREWALL_RULE]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco network profile list
+
os firewall policy list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}] [-D]  
+
     [--request-format {json,xml}] [-D]
     [-F FIELD]
+
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-network-profile-list
+
neutron firewall-policy-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}] [-D]  
+
     [--request-format {json,xml}] [-D]
     [-F FIELD]
+
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco network profile show <profile>
+
os firewall policy rule remove <policy> <rule>
     [-f {shell,table}] [-c COLUMN]
+
    [--request-format {json,xml}]
     [--variable VARIABLE]                
+
    # Note command change
    [--prefix PREFIX]                    
+
</source>
     [--request-format {json,xml}] [-D]  
+
|| no || ||
 +
<source lang="bash">
 +
neutron firewall-policy-remove-rule <policy> <rule>
 +
    [--request-format {json,xml}]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os firewall policy show <policy>
 +
     [-f {shell,table}] [-c COLUMN]
 +
     [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D]
 
     [-F FIELD]
 
     [-F FIELD]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-network-profile-show <profile>
+
neutron firewall-policy-show <policy>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
     [--variable VARIABLE]                
+
     [--variable VARIABLE] [--prefix PREFIX]
    [--prefix PREFIX]                    
+
     [--request-format {json,xml}] [-D]
     [--request-format {json,xml}] [-D]  
 
 
     [-F FIELD]
 
     [-F FIELD]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco network profile update <profile>
+
os firewall policy update <policy>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-network-profile-update <profile>
+
neutron firewall-policy-update <policy>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco policy profile list
+
os firewall rule create
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}]
     [-F FIELD]
+
    [--tenant-id TENANT_ID] [--name NAME]
 +
    [--description DESCRIPTION] [--shared]
 +
    [--source-ip-address SOURCE_IP_ADDRESS]
 +
    [--destination-ip-address DESTINATION_IP_ADDRESS]
 +
    [--source-port SOURCE_PORT]
 +
    [--destination-port DESTINATION_PORT]
 +
     [--disabled] --protocol {tcp,udp,icmp,any}
 +
    --action {allow,deny}
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-policy-profile-list
+
neutron firewall-rule-create
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}]
     [-F FIELD]
+
    [--tenant-id TENANT_ID] [--name NAME]
 +
     [--description DESCRIPTION] [--shared]
 +
    [--source-ip-address SOURCE_IP_ADDRESS]
 +
    [--destination-ip-address DESTINATION_IP_ADDRESS]
 +
    [--source-port SOURCE_PORT]
 +
    [--destination-port DESTINATION_PORT]
 +
    [--disabled] --protocol {tcp,udp,icmp,any}
 +
    --action {allow,deny}
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco policy profile show <profile>
+
os firewall rule delete <rule>
     [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
     [--variable VARIABLE]                
+
</source>
     [--prefix PREFIX]                    
+
|| no || ||
     [--request-format {json,xml}] [-D]  
+
<source lang="bash">
     [-F FIELD]
+
neutron firewall-rule-delete <rule>
 +
    [--request-format {json,xml}]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os firewall rule list
 +
     [-f {csv,table}] [-c COLUMN]
 +
     [--quote {all,minimal,none,nonnumeric}]
 +
     [--request-format {json,xml}] [-D]
 +
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-policy-profile-show <profile>
+
neutron firewall-rule-list
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE]               
+
     [--quote {all,minimal,none,nonnumeric}]
    [--prefix PREFIX]                    
+
     [--request-format {json,xml}] [-D]
     [--request-format {json,xml}] [-D]  
+
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
     [-F FIELD]
+
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os cisco policy profile update <profile>
+
os firewall rule show <rule>
     [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D]
 +
    [-F FIELD]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron cisco-policy-profile-update <profile>
+
neutron firewall-rule-show <rule>
     [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D]
 +
    [-F FIELD]
 
</source>
 
</source>
|}
 
 
====DHCP====
 
 
NOTE(dtroyer): here, 'dhcp agent' will be a two-word object (for now, suggest something shorter?  'dhcp' seems ambiguous)
 
 
 
Note: In general, should we support these generic -h and --request-format options from neutron.  i think not.
 
 
NOTE(dtroyer): the --request-format option seems to want to support structured input data.  While interesting that is not something we have addressed with OSC yet.  So for now, lets leave them TDB.
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os dhcp agent add network
+
os firewall rule update <rule>
     <dhcp_agent>
+
     [--request-format {json,xml}]
     <network>
+
     [--protocol {tcp,udp,icmp,any}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron dhcp-agent-network-add <dhcp_agent> <network>
+
neutron firewall-rule-update <rule>
  [--request-format {json,xml}]
+
    [--request-format {json,xml}]
 +
    [--protocol {tcp,udp,icmp,any}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os dhcp agent delete network
+
os firewall show <firewall>
     <dhcp_agent>
+
    [-f {shell,table}] [-c COLUMN]
     <network>
+
     [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
# Note: delete instead of remove; Maybe just "dhcp delete"
 
 
NOTE(dtroyer): this removes a network from an agent (see [[/OpenStackClient/HumanInterfaceGuidelines#Command_Object.28s.29_and_Action|command structure]])
 
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron dhcp-agent-network-remove <dhcp_agent> <network>
+
neutron firewall-show <firewall>
  [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
    [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os dhcp agent list
+
os firewall update <firewall>
     [--long]
+
     [--request-format {json,xml}]
    <network>
 
 
</source>
 
</source>
Note why isn't this "dhcp list"?
 
 
NOTE(dtroyer): see above, we need to decide if 'dhcp' is a clear enough object name for the dhcp agent
 
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron dhcp-agent-list-hosting-net <network>
+
neutron firewall-update <firewall>
     [--request-format {json,xml}] [-D]   
+
     [--request-format {json,xml}]
    [-F FIELD]
 
 
</source>
 
</source>
 
|}
 
|}
  
====Extensions====
+
==== IP Floating ====
  
Note: Perhaps this would be a nice general feature.
+
Note: Do we need to have backward compatibility for older releases where compute controlled floating IPs?  I think the latest compute still supports the old interface, but it would be best to discontinue use of thatShould the command be floating-ip or floatingip?
 
 
NOTE(dtroyer): yes it wouldWe don't have this for any of the other APIs yet so we can play with the structure a bit here
 
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 4,233: Line 4,192:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os extension list
+
os floatingip add <ip> <port>
     [--long]
+
     [--request-format {json,xml}]
     [--service <service>]
+
     [--fixed-ip-address FIXED_IP_ADDRESS]
 +
    # Note command change
 
</source>
 
</source>
Note: Do we want to provide service as an option for this command?
 
 
NOTE(dtroyer): maybe.  what service exactly?  in the Identity API, service means things like 'compute v2', 'identity v3', etc.
 
we need at least the API, I'm not certain if we should expect a user to know that though...
 
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron ext-list
+
neutron floatingip-associate <ip> <port>
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--request-format {json,xml}]
 +
    [--fixed-ip-address FIXED_IP_ADDRESS]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os extension show
+
os floatingip create <network>
     <extension>
+
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
    [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--port-id PORT_ID]
 +
     [--fixed-ip-address FIXED_IP_ADDRESS]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron ext-show <extension> [-f {shell,table}] [-c COLUMN]
+
neutron floatingip-create <network>
 +
    [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--port-id PORT_ID]
 +
    [--fixed-ip-address FIXED_IP_ADDRESS]
 
</source>
 
</source>
|}
 
 
====Firewall====
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall create <policy>
+
os floatingip delete <ip>
    [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}] FLOATINGIP
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
    [--tenant-id TENANT_ID] [--name NAME]
 
    [--description DESCRIPTION] [--shared]
 
    [--admin-state-down]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-create <policy>
+
neutron floatingip-delete <ip>
    [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}] FLOATINGIP
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
    [--tenant-id TENANT_ID] [--name NAME]
 
    [--description DESCRIPTION] [--shared]
 
    [--admin-state-down]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall delete <firewall>
+
os floatingip remove <ip>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    # Note command change
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-delete <firewall>
+
neutron floatingip-disassociate <ip>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall list
+
os floatingip list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
Line 4,304: Line 4,253:
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-list
+
neutron floatingip-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
     [-P SIZE] [--sort-key FIELD]  
+
     [-P SIZE] [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall policy create <name>
+
os floatingip show <ip>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID]
 
    [--description DESCRIPTION] [--shared]
 
    [--firewall-rules FIREWALL_RULES]
 
    [--audited]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-policy-create <name>
+
neutron floatingip-show <ip>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]    
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID]         
 
    [--description DESCRIPTION] [--shared]
 
    [--firewall-rules FIREWALL_RULES]  
 
    [--audited]
 
 
</source>
 
</source>
 +
|}
 +
 +
==== IPSec ====
 +
 +
# Note Why are we doing "ipsec site connection <verb>" instead of "ipsec <verb>"?  Is there going to be something other than site connections for ipsec?
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall policy delete <policy>
+
os ipsec site connection create
 +
    [-f {shell,table}]
 +
    [-c COLUMN] [--variable VARIABLE]
 +
    [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID]
 +
    [--admin-state-down] [--name NAME]
 +
    [--description DESCRIPTION]
 +
    [--mtu MTU]
 +
    [--initiator {bi-directional,response-only}]
 +
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
 +
    --vpnservice-id VPNSERVICE
 +
    --ikepolicy-id IKEPOLICY
 +
    --ipsecpolicy-id IPSECPOLICY
 +
    --peer-address PEER_ADDRESS
 +
    --peer-id PEER_ID --peer-cidr
 +
    PEER_CIDRS --psk PSK
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-policy-delete <policy>
+
neutron ipsec-site-connection-create
 +
    [-f {shell,table}]
 +
    [-c COLUMN] [--variable VARIABLE]     
 +
    [--prefix PREFIX]                     
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID]
 +
    [--admin-state-down] [--name NAME]
 +
    [--description DESCRIPTION]
 +
    [--mtu MTU]
 +
    [--initiator {bi-directional,response-only}]
 +
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
 +
    --vpnservice-id VPNSERVICE
 +
    --ikepolicy-id IKEPOLICY
 +
    --ipsecpolicy-id IPSECPOLICY
 +
    --peer-address PEER_ADDRESS
 +
    --peer-id PEER_ID --peer-cidr
 +
    PEER_CIDRS --psk PSK
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall policy rule add <policy> <rule>
+
os ipsec site connection delete <ipsecsite>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--insert-before FIREWALL_RULE]
 
    [--insert-after FIREWALL_RULE]
 
    # Note: Command change
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-policy-insert-rule <policy> <rule>
+
neutron ipsec-site-connection-delete <ipsecsite>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--insert-before FIREWALL_RULE]       
 
    [--insert-after FIREWALL_RULE]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall policy list
+
os ipsec site connection list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D]
 
     [--request-format {json,xml}] [-D]
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
+
     [-F FIELD] [-P SIZE]
 +
    [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-policy-list
+
neutron ipsec-site-connection-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}] [-D]  
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
+
     [-F FIELD] [-P SIZE]                
 +
    [--sort-key FIELD]                  
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall policy rule remove <policy> <rule>
+
os ipsec site connection show <ipsecsite>
    [--request-format {json,xml}]
 
    # Note command change
 
</source>
 
|| no || ||
 
<source lang="bash">
 
neutron firewall-policy-remove-rule <policy> <rule>
 
    [--request-format {json,xml}]
 
</source>
 
|-
 
|<source lang="bash">
 
os firewall policy show <policy>
 
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--variable VARIABLE]
 +
    [--prefix PREFIX]
 
     [--request-format {json,xml}] [-D]
 
     [--request-format {json,xml}] [-D]
 
     [-F FIELD]
 
     [-F FIELD]
Line 4,397: Line 4,364:
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-policy-show <policy>
+
neutron ipsec-site-connection-show <ipsecsite>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--variable VARIABLE]
     [--request-format {json,xml}] [-D]
+
    [--prefix PREFIX]                    
 +
     [--request-format {json,xml}] [-D]  
 
     [-F FIELD]
 
     [-F FIELD]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall policy update <policy>
+
os ipsec site connection update <ipsecsite>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-policy-update <policy>
+
neutron ipsec-site-connection-update <ipsecsite>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
 
</source>
 
</source>
|-
+
|}
 +
 
 +
 
 +
==== L3 ====
 +
 
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 +
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall rule create
+
os l3 agent router list <router>
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D]
    [--tenant-id TENANT_ID] [--name NAME]
+
     [-F FIELD]
    [--description DESCRIPTION] [--shared]
+
     # Note command change
    [--source-ip-address SOURCE_IP_ADDRESS]
 
    [--destination-ip-address DESTINATION_IP_ADDRESS]
 
    [--source-port SOURCE_PORT]
 
     [--destination-port DESTINATION_PORT]
 
     [--disabled] --protocol {tcp,udp,icmp,any}
 
    --action {allow,deny}
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-rule-create
+
neutron l3-agent-list-hosting-router <router>
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--quote {all,minimal,none,nonnumeric}]  
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D]    
    [--tenant-id TENANT_ID] [--name NAME]
+
     [-F FIELD]
    [--description DESCRIPTION] [--shared]
 
    [--source-ip-address SOURCE_IP_ADDRESS]
 
    [--destination-ip-address DESTINATION_IP_ADDRESS]
 
     [--source-port SOURCE_PORT]
 
    [--destination-port DESTINATION_PORT]
 
    [--disabled] --protocol {tcp,udp,icmp,any}
 
    --action {allow,deny}
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall rule delete <rule>
+
os l3 agent router add <l3_agent> <router>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-rule-delete <rule>
+
neutron l3-agent-router-add <l3_agent> <router>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall rule list
+
os l3 agent router remove <l3_agent> <router>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D]
 
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-rule-list
+
neutron l3-agent-router-remove <l3_agent> <router>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D]
 
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 +
|}
 +
 +
 +
==== Load Balancer ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall rule show <rule>
+
os lb healthmonitor add <healthmonitor> <pool>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD]
 
</source>
 
|| no || ||
 
<source lang="bash">
 
neutron firewall-rule-show <rule>
 
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD]
 
</source>
 
|-
 
|<source lang="bash">
 
os firewall rule update <rule>
 
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
     [--protocol {tcp,udp,icmp,any}]
+
     # Note command change
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-rule-update <rule>
+
neutron lb-healthmonitor-associate <healthmonitor> <pool>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--protocol {tcp,udp,icmp,any}]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall show <firewall>
+
os lb healthmonitor create
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID]
 +
    [--admin-state-down]
 +
    [--expected-codes EXPECTED_CODES]
 +
    [--http-method HTTP_METHOD]
 +
    [--url-path URL_PATH] --delay DELAY
 +
    --max-retries MAX_RETRIES --timeout
 +
    TIMEOUT --type {PING,TCP,HTTP,HTTPS}
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-show <firewall>
+
neutron lb-healthmonitor-create
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID]
 +
    [--admin-state-down]
 +
    [--expected-codes EXPECTED_CODES]
 +
    [--http-method HTTP_METHOD]
 +
    [--url-path URL_PATH] --delay DELAY
 +
    --max-retries MAX_RETRIES --timeout
 +
    TIMEOUT --type {PING,TCP,HTTP,HTTPS}
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os firewall update <firewall>
+
os lb healthmonitor delete <healthmonitor>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron firewall-update <firewall>
+
neutron lb-healthmonitor-delete <healthmonitor>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
|}
 
 
====Floating IP====
 
 
Note: Do we need to have backward compatibility for older releases where compute controlled floating IPs?  I think the latest compute still supports the old interface, but it would be best to discontinue use of that.  Should the command be floating-ip or floatingip?
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os floatingip add <ip> <port>
+
os lb healthmonitor remove <healthmonitor> <pool>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--fixed-ip-address FIXED_IP_ADDRESS]
 
 
     # Note command change
 
     # Note command change
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron floatingip-associate <ip> <port>
+
neutron lb-healthmonitor-disassociate <healthmonitor> <pool>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--fixed-ip-address FIXED_IP_ADDRESS]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os floatingip create <network>
+
os lb healthmonitor list
     [-f {shell,table}] [-c COLUMN]
+
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
    [--request-format {json,xml}] [-D]
 +
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 +
</source>
 +
|| no || ||
 +
<source lang="bash">
 +
neutron lb-healthmonitor-list
 +
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
    [--request-format {json,xml}] [-D]
 +
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os lb healthmonitor show <healthmonitor>
 +
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D]
    [--tenant-id TENANT_ID] [--port-id PORT_ID]
+
     [-F FIELD]
     [--fixed-ip-address FIXED_IP_ADDRESS]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron floatingip-create <network>
+
neutron lb-healthmonitor-show <healthmonitor>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D]
    [--tenant-id TENANT_ID] [--port-id PORT_ID]
+
     [-F FIELD]
     [--fixed-ip-address FIXED_IP_ADDRESS]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os floatingip delete <ip>
+
os lb healthmonitor update <healthmonitor>
     [--request-format {json,xml}] FLOATINGIP
+
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron floatingip-delete <ip>
+
neutron lb-healthmonitor-update <healthmonitor>
     [--request-format {json,xml}] FLOATINGIP
+
    [--request-format {json,xml}]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os lb member create <pool>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
    [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--admin-state-down]
 +
    [--weight WEIGHT] --address ADDRESS
 +
    --protocol-port PROTOCOL_PORT
 +
</source>
 +
|| no || ||
 +
<source lang="bash">
 +
neutron lb-member-create <pool>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--admin-state-down]
 +
    [--weight WEIGHT] --address ADDRESS
 +
    --protocol-port PROTOCOL_PORT
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os floatingip remove <ip>
+
os lb member delete <member>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    # Note command change
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron floatingip-disassociate <ip>
+
neutron lb-member-delete <member>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os floatingip list
+
os lb member list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
Line 4,595: Line 4,581:
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron floatingip-list
+
neutron lb-member-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
Line 4,604: Line 4,590:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os floatingip show <ip>
+
os lb member show <member>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
Line 4,611: Line 4,597:
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron floatingip-show <ip>
+
neutron lb-member-show <member>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
|}
 
 
====IPSec====
 
 
# Note Why are we doing "ipsec site connection <verb>" instead of "ipsec <verb>"?  Is there going to be something other than site connections for ipsec?
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os ipsec site connection create
+
os lb member update <member>
    [-f {shell,table}]
 
    [-c COLUMN] [--variable VARIABLE]
 
    [--prefix PREFIX]
 
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
 
    [--admin-state-down] [--name NAME]
 
    [--description DESCRIPTION]
 
    [--mtu MTU]
 
    [--initiator {bi-directional,response-only}]
 
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
 
    --vpnservice-id VPNSERVICE
 
    --ikepolicy-id IKEPOLICY
 
    --ipsecpolicy-id IPSECPOLICY
 
    --peer-address PEER_ADDRESS
 
    --peer-id PEER_ID --peer-cidr
 
    PEER_CIDRS --psk PSK
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron ipsec-site-connection-create
+
neutron lb-member-update <member>
    [-f {shell,table}]
 
    [-c COLUMN] [--variable VARIABLE]     
 
    [--prefix PREFIX]                     
 
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
+
</source>
    [--admin-state-down] [--name NAME]
 
    [--description DESCRIPTION]
 
    [--mtu MTU]
 
    [--initiator {bi-directional,response-only}]
 
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
 
    --vpnservice-id VPNSERVICE
 
    --ikepolicy-id IKEPOLICY
 
    --ipsecpolicy-id IPSECPOLICY
 
    --peer-address PEER_ADDRESS
 
    --peer-id PEER_ID --peer-cidr
 
    PEER_CIDRS --psk PSK
 
</source>
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os ipsec site connection delete <ipsecsite>
+
os lb pool create
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--admin-state-down]
 +
    [--description DESCRIPTION] --lb-method
 +
    {ROUND_ROBIN,LEAST_CONNECTIONS,SOURCE_IP} --name
 +
    NAME --protocol {HTTP,HTTPS,TCP} --subnet-id
 +
    SUBNET [--provider PROVIDER]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron ipsec-site-connection-delete <ipsecsite>
+
neutron lb-pool-create
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--admin-state-down]
 +
    [--description DESCRIPTION] --lb-method
 +
    {ROUND_ROBIN,LEAST_CONNECTIONS,SOURCE_IP} --name
 +
    NAME --protocol {HTTP,HTTPS,TCP} --subnet-id
 +
    SUBNET [--provider PROVIDER]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os ipsec site connection list
+
os lb pool delete <pool>
     [-f {csv,table}] [-c COLUMN]
+
    [--request-format {json,xml}]
 +
</source>
 +
|| no || ||
 +
<source lang="bash">
 +
neutron lb-pool-delete <pool>
 +
    [--request-format {json,xml}]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os lb pool list
 +
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [-F FIELD] [-P SIZE]
+
    [-P SIZE] [--sort-key FIELD]
    [--sort-key FIELD]
 
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron ipsec-site-connection-list
+
neutron lb-pool-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}] [-D]  
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [-F FIELD] [-P SIZE]                
+
    [-P SIZE] [--sort-key FIELD]
    [--sort-key FIELD]                  
 
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os ipsec site connection show <ipsecsite>
+
os lb pool list on agent <lbaas_agent>
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE]
+
     [--quote {all,minimal,none,nonnumeric}]
    [--prefix PREFIX]
 
 
     [--request-format {json,xml}] [-D]
 
     [--request-format {json,xml}] [-D]
 
     [-F FIELD]
 
     [-F FIELD]
 +
    # Note another oddball command
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron ipsec-site-connection-show <ipsecsite>
+
neutron lb-pool-list-on-agent <lbaas_agent>
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE]
+
     [--quote {all,minimal,none,nonnumeric}]
    [--prefix PREFIX]                    
+
     [--request-format {json,xml}] [-D]
     [--request-format {json,xml}] [-D]  
 
 
     [-F FIELD]
 
     [-F FIELD]
 +
# Note another one of those oddball commands
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os ipsec site connection update <ipsecsite>
+
os lb pool show <pool>
     [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
+
    [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron ipsec-site-connection-update <ipsecsite>
+
neutron lb-pool-show <pool>
     [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
+
    [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
|}
 
 
====L3====
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os l3 agent router list <router>
+
os lb pool stats <pool>
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [-F FIELD]
+
</source>
    # Note command change
 
</source>
 
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron l3-agent-list-hosting-router <router>
+
neutron lb-pool-stats <pool>
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]  
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]    
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os l3 agent router add <l3_agent> <router>
+
os lb pool update <pool>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron l3-agent-router-add <l3_agent> <router>
+
neutron lb-pool-update <pool>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os l3 agent router remove <l3_agent> <router>
+
os lb vip create <pool>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--address ADDRESS]
 +
    [--admin-state-down]
 +
    [--connection-limit CONNECTION_LIMIT]
 +
    [--description DESCRIPTION] --name NAME
 +
    --protocol-port PROTOCOL_PORT --protocol
 +
    {TCP,HTTP,HTTPS} --subnet-id SUBNET
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron l3-agent-router-remove <l3_agent> <router>
+
neutron lb-vip-create <pool>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
</source>
+
    [--tenant-id TENANT_ID] [--address ADDRESS]
|}
+
    [--admin-state-down]   
 
+
    [--connection-limit CONNECTION_LIMIT]
====Load Balancer====
+
    [--description DESCRIPTION] --name NAME
{| class="wikitable"
+
    --protocol-port PROTOCOL_PORT --protocol
|-
+
    {TCP,HTTP,HTTPS} --subnet-id SUBNET
! OSC Command !! Implemented !! !! Neutron command
+
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb healthmonitor add <healthmonitor> <pool>
+
os lb vip delete <vip>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    # Note command change
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-healthmonitor-associate <healthmonitor> <pool>
+
neutron lb-vip-delete <vip>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb healthmonitor create
+
os lb vip list
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID]
+
     [-P SIZE] [--sort-key FIELD]
    [--admin-state-down]
+
     [--sort-dir {asc,desc}]
     [--expected-codes EXPECTED_CODES]
 
    [--http-method HTTP_METHOD]
 
     [--url-path URL_PATH] --delay DELAY
 
    --max-retries MAX_RETRIES --timeout
 
    TIMEOUT --type {PING,TCP,HTTP,HTTPS}
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-healthmonitor-create
+
neutron lb-vip-list
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--quote {all,minimal,none,nonnumeric}]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID]
+
     [-P SIZE] [--sort-key FIELD]
    [--admin-state-down]
+
     [--sort-dir {asc,desc}]
     [--expected-codes EXPECTED_CODES]
 
    [--http-method HTTP_METHOD]
 
     [--url-path URL_PATH] --delay DELAY
 
    --max-retries MAX_RETRIES --timeout
 
    TIMEOUT --type {PING,TCP,HTTP,HTTPS}
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb healthmonitor delete <healthmonitor>
+
os lb vip show <vip>
     [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-healthmonitor-delete <healthmonitor>
+
neutron lb-vip-show <vip>
     [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb healthmonitor remove <healthmonitor> <pool>
+
os lb vip update <vip>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    # Note command change
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-healthmonitor-disassociate <healthmonitor> <pool>
+
neutron lb-vip-update <vip>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb healthmonitor list
+
os lb agent hosting pool <pool>
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D]
 
     [--request-format {json,xml}] [-D]
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
+
     [-F FIELD]
     [--sort-dir {asc,desc}]
+
     # Note: oddball command name
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-healthmonitor-list
+
neutron lb-agent-hosting-pool <pool>
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D]
 
     [--request-format {json,xml}] [-D]
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
+
     [-F FIELD]
    [--sort-dir {asc,desc}]  
 
 
</source>
 
</source>
 +
|}
 +
 +
 +
==== Network ====
 +
 +
# Note name changes from net to netowork
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb healthmonitor show <healthmonitor>
+
os network create <name>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}]
     [-F FIELD]
+
    [--tenant-id TENANT_ID] [--admin-state-down]
 +
     [--shared]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-healthmonitor-show <healthmonitor>
+
neutron net-create <name>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}]
     [-F FIELD]
+
    [--tenant-id TENANT_ID] [--admin-state-down]
 +
     [--shared]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb healthmonitor update <healthmonitor>
+
os network delete <network>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-healthmonitor-update <healthmonitor>
+
neutron net-delete <network>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb member create <pool>
+
os network external list
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}]
 
    [--tenant-id TENANT_ID] [--admin-state-down]
 
    [--weight WEIGHT] --address ADDRESS
 
    --protocol-port PROTOCOL_PORT
 
</source>
 
|| no || ||
 
<source lang="bash">
 
neutron lb-member-create <pool>
 
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}]
 
    [--tenant-id TENANT_ID] [--admin-state-down]
 
    [--weight WEIGHT] --address ADDRESS
 
    --protocol-port PROTOCOL_PORT
 
</source>
 
|-
 
|<source lang="bash">
 
os lb member delete <member>
 
    [--request-format {json,xml}]
 
</source>
 
|| no || ||
 
<source lang="bash">
 
neutron lb-member-delete <member>
 
    [--request-format {json,xml}]
 
</source>
 
|-
 
|<source lang="bash">
 
os lb member list
 
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
Line 4,916: Line 4,861:
 
     [-P SIZE] [--sort-key FIELD]
 
     [-P SIZE] [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
 +
# Note another oddball command
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-member-list
+
neutron net-external-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
Line 4,928: Line 4,874:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb member show <member>
+
os network list
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 +
    [-P SIZE] [--sort-key FIELD] [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-member-show <member>
+
neutron net-list
     [-f {shell,table}] [-c COLUMN]
+
     [-f {csv,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 +
    [-P SIZE] [--sort-key FIELD] [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb member update <member>
+
os network list on dhcp agent <dhcp_agent>
     [--request-format {json,xml}]
+
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
     [--request-format {json,xml}] [-D]
 +
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-member-update <member>
+
neutron net-list-on-dhcp-agent <dhcp_agent>
     [--request-format {json,xml}]
+
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
     [--request-format {json,xml}] [-D]
 +
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 +
# Note another one of those oddball commands
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb pool create
+
os network show <network>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID] [--admin-state-down]
 
    [--description DESCRIPTION] --lb-method
 
    {ROUND_ROBIN,LEAST_CONNECTIONS,SOURCE_IP} --name
 
    NAME --protocol {HTTP,HTTPS,TCP} --subnet-id
 
    SUBNET [--provider PROVIDER]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-pool-create
+
neutron net-show <network>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID] [--admin-state-down]
 
    [--description DESCRIPTION] --lb-method
 
    {ROUND_ROBIN,LEAST_CONNECTIONS,SOURCE_IP} --name
 
    NAME --protocol {HTTP,HTTPS,TCP} --subnet-id
 
    SUBNET [--provider PROVIDER]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb pool delete <pool>
+
os network update <network>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-pool-delete <pool>
+
neutron net-update <network>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 +
|}
 +
 +
==== Network Gateway ====
 +
 +
Note: change from net to network
 +
 +
NOTE(dtroyer): is just 'gateway' sufficient here?
 +
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb pool list
+
os network gateway connect <gateway> <network>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
+
     [--segmentation-type SEGMENTATION_TYPE]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--segmentation-id SEGMENTATION_ID]
     [-P SIZE] [--sort-key FIELD]
+
# Note technicall wrong verb here, but add/remove
     [--sort-dir {asc,desc}]
+
# seems a little odd
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-pool-list
+
neutron net-gateway-connect <gateway> <network>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
+
     [--segmentation-type SEGMENTATION_TYPE]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--segmentation-id SEGMENTATION_ID]
     [-P SIZE] [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb pool list on agent <lbaas_agent>
+
os network gateway create <name>
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}]
    [-F FIELD]
+
    [--tenant-id TENANT_ID] [--device DEVICE]
    # Note another oddball command
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-pool-list-on-agent <lbaas_agent>
+
neutron net-gateway-create <name>
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}]  
    [-F FIELD]
+
    [--tenant-id TENANT_ID] [--device DEVICE]
# Note another one of those oddball commands
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb pool show <pool>
+
os network gateway delete <gateway>
    [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-pool-show <pool>
+
neutron net-gateway-delete <gateway>
    [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb pool stats <pool>
+
os network gateway disconnect <gateway> <network>
     [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--segmentation-type SEGMENTATION_TYPE]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--segmentation-id SEGMENTATION_ID]
 +
# Note technicall wrong verb here, but add/remove
 +
# seems a little odd
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-pool-stats <pool>
+
neutron net-gateway-disconnect <gateway> <network>
     [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--segmentation-type SEGMENTATION_TYPE]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--segmentation-id SEGMENTATION_ID]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb pool update <pool>
+
os network gateway list
     [--request-format {json,xml}]
+
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-pool-update <pool>
+
neutron net-gateway-list
     [--request-format {json,xml}]
+
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb vip create <pool>
+
os network gateway show <gateway>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID] [--address ADDRESS]
 
    [--admin-state-down]
 
    [--connection-limit CONNECTION_LIMIT]
 
    [--description DESCRIPTION] --name NAME
 
    --protocol-port PROTOCOL_PORT --protocol
 
    {TCP,HTTP,HTTPS} --subnet-id SUBNET
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-vip-create <pool>
+
neutron net-gateway-show <gateway>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
 +
    [--request-format {json,xml}] [-D] [-F FIELD]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os network gateway update <gateway>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--address ADDRESS]
+
</source>
    [--admin-state-down]   
 
    [--connection-limit CONNECTION_LIMIT]
 
    [--description DESCRIPTION] --name NAME
 
    --protocol-port PROTOCOL_PORT --protocol
 
    {TCP,HTTP,HTTPS} --subnet-id SUBNET
 
</source>
 
|-
 
|<source lang="bash">
 
os lb vip delete <vip>
 
    [--request-format {json,xml}]
 
</source>
 
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-vip-delete <vip>
+
neutron net-gateway-update <gateway>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 +
|}
 +
 +
 +
==== Por t====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os lb vip list
+
os port create <network>
    [-f {csv,table}] [-c COLUMN]
+
  [--tenant-id TENANT_ID]
    [--quote {all,minimal,none,nonnumeric}]
+
  [--name NAME]
    [--request-format {json,xml}] [-D] [-F FIELD]
+
  [--admin-state-down]
    [-P SIZE] [--sort-key FIELD]
+
  [--mac-address MAC_ADDRESS]
    [--sort-dir {asc,desc}]
+
  [--device-id DEVICE_ID]
 +
  [--fixed-ip ip_address=IP_ADDR]
 +
  [--security-group SECURITY_GROUP]
 +
  [--no-security-groups]
 +
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-vip-list
+
neutron port-create <network>
    [-f {csv,table}] [-c COLUMN]
+
  [--tenant-id TENANT_ID]
    [--quote {all,minimal,none,nonnumeric}]
+
  [--name NAME]
    [--request-format {json,xml}] [-D] [-F FIELD]
+
  [--admin-state-down]
    [-P SIZE] [--sort-key FIELD]
+
  [--mac-address MAC_ADDRESS]
    [--sort-dir {asc,desc}]
+
  [--device-id DEVICE_ID]
 +
  [--fixed-ip ip_address=IP_ADDR]
 +
  [--security-group SECURITY_GROUP]
 +
  [--no-security-groups]
 +
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os lb vip show <vip>
+
<source lang="bash">
    [-f {shell,table}] [-c COLUMN]
+
os port delete <port>
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-vip-show <vip>
+
neutron port-delete <port>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os lb vip update <vip>
+
<source lang="bash">
    [--request-format {json,xml}]
+
os port list
 +
  [-D, --show-details]
 +
  [-F FIELD, --field FIELD]
 +
  [-P SIZE, --page-size SIZE]
 +
  [--sort-key FIELD]
 +
  [--sort-dir {asc,desc}]
 +
  [-f {csv,table}, --format {csv,table}]
 +
  [-c COLUMN, --column COLUMN]
 +
  [--quote {all,minimal,none,nonnumeric}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron lb-vip-update <vip>
+
neutron port-list
    [--request-format {json,xml}]
+
  [-D, --show-details]
 +
  [-F FIELD, --field FIELD]
 +
  [-P SIZE, --page-size SIZE]
 +
  [--sort-key FIELD]
 +
  [--sort-dir {asc,desc}]
 +
  [-f {csv,table}, --format {csv,table}]
 +
  [-c COLUMN, --column COLUMN]
 +
  [--quote {all,minimal,none,nonnumeric}]
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os lb agent hosting pool <pool>
 
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD]
 
    # Note: oddball command name
 
</source>
 
|| no || ||
 
 
<source lang="bash">
 
<source lang="bash">
neutron lb-agent-hosting-pool <pool>
+
os port show <port>
    [-f {csv,table}] [-c COLUMN]
+
  [-D, --show-details]
    [--quote {all,minimal,none,nonnumeric}]
+
  [-F FIELD, --field FIELD]
    [--request-format {json,xml}] [-D]
+
  [-f {shell,table}, --format {shell,table}]
    [-F FIELD]
+
  [-c COLUMN, --column COLUMN]
</source>
+
  [-variable VARIABLE]
|}
+
  [--prefix PREFIX]
 
 
====Network====
 
 
 
# Note name changes from net to netowork
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|<source lang="bash">
 
os network create <name>
 
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}]
 
    [--tenant-id TENANT_ID] [--admin-state-down]
 
    [--shared]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-create <name>
+
neutron port-show <port>
    [-f {shell,table}] [-c COLUMN]
+
  [-D, --show-details]
    [--variable VARIABLE] [--prefix PREFIX]
+
  [-F FIELD, --field FIELD]
    [--request-format {json,xml}]
+
  [-f {shell,table}, --format {shell,table}]
    [--tenant-id TENANT_ID] [--admin-state-down]
+
  [-c COLUMN, --column COLUMN]
    [--shared]
+
  [-variable VARIABLE]
 +
  [--prefix PREFIX]
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os network delete <network>
+
<source lang="bash">
    [--request-format {json,xml}]
+
os port update <port>
 +
  [--security-group SECURITY_GROUP]
 +
  [--no-security-groups]
 +
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-delete <network>
+
neutron port-update <port>
    [--request-format {json,xml}]
+
  [--security-group SECURITY_GROUP]
 +
  [--no-security-groups]
 +
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
 
</source>
 
</source>
 +
|}
 +
 +
====Queue====
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network external list
+
os queue create <name>
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
    [--request-format {json,xml}]
     [-P SIZE] [--sort-key FIELD]
+
    [--tenant-id TENANT_ID] [--min MIN] [--max MAX]
     [--sort-dir {asc,desc}]
+
    [--qos-marking QOS_MARKING] [--default DEFAULT]
# Note another oddball command
+
    [--dscp DSCP]
 +
</source>
 +
|| no || ||
 +
<source lang="bash">
 +
neutron queue-create <name>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--min MIN] [--max MAX]
 +
     [--qos-marking QOS_MARKING] [--default DEFAULT]
 +
    [--dscp DSCP]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os queue delete <queue>
 +
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-external-list
+
neutron queue-delete <queue>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
    [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network list
+
os queue list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD] [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-list
+
neutron queue-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD] [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network list on dhcp agent <dhcp_agent>
+
os queue show <queue>
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
</source>
 
|| no || ||
 
<source lang="bash">
 
neutron net-list-on-dhcp-agent <dhcp_agent>
 
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
# Note another one of those oddball commands
 
</source>
 
|-
 
|<source lang="bash">
 
os network show <network>
 
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
Line 5,253: Line 5,202:
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-show <network>
+
neutron queue-show <queue>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
</source>
 +
|}
 +
 +
 +
==== Quota ====
 +
 +
Note: See [[#quota|quota]] in the [[#Cross_API|cross API section]].
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network update <network>
 
    [--request-format {json,xml}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-update <network>
+
neutron quota-delete
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--tenant-id tenant-id]
 
</source>
 
</source>
|}
 
 
====Network Gateway====
 
 
Note: change from net to network
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network gateway connect <gateway> <network>
 
    [--request-format {json,xml}]
 
    [--segmentation-type SEGMENTATION_TYPE]
 
    [--segmentation-id SEGMENTATION_ID]
 
# Note technicall wrong verb here, but add/remove
 
# seems a little odd
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-gateway-connect <gateway> <network>
+
neutron quota-list
 +
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--segmentation-type SEGMENTATION_TYPE]
 
    [--segmentation-id SEGMENTATION_ID]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network gateway create <name>
 
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}]
 
    [--tenant-id TENANT_ID] [--device DEVICE]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-gateway-create <name>
+
neutron quota-show
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]  
+
     [--request-format {json,xml}]
     [--tenant-id TENANT_ID] [--device DEVICE]
+
     [--tenant-id tenant-id]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network gateway delete <gateway>
 
    [--request-format {json,xml}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-gateway-delete <gateway>
+
neutron quota-update
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--tenant-id tenant-id] [--network networks]
 +
    [--subnet subnets] [--port ports]
 +
    [--router routers] [--floatingip floatingips]
 +
    [--security-group security_groups]
 +
    [--security-group-rule security_group_rules]
 
</source>
 
</source>
 +
|}
 +
 +
 +
==== Router ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network gateway disconnect <gateway> <network>
+
os router create <name>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
     [--segmentation-type SEGMENTATION_TYPE]
+
     [--tenant-id TENANT_ID] [--admin-state-down]
    [--segmentation-id SEGMENTATION_ID]
 
# Note technicall wrong verb here, but add/remove
 
# seems a little odd
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-gateway-disconnect <gateway> <network>
+
neutron router-create <name>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
     [--segmentation-type SEGMENTATION_TYPE]
+
     [--tenant-id TENANT_ID] [--admin-state-down]
    [--segmentation-id SEGMENTATION_ID]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network gateway list
+
os router delete <router>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-gateway-list
+
neutron router-delete <router>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network gateway show <gateway>
+
os router gateway remove <router>
    [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--variable VARIABLE] [--prefix PREFIX]
+
    # Note name change
     [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-gateway-show <gateway>
+
neutron router-gateway-clear <router>
    [-f {shell,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os network gateway update <gateway>
+
os router gateway add <router> <network>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--disable-snat]
 +
    # Note name change
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron net-gateway-update <gateway>
+
neutron router-gateway-set <router> <network>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--disable-snat]
 
</source>
 
</source>
|}
 
 
====Port====
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os port create <network>
+
os router interface add <router> <interface>
  [--tenant-id TENANT_ID]
+
    [--request-format {json,xml}]
  [--name NAME]
 
  [--admin-state-down]
 
  [--mac-address MAC_ADDRESS]
 
  [--device-id DEVICE_ID]
 
  [--fixed-ip ip_address=IP_ADDR]
 
  [--security-group SECURITY_GROUP]
 
  [--no-security-groups]
 
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron port-create <network>
+
neutron router-interface-add <router> <interface>
  [--tenant-id TENANT_ID]
+
    [--request-format {json,xml}]
  [--name NAME]
+
 
  [--admin-state-down]
 
  [--mac-address MAC_ADDRESS]
 
  [--device-id DEVICE_ID]
 
  [--fixed-ip ip_address=IP_ADDR]
 
  [--security-group SECURITY_GROUP]
 
  [--no-security-groups]
 
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
 
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os router interface remove <router> <interface>
os port delete <port>
+
    [--request-format {json,xml}]
 +
    # Note name change
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron port-delete <port>
+
neutron router-interface-delete <router> <interface>
 +
    [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os router list
os port list
+
    [-f {csv,table}] [-c COLUMN]
  [-D, --show-details]
+
    [--quote {all,minimal,none,nonnumeric}]
  [-F FIELD, --field FIELD]
+
    [--request-format {json,xml}] [-D] [-F FIELD]
  [-P SIZE, --page-size SIZE]
+
    [-P SIZE] [--sort-key FIELD]
  [--sort-key FIELD]
+
    [--sort-dir {asc,desc}]
  [--sort-dir {asc,desc}]
 
  [-f {csv,table}, --format {csv,table}]
 
  [-c COLUMN, --column COLUMN]
 
  [--quote {all,minimal,none,nonnumeric}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron port-list
+
neutron router-list
  [-D, --show-details]
+
    [-f {csv,table}] [-c COLUMN]
  [-F FIELD, --field FIELD]
+
    [--quote {all,minimal,none,nonnumeric}]
  [-P SIZE, --page-size SIZE]
+
    [--request-format {json,xml}] [-D] [-F FIELD]
  [--sort-key FIELD]
+
    [-P SIZE] [--sort-key FIELD]
  [--sort-dir {asc,desc}]
+
    [--sort-dir {asc,desc}]
  [-f {csv,table}, --format {csv,table}]
 
  [-c COLUMN, --column COLUMN]
 
  [--quote {all,minimal,none,nonnumeric}]
 
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os router list on l3 agent <l3_agent>
os port show <port>
+
    [-f {csv,table}] [-c COLUMN]
  [-D, --show-details]
+
    [--quote {all,minimal,none,nonnumeric}]
  [-F FIELD, --field FIELD]
+
    [--request-format {json,xml}] [-D]
  [-f {shell,table}, --format {shell,table}]
+
    [-F FIELD]
  [-c COLUMN, --column COLUMN]
 
  [-variable VARIABLE]
 
  [--prefix PREFIX]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron port-show <port>
+
neutron router-list-on-l3-agent <l3_agent>
  [-D, --show-details]
+
    [-f {csv,table}] [-c COLUMN]
  [-F FIELD, --field FIELD]
+
    [--quote {all,minimal,none,nonnumeric}]
  [-f {shell,table}, --format {shell,table}]
+
    [--request-format {json,xml}] [-D]  
  [-c COLUMN, --column COLUMN]
+
    [-F FIELD]
  [-variable VARIABLE]
+
# Note should we support these oddball
  [--prefix PREFIX]
+
# commands like this one?
 
</source>
 
</source>
 
|-
 
|-
|
+
|<source lang="bash">
<source lang="bash">
+
os router port list <router>
os port update <port>
+
    [-f {csv,table}] [-c COLUMN]
  [--security-group SECURITY_GROUP]
+
    [--quote {all,minimal,none,nonnumeric}]
  [--no-security-groups]
+
    [--request-format {json,xml}] [-D] [-F FIELD]
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
+
    [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron port-update <port>
+
neutron router-port-list <router>
  [--security-group SECURITY_GROUP]
+
    [-f {csv,table}] [-c COLUMN]
  [--no-security-groups]
+
    [--quote {all,minimal,none,nonnumeric}]
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
+
    [--request-format {json,xml}] [-D] [-F FIELD]  
 +
    [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
|}
 
 
====Queue====
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os queue create <name>
+
os router show <router>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID] [--min MIN] [--max MAX]
 
    [--qos-marking QOS_MARKING] [--default DEFAULT]
 
    [--dscp DSCP]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron queue-create <name>
+
neutron router-show <router>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [--tenant-id TENANT_ID] [--min MIN] [--max MAX]
 
    [--qos-marking QOS_MARKING] [--default DEFAULT]
 
    [--dscp DSCP]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os queue delete <queue>
+
os router update <router>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron queue-delete <queue>
+
neutron router-update <router>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 +
|}
 +
 +
 +
==== Security Group ====
 +
 +
Note: should we use "secgroup" or replace it with "security group"  Supporting both would be confusing, but for now it would probably work.
 +
 +
NOTE(dtroyer): I think 'security group' is what we need to use;  this is one of the last commands to have the short form removed...
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os queue list
+
os security group create <name>
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID]
 +
    [--description DESCRIPTION]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron queue-list
+
neutron security-group-create <name>
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
|-
 
|<source lang="bash">
 
os queue show <queue>
 
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D] [-F FIELD]
+
     [--request-format {json,xml}]  
</source>
+
     [--tenant-id TENANT_ID]        
|| no || ||
+
     [--description DESCRIPTION]
<source lang="bash">
 
neutron queue-show <queue>
 
     [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
|}
 
 
====Quota====
 
 
Note: See [[#quota|quota]] in the [[#Cross_API|cross API section]].
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
 +
os security group delete <security_group>
 +
    [--request-format {json,xml}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron quota-delete
+
neutron security-group-delete <security_group>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
    [--tenant-id tenant-id]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
 +
os security group list
 +
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
    [--request-format {json,xml}] [-D]
 +
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron quota-list
+
neutron security-group-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--quote {all,minimal,none,nonnumeric}]  
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D]
 +
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
 +
os security group show <security_group>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 +
    [--request-format {json,xml}] [-D]
 +
    [-F FIELD]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron quota-show
+
neutron security-group-show <security_group>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
 
     [--variable VARIABLE] [--prefix PREFIX]
 
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}]
+
     [--request-format {json,xml}] [-D]
     [--tenant-id tenant-id]
+
     [-F FIELD]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
 +
os security group update <security_group>
 +
    [--request-format {json,xml}]
 +
    [--name NAME] [--description DESCRIPTION]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron quota-update
+
neutron security-group-update <security_group>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
     [--tenant-id tenant-id] [--network networks]
+
     [--name NAME] [--description DESCRIPTION]
    [--subnet subnets] [--port ports]
+
</source>
    [--router routers] [--floatingip floatingips]
 
    [--security-group security_groups]
 
    [--security-group-rule security_group_rules]
 
</source>
 
 
|}
 
|}
  
====Router====
+
 
 +
==== Security Group Rule ====
 +
 
 +
Note: Again, we have duplicate commands with Nova.
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Line 5,602: Line 5,518:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router create <name>
+
os security group rule create <security_group>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--variable VARIABLE]
 +
    [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
     [--tenant-id TENANT_ID] [--admin-state-down]
+
     [--tenant-id TENANT_ID]
 +
    [--direction {ingress,egress}]
 +
    [--ethertype ETHERTYPE]
 +
    [--protocol PROTOCOL]
 +
    [--port-range-min PORT_RANGE_MIN]
 +
    [--port-range-max PORT_RANGE_MAX]
 +
    [--remote-ip-prefix REMOTE_IP_PREFIX]
 +
    [--remote-group-id REMOTE_GROUP]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-create <name>
+
neutron security-group-rule-create <security_group>
 
     [-f {shell,table}] [-c COLUMN]
 
     [-f {shell,table}] [-c COLUMN]
     [--variable VARIABLE] [--prefix PREFIX]
+
     [--variable VARIABLE]                
     [--request-format {json,xml}]
+
    [--prefix PREFIX]                    
     [--tenant-id TENANT_ID] [--admin-state-down]
+
     [--request-format {json,xml}]        
</source>
+
     [--tenant-id TENANT_ID]              
 +
    [--direction {ingress,egress}]       
 +
    [--ethertype ETHERTYPE]             
 +
    [--protocol PROTOCOL]               
 +
    [--port-range-min PORT_RANGE_MIN]   
 +
    [--port-range-max PORT_RANGE_MAX]   
 +
    [--remote-ip-prefix REMOTE_IP_PREFIX]
 +
    [--remote-group-id REMOTE_GROUP]
 +
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router delete <router>
+
os security group rule delete <rule>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-delete <router>
+
neutron security-group-rule-delete <rule>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router gateway remove <router>
+
os security group rule list
     [--request-format {json,xml}]
+
    [-f {csv,table}] [-c COLUMN]
     # Note name change
+
    [--quote {all,minimal,none,nonnumeric}]
 +
     [--request-format {json,xml}] [-D]
 +
     [-F FIELD] [-P SIZE]
 +
    [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 +
    [--no-nameconv]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-gateway-clear <router>
+
neutron security-group-rule-list
     [--request-format {json,xml}]
+
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
     [--request-format {json,xml}] [-D] 
 +
    [-F FIELD] [-P SIZE]               
 +
    [--sort-key FIELD]                 
 +
    [--sort-dir {asc,desc}]           
 +
    [--no-nameconv]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router gateway add <router> <network>
+
os security group rule show <rule>
     [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
     [--disable-snat]
+
    [--variable VARIABLE]
    # Note name change
+
    [--prefix PREFIX]
 +
     [--request-format {json,xml}] [-D]
 +
     [-F FIELD]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-gateway-set <router> <network>
+
neutron security-group-rule-show <rule>
     [--request-format {json,xml}]
+
    [-f {shell,table}] [-c COLUMN]
     [--disable-snat]
+
    [--variable VARIABLE]             
 +
    [--prefix PREFIX]                 
 +
     [--request-format {json,xml}] [-D] 
 +
     [-F FIELD]
 
</source>
 
</source>
 +
|}
 +
 +
 +
==== Service Provider ====
 +
 +
Note: Is this related to the Keystone service?  Not sure.  The Neutron help is very light.
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router interface add <router> <interface>
 
    [--request-format {json,xml}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-interface-add <router> <interface>
+
neutron service-provider-list
     [--request-format {json,xml}]
+
    [-f {csv,table}] [-c COLUMN]
 +
    [--quote {all,minimal,none,nonnumeric}]
 +
     [--request-format {json,xml}] [-D]
 +
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 +
    [--sort-dir {asc,desc}]
 +
</source>
 +
|}
  
</source>
+
====Subnet====
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Neutron command
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router interface remove <router> <interface>
+
os subnet create <network> <cidr>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
     # Note name change
+
     [--tenant-id TENANT_ID] [--name NAME]
 +
    [--ip-version {4,6}] [--gateway GATEWAY_IP]
 +
    [--no-gateway]
 +
    [--allocation-pool start=IP_ADDR,end=IP_ADDR]
 +
    [--host-route destination=CIDR,nexthop=IP_ADDR]
 +
    [--dns-nameserver DNS_NAMESERVER]
 +
    [--disable-dhcp]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-interface-delete <router> <interface>
+
neutron subnet-create <network> <cidr>
 +
    [-f {shell,table}] [-c COLUMN]
 +
    [--variable VARIABLE] [--prefix PREFIX]
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 +
    [--tenant-id TENANT_ID] [--name NAME]
 +
    [--ip-version {4,6}] [--gateway GATEWAY_IP]
 +
    [--no-gateway]         
 +
    [--allocation-pool start=IP_ADDR,end=IP_ADDR]
 +
    [--host-route destination=CIDR,nexthop=IP_ADDR]
 +
    [--dns-nameserver DNS_NAMESERVER]
 +
    [--disable-dhcp]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router list
+
os subnet delete <subnet>
 +
    [--request-format {json,xml}]
 +
</source>
 +
|| no || ||
 +
<source lang="bash">
 +
neutron subnet-delete <subnet>
 +
    [--request-format {json,xml}]
 +
</source>
 +
|-
 +
|<source lang="bash">
 +
os subnet list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
Line 5,683: Line 5,676:
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-list
+
neutron subnet-list
 
     [-f {csv,table}] [-c COLUMN]
 
     [-f {csv,table}] [-c COLUMN]
 
     [--quote {all,minimal,none,nonnumeric}]
 
     [--quote {all,minimal,none,nonnumeric}]
Line 5,692: Line 5,685:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router list on l3 agent <l3_agent>
+
os subnet show <subnet>
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [-F FIELD]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-list-on-l3-agent <l3_agent>
+
neutron subnet-show <subnet>
     [-f {csv,table}] [-c COLUMN]
+
     [-f {shell,table}] [-c COLUMN]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--variable VARIABLE] [--prefix PREFIX]
     [--request-format {json,xml}] [-D]  
+
     [--request-format {json,xml}] [-D] [-F FIELD]
    [-F FIELD]
 
# Note should we support these oddball
 
# commands like this one?
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router port list <router>
+
os subnet update <subnet>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
    [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-port-list <router>
+
neutron subnet-update <subnet>
    [-f {csv,table}] [-c COLUMN]
+
     [--request-format {json,xml}]
    [--quote {all,minimal,none,nonnumeric}]
 
     [--request-format {json,xml}] [-D] [-F FIELD]
 
    [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 +
|}
 +
 +
 +
==== VPN ====
 +
 +
{| class="wikitable"
 
|-
 
|-
|<source lang="bash">
+
! OSC Command !! Implemented !! !! Neutron command
os router show <router>
 
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
|| no || ||
 
<source lang="bash">
 
neutron router-show <router>
 
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
</source>
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os router update <router>
+
os vpn ikepolicy create <name>
     [--request-format {json,xml}]
+
     [--tenant-id TENANT_ID]
 +
    [--description DESCRIPTION]
 +
    [--auth-algorithm {sha1}]
 +
    [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
 +
    [--phase1-negotiation-mode {main}]
 +
    [--ike-version {v1,v2}]
 +
    [--pfs {group2,group5,group14}]
 +
    [--lifetime units=UNITS,value=VALUE]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron router-update <router>
+
neutron vpn-ikepolicy-create <name>
     [--request-format {json,xml}]
+
     [--tenant-id TENANT_ID]
 +
    [--description DESCRIPTION]
 +
    [--auth-algorithm {sha1}]
 +
    [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
 +
    [--phase1-negotiation-mode {main}]
 +
    [--ike-version {v1,v2}]
 +
    [--pfs {group2,group5,group14}]
 +
    [--lifetime units=UNITS,value=VALUE]
 
</source>
 
</source>
|}
 
 
====Security Group====
 
 
Note: should we use "secgroup" or replace it with "security group"  Supporting both would be confusing, but for now it would probably work.
 
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os security group create <name>
+
os vpn ikepolicy delete <policy>
    [-f {shell,table}] [-c COLUMN]
+
</source>
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}]
 
    [--tenant-id TENANT_ID]
 
    [--description DESCRIPTION]
 
</source>
 
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron security-group-create <name>
+
neutron vpn-ikepolicy-delete <policy>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}]   
 
    [--tenant-id TENANT_ID]         
 
    [--description DESCRIPTION]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os security group delete <security_group>
+
os vpn ikepolicy list
    [--request-format {json,xml}]
 
</source>
 
|| no || ||
 
<source lang="bash">
 
neutron security-group-delete <security_group>
 
    [--request-format {json,xml}]
 
</source>
 
|-
 
|<source lang="bash">
 
os security group list
 
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
 
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
Line 5,799: Line 5,755:
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron security-group-list
+
neutron vpn-ikepolicy-list
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
 
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
Line 5,808: Line 5,761:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os security group show <security_group>
+
os vpn ikepolicy show <policy>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron security-group-show <security_group>
+
neutron vpn-ikepolicy-show <policy>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os security group update <security_group>
+
os vpn ikepolicy update <policy>
     [--request-format {json,xml}]
+
     [--lifetime units=UNITS,value=VALUE]
    [--name NAME] [--description DESCRIPTION]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron security-group-update <security_group>
+
neutron vpn-ikepolicy-update <policy>
     [--request-format {json,xml}]
+
     [--lifetime units=UNITS,value=VALUE]
    [--name NAME] [--description DESCRIPTION]
 
 
</source>
 
</source>
|}
 
 
====Security Group Rules====
 
 
Note: Again, we have duplicate commands with Nova.
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os security group rule create <security_group>
+
os vpn ipsecpolicy create <name>
     [-f {shell,table}] [-c COLUMN]
+
     [--tenant-id TENANT_ID]
    [--variable VARIABLE]
+
     [--description DESCRIPTION]
     [--prefix PREFIX]
+
     [--transform-protocol {esp,ah,ah-esp}]
     [--request-format {json,xml}]
+
     [--auth-algorithm {sha1}]
     [--tenant-id TENANT_ID]
+
     [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
    [--direction {ingress,egress}]
+
     [--encapsulation-mode {tunnel,transport}]
     [--ethertype ETHERTYPE]
+
     [--pfs {group2,group5,group14}]
    [--protocol PROTOCOL]
+
     [--lifetime units=UNITS,value=VALUE]
    [--port-range-min PORT_RANGE_MIN]
 
     [--port-range-max PORT_RANGE_MAX]
 
     [--remote-ip-prefix REMOTE_IP_PREFIX]
 
     [--remote-group-id REMOTE_GROUP]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron security-group-rule-create <security_group>
+
neutron vpn-ipsecpolicy-create <name>
     [-f {shell,table}] [-c COLUMN]
+
     [--tenant-id TENANT_ID]          
    [--variable VARIABLE]                
+
     [--description DESCRIPTION]      
     [--prefix PREFIX]                    
+
     [--transform-protocol {esp,ah,ah-esp}]
     [--request-format {json,xml}]        
+
     [--auth-algorithm {sha1}]        
     [--tenant-id TENANT_ID]             
+
     [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
    [--direction {ingress,egress}]      
+
     [--encapsulation-mode {tunnel,transport}]
     [--ethertype ETHERTYPE]             
+
     [--pfs {group2,group5,group14}]  
    [--protocol PROTOCOL]               
+
     [--lifetime units=UNITS,value=VALUE]
    [--port-range-min PORT_RANGE_MIN]    
 
     [--port-range-max PORT_RANGE_MAX]    
 
     [--remote-ip-prefix REMOTE_IP_PREFIX]
 
     [--remote-group-id REMOTE_GROUP]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os security group rule delete <rule>
+
os vpn ipsecpolicy delete <policy>
    [--request-format {json,xml}]
 
 
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron security-group-rule-delete <rule>
+
neutron vpn-ipsecpolicy-delete <policy>
    [--request-format {json,xml}]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os security group rule list
+
os vpn ipsecpolicy list
    [-f {csv,table}] [-c COLUMN]
+
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
     [-F FIELD] [-P SIZE]
 
    [--sort-key FIELD]
 
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
    [--no-nameconv]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron security-group-rule-list
+
neutron vpn-ipsecpolicy-list
    [-f {csv,table}] [-c COLUMN]
+
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--quote {all,minimal,none,nonnumeric}]
+
     [--sort-dir {asc,desc}]
    [--request-format {json,xml}] [-D] 
 
     [-F FIELD] [-P SIZE]              
 
    [--sort-key FIELD]                
 
     [--sort-dir {asc,desc}]           
 
    [--no-nameconv]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os security group rule show <rule>
+
os vpn ipsecpolicy show <policy>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE]
 
    [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron security-group-rule-show <rule>
+
neutron vpn-ipsecpolicy-show <policy>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE]             
 
    [--prefix PREFIX]                 
 
    [--request-format {json,xml}] [-D] 
 
    [-F FIELD]
 
 
</source>
 
</source>
|}
 
 
====Service Provider====
 
 
Note: Is this related to the Keystone service?  Not sure.  The Neutron help is very light.
 
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
 +
os vpn ipsecpolicy update <policy>
 +
    [--lifetime units=UNITS,value=VALUE]
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron service-provider-list
+
neutron vpn-ipsecpolicy-update <policy>
     [-f {csv,table}] [-c COLUMN]
+
     [--lifetime units=UNITS,value=VALUE]
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
|}
 
 
====Subnet====
 
{| class="wikitable"
 
|-
 
! OSC Command !! Implemented !! !! Neutron command
 
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os subnet create <network> <cidr>
+
os vpn service create <router> <subnet>
    [-f {shell,table}] [-c COLUMN]
+
     [--tenant-id TENANT_ID] [--admin-state-down]
    [--variable VARIABLE] [--prefix PREFIX]
+
     [--name NAME] [--description DESCRIPTION]
    [--request-format {json,xml}]
 
     [--tenant-id TENANT_ID] [--name NAME]
 
    [--ip-version {4,6}] [--gateway GATEWAY_IP]
 
     [--no-gateway]
 
    [--allocation-pool start=IP_ADDR,end=IP_ADDR]
 
    [--host-route destination=CIDR,nexthop=IP_ADDR]
 
    [--dns-nameserver DNS_NAMESERVER]
 
    [--disable-dhcp]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron subnet-create <network> <cidr>
+
neutron vpn-service-create <router> <subnet>
    [-f {shell,table}] [-c COLUMN]
+
     [--tenant-id TENANT_ID] [--admin-state-down]
    [--variable VARIABLE] [--prefix PREFIX]
+
     [--name NAME] [--description DESCRIPTION]
    [--request-format {json,xml}]
 
     [--tenant-id TENANT_ID] [--name NAME]
 
    [--ip-version {4,6}] [--gateway GATEWAY_IP]
 
     [--no-gateway]          
 
    [--allocation-pool start=IP_ADDR,end=IP_ADDR]
 
    [--host-route destination=CIDR,nexthop=IP_ADDR]
 
    [--dns-nameserver DNS_NAMESERVER]
 
    [--disable-dhcp]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os subnet delete <subnet>
+
os vpn service delete <service>
    [--request-format {json,xml}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron subnet-delete <subnet>
+
neutron vpn-service-delete <service>
 
     [--request-format {json,xml}]
 
     [--request-format {json,xml}]
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os subnet list
+
os vpn service list
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
 
     [-P SIZE] [--sort-key FIELD]
 
     [-P SIZE] [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
Line 6,002: Line 5,868:
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron subnet-list
+
neutron vpn-service-list
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
 
     [-P SIZE] [--sort-key FIELD]
 
     [-P SIZE] [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
     [--sort-dir {asc,desc}]
Line 6,011: Line 5,874:
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os subnet show <subnet>
+
os vpn service show <service>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron subnet-show <subnet>
+
neutron vpn-service-show <service>
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
 
|<source lang="bash">
 
|<source lang="bash">
os subnet update <subnet>
+
os vpn service update <service>
    [--request-format {json,xml}]
 
 
</source>
 
</source>
 
|| no || ||
 
|| no || ||
 
<source lang="bash">
 
<source lang="bash">
neutron subnet-update <subnet>
+
neutron vpn-service-update <service>
    [--request-format {json,xml}]
 
 
</source>
 
</source>
 
|}
 
|}
  
====VPN====
+
 
 +
== Volume ==
 +
 
 
{| class="wikitable"
 
{| class="wikitable"
 +
|-
 +
! Cinder Option !!  Environment Variable !!  !!  OSC Option !!  Environment Variable
 +
|-
 +
| --os-volume-api-version <ver> || OS_VOLUME_API_VERSION ||  || --os-volume-api-version <ver> || OS_VOLUME_API_VERSION
 +
|-
 +
| --service-type <type> ||  ||  ||  ||
 +
|-
 +
| --service-name <name> || CINDER_SERVICE_NAME ||  ||  ||
 +
|-
 +
| --volume-service-name <name> || CINDER_VOLUME_SERVICE_NAME ||  ||  ||
 +
|-
 +
| --endpoint-type <type> || CINDER_ENDPOINT_TYPE ||  ||  ||
 +
|-
 +
| --retries <int> ||  ||  ||  ||
 +
|-
 +
|}
 +
 +
 +
=== API v1.0 ===
 +
 +
==== limits ====
 +
 +
See [[#limits|limits]] in the [[#Cross_API|cross API section]].
 +
 +
==== quota ====
 +
 +
See [[#quota|quota]] in the [[#Cross_API|cross API section]].
 +
 +
==== snapshot ====
 +
 +
{| class="wikitable"
 +
|-
 +
! OSC Command !! Implemented !! !! Cinder command
 
|-
 
|-
! OSC Command !! Implemented !! !! Neutron command
+
|
|-
+
<source lang="bash">
|<source lang="bash">
+
os snapshot create
os vpn ikepolicy create <name>
+
     --name <name>
     [-f {shell,table}] [-c COLUMN]
+
     [--description <description>]
    [--variable VARIABLE] [--prefix PREFIX]
+
     [--force]
    [--request-format {json,xml}]
+
     <volume>
    [--tenant-id TENANT_ID]
 
     [--description DESCRIPTION]
 
     [--auth-algorithm {sha1}]
 
     [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
 
    [--phase1-negotiation-mode {main}]
 
    [--ike-version {v1,v2}]
 
    [--pfs {group2,group5,group14}]
 
    [--lifetime units=UNITS,value=VALUE]
 
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ikepolicy-create <name>
+
cinder snapshot-create
     [-f {shell,table}] [-c COLUMN]
+
     --force <True|False>
     [--variable VARIABLE] [--prefix PREFIX]
+
     --display-name <display-name>
     [--request-format {json,xml}]
+
     --display-description <display-description>
    [--tenant-id TENANT_ID]
+
     <volume-id>
    [--description DESCRIPTION]
+
</source>
     [--auth-algorithm {sha1}]
 
    [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
 
    [--phase1-negotiation-mode {main}]
 
    [--ike-version {v1,v2}]
 
    [--pfs {group2,group5,group14}]
 
    [--lifetime units=UNITS,value=VALUE]
 
</source>
 
 
|-
 
|-
|<source lang="bash">
+
|
os vpn ikepolicy delete <policy>
+
<source lang="bash">
    [--request-format {json,xml}]
+
os snapshot delete
 +
    <snapshot>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ikepolicy-delete <policy>
+
cinder snapshot-delete
     [--request-format {json,xml}]
+
     <snapshot-id>
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn ikepolicy list
+
<source lang="bash">
    [-f {csv,table}] [-c COLUMN]
+
os snapshot list
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
|| no || ||
+
|| yes (no opts yet)
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ikepolicy-list
+
cinder snapshot-list  
     [-f {csv,table}] [-c COLUMN]
+
     --all-tenants [<0|1>]
    [--quote {all,minimal,none,nonnumeric}]
+
     --display-name <display-name>
     [--request-format {json,xml}] [-D]
+
     --status <status>
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
+
     --volume-id <volume-id>
     [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn ikepolicy show <policy>
+
<source lang="bash">
     [-f {shell,table}] [-c COLUMN]
+
os snapshot set
    [--variable VARIABLE] [--prefix PREFIX]
+
     [--name <new-name>]
     [--request-format {json,xml}] [-D]
+
     [--description <new-description>]
     [-F FIELD]
+
     <snapshot>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ikepolicy-show <policy>
+
cinder snapshot-rename
     [-f {shell,table}] [-c COLUMN]
+
     --display-description <display-description>
    [--variable VARIABLE] [--prefix PREFIX]
+
     --display-name <display-name>
     [--request-format {json,xml}] [-D]
+
     <snapshot-id>
     [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn ikepolicy update <policy>
+
<source lang="bash">
    [--request-format {json,xml}]
+
os snapshot show
    [--lifetime units=UNITS,value=VALUE]
+
    <snapshot>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ikepolicy-update <policy>
+
cinder snapshot-show
     [--request-format {json,xml}]
+
     <snapshot-id>
    [--lifetime units=UNITS,value=VALUE]
 
 
</source>
 
</source>
 +
|}
 +
 +
==== volume ====
 +
 +
{| class="wikitable"
 
|-
 
|-
|<source lang="bash">
+
! OSC Command !! Implemented !! !! Cinder command
os vpn ipsecpolicy create <name>
+
|-
     [-f {shell,table}] [-c COLUMN]
+
|
     [--variable VARIABLE] [--prefix PREFIX]
+
<source lang="bash">
     [--request-format {json,xml}]
+
os volume create
    [--tenant-id TENANT_ID]
+
    --size <size>
     [--description DESCRIPTION]
+
     [--description <description>]
     [--transform-protocol {esp,ah,ah-esp}]
+
     [--volume-type <volume-type>]
     [--auth-algorithm {sha1}]
+
     [--snapshot-id <snapshot-id>]
     [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
+
     [--source <volid>]
     [--encapsulation-mode {tunnel,transport}]
+
     [--image <image-id>]
     [--pfs {group2,group5,group14}]
+
     [--availability-zone <availability-zone>]
     [--lifetime units=UNITS,value=VALUE]
+
     [--property <key=value>]
 +
     [--user <user>]           # admin only
 +
     [--project <project>]     # admin only
 +
     <name>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ipsecpolicy-create <name>
+
cinder create
     [-f {shell,table}] [-c COLUMN]
+
     [--snapshot-id <snapshot-id>]
    [--variable VARIABLE] [--prefix PREFIX]
+
     [--source-volid <source-volid>]
     [--request-format {json,xml}]    
+
     [--image-id <image-id>]
     [--tenant-id TENANT_ID]         
+
     [--display-name <display-name>]
    [--description DESCRIPTION]      
+
     [--display-description <display-description>]
     [--transform-protocol {esp,ah,ah-esp}]
+
     [--volume-type <volume-type>]
     [--auth-algorithm {sha1}]        
+
     [--availability-zone <availability-zone>]
     [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
+
     [--metadata <key=value>]
     [--encapsulation-mode {tunnel,transport}]
+
    <size>
    [--pfs {group2,group5,group14}]  
 
     [--lifetime units=UNITS,value=VALUE]
 
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn ipsecpolicy delete <policy>
+
<source lang="bash">
  [--request-format {json,xml}]
+
os volume delete
 +
    [--force]
 +
    <volume>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ipsecpolicy-delete <policy>
+
cinder delete
  [--request-format {json,xml}]
+
    <volume-id>
 +
 
 +
cinder force-delete
 +
    <volume-id>
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn ipsecpolicy list
 
    [-f {csv,table}] [-c COLUMN]
 
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
 
    [--sort-dir {asc,desc}]
 
</source>
 
|| no || ||
 
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ipsecpolicy-list
+
os volume list
     [-f {csv,table}] [-c COLUMN]
+
     [--name <name>]
     [--quote {all,minimal,none,nonnumeric}]
+
     [--status <status>]
     [--request-format {json,xml}] [-D]
+
     [--long]
     [-F FIELD] [-P SIZE] [--sort-key FIELD]
+
     [--all-tenants]           # admin only
    [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
|-
+
|| yes
|<source lang="bash">
+
|| ||
os vpn ipsecpolicy show <policy>
 
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}] [-D]
 
    [-F FIELD]
 
</source>
 
|| no || ||
 
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ipsecpolicy-show <policy>
+
cinder list
     [-f {shell,table}] [-c COLUMN]
+
     --all-tenants [<0|1>]
    [--variable VARIABLE] [--prefix PREFIX]
+
     --display-name <display-name>
     [--request-format {json,xml}] [-D]
+
     --status <status>
     [-F FIELD]
 
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn ipsecpolicy update <policy>
+
<source lang="bash">
     [--request-format {json,xml}]
+
os volume set
     [--lifetime units=UNITS,value=VALUE]
+
    [--name <new-name>]
 +
     [--description <new-description>]
 +
     [--property <key=value>]
 +
    <volume>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-ipsecpolicy-update <policy>
+
cinder metadata
     [--request-format {json,xml}]
+
    <volume-id>
     [--lifetime units=UNITS,value=VALUE]
+
    <action>
 +
     <key=value>
 +
 
 +
cinder rename
 +
    --display-description <display-description>
 +
     <volume-id>
 +
    <display-name>
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn service create <router> <subnet>
 
    [-f {shell,table}] [-c COLUMN]
 
    [--variable VARIABLE] [--prefix PREFIX]
 
    [--request-format {json,xml}]
 
    [--tenant-id TENANT_ID] [--admin-state-down]
 
    [--name NAME] [--description DESCRIPTION]
 
</source>
 
|| no || ||
 
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-service-create <router> <subnet>
+
os volume show
    [-f {shell,table}] [-c COLUMN]
+
    <volume>
    [--variable VARIABLE] [--prefix PREFIX]
+
</source>
    [--request-format {json,xml}]
+
|| yes
     [--tenant-id TENANT_ID] [--admin-state-down]
+
|| ||
    [--name NAME] [--description DESCRIPTION]
+
<source lang="bash">
 +
cinder show
 +
     <volume-id>
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn service delete <service>
+
<source lang="bash">
     [--request-format {json,xml}]
+
os volume unset
 +
     [--property <key>]
 +
    <volume>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-service-delete <service>
 
    [--request-format {json,xml}]
 
 
</source>
 
</source>
 +
|}
 +
 +
==== volume type ====
 +
 +
{| class="wikitable"
 
|-
 
|-
|<source lang="bash">
+
! OSC Command !! Implemented !! !! Cinder command
os vpn service list
+
|-
     [-f {csv,table}] [-c COLUMN]
+
|
    [--quote {all,minimal,none,nonnumeric}]
+
<source lang="bash">
    [--request-format {json,xml}] [-D] [-F FIELD]
+
os volume type create
    [-P SIZE] [--sort-key FIELD]
+
     [--property <key=value>]
     [--sort-dir {asc,desc}]
+
     <name>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-service-list
+
cinder type-create
    [-f {csv,table}] [-c COLUMN]
+
     <type-name>
    [--quote {all,minimal,none,nonnumeric}]
 
    [--request-format {json,xml}] [-D] [-F FIELD]
 
    [-P SIZE] [--sort-key FIELD]
 
     [--sort-dir {asc,desc}]
 
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn service show <service>
+
<source lang="bash">
     [-f {shell,table}] [-c COLUMN]
+
os volume type delete
    [--variable VARIABLE] [--prefix PREFIX]
+
     <volume-type>
    [--request-format {json,xml}] [-D] [-F FIELD]
 
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-service-show <service>
+
cinder type-delete
     [-f {shell,table}] [-c COLUMN]
+
    <type-id>
    [--variable VARIABLE] [--prefix PREFIX]
+
</source>
     [--request-format {json,xml}] [-D] [-F FIELD]
+
|-
 +
|
 +
<source lang="bash">
 +
os volume type list
 +
     [--long]
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
cinder type-list
 +
 
 +
cinder extra-specs-list
 +
</source>
 +
|-
 +
|
 +
<source lang="bash">
 +
os volume type set
 +
     [--property <key=value>]
 +
    <volume-type>
 +
</source>
 +
|| yes
 +
|| ||
 +
<source lang="bash">
 +
cinder type-key
 +
    <type-id>
 +
    <set>
 +
    <key=value>
 
</source>
 
</source>
 
|-
 
|-
|<source lang="bash">
+
|
os vpn service update <service>
+
<source lang="bash">
     [--request-format {json,xml}]
+
os volume type unset
 +
     [--property <key>]
 +
    <volume-type>
 
</source>
 
</source>
|| no || ||
+
|| yes
 +
|| ||
 
<source lang="bash">
 
<source lang="bash">
neutron vpn-service-update <service>
+
cinder type-key
     [--request-format {json,xml}]
+
    <type-id>
 +
    <unset>
 +
     <key>
 
</source>
 
</source>
 
|}
 
|}
 +
  
 
= Options =
 
= Options =

Revision as of 23:25, 14 November 2013

Contents

Command Structure

The detailed command structure is described in OpenStackClient/HumanInterfaceGuidelines#Command_Structure.

Command Arguments

  • Arguments that normally require an ID in the OS-API may also use the name or other short identifier where reasonable to support
  • Optional machine-parsable format is available with list and show commands. List has an option for CSV-formatted output (see --format, --quote options for a list command) while show has an option for shell-assignment formatted output (see --format option for a show command).


Objects

Note: these need a review to sync up with the revised object names without dashes ('-') in them.

Actions

The actions used by OpenStackClient are defined below to provide a consistent meaning to each action. Many of them have logical opposite actions. Those actions with an opposite action are noted in parens if applicable.

  • authorize - authorize a token (used in OAuth)
  • add (remove) - add some object to a container object; the command is built in the order of "container add object" (<container> <object>), the positional arguments appear in the same order
  • attach (detach) - deprecated; use add/remove
  • create (delete) - create a new occurrance of the specified object
  • delete (create) - delete a specific occurrance of the specified object
  • detach (attach) - deprecated; use add/remove
  • list - display summary information about multiple objects
  • lock (unlock)
  • migrate - move a server to a different host; --live performs a live migration if possible
  • pause (unpause) - stop a server and leave it in memory
  • reboot - forcibly reboot a server
  • rebuild - rebuild a server using (most of) the same arguments as in the original create
  • remove (add) - remove an object from a group of objects
  • rescue (unrescue) - reboot a server in a special rescue mode allowing access to the original disks
  • resize - change a server's flavor
  • resume (suspend) - return a suspended server to running state
  • save - download an object locally
  • set (unset) - set a property on the object, formerly called metadata
  • show - display detailed information about the specific object
  • ssh
  • suspend (resume) - stop a server and save to disk freeing memory
  • unlock (lock)
  • unpause (pause) - return a paused server to running state
  • unrescue (rescue) - return a server to normal boot mode
  • unset (set) - remove an attribute of the object

Global Options

The common global options from the default OpenStack clients have been mapped to the set of global options below.

OSC Option Environment Variable Option Environment Variable
--version --version
--help --help
--debug --debug
--quiet
--verbose
--log-file <filename>
--os-auth-url <url> OS_AUTH_URL --os-auth-url <url> OS_AUTH_URL
--os-tenant-name <name> OS_TENANT_NAME --os-tenant-name <name> OS_TENANT_NAME
--os-tenant-id <id> OS_TENANT_ID --os-tenant-id <id> OS_TENANT_ID
--os-username <name> OS_USERNAME --os-username <name> OS_USERNAME
--os-password <pw> OS_PASSWORD --os-password <pw> OS_PASSWORD
--os-region-name <region> OS_REGION_NAME --os-region-name <region> OS_REGION_NAME
--os-cacert <file> OS_CACERT --os-cacert <file> OS_CACERT
--insecure
--os-use-keyring


Common Options

A number of options will appear in many commands and should have the same form in all commands to the extent possible.

Option Description Usual Default
--description describes an object none
--enable Used for setting the enabled state for an object n/a
--disable Used for setting the enabled state for an object n/a

Command Mapping Summary

This is an example mapping of the existing commands from Keystone (Identity), Nova (Compute), Glance (Image) and Cinder (Volume) to the <verb> <object> form for the OpenStackClient cli tool. It reduces both the number of verbs and objects by handling some of the smaller differences with command line options.

Further consolidation could be achieved by additional options or by introduction secondary objects to the syntax. For example, the credentials and x509-cert (and x509-root-cert) objects could be combined:


nova x509-create-cert [<pk-file>] [<x509-cert>] os create credentials --x509 [<pk-file>] [<x509-cert>]
nova credentials os show credentials
nova x509-get-root-cert os show credentials --x509 --root


Cross API

Object names that appear in multiple APIs, like quota, are handled by putting their command handler classes in openstackclient.common. If the number of these becomes large they should be moved into a subdirectory.

credentials

[consider rolling the ec2 creds into this too]

OSC Command Implemented Keystone command
os credentials create
    --x509
    [<private-key-file>]
    [<certificate-file>]
no
nova x509-create-cert
    [<pk-file>]
    [<x509-cert>]
os credentials show
    [--token]
    [--user]
    [--x509 [--root]]
no
nova credentials
    [--wrap <integer>]

nova x509-get-root-cert
    [<filename>]

limits

OSC Command Implemented Keystone command
os limits show
    --absolute [--reserved] | --rate
yes
nova absolute-limits
    [--reserved]

nova rate-limits

cinder absolute-limits

cinder rate-limits

quota

OSC Command Implemented Keystone command
os quota set
    # Compute settings
    [--cores <num-cores>]
    [--fixed-ips <num-fixed-ips>]
    [--floating-ips <num-floating-ips>]
    [--injected-file-size <injected-file-bytes>]
    [--injected-files <num-injected-files>]
    [--instances <num-instances>] 
    [--key-pairs <num-key-pairs>]
    [--properties <num-properties>]
    [--ram <ram-mb>] 

    # Volume settings
    [--gigabytes <new-gigabytes>]
    [--snapshots <new-snapshots>]
    [--volumes <new-volumes>]

    <project>
yes
nova quota-update
    [--instances <instances>] 
    [--cores <cores>]
    [--ram <ram>] 
    [--volumes <volumes>]
    [--gigabytes <gigabytes>]
    [--floating-ips <floating_ips>]
    [--metadata-items <metadata_items>]
    [--injected-files <injected_files>]
    [--injected-file-content-bytes <injected_file_content_bytes>]
    <tenant_id>

cinder quota-update
    [--volumes <volumes>]
    [--snapshots <snapshots>]
    [--gigabytes <gigabytes>]
    <tenant_id>
os quota set
    --class
    # Compute settings
    [--cores <num-cores>]
    [--fixed-ips <num-fixed-ips>]
    [--floating-ips <num-floating-ips>]
    [--injected-file-size <injected-file-bytes>]
    [--injected-files <num-injected-files>]
    [--instances <num-instances>] 
    [--key-pairs <num-key-pairs>]
    [--properties <num-properties>]
    [--ram <ram-mb>] 

    # Volume settings
    [--gigabytes <new-gigabytes>]
    [--snapshots <new-snapshots>]
    [--volumes <new-volumes>]

    <class>
yes
nova quota-class-update 
    [--instances <instances>] 
    [--cores <cores>]
    [--ram <ram>] 
    [--volumes <volumes>]
    [--gigabytes <gigabytes>]
    [--floating-ips <floating_ips>]
    [--metadata-items <metadata_items>]
    [--injected-files <injected_files>]
    [--injected-file-content-bytes <injected_file_content_bytes>]
    <class>

cinder quota-class-update
    [--volumes <volumes>]
    [--snapshots <snapshots>]
    [--gigabytes <gigabytes>]
    <tenant_id>
os quota show
    [--default]
    <project>
yes
nova quota-show
    [--tenant <tenant-id>]

cinder quota-show
    <tenant_id>

nova quota-defaults
    <tenant_id>

cinder quota-defaults
    <tenant_id>
os quota show
    --class
    <class>
yes
nova quota-class-show
    <class>

cinder quota-class-show
    <class>


Compute

OSC Option Environment Variable Nova Option Environment Variable
--os-auth-system <auth-system> OS_AUTH_SYSTEM
--service-type <type>
--service-name <name> NOVA_SERVICE_NAME
--volume-service-name <name> NOVA_VOLUME_SERVICE_NAME
--endpoint-type <type> NOVA_ENDPOINT_TYPE
--os-compute-api-version <ver> OS_COMPUTE_API_VERSION --os-compute-api-version <ver> OS_COMPUTE_API_VERSION
--bypass-url <bypass-url>


API v2 (1.1)

agent

OSC Command Implemented Nova command
os agent create
    <os>
    <architecture>
    <version>
    <url>
    <md5hash>
    <hypervisor>
yes
os agent delete
    <id>
yes
os agent list 
    [--hypervisor <hypervisor>]
yes
os agent set
    <id>
    <version>
    <url>
    <md5hash>
yes


aggregate

OSC Command Implemented Nova command
os aggregate add host
    <aggregate>
    <host>
yes
nova aggregate-add-host
    <id>
    <host>
os aggregate create
    [--zone <availability-zone>]
    [--property <key=value>]
    <name>
yes
nova aggregate-create
    <name>
    [<availability_zone>]
os aggregate delete
    <aggregate>
yes
nova aggregate-delete
    <id>
os aggregate list
    [--long]
yes
nova aggregate-list
os aggregate remove host
    <aggregate>
    <host>
yes
nova aggregate-remove-host
    <id>
    <host>
os aggregate set
    [--name <new-name>]
    [--zone <availability-zone>]
    [--property <key=value>]
    <aggregate>
yes
nova aggregate-update
    <id>
    <name>
    [<availability_zone>]

nova aggregate-set-metadata
    <id>
    <key=value>
    [<key=value> ...]
os aggregate show
    <aggregate>
yes
nova aggregate-details
    <id>

bash-completion

OSC Command Implemented Nova command

TBD

no
nova bash-completion

cloudpipe

OSC Command Implemented Nova command
os create cloudpipe
    <project>
no
nova cloudpipe-create
    <project>
os list cloudpipe
no
nova cloudpipe-list

console

OSC Command Implemented Nova command
os console log show
    [--lines <num-lines>]
    <server>
yes
nova console-log
    [--length <length>]
    <server>
os console url show
    [--novnc | --xvpvnc | --spice]
    <server>
yes
nova get-vnc-console
    <server>
    <console_type>

credentials

See credentials in the cross API section.

diagnostics

OSC Command Implemented Nova command
os server show
    --diagnostics
    <server>
yes
nova diagnostics
    <server>

dns

These commands need some attention...an IP shouldn't be required for all record types. They need to be more DNS-y. Zone anyone?

OSC Command Implemented Nova command
os create dns
    [--type <type>]
    <ip>
    <name>
    <domain>
no
nova dns-create
    [--type <type>]
    <ip>
    <name>
    <domain>
os delete dns
    <domain>
    <name>
no
nova dns-delete
    <domain>
    <name>
os list dns
    [--ip <ip>]
    [--name <name>]
    <domain>
no
nova dns-list
    [--ip <ip>]
    [--name <name>]
    <domain>
os create dns-domain
    [--project <project>]
    [--availability-zone <availability-zone>]
    [--public | --private]
    <domain>
no
nova dns-create-private-domain
    [--availability_zone <availability_zone>]
    <domain>

nova dns-create-public-domain
    [--project <project>]
    <domain>
os delete dns-domain
    <domain>
no
nova dns-delete-domain
    <domain>
os list dns-domains
no
nova dns-domains

endpoints

Totally duplicates Identity catalog command

OSC Command Implemented Nova command
os endpoint list
no
nova endpoints


flavor

OSC Command Implemented Nova command
os flavor create
    [--id <id>]
    [--ram <size-mb>]
    [--disk <size-gb>]
    [--ephemeral-disk <size-gb>]
    [--swap <size-mb>]
    [--vcpus <num-cpu>]
    [--rxtx-factor <factor>]
    [--public | --private]
    <name>
(partial)
default: auto
default: 256M
default: 0G
default: 0G
default: 0G
default: 1
default: 1
default: public
nova flavor-create
    [--ephemeral <ephemeral>] 
    [--swap <swap>]
    [--rxtx-factor <factor>]
    <name>
    <id>
    <ram>
    <disk>
    <vcpus>
os flavor delete
    <flavor>
yes
nova flavor-delete 
    <id>
os flavor list
yes
nova flavor-list
os flavor show
    <flavor>
yes


host

OSC Command Implemented Nova command
os host list
    [--zone <availability-zone>]
yes
nova host-action
    [--action <action>]
    <hostname>
os host set
    ...
no
nova host-update
    [--status <status>] 
    [--maintenance <maintenance_mode>]
    <hostname>
os host show
    <host>
yes


hypervisor

OSC Command Implemented Nova command
os hypervisor list
    [--matching <hostname>]
yes
os hypervisor show
    <id>
yes


ip fixed

OSC Command Implemented Nova command
os ip fixed add
    <network>
    <server>
yes
nova add-fixed-ip
    <server>
    <network_id>
os ip fixed remove
    <ip-address>
    <server>
yes
nova remove-fixed-ip
    <server>
    <address>


ip floating

OSC Command Implemented Nova command
os ip floating add
    <ip-address>
    <server>
yes
nova add-floating-ip
    <server>
    <address>
os ip floating create
    [<pool>]
yes
nova floating-ip-create
    [<floating_ip_pool>]
os ip floating delete
    <ip-address>
yes
nova floating-ip-delete
    <address>
os ip floating list
yes
nova floating-ip-list
os ip floating remove
    <ip-address>
    <server>
yes
nova remove-floating-ip
    <server>
    <address>


ip floating pool

OSC Command Implemented Nova command
os ip floating pool list
yes
nova floating-ip-pool-list


keypair

OSC Command Implemented Nova command
os keypair create
    [--public-key <file>]
    <name>
yes
nova keypair-add
    [--pub_key <pub_key>]
    <name>
os keypair delete
    <name>
yes
nova keypair-delete
    <name>
os keypair list
yes
nova keypair-list
os keypair show
    [--public-key]
    <name>
yes


limits

See limits in the cross API section.


quota

See quota in the cross API section.


secgroup

OSC Command Implemented Nova command
os secgroup add

(see server add secgroup)
no
nova add-secgroup
    <server>
    <secgroup>
os secgroup create
    [--description <description>]
    <name>
yes
nova secgroup-create
    <name>
    <description>
os secgroup delete
    <group>
yes
nova secgroup-delete
    <secgroup>
os secgroup list
    [--all-projects]
yes
nova secgroup-list
     [--all-tenants [<0|1>]]
os secgroup remove

(see server remove secgroup)
no
nova remove-secgroup
    <server>
    <secgroup>
os secgroup set
    [--name <new-name>]
    [--description [<new-description>]
    <group>
yes
nova secgroup-update
    <secgroup>
    <name>
    <description>
os secgroup show
    <group>
yes
n/a

secgroup-group-rule

OSC Command Implemented Nova command
os secgroup group rule create
    [--proto <protocol>]
    [--port <port>:<port>]
    <source-group>
    <secgroup>
no
nova secgroup-add-group-rule
    [--ip_proto <ip_proto>]
    [--from_port <from_port>]
    [--to_port <to_port>]
    <secgroup>
    <source_group>
os secgroup group rule delete
    [--proto <protocol>]
    [--port <port>:<port>]
    <source-group>
    <secgroup>
no
nova secgroup-delete-group-rule
    [--ip_proto <ip_proto>]
    [--from_port <from_port>]
    [--to_port <to_port>]
    <secgroup>
    <source_group>

secgroup-rule

OSC Command Implemented Nova command
os secgroup rule create
    [--proto <proto>]
    [--src-ip <ip-address>]
    [--dst-port <port-range>]
    <group>
no
nova secgroup-add-rule
    <secgroup>
    <ip_proto>
    <from_port>
    <to_port>
    <cidr>
os secgroup rule delete
    [--proto <proto>]
    [--src-ip <ip-address>]
    [--dst-port <port-range>]
    <group>
no
nova secgroup-delete-rule
    <secgroup>
    <ip_proto>
    <from_port>
    <to_port>
    <cidr>
os secgroup rule list
    <group>
no
nova secgroup-list-rules
    <secgroup>

server

OSC Command Implemented Nova command
os server add secgroup
    <server>
    <group>
yes
nova add-secgroup
    <server>
    <secgroup>
os server add volume
    [--device <device>]
    <server>
    <volume>
yes
nova volume-attach
    <server>
    <volume>
    <device>
os server create
    --image <image>
    --flavor <flavor>
    [--security-group <security-group-list> [...] ]
    [--key-name <key-name>]
    [--meta-data <key=value> [...] ]
    [--file <dest-filename=source-filename>] [...] ]
    [--user-data <user-data>]
    [--availability-zone <zone-name>]
    [--block-device-mapping <dev-name=mapping> [...] ]
    [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr> [...] ]
    [--hint <key=value> [...] ]
    [--config-drive <value>|True ]
    [--min <count>]
    [--max <count>]
    [--wait]
    <server-name>
yes
nova boot
    [--flavor <flavor>]
    [--image <image>]
    [--meta <key=value>]
    [--file <dst-path=src-path>]
    [--key_name <key_name>]
    [--user_data <user-data>]
    [--availability_zone <availability-zone>]
    [--security_groups <security_groups>]
    [--block_device_mapping <dev_name=mapping>]
    [--hint <key=value>]
    [--nic <net-id=net-uuid,v4-fixed-ip=ip-addr>]
    [--config-drive <value>]
    [--poll]
    <name>
os server delete
    <server>
yes
nova delete
    <server>
os server list
    [--reservation-id <reservation-id>] 
    [--ip <ip-regex>]
    [--ip6 <ip6-regex>] 
    [--name <name-regex>]
    [--instance-name <instance-name-regex>] 
    [--status <status>]
    [--flavor <flavor>]
    [--image <image>] 
    [--host <hostname>]
    [--all-tenants]
yes
nova list
    [--reservation_id <reservation_id>] 
    [--ip <ip_regexp>]
    [--ip6 <ip6_regexp>] 
    [--name <name_regexp>]
    [--instance_name <name_regexp>] 
    [--status <status>]
    [--flavor <flavor>] [--image <image>] 
    [--host <hostname>]
    [--all_tenants [<0|1>]]
os server lock
    <server>
yes
nova lock
    <server>
os server migrate
    [--wait]
    <server>

os server migrate
    --live <host>
    [--shared-migration | --block-migration]
    [--disk-overcommit | --no-disk-overcommit]
    [--wait]
    <server>
yes
nova migrate
    [--poll]
    <server>

nova live-migration
    [--block_migrate] 
    [--disk_over_commit]
    <server>
<host>
os server pause
    <server>
yes
nova pause
    <server>
os server reboot
    [--hard | --soft]
    [--wait]
    <server>
yes
nova reboot
    [--hard]
    [--poll]
    <server>
os server rebuild
    --image <image>
    [--password <password>] 
    [--wait]
    <server>
yes
nova rebuild
    [--rebuild_password <rebuild_password>] 
    [--poll]
    <server>
    <image>
os server remove secgroup
    <server>
    <group>
yes
nova remove-secgroup
    <server>
    <secgroup>
os server remove volume
    <server>
    <volume>
yes
nova volume-detach
    <server>
    <volume>
os server rescue
    <server>
yes
nova rescue
    <server>
os server resize
    --flavor <flavor>
    [--wait]
    <server>

os server resize
    --confirm
    <server>

os server resize
    --revert
    <server>
yes
nova resize
    [--poll]
    <server>
    <flavor>

nova resize-confirm
    <server>

nova resize-revert
    <server>
os server resume
    <server>
yes
nova resume
    <server>
os server set
    --name <new-name>
    --property <key=value>
    [--property <key=value>] ...
    --root-password
    <server>
yes
nova meta
    <server>
    <action>
    <key=value>
    [<key=value> ...]

nova rename
    <server>
    <name>

nova root-password
    <server>
os server show
    <server>
yes
nova show
    <server>
os server ssh
    [--login <login-name>]
    [--port <port>]
    [--identity <keyfile>]
    [--option <config-options>]
    [-4 | -6]
    [--private | --public | --address-type <address-type>]
    <server>
yes
nova ssh
    [--port PORT]
    [--private]
    [--ipv6]
    [--login <login>]
    <server>
os server suspend
    <server>
yes
nova suspend
    <server>
os server unlock
    <server>
yes
nova unlock
    <server>
os server unpause
    <server>
yes
nova unpause
    <server>
os server unrescue
    <server>
yes
nova unrescue
    <server>
os unset server
    --property <key>
    [--property <key>] ...
    <server>
yes
nova meta
    <server>
    <action>
    <key=value>
    [<key=value> ...]

usage

OSC Command Implemented Nova command
os usage list
    [--start <start>]
    [--end <end>]
no
nova usage-list
    [--start <start>]
    [--end <end>]


x509-cert

See credentials in the cross API section.

x509-root-cert

See credentials in the cross API section.

Identity

OSC Option Environment Variable Keystone Option Environment Variable
--os-identity-api-version <ver> OS_IDENTITY_API_VERSION --os-identity-api-version <ver> OS_IDENTITY_API_VERSION
--os-token <token> OS_TOKEN --os-token <token> OS_SERVICE_TOKEN
--os-url <url> OS_URL --os-endpoint <url> OS_SERVICE_ENDPOINT
--os-cert <file> OS_CERT
--os-key <key-file> OS_KEY
--os-cache OS_CACHE
--force-new-token
--stale-duration <seconds>

API v2.0

catalog

OSC Command Implemented Keystone command
os catalog show
    [--service <service>]
no
keystone catalog
    [--service <service-type>]

ec2 credentials

OSC Command Implemented Keystone command
os ec2 credentials create
    [--project <project>]
    [--user <user>]
yes
keystone ec2-credentials-create
    [--user <user-id>] 
    [--tenant_id <tenant-id>]
os ec2 credentials delete
    [--user <user>]
    <access-key>
yes
keystone ec2-credentials-delete
    [--user <user-id>] 
    --access <access-key>
os ec2 credentials list
    [--user <user>]
yes
keystone ec2-credentials-list
    [--user <user-id>]
os ec2 credentials show
    [--user <user>]
    <access-key>
yes
keystone ec2-credentials-get
    [--user <user-id>] 
    --access <access-key>

endpoint

OSC Command Implemented Keystone command
os endpoint create
    --publicurl <public-url>
    [--adminurl <admin-url>]
    [--internalurl <internal-url>]
    [--region <endpoint-region>]
    <service>
yes
keystone endpoint-create
    [--region <endpoint-region>]
    [--service_id <service-id>]
    [--publicurl <public-url>]
    [--adminurl <admin-url>]
    [--internalurl <internal-url>]
os endpoint delete
    <endpoint-id>
yes
keystone endpoint-delete
    <endpoint-id>
os endpoint list
    [--long]
yes
keystone endpoint-list
os endpoint show
    [--type <endpoint-type>]
    [--attr <endpoint-attribute>] 
    [--value <endpoint-value>]
    [--all]
    <service-type>
yes
keystone endpoint-get
    --service <service-type>
    [--endpoint_type <endpoint-type>]
    [--attr <service-attribute>] 
    [--value <value>]

project

OSC Command Implemented Keystone command
os project create
    [--description <description>]
    [--enable | --disable]
    <project-name>
yes
keystone tenant-create
    --name <tenant-name>
    [--description <tenant-description>]
    [--enabled <true|false>]
os project delete
    <project>
yes
keystone tenant-delete
    <tenant>
os project list
    [--long]
yes
keystone tenant-list
os project set
    [--name <new-project-name>]
    [--description <new-project-description>]
    [--enable | --disable]
    <project>
yes
keystone tenant-update
    [--name <tenant_name>]
    [--description <tenant-description>]
    [--enabled <true|false>]
    <tenant-id>
os project show
    <project>
yes
keystone tenant-get
    <tenant-id>

role

OSC Command Implemented Keystone command
os role create
    <role-name>
yes
keystone role-create --name
    <role-name>
os role delete
    <role>
yes
keystone role-delete
    <role-id>
os role list
yes
keystone role-list
os role show
    <role>
yes
keystone role-get
    <role-id>

service

OSC Command Implemented Keystone command
os service create
    [--type <service-type>]
    [--description <service-description>]
    <service-name>
yes
keystone service-create
    --name <name> 
    --type <type>
    [--description <service-description>]
os service delete
    <service>
yes
keystone service-delete
    <service-id>
os service list
    [--long]
yes
keystone service-list
os service show
    [--catalog]
    <service>
yes
keystone service-get
    <service-id>

token

OSC Command Implemented Keystone command
os token show
    [--width <token-display-width>]
 ??
keystone token-get [--wrap <integer>]

user

OSC Command Implemented Keystone command
os user create
    [--password <user-password>]
    [--email <user-email>]
    [--tenant <tenant>]
    [--enable | --disable]
    <user-name>
yes
keystone user-create
    --name <user-name> 
    [--tenant_id <tenant-id>]
    [--pass <pass>] 
    [--email <email>]
    [--enabled <true|false>]
os user delete
    <user>
yes
keystone user-delete
    <user-id>
os user list
    [--tenant <tenant>]
    [--long]
yes
keystone user-list
    [<tenant-id>]
os user set
    [--name <new-user-name>]
    [--password <user-password>]
    [--email <user-email>]
    [--tenant <tenant>]
    [--enable|--disable]
    <user>
yes
keystone user-password-update
    --pass <password>
    <user-id>
os user show
    <user>
yes
keystone user-get
    <user-id>

user role

OSC Command Implemented Keystone command
os user role add
    [--tenant <tenant>]
    <user>
    <role>
yes
keystone user-role-add
    --user <user-id>
    --role <role-id>
    [--tenant_id <tenant-id>]
os user role list
    [--tenant <tenant>]
    [<user>]
yes
keystone user-role-list
    [--user <user-id>]
    [--tenant_id <tenant-id>]
os user role remove
    [--tenant <tenant>]
    <user>
    <role>
yes
keystone user-role-remove
    --user <user-id>
    --role <role-id>
    [--tenant_id <tenant-id>]

<other>

These keystone commands are not planned for re-implementation in OpenStackClient

keystone bootstrap
        --pass <password>
        [--user-name <user-name>]
        [--role-name <role-name>]
        [--tenant-name <tenant-name>]
keystone discover

API v3

credential

OSC Command Implemented Keystone command
os credential create
    [--project <project>]
    [--type ec2|cert]
    <user>
    <data>
yes
keystone credential-create
    --user_id <user-id>
    --type <credential-type>
    --data <credential-data>
    [--project_id <project-id>]
os credential delete
    <credential-id>
yes
keystone credential-delete
    <credential-id>
os credential list
yes
keystone credential-list
os credential set
    [--user <user>]
    [--type ec2|cert]
    [--data <data>]
    [--project <project>]
    <credential-id>
yes
keystone credential-update
    [--user <user>]
    [--type <type>]
    [--data <data>]
    [--project <project>]
    <credential-id>
os credential show
    <credential-id>
yes
keystone credential-get
    <credential-id>

domain

OSC Command Implemented Keystone command
os domain create
    [--description <domain-description>]
    [--enable | --disable]
    <domain-name>
yes
keystone domain-create
    --name <domain-name>
    [--description <domain-description>]
    [--enabled <true|false>]
    [--private_project_names <true|false>]
    [--private_user_names <true|false>]
os domain delete
    <domain>
yes
keystone domain-delete
    <domain-id>
os domain list
yes
keystone domain-list
os domain set
    [--name <new-domain-name>]
    [--description <new-domain-description>]
    [--enable | --disable]
    <domain>
yes
keystone domain-update
    [--name <domain_name>]
    [--description <domain-description>]
    [--enabled <true|false>]
    [--private_project_names <true|false>]
    [--private_user_names <true|false>]
    <domain-id>
os domain show
    <domain>
yes
keystone domain-get
    <domain-id>

endpoint

OSC Command Implemented Keystone command
os endpoint create
    [--region <endpoint-region>
    [--enable | --disable]
    <service>
    <interface admin|public|internal>
    <url>
yes
keystone endpoint-create 
    [--region <endpoint-region>
    [--enable | --disable]
    <service_id>
    <interface admin|public|internal>
    <url>
os endpoint delete
    <endpoint-id>
yes
os endpoint list
    [--long]
yes
keystone endpoint-list
os endpoint set
    [--interface <endpoint-interface>]
    [--url <endpoint-url>]
    [--service <service-id>]
    [--region <endpoint-region>]
    [--enable | --disable]
    <endpoint>
yes
keystone endpoint-set
    [--interface <endpoint-interface>]
    [--url <endpoint-url>]
    [--service <service-id>]
    [--region <endpoint-region>]
    [--enable | --disable]
    <endpoint>
os endpoint show
    <endpoint>
yes
keystone endpoint-get 
    <endpoint>

group

OSC Command Implemented Keystone command
os group create
    [--domain <domain>]
    [--description <group-description>]
    <group-name>
yes
keystone group-create
    --name <group-name>
    [--domain_id <domain-id>]
    [--description <group-description>]
os group delete
    <group>
yes
keystone group-delete
    <group-id>
os group list
    [--long]
yes
keystone group-list
os group set
    [--name <new-group-name>]
    [--domain <domain>]
    [--description <new-group-description>]
    <group>
yes
keystone group-update
    [--name <group_name>]
    [--domain_id <domain-id>]
    [--description <group-description>]
    <group-id>
os group show
    <group>
yes
keystone group-get
    <group-id>

oauth

OSC Command Implemented Keystone command
os oauth request token create
    --consumer-key <consumer-key>
    --consumer-secret <consumer-secret>
    --roles <requested-roles>
yes

n /a

os oauth request token authorize
    --request-key <request-key>
    --roles <requested-roles>
yes

n /a

os oauth access token create
    --consumer-key <consumer-key>
    --consumer-secret <consumer-secret>
    --request-key <request-key>
    --request-secret <request-secret>
    --verifier <pin>
yes
n/a
os oauth access token authenticate
    --consumer-key <consumer-key>
    --consumer-secret <consumer-secret>
    --access-key <access-key>
    --access-secret <access-secret>
yes

n /a

os oauth authorization list
    user <user>
yes

n /a

os oauth authorization delete
    user <user>
    access-id <access-id>
yes

n /a

os oauth authorization show
    request-id <request-id>
yes

n /a

look at some alternatives:
os oauth token create
    --consumer-key <consumer-key>
    --consumer-secret <consumer-secret>
    --request-key <request-key>
    --request-secret <request-secret>
    --verifier <pin>
nyet
* makes the token specific to oauth
* add [--oauth-ver X] if versioning for oauth2 is an issue?
os oauth token create
    --request
    --consumer-key <consumer-key>
    --roles <roles>
nyet
* collapse 'access token' and 'request token' into 'oauth token'?

policy

OSC Command Implemented Keystone command
os policy create
    [--type <policy-type>]
    --blob-file <blob-file>
yes
keystone policy-create
    --type <policy-type>
    --blob <policy-blob>
os policy delete
    <policy-id>
yes
keystone policy-delete
    <policy-id>
os policy list
    [--include-blob]
yes
keystone policy-list
os policy set
    [--type <policy-type>]
    [--blob-file<blob-file>]
    <policy-id>
yes
keystone policy-update
    [--type <policy-type>]
    [--blob <policy-blob>]
    <policy-id>
os policy show
    <policy-id>
yes
keystone policy-get
    <policy-id>

project

OSC Command Implemented Keystone command
os project create
    [--domain <project-domain>]
    [--description <project-description>]
    [--enable | --disable]
    <project-name>
yes
keystone project-create
    [--domain_id <domain_id>]
    [--description <description>]
    [--enable | --disable]
    <name>
os project delete
    <project>
yes
os project-delete
    <project_id>
os project list
    [--long]
yes
keystone project-list
os project set
    [--name <new-project-name>]
    [--domain <project-domain>]
    [--description <new-project-description>]
    [--enable | --disable]
    <project>
yes
keystone project-set
    [--name <new-project-name>]
    [--domain <project-domain>]
    [--description <new-project-description>]
    [--enable | --disable]
    <project_id>
os project show
    <project>
yes
keystone project-get
    <project_id>

role

OSC Command Implemented Keystone command
os role add
    [--user <user> | --group <group>]
    [--domain <domain> | --project <project>]
    <role>
yes
os role create
    <role-name>
yes
os role delete
    <role>
yes
os role list
yes
os role remove
    [--user <user> | --group <group>]
    [--domain <domain> | --project <project>]
    <role>
yes
os role set
    [--name <new-role-name>]
    <role>
yes
os role show
    <role>
yes

service

OSC Command Implemented Keystone command
os service create
	[--name <name>]
        [--enabled <true|false>]
        <type>
yes
keystone service-create
	[--name <name>]
        [--enabled <true|false>]
        <type>
os service delete
    <service>
yes
keystone service-delete
    <service_id>
os list service
yes
keystone service-list
os service set
    [--type <service-type>]
    [--name <new-name>]
    [--enable | --disable]
    <service>
yes
keystone service-set
    [--type <service-type>]
    [--name <new-name>]
    [--enable | --disable]
    <service>
os service show
    <service>
yes
keystone service-get 
    <service_id>

user

OSC Command Implemented Keystone command
os user create
    [--password <password>] 
    [--project <project>]
    [--email <user-email>]
    [--enable | --disable]
    <name>
yes
keystone user-create
    --name <user-name> 
    [--domain_id <domain-id>]
    [--default_project_id <project-id>]
    [--description <description>]
    [--enabled <true|false>]
    [--password <password>]
os user delete
    <user>
yes
keystone user-delete
    <user-id>
os user list
    [--project <project>]
    [--long]
yes
keystone user-list
os user set
    [--name <new-name>]
    [--password <password>] 
    [--project <project>]
    [--email <user-email>]
    [--enable | --disable]
    <user>
yes
keystone user-update
    --user_id <user-id>
    [--name <user-name>]
    [--domain_id <domain-id>]
    [--default_project_id <project-id>]
    [--description <description>]
    [--enabled <true|false>]
    [--password <password>]
os user show
    <user>
yes
keystone user-get
    <user-id>

Image

OSC Option Environment Variable Glance Option Environment Variable
--os-image-api-version <ver> OS_IMAGE_API_VERSION --os-image-api-version <ver> OS_IMAGE_API_VERSION
--os-service-type <type> OS_SERVICE_TYPE
--os-endpoint-type <type> OS_ENDPOINT_TYPE
--os-token <token> OS_TOKEN --os-auth-token <token> OS_AUTH_TOKEN
--os-url <url> OS_URL --os-image-url <url> OS_IMAGE_URL
--os-cacert <file> OS_CACERT
--cert-file <file> CERT_FILE
--key-file <key-file> KEY_FILE
--no-ssl-compression


API v1

image

OSC Command Implemented Glance command
os image create
    [--id <id>]
    [--store <store>]
    [--container-format <format>]
    [--disk-format <format>]
    [--owner <tenant>]
    [--size <size-bytes>]
    [--min-disk <disk-gb>]
    [--min-ram <ram-mg>]
    [--location <image-url>]
    [--copy-from <image-url>]
    [--file <local-filename>]
    [--checksum <checksum>]
    [--protected | --unprotected]
    [--public | --private]
    [--property <key=value>]
    <name>
yes
glance image-create
    [--id <IMAGE_ID>]
    [--name <NAME>]
    [--disk-format <DISK_FORMAT>]
    [--container-format <CONTAINER_FORMAT>]
    [--owner <TENANT_ID>]
    [--size <SIZE>]
    [--min-disk <DISK_GB>]
    [--min-ram <DISK_RAM>]
    [--location <IMAGE_URL>]
    [--checksum <CHECKSUM>]
    [--copy-from <IMAGE_URL>]
    [--is-public [True|False]]
    [--is-protected [True|False]]
    [--property <key=value>]
    [--human-readable]
os image delete
    <image>
yes
glance image-delete
    <IMAGE_ID>
os image list
    [--page-size <size>]
yes
glance image-list
os image save
    [--file <filename>]
    <image>
yes
glance image-download
    [--file <FILE>]
    <IMAGE>
os image set
    [--name <name>]
    [--owner <tenant>]
    [--min-disk <disk-gb>]
    [--min-ram <ram-mg>]
    [--protected | --unprotected]
    [--public | --private]
    [--property <key=value>]
    <image>
yes
glance image-update
    [--name <NAME>]
    [--disk-format <DISK_FORMAT>]
    [--container-format <CONTAINER_FORMAT>]
    [--owner <TENANT_ID>]
    [--size <SIZE>]
    [--min-disk <DISK_GB>]
    [--min-ram <DISK_RAM>]
    [--location <IMAGE_URL>]
    [--file <FILE>]
    [--checksum <CHECKSUM>]
    [--copy-from <IMAGE_URL>]
    [--is-public [True|False]]
    [--is-protected [True|False]]
    [--property <key=value>]
    [--purge-props]
    [--human-readable]
    <IMAGE>
os image show
    <image>
yes
glance image-show
    [--human-readable]
    <IMAGE>

API v2

image

OSC Command Implemented Glance command
os image add project
    <image>
    <project>
no
glance member-create
    [--can-share]
    <IMAGE_ID>
    <TENANT_ID>
os image create
    [--id <id>]
    [--store <store>]
    [--container-format <format>]
    [--disk-format <format>]
    [--owner <tenant>]
    [--size <size-bytes>]
    [--min-disk <disk-gb>]
    [--min-ram <ram-mg>]
    [--location <image-url>]
    [--copy-from <image-url>]
    [--file <local-filename>]
    [--checksum <checksum>]
    [--protected | --unprotected]
    [--public | --private]
    [--property <key=value>]
    <name>
# verify v2 options
no
os image delete
    <image>
yes
glance image-delete
    <IMAGE_ID>
os image list
    [--page-size <size>]
yes
glance image-list
os image list
    --shared
    [--image <image>]
    [--project <project>]
no
glance member-list
    [--image-id <IMAGE_ID>]
    [--tenant-id <TENANT_ID>]
os image remove project
    <image>
    <project>
no
glance member-delete
    <IMAGE_ID>
    <TENANT_ID>
os image save
    [--file <filename>]
    <image>
yes
glance image-download
    [--file <FILE>]
    <IMAGE>
os image set
    [--id <id>]
    [--store <store>]
    [--container-format <format>]
    [--disk-format <format>]
    [--owner <tenant>]
    [--size <size-bytes>]
    [--min-disk <disk-gb>]
    [--min-ram <ram-mg>]
    [--location <image-url>]
    [--copy-from <image-url>]
    [--file <local-filename>]
    [--checksum <checksum>]
    [--protected | --unprotected]
    [--public | --private]
    [--property <key=value>]
    <name>
no
glance image-update
    [--name <NAME>]
    [--disk-format <DISK_FORMAT>]
    [--container-format <CONTAINER_FORMAT>]
    [--owner <TENANT_ID>]
    [--size <SIZE>]
    [--min-disk <DISK_GB>]
    [--min-ram <DISK_RAM>]
    [--location <IMAGE_URL>]
    [--file <FILE>]
    [--checksum <CHECKSUM>]
    [--copy-from <IMAGE_URL>]
    [--is-public [True|False]]
    [--is-protected [True|False]]
    [--property <key=value>]
    [--purge-props]
    [--human-readable]
    <IMAGE>
os image show
    <image>
yes
glance image-show
    [--human-readable]
    <IMAGE>

image-member

The image member commands have been rolled in to the regualr image commands.

Object

API v1

Commands:

  • upload [options] container file_or_directory [file_or_directory] [...]
  • post [options] [container] [object]

container

OSC Command Implemented Swift command
os container list
    [--prefix <prefix>]
    [--delimiter <delimiter>]
    [--long]
    [--all]
yes
swift list
    [--prefix|-p]
    [-l|-lh]
    [-t]
    [--delimiter|-d]
    [options]
    [container]
os container show
    [<container-name>]
yes
swift stat
    [--lh]
    [<container>]
    [<object>]

object

OSC Command Implemented Swift command
os object delete
    <object>
no
swift delete
    [--leave-segments]
    [options]
    --all

swift delete container
    [--leave-segments]
    [options] 
    [object]
    [object] ...
os object list
    [--prefix <prefix>]
    [--delimiter <delimiter>]
    [--long]
    [--all]
    <container-name>]
yes
swift list
    [--prefix|-p]
    [-l|-lh]
    [-t]
    [--delimiter|-d]
    [options]
    [container]
os object show
    <container-name>
    <object-name>
yes
swift stat
    [--lh]
    [<container>]
    [<object>]
os object save
    [<container>]
    [<object>]
no
swift download
    --all 
    [--prefix|-p]
    [options]

swift download
    container
    [--prefix|-p]
    [--output|-o <filename>]
    [options]
    [object]
    [object] ...


Network

The Network commands in neutron are actually in pretty good shape. It appears most update commands have not be en implemented, but looks pretty solid other than that. Note some questions:

  • Note: Should the --request-format option be a global option. Nice from a developers perspective if you want to test XML for ins

tance, but why would users really care.

  • Note: Should we have --os-network-api-version <ver> argument since neutron currently only supports one version?

NOTE(dtroyer): yes for consistency


OSC Option Environment Variable Nova Option Environment Variable
--os-auth-strategy OS_AUTH_STRATEGY
--os-auth-url OS_AUTH_URL --os-auth-url OS_AUTH_URL
--os-project-name OS_PROJECT_NAME --os-tenant-name OS_TENANT_NAME
--os-project-id OS_PROJECT_ID --os-tenant-id OS_TENANT_ID
--os-username OS_USERNAME --os-username OS_USERNAME
--os-password OS_PASSWORD --os-password OS_PASSWORD
--os-region-name OS_REGION_NAME --os-region-name OS_REGION_NAME
--os-token OS_TOKEN --os-token OS_TOKEN
--os-url OS_URL --os-url OS_URL
--os-cacert OS_CACERT --os-cacert OS_CACERT
--os-network-api-version <ver> OS_NETWORK_API_VERSION


API v2.0

NOTE(dtroyer): I am removing all of the default cliff options for clarity. Also, apparently neutronclient has a different idea of how these are used than OSC.


Agent

NOTE: There is no agent create in neutron at the moment. I assume these should replace the compute commands.

NOTE(dtroyer): The compute agent refers to the bits of code that run inside a VM. A Neutron agent is code that runs on a host system; there are at least 4 different types: plugin, dhcp, l3 and metadata.

OSC Command Implemented Neutron command
os agent delete
    <agent>
no
neutron agent-delete <agent>
os agent list
    [--long]

NOTE(dtroyer): list commands always use --long for their 'show me more stuff' option

no
neutron agent-list
  [-D, --show-details]
  [-F FIELD, --field FIELD]
  [--quote {all,minimal,none,nonnumeric}]
os agent update
    <agent>

NOTE(dtroyer): update commands often map to the OSC verb 'set'. but with no value to set???

no
neutron agent-update <agent>
# NOTE: no args, what does this update?
os agent show
    <agent>
no
neutron agent-show <agent>
  [-D, --show-details]
  [-F FIELD, --field FIELD]

Cisco

NOTE(dtroyer): We need to think about how to handle vendor-plugin-specific bits. I don't want these in the default set...

Note all of these "network pofile" and "policy profile", why not just network and policy, profile is useless.

OSC Command Implemented Neutron command
os cisco credential create <credential_name> <credential_type>
    [--tenant-id TENANT_ID]
    [--username USERNAME]
    [--password PASSWORD]
no
neutron cisco-credential-create <credential_name> <credential_type>
    [--tenant-id TENANT_ID]
    [--username USERNAME]
    [--password PASSWORD]
os cisco credential delete <credential>
no
neutron cisco-credential-delete <credential>
os cisco credential list
    [-F FIELD]
no
neutron cisco-credential-list
    [-F FIELD]
os cisco credential show <credential>
    [-F FIELD]
no
neutron cisco-credential-show <credential>
    [-F FIELD]
os cisco network profile create <name> <vlan|overlay|multi-segment|trunk>
    [--tenant-id TENANT_ID]                 
    [--sub_type SUB_TYPE]                   
    [--segment_range SEGMENT_RANGE]         
    [--physical_network PHYSICAL_NETWORK]   
    [--multicast_ip_range MULTICAST_IP_RANGE]
    [--add-tenant ADD_TENANT]
no
neutron cisco-network-profile-create <name> <vlan|overlay|multi-segment|trunk>
    [--tenant-id TENANT_ID]                 
    [--sub_type SUB_TYPE]                   
    [--segment_range SEGMENT_RANGE]         
    [--physical_network PHYSICAL_NETWORK]   
    [--multicast_ip_range MULTICAST_IP_RANGE]
    [--add-tenant ADD_TENANT]
os cisco network profile delete <profile>
    [--request-format {json,xml}]
no
neutron cisco-network-profile-delete <profile>
    [--request-format {json,xml}]
os cisco network profile list
    [-F FIELD]
no
neutron cisco-network-profile-list
    [-F FIELD]
os cisco network profile show <profile>
    [-F FIELD]
no
neutron cisco-network-profile-show <profile>
    [-F FIELD]
os cisco network profile update <profile>
    [--request-format {json,xml}]
no
neutron cisco-network-profile-update <profile>
    [--request-format {json,xml}]
os cisco policy profile list
    [-F FIELD]
no
neutron cisco-policy-profile-list
    [-F FIELD]
os cisco policy profile show <profile>
    [--request-format {json,xml}] [-D]    
    [-F FIELD]
no
neutron cisco-policy-profile-show <profile>
    [--request-format {json,xml}] [-D]    
    [-F FIELD]
os cisco policy profile update <profile>
    [--request-format {json,xml}]
no
neutron cisco-policy-profile-update <profile>
    [--request-format {json,xml}]


DHCP Agent

  • NOTE(dtroyer): here, 'dhcp agent' will be a two-word object (for now, suggest something shorter? 'dhcp' seems ambiguous)


  • Note: In general, should we support these generic -h and --request-format options from neutron. i think not.

NOTE(dtroyer): the --request-format option seems to want to support structured input data. While interesting that is not something we have addressed with OSC yet. So for now, lets leave them TDB.

OSC Command Implemented Neutron command
os dhcp agent add network
    <dhcp_agent>
    <network>
no
neutron dhcp-agent-network-add <dhcp_agent> <network>
   [--request-format {json,xml}]
os dhcp agent delete network
    <dhcp_agent>
    <network>
  1. Note: delete instead of remove; Maybe just "dhcp delete"

NOTE(dtroyer): this removes a network from an agent (see command structure)

no
neutron dhcp-agent-network-remove <dhcp_agent> <network>
   [--request-format {json,xml}]
os dhcp agent list
    [--long]
    <network>

Note why isn't this "dhcp list"?

NOTE(dtroyer): see above, we need to decide if 'dhcp' is a clear enough object name for the dhcp agent

no
neutron dhcp-agent-list-hosting-net <network>
    [--request-format {json,xml}] [-D]     
    [-F FIELD]


Extension

Note: Perhaps this would be a nice general feature.

NOTE(dtroyer): yes it would. We don't have this for any of the other APIs yet so we can play with the structure a bit here

OSC Command Implemented Neutron command
os extension list
    [--long]
    [--service <service>]

Note: Do we want to provide service as an option for this command?

NOTE(dtroyer): maybe. what service exactly? in the Identity API, service means things like 'compute v2', 'identity v3', etc. we need at least the API, I'm not certain if we should expect a user to know that though...

no
neutron ext-list
    [--request-format {json,xml}] [-D] [-F FIELD]
os extension show
    <extension>
no
neutron ext-show <extension> [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]


Firewall

OSC Command Implemented Neutron command
os firewall create <policy>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--name NAME]
    [--description DESCRIPTION] [--shared]
    [--admin-state-down]
no
neutron firewall-create <policy>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--name NAME]
    [--description DESCRIPTION] [--shared]
    [--admin-state-down]
os firewall delete <firewall>
    [--request-format {json,xml}]
no
neutron firewall-delete <firewall>
    [--request-format {json,xml}]
os firewall list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron firewall-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD] 
    [--sort-dir {asc,desc}]
os firewall policy create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
    [--description DESCRIPTION] [--shared]
    [--firewall-rules FIREWALL_RULES]
    [--audited]
no
neutron firewall-policy-create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]     
    [--tenant-id TENANT_ID]           
    [--description DESCRIPTION] [--shared]
    [--firewall-rules FIREWALL_RULES] 
    [--audited]
os firewall policy delete <policy>
    [--request-format {json,xml}]
no
neutron firewall-policy-delete <policy>
    [--request-format {json,xml}]
os firewall policy rule add <policy> <rule>
    [--request-format {json,xml}]
    [--insert-before FIREWALL_RULE]
    [--insert-after FIREWALL_RULE]
    # Note: Command change
no
neutron firewall-policy-insert-rule <policy> <rule>
    [--request-format {json,xml}]
    [--insert-before FIREWALL_RULE]        
    [--insert-after FIREWALL_RULE]
os firewall policy list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron firewall-policy-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os firewall policy rule remove <policy> <rule>
    [--request-format {json,xml}]
    # Note command change
no
neutron firewall-policy-remove-rule <policy> <rule>
    [--request-format {json,xml}]
os firewall policy show <policy>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
no
neutron firewall-policy-show <policy>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
os firewall policy update <policy>
    [--request-format {json,xml}]
no
neutron firewall-policy-update <policy>
    [--request-format {json,xml}]
os firewall rule create
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--name NAME]
    [--description DESCRIPTION] [--shared]
    [--source-ip-address SOURCE_IP_ADDRESS]
    [--destination-ip-address DESTINATION_IP_ADDRESS]
    [--source-port SOURCE_PORT]
    [--destination-port DESTINATION_PORT]
    [--disabled] --protocol {tcp,udp,icmp,any}
    --action {allow,deny}
no
neutron firewall-rule-create
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--name NAME]
    [--description DESCRIPTION] [--shared]
    [--source-ip-address SOURCE_IP_ADDRESS]
    [--destination-ip-address DESTINATION_IP_ADDRESS]
    [--source-port SOURCE_PORT]
    [--destination-port DESTINATION_PORT]
    [--disabled] --protocol {tcp,udp,icmp,any}
    --action {allow,deny}
os firewall rule delete <rule>
    [--request-format {json,xml}]
no
neutron firewall-rule-delete <rule>
    [--request-format {json,xml}]
os firewall rule list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron firewall-rule-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os firewall rule show <rule>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
no
neutron firewall-rule-show <rule>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
os firewall rule update <rule>
    [--request-format {json,xml}]
    [--protocol {tcp,udp,icmp,any}]
no
neutron firewall-rule-update <rule>
    [--request-format {json,xml}]
    [--protocol {tcp,udp,icmp,any}]
os firewall show <firewall>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron firewall-show <firewall>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os firewall update <firewall>
    [--request-format {json,xml}]
no
neutron firewall-update <firewall>
    [--request-format {json,xml}]

IP Floating

Note: Do we need to have backward compatibility for older releases where compute controlled floating IPs? I think the latest compute still supports the old interface, but it would be best to discontinue use of that. Should the command be floating-ip or floatingip?

OSC Command Implemented Neutron command
os floatingip add <ip> <port>
    [--request-format {json,xml}]
    [--fixed-ip-address FIXED_IP_ADDRESS]
    # Note command change
no
neutron floatingip-associate <ip> <port>
    [--request-format {json,xml}]
    [--fixed-ip-address FIXED_IP_ADDRESS]
os floatingip create <network>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--port-id PORT_ID]
    [--fixed-ip-address FIXED_IP_ADDRESS]
no
neutron floatingip-create <network>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--port-id PORT_ID]
    [--fixed-ip-address FIXED_IP_ADDRESS]
os floatingip delete <ip>
    [--request-format {json,xml}] FLOATINGIP
no
neutron floatingip-delete <ip>
    [--request-format {json,xml}] FLOATINGIP
os floatingip remove <ip>
    [--request-format {json,xml}]
    # Note command change
no
neutron floatingip-disassociate <ip>
    [--request-format {json,xml}]
os floatingip list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron floatingip-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os floatingip show <ip>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron floatingip-show <ip>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]

IPSec

  1. Note Why are we doing "ipsec site connection <verb>" instead of "ipsec <verb>"? Is there going to be something other than site connections for ipsec?
OSC Command Implemented Neutron command
os ipsec site connection create
    [-f {shell,table}]
    [-c COLUMN] [--variable VARIABLE]
    [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
    [--admin-state-down] [--name NAME]
    [--description DESCRIPTION]
    [--mtu MTU]
    [--initiator {bi-directional,response-only}]
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
    --vpnservice-id VPNSERVICE
    --ikepolicy-id IKEPOLICY
    --ipsecpolicy-id IPSECPOLICY
    --peer-address PEER_ADDRESS
    --peer-id PEER_ID --peer-cidr
    PEER_CIDRS --psk PSK
no
neutron ipsec-site-connection-create
    [-f {shell,table}]
    [-c COLUMN] [--variable VARIABLE]       
    [--prefix PREFIX]                       
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
    [--admin-state-down] [--name NAME]
    [--description DESCRIPTION]
    [--mtu MTU]
    [--initiator {bi-directional,response-only}]
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
    --vpnservice-id VPNSERVICE
    --ikepolicy-id IKEPOLICY
    --ipsecpolicy-id IPSECPOLICY
    --peer-address PEER_ADDRESS
    --peer-id PEER_ID --peer-cidr
    PEER_CIDRS --psk PSK
os ipsec site connection delete <ipsecsite>
    [--request-format {json,xml}]
no
neutron ipsec-site-connection-delete <ipsecsite>
    [--request-format {json,xml}]
os ipsec site connection list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE]
    [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron ipsec-site-connection-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]    
    [-F FIELD] [-P SIZE]                  
    [--sort-key FIELD]                    
    [--sort-dir {asc,desc}]
os ipsec site connection show <ipsecsite>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE]
    [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
no
neutron ipsec-site-connection-show <ipsecsite>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE]
    [--prefix PREFIX]                     
    [--request-format {json,xml}] [-D]    
    [-F FIELD]
os ipsec site connection update <ipsecsite>
    [--request-format {json,xml}]
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]
no
neutron ipsec-site-connection-update <ipsecsite>
    [--request-format {json,xml}]
    [--dpd action=ACTION,interval=INTERVAL,timeout=TIMEOUT]


L3

OSC Command Implemented Neutron command
os l3 agent router list <router>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
    # Note command change
no
neutron l3-agent-list-hosting-router <router>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}] 
    [--request-format {json,xml}] [-D]      
    [-F FIELD]
os l3 agent router add <l3_agent> <router>
    [--request-format {json,xml}]
no
neutron l3-agent-router-add <l3_agent> <router>
    [--request-format {json,xml}]
os l3 agent router remove <l3_agent> <router>
    [--request-format {json,xml}]
no
neutron l3-agent-router-remove <l3_agent> <router>
    [--request-format {json,xml}]


Load Balancer

OSC Command Implemented Neutron command
os lb healthmonitor add <healthmonitor> <pool>
    [--request-format {json,xml}]
    # Note command change
no
neutron lb-healthmonitor-associate <healthmonitor> <pool>
    [--request-format {json,xml}]
os lb healthmonitor create
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
    [--admin-state-down]
    [--expected-codes EXPECTED_CODES]
    [--http-method HTTP_METHOD]
    [--url-path URL_PATH] --delay DELAY
    --max-retries MAX_RETRIES --timeout
    TIMEOUT --type {PING,TCP,HTTP,HTTPS}
no
neutron lb-healthmonitor-create
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
    [--admin-state-down]
    [--expected-codes EXPECTED_CODES]
    [--http-method HTTP_METHOD]
    [--url-path URL_PATH] --delay DELAY
    --max-retries MAX_RETRIES --timeout
    TIMEOUT --type {PING,TCP,HTTP,HTTPS}
os lb healthmonitor delete <healthmonitor>
    [--request-format {json,xml}]
no
neutron lb-healthmonitor-delete <healthmonitor>
    [--request-format {json,xml}]
os lb healthmonitor remove <healthmonitor> <pool>
    [--request-format {json,xml}]
    # Note command change
no
neutron lb-healthmonitor-disassociate <healthmonitor> <pool>
    [--request-format {json,xml}]
os lb healthmonitor list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron lb-healthmonitor-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os lb healthmonitor show <healthmonitor>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
no
neutron lb-healthmonitor-show <healthmonitor>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
os lb healthmonitor update <healthmonitor>
    [--request-format {json,xml}]
no
neutron lb-healthmonitor-update <healthmonitor>
    [--request-format {json,xml}]
os lb member create <pool>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--admin-state-down]
    [--weight WEIGHT] --address ADDRESS
    --protocol-port PROTOCOL_PORT
no
neutron lb-member-create <pool>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX] 
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--admin-state-down]
    [--weight WEIGHT] --address ADDRESS
    --protocol-port PROTOCOL_PORT
os lb member delete <member>
    [--request-format {json,xml}]
no
neutron lb-member-delete <member>
    [--request-format {json,xml}]
os lb member list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron lb-member-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os lb member show <member>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron lb-member-show <member>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os lb member update <member>
    [--request-format {json,xml}]
no
neutron lb-member-update <member>
    [--request-format {json,xml}]
os lb pool create
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--admin-state-down]
    [--description DESCRIPTION] --lb-method
    {ROUND_ROBIN,LEAST_CONNECTIONS,SOURCE_IP} --name
    NAME --protocol {HTTP,HTTPS,TCP} --subnet-id
    SUBNET [--provider PROVIDER]
no
neutron lb-pool-create
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--admin-state-down]
    [--description DESCRIPTION] --lb-method
    {ROUND_ROBIN,LEAST_CONNECTIONS,SOURCE_IP} --name
    NAME --protocol {HTTP,HTTPS,TCP} --subnet-id
    SUBNET [--provider PROVIDER]
os lb pool delete <pool>
    [--request-format {json,xml}]
no
neutron lb-pool-delete <pool>
    [--request-format {json,xml}]
os lb pool list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron lb-pool-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os lb pool list on agent <lbaas_agent>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
    # Note another oddball command
no
neutron lb-pool-list-on-agent <lbaas_agent>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
# Note another one of those oddball commands
os lb pool show <pool>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron lb-pool-show <pool>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os lb pool stats <pool>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron lb-pool-stats <pool>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os lb pool update <pool>
    [--request-format {json,xml}]
no
neutron lb-pool-update <pool>
    [--request-format {json,xml}]
os lb vip create <pool>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--address ADDRESS]
    [--admin-state-down]
    [--connection-limit CONNECTION_LIMIT]
    [--description DESCRIPTION] --name NAME
    --protocol-port PROTOCOL_PORT --protocol
    {TCP,HTTP,HTTPS} --subnet-id SUBNET
no
neutron lb-vip-create <pool>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--address ADDRESS]
    [--admin-state-down]     
    [--connection-limit CONNECTION_LIMIT]
    [--description DESCRIPTION] --name NAME 
    --protocol-port PROTOCOL_PORT --protocol 
    {TCP,HTTP,HTTPS} --subnet-id SUBNET
os lb vip delete <vip>
    [--request-format {json,xml}]
no
neutron lb-vip-delete <vip>
    [--request-format {json,xml}]
os lb vip list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron lb-vip-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os lb vip show <vip>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron lb-vip-show <vip>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os lb vip update <vip>
    [--request-format {json,xml}]
no
neutron lb-vip-update <vip>
    [--request-format {json,xml}]
os lb agent hosting pool <pool>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
    # Note: oddball command name
no
neutron lb-agent-hosting-pool <pool>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD]


Network

  1. Note name changes from net to netowork
OSC Command Implemented Neutron command
os network create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--admin-state-down]
    [--shared]
no
neutron net-create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--admin-state-down]
    [--shared]
os network delete <network>
    [--request-format {json,xml}]
no
neutron net-delete <network>
    [--request-format {json,xml}]
os network external list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
# Note another oddball command
no
neutron net-external-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os network list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD] [--sort-dir {asc,desc}]
no
neutron net-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD] [--sort-dir {asc,desc}]
os network list on dhcp agent <dhcp_agent>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron net-list-on-dhcp-agent <dhcp_agent>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
# Note another one of those oddball commands
os network show <network>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron net-show <network>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os network update <network>
    [--request-format {json,xml}]
no
neutron net-update <network>
    [--request-format {json,xml}]

Network Gateway

Note: change from net to network

NOTE(dtroyer): is just 'gateway' sufficient here?


OSC Command Implemented Neutron command
os network gateway connect <gateway> <network>
    [--request-format {json,xml}]
    [--segmentation-type SEGMENTATION_TYPE]
    [--segmentation-id SEGMENTATION_ID]
# Note technicall wrong verb here, but add/remove
# seems a little odd
no
neutron net-gateway-connect <gateway> <network>
    [--request-format {json,xml}]
    [--segmentation-type SEGMENTATION_TYPE]
    [--segmentation-id SEGMENTATION_ID]
os network gateway create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--device DEVICE]
no
neutron net-gateway-create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] 
    [--tenant-id TENANT_ID] [--device DEVICE]
os network gateway delete <gateway>
    [--request-format {json,xml}]
no
neutron net-gateway-delete <gateway>
    [--request-format {json,xml}]
os network gateway disconnect <gateway> <network>
    [--request-format {json,xml}]
    [--segmentation-type SEGMENTATION_TYPE]
    [--segmentation-id SEGMENTATION_ID]
# Note technicall wrong verb here, but add/remove
# seems a little odd
no
neutron net-gateway-disconnect <gateway> <network>
    [--request-format {json,xml}]
    [--segmentation-type SEGMENTATION_TYPE]
    [--segmentation-id SEGMENTATION_ID]
os network gateway list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron net-gateway-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
os network gateway show <gateway>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron net-gateway-show <gateway>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os network gateway update <gateway>
    [--request-format {json,xml}]
no
neutron net-gateway-update <gateway>
    [--request-format {json,xml}]


Por t

OSC Command Implemented Neutron command
os port create <network>
  [--tenant-id TENANT_ID]
  [--name NAME]
  [--admin-state-down]
  [--mac-address MAC_ADDRESS]
  [--device-id DEVICE_ID]
  [--fixed-ip ip_address=IP_ADDR]
  [--security-group SECURITY_GROUP]
  [--no-security-groups]
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
no
neutron port-create <network>
  [--tenant-id TENANT_ID]
  [--name NAME]
  [--admin-state-down]
  [--mac-address MAC_ADDRESS]
  [--device-id DEVICE_ID]
  [--fixed-ip ip_address=IP_ADDR]
  [--security-group SECURITY_GROUP]
  [--no-security-groups]
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
os port delete <port>
no
neutron port-delete <port>
os port list
  [-D, --show-details]
  [-F FIELD, --field FIELD]
  [-P SIZE, --page-size SIZE]
  [--sort-key FIELD]
  [--sort-dir {asc,desc}]
  [-f {csv,table}, --format {csv,table}]
  [-c COLUMN, --column COLUMN]
  [--quote {all,minimal,none,nonnumeric}]
no
neutron port-list
  [-D, --show-details]
  [-F FIELD, --field FIELD]
  [-P SIZE, --page-size SIZE]
  [--sort-key FIELD]
  [--sort-dir {asc,desc}]
  [-f {csv,table}, --format {csv,table}]
  [-c COLUMN, --column COLUMN]
  [--quote {all,minimal,none,nonnumeric}]
os port show <port>
  [-D, --show-details]
  [-F FIELD, --field FIELD]
  [-f {shell,table}, --format {shell,table}]
  [-c COLUMN, --column COLUMN]
  [-variable VARIABLE]
  [--prefix PREFIX]
no
neutron port-show <port>
  [-D, --show-details]
  [-F FIELD, --field FIELD]
  [-f {shell,table}, --format {shell,table}]
  [-c COLUMN, --column COLUMN]
  [-variable VARIABLE]
  [--prefix PREFIX]
os port update <port>
  [--security-group SECURITY_GROUP]
  [--no-security-groups]
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]
no
neutron port-update <port>
  [--security-group SECURITY_GROUP]
  [--no-security-groups]
  [--extra-dhcp-opt EXTRA_DHCP_OPTS]

Queue

OSC Command Implemented Neutron command
os queue create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--min MIN] [--max MAX]
    [--qos-marking QOS_MARKING] [--default DEFAULT]
    [--dscp DSCP]
no
neutron queue-create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--min MIN] [--max MAX]
    [--qos-marking QOS_MARKING] [--default DEFAULT]
    [--dscp DSCP]
os queue delete <queue>
    [--request-format {json,xml}]
no
neutron queue-delete <queue>
    [--request-format {json,xml}]
os queue list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron queue-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
os queue show <queue>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron queue-show <queue>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]


Quota

Note: See quota in the cross API section.

OSC Command Implemented Neutron command
no
neutron quota-delete
    [--request-format {json,xml}]
    [--tenant-id tenant-id]
no
neutron quota-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}]
no
neutron quota-show
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id tenant-id]
no
neutron quota-update
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id tenant-id] [--network networks]
    [--subnet subnets] [--port ports] 
    [--router routers] [--floatingip floatingips]
    [--security-group security_groups]
    [--security-group-rule security_group_rules]


Router

OSC Command Implemented Neutron command
os router create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--admin-state-down]
no
neutron router-create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--admin-state-down]
os router delete <router>
    [--request-format {json,xml}]
no
neutron router-delete <router>
    [--request-format {json,xml}]
os router gateway remove <router>
    [--request-format {json,xml}]
    # Note name change
no
neutron router-gateway-clear <router>
    [--request-format {json,xml}]
os router gateway add <router> <network>
    [--request-format {json,xml}]
    [--disable-snat]
    # Note name change
no
neutron router-gateway-set <router> <network>
    [--request-format {json,xml}]
    [--disable-snat]
os router interface add <router> <interface>
    [--request-format {json,xml}]
no
neutron router-interface-add <router> <interface>
    [--request-format {json,xml}]
os router interface remove <router> <interface>
    [--request-format {json,xml}]
    # Note name change
no
neutron router-interface-delete <router> <interface>
    [--request-format {json,xml}]
os router list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron router-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os router list on l3 agent <l3_agent>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
no
neutron router-list-on-l3-agent <l3_agent>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] 
    [-F FIELD]
# Note should we support these oddball
# commands like this one?
os router port list <router>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron router-port-list <router>
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD] 
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os router show <router>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron router-show <router>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os router update <router>
    [--request-format {json,xml}]
no
neutron router-update <router>
    [--request-format {json,xml}]


Security Group

Note: should we use "secgroup" or replace it with "security group" Supporting both would be confusing, but for now it would probably work.

NOTE(dtroyer): I think 'security group' is what we need to use; this is one of the last commands to have the short form removed...

OSC Command Implemented Neutron command
os security group create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
    [--description DESCRIPTION]
no
neutron security-group-create <name>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]    
    [--tenant-id TENANT_ID]          
    [--description DESCRIPTION]
os security group delete <security_group>
    [--request-format {json,xml}]
no
neutron security-group-delete <security_group>
    [--request-format {json,xml}]
os security group list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron security-group-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}] 
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os security group show <security_group>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
no
neutron security-group-show <security_group>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
os security group update <security_group>
    [--request-format {json,xml}]
    [--name NAME] [--description DESCRIPTION]
no
neutron security-group-update <security_group>
    [--request-format {json,xml}]
    [--name NAME] [--description DESCRIPTION]


Security Group Rule

Note: Again, we have duplicate commands with Nova.

OSC Command Implemented Neutron command
os security group rule create <security_group>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE]
    [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID]
    [--direction {ingress,egress}]
    [--ethertype ETHERTYPE]
    [--protocol PROTOCOL]
    [--port-range-min PORT_RANGE_MIN]
    [--port-range-max PORT_RANGE_MAX]
    [--remote-ip-prefix REMOTE_IP_PREFIX]
    [--remote-group-id REMOTE_GROUP]
no
neutron security-group-rule-create <security_group>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE]                 
    [--prefix PREFIX]                     
    [--request-format {json,xml}]         
    [--tenant-id TENANT_ID]               
    [--direction {ingress,egress}]        
    [--ethertype ETHERTYPE]               
    [--protocol PROTOCOL]                 
    [--port-range-min PORT_RANGE_MIN]     
    [--port-range-max PORT_RANGE_MAX]     
    [--remote-ip-prefix REMOTE_IP_PREFIX]
    [--remote-group-id REMOTE_GROUP]
os security group rule delete <rule>
    [--request-format {json,xml}]
no
neutron security-group-rule-delete <rule>
    [--request-format {json,xml}]
os security group rule list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE]
    [--sort-key FIELD]
    [--sort-dir {asc,desc}]
    [--no-nameconv]
no
neutron security-group-rule-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]  
    [-F FIELD] [-P SIZE]                
    [--sort-key FIELD]                  
    [--sort-dir {asc,desc}]             
    [--no-nameconv]
os security group rule show <rule>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE]
    [--prefix PREFIX]
    [--request-format {json,xml}] [-D]
    [-F FIELD]
no
neutron security-group-rule-show <rule>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE]               
    [--prefix PREFIX]                   
    [--request-format {json,xml}] [-D]  
    [-F FIELD]


Service Provider

Note: Is this related to the Keystone service? Not sure. The Neutron help is very light.

OSC Command Implemented Neutron command
no
neutron service-provider-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D]
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]

Subnet

OSC Command Implemented Neutron command
os subnet create <network> <cidr>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--name NAME]
    [--ip-version {4,6}] [--gateway GATEWAY_IP]
    [--no-gateway]
    [--allocation-pool start=IP_ADDR,end=IP_ADDR]
    [--host-route destination=CIDR,nexthop=IP_ADDR]
    [--dns-nameserver DNS_NAMESERVER]
    [--disable-dhcp]
no
neutron subnet-create <network> <cidr>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}]
    [--tenant-id TENANT_ID] [--name NAME] 
    [--ip-version {4,6}] [--gateway GATEWAY_IP]
    [--no-gateway]           
    [--allocation-pool start=IP_ADDR,end=IP_ADDR]
    [--host-route destination=CIDR,nexthop=IP_ADDR]
    [--dns-nameserver DNS_NAMESERVER]
    [--disable-dhcp]
os subnet delete <subnet>
    [--request-format {json,xml}]
no
neutron subnet-delete <subnet>
    [--request-format {json,xml}]
os subnet list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron subnet-list
    [-f {csv,table}] [-c COLUMN]
    [--quote {all,minimal,none,nonnumeric}]
    [--request-format {json,xml}] [-D] [-F FIELD]
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os subnet show <subnet>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
no
neutron subnet-show <subnet>
    [-f {shell,table}] [-c COLUMN]
    [--variable VARIABLE] [--prefix PREFIX]
    [--request-format {json,xml}] [-D] [-F FIELD]
os subnet update <subnet>
    [--request-format {json,xml}]
no
neutron subnet-update <subnet>
    [--request-format {json,xml}]


VPN

OSC Command Implemented Neutron command
os vpn ikepolicy create <name>
    [--tenant-id TENANT_ID]
    [--description DESCRIPTION]
    [--auth-algorithm {sha1}]
    [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
    [--phase1-negotiation-mode {main}]
    [--ike-version {v1,v2}]
    [--pfs {group2,group5,group14}]
    [--lifetime units=UNITS,value=VALUE]
no
neutron vpn-ikepolicy-create <name>
    [--tenant-id TENANT_ID]
    [--description DESCRIPTION]
    [--auth-algorithm {sha1}]
    [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
    [--phase1-negotiation-mode {main}]
    [--ike-version {v1,v2}]
    [--pfs {group2,group5,group14}]
    [--lifetime units=UNITS,value=VALUE]
os vpn ikepolicy delete <policy>
no
neutron vpn-ikepolicy-delete <policy>
os vpn ikepolicy list
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron vpn-ikepolicy-list
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os vpn ikepolicy show <policy>
no
neutron vpn-ikepolicy-show <policy>
os vpn ikepolicy update <policy>
    [--lifetime units=UNITS,value=VALUE]
no
neutron vpn-ikepolicy-update <policy>
    [--lifetime units=UNITS,value=VALUE]
os vpn ipsecpolicy create <name>
    [--tenant-id TENANT_ID]
    [--description DESCRIPTION]
    [--transform-protocol {esp,ah,ah-esp}]
    [--auth-algorithm {sha1}]
    [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
    [--encapsulation-mode {tunnel,transport}]
    [--pfs {group2,group5,group14}]
    [--lifetime units=UNITS,value=VALUE]
no
neutron vpn-ipsecpolicy-create <name>
    [--tenant-id TENANT_ID]           
    [--description DESCRIPTION]       
    [--transform-protocol {esp,ah,ah-esp}]
    [--auth-algorithm {sha1}]         
    [--encryption-algorithm {3des,aes-128,aes-192,aes-256}]
    [--encapsulation-mode {tunnel,transport}]
    [--pfs {group2,group5,group14}]   
    [--lifetime units=UNITS,value=VALUE]
os vpn ipsecpolicy delete <policy>
no
neutron vpn-ipsecpolicy-delete <policy>
os vpn ipsecpolicy list
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron vpn-ipsecpolicy-list
    [-F FIELD] [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os vpn ipsecpolicy show <policy>
no
neutron vpn-ipsecpolicy-show <policy>
os vpn ipsecpolicy update <policy>
    [--lifetime units=UNITS,value=VALUE]
no
neutron vpn-ipsecpolicy-update <policy>
    [--lifetime units=UNITS,value=VALUE]
os vpn service create <router> <subnet>
    [--tenant-id TENANT_ID] [--admin-state-down]
    [--name NAME] [--description DESCRIPTION]
no
neutron vpn-service-create <router> <subnet>
    [--tenant-id TENANT_ID] [--admin-state-down]
    [--name NAME] [--description DESCRIPTION]
os vpn service delete <service>
no
neutron vpn-service-delete <service>
    [--request-format {json,xml}]
os vpn service list
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
no
neutron vpn-service-list
    [-P SIZE] [--sort-key FIELD]
    [--sort-dir {asc,desc}]
os vpn service show <service>
no
neutron vpn-service-show <service>
os vpn service update <service>
no
neutron vpn-service-update <service>


Volume

Cinder Option Environment Variable OSC Option Environment Variable
--os-volume-api-version <ver> OS_VOLUME_API_VERSION --os-volume-api-version <ver> OS_VOLUME_API_VERSION
--service-type <type>
--service-name <name> CINDER_SERVICE_NAME
--volume-service-name <name> CINDER_VOLUME_SERVICE_NAME
--endpoint-type <type> CINDER_ENDPOINT_TYPE
--retries <int>


API v1.0

limits

See limits in the cross API section.

quota

See quota in the cross API section.

snapshot

OSC Command Implemented Cinder command
os snapshot create
    --name <name>
    [--description <description>]
    [--force]
    <volume>
yes
cinder snapshot-create
    --force <True|False>
    --display-name <display-name>
    --display-description <display-description>
    <volume-id>
os snapshot delete
    <snapshot>
yes
cinder snapshot-delete
    <snapshot-id>
os snapshot list
yes (no opts yet)
cinder snapshot-list 
    --all-tenants [<0|1>]
    --display-name <display-name>
    --status <status>
    --volume-id <volume-id>
os snapshot set
    [--name <new-name>]
    [--description <new-description>]
    <snapshot>
yes
cinder snapshot-rename
    --display-description <display-description>
    --display-name <display-name>
    <snapshot-id>
os snapshot show
    <snapshot>
yes
cinder snapshot-show
    <snapshot-id>

volume

OSC Command Implemented Cinder command
os volume create
    --size <size>
    [--description <description>]
    [--volume-type <volume-type>]
    [--snapshot-id <snapshot-id>]
    [--source <volid>]
    [--image <image-id>]
    [--availability-zone <availability-zone>]
    [--property <key=value>]
    [--user <user>]           # admin only
    [--project <project>]     # admin only
    <name>
yes
cinder create
    [--snapshot-id <snapshot-id>]
    [--source-volid <source-volid>]
    [--image-id <image-id>]
    [--display-name <display-name>]
    [--display-description <display-description>]
    [--volume-type <volume-type>]
    [--availability-zone <availability-zone>]
    [--metadata <key=value>]
    <size>
os volume delete
    [--force]
    <volume>
yes
cinder delete
    <volume-id>

cinder force-delete
    <volume-id>
os volume list
    [--name <name>]
    [--status <status>]
    [--long]
    [--all-tenants]           # admin only
yes
cinder list 
    --all-tenants [<0|1>]
    --display-name <display-name>
    --status <status>
os volume set
    [--name <new-name>]
    [--description <new-description>]
    [--property <key=value>]
    <volume>
yes
cinder metadata
    <volume-id>
    <action>
    <key=value>

cinder rename
    --display-description <display-description>
    <volume-id>
    <display-name>
os volume show
    <volume>
yes
cinder show
    <volume-id>
os volume unset
    [--property <key>]
    <volume>
yes

volume type

OSC Command Implemented Cinder command
os volume type create
    [--property <key=value>]
    <name>
yes
cinder type-create
    <type-name>
os volume type delete
    <volume-type>
yes
cinder type-delete
    <type-id>
os volume type list
    [--long]
yes
cinder type-list 

cinder extra-specs-list
os volume type set
    [--property <key=value>]
    <volume-type>
yes
cinder type-key
    <type-id>
    <set>
    <key=value>
os volume type unset
    [--property <key>]
    <volume-type>
yes
cinder type-key
    <type-id>
    <unset>
    <key>


Options

In general, options will be transformed into more UNIX-like usage

  • --enable true|false becomes --enable|--disable

(dhellmann) Not all boolean options have natural antonyms like enable/disable. It may be more consistent to use a --flag --no-flag style naming convention to indicate the opposites of flags.

"(dtroyer) Yup, except i really don't like --no-enable. I'm going to work through the switch mapping to see how many others we really have to deal with."