summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkihiro Motoki <amotoki@gmail.com>2017-06-01 02:54:40 +0000
committerAkihiro Motoki <amotoki@gmail.com>2017-07-03 05:26:43 +0000
commit6295f85ab2a4a114f08743390c213bd6055b03f5 (patch)
treeae888dbebda0e3fd498cf590aea40c57ca9d718a
parent7790167f6f9f128a973059e55a5552b7b172cd02 (diff)
downloadpython-neutronclient-6295f85ab2a4a114f08743390c213bd6055b03f5.tar.gz
Use entry points to define neutron CLI commands
It allows us to generate CLI references automatically using cliff.sphinxext (which will be available in the next release of cliff). This allows us to avoid maintaining the in-tree CLI refernece manually. Change-Id: I3950ed8cf50508210c8b3270724e283aea8e1673
-rw-r--r--neutronclient/shell.py381
-rw-r--r--neutronclient/tests/unit/test_client_extension.py29
-rw-r--r--setup.cfg285
3 files changed, 313 insertions, 382 deletions
diff --git a/neutronclient/shell.py b/neutronclient/shell.py
index 63d1cd8..017d642 100644
--- a/neutronclient/shell.py
+++ b/neutronclient/shell.py
@@ -40,61 +40,15 @@ from neutronclient._i18n import _
from neutronclient.common import clientmanager
from neutronclient.common import exceptions as exc
from neutronclient.common import extension as client_extension
-from neutronclient.neutron.v2_0 import address_scope
-from neutronclient.neutron.v2_0 import agent
-from neutronclient.neutron.v2_0 import agentscheduler
-from neutronclient.neutron.v2_0 import auto_allocated_topology
-from neutronclient.neutron.v2_0 import availability_zone
-from neutronclient.neutron.v2_0.bgp import dragentscheduler as bgp_drsched
-from neutronclient.neutron.v2_0.bgp import peer as bgp_peer
-from neutronclient.neutron.v2_0.bgp import speaker as bgp_speaker
-from neutronclient.neutron.v2_0 import extension
-from neutronclient.neutron.v2_0.flavor import flavor
-from neutronclient.neutron.v2_0.flavor import flavor_profile
-from neutronclient.neutron.v2_0 import floatingip
-from neutronclient.neutron.v2_0.fw import firewall
-from neutronclient.neutron.v2_0.fw import firewallpolicy
-from neutronclient.neutron.v2_0.fw import firewallrule
-from neutronclient.neutron.v2_0.lb import healthmonitor as lb_healthmonitor
-from neutronclient.neutron.v2_0.lb import member as lb_member
-from neutronclient.neutron.v2_0.lb import pool as lb_pool
-from neutronclient.neutron.v2_0.lb.v2 import healthmonitor as lbaas_healthmon
-from neutronclient.neutron.v2_0.lb.v2 import l7policy as lbaas_l7policy
-from neutronclient.neutron.v2_0.lb.v2 import l7rule as lbaas_l7rule
-from neutronclient.neutron.v2_0.lb.v2 import listener as lbaas_listener
-from neutronclient.neutron.v2_0.lb.v2 import loadbalancer as lbaas_loadbalancer
-from neutronclient.neutron.v2_0.lb.v2 import member as lbaas_member
-from neutronclient.neutron.v2_0.lb.v2 import pool as lbaas_pool
-from neutronclient.neutron.v2_0.lb import vip as lb_vip
-from neutronclient.neutron.v2_0 import metering
-from neutronclient.neutron.v2_0 import network
-from neutronclient.neutron.v2_0 import network_ip_availability
-from neutronclient.neutron.v2_0 import port
-from neutronclient.neutron.v2_0 import purge
-from neutronclient.neutron.v2_0.qos import bandwidth_limit_rule
-from neutronclient.neutron.v2_0.qos import dscp_marking_rule
-from neutronclient.neutron.v2_0.qos import minimum_bandwidth_rule
-from neutronclient.neutron.v2_0.qos import policy as qos_policy
-from neutronclient.neutron.v2_0.qos import rule as qos_rule
-from neutronclient.neutron.v2_0 import quota
-from neutronclient.neutron.v2_0 import rbac
-from neutronclient.neutron.v2_0 import router
-from neutronclient.neutron.v2_0 import securitygroup
-from neutronclient.neutron.v2_0 import servicetype
from neutronclient.neutron.v2_0 import subnet
-from neutronclient.neutron.v2_0 import subnetpool
-from neutronclient.neutron.v2_0 import tag
-from neutronclient.neutron.v2_0.vpn import endpoint_group
-from neutronclient.neutron.v2_0.vpn import ikepolicy
-from neutronclient.neutron.v2_0.vpn import ipsec_site_connection
-from neutronclient.neutron.v2_0.vpn import ipsecpolicy
-from neutronclient.neutron.v2_0.vpn import vpnservice
from neutronclient.version import __version__
VERSION = '2.0'
NEUTRON_API_VERSION = '2.0'
+NAMESPACE_MAP = {NEUTRON_API_VERSION: 'neutron.cli.v2'}
+
def run_command(cmd, cmd_parser, sub_argv):
_argv = sub_argv
@@ -156,320 +110,6 @@ class BashCompletionCommand(command.Command):
pass
-COMMAND_V2 = {
- 'bash-completion': BashCompletionCommand,
- 'net-list': network.ListNetwork,
- 'net-external-list': network.ListExternalNetwork,
- 'net-show': network.ShowNetwork,
- 'net-create': network.CreateNetwork,
- 'net-delete': network.DeleteNetwork,
- 'net-update': network.UpdateNetwork,
- 'subnet-list': subnet.ListSubnet,
- 'subnet-show': subnet.ShowSubnet,
- 'subnet-create': subnet.CreateSubnet,
- 'subnet-delete': subnet.DeleteSubnet,
- 'subnet-update': subnet.UpdateSubnet,
- 'subnetpool-list': subnetpool.ListSubnetPool,
- 'subnetpool-show': subnetpool.ShowSubnetPool,
- 'subnetpool-create': subnetpool.CreateSubnetPool,
- 'subnetpool-delete': subnetpool.DeleteSubnetPool,
- 'subnetpool-update': subnetpool.UpdateSubnetPool,
- 'port-list': port.ListPort,
- 'port-show': port.ShowPort,
- 'port-create': port.CreatePort,
- 'port-delete': port.DeletePort,
- 'port-update': port.UpdatePort,
- 'purge': purge.Purge,
- 'quota-list': quota.ListQuota,
- 'quota-show': quota.ShowQuota,
- 'quota-default-show': quota.ShowQuotaDefault,
- 'quota-delete': quota.DeleteQuota,
- 'quota-update': quota.UpdateQuota,
- 'ext-list': extension.ListExt,
- 'ext-show': extension.ShowExt,
- 'router-list': router.ListRouter,
- 'router-port-list': port.ListRouterPort,
- 'router-show': router.ShowRouter,
- 'router-create': router.CreateRouter,
- 'router-delete': router.DeleteRouter,
- 'router-update': router.UpdateRouter,
- 'router-interface-add': router.AddInterfaceRouter,
- 'router-interface-delete': router.RemoveInterfaceRouter,
- 'router-gateway-set': router.SetGatewayRouter,
- 'router-gateway-clear': router.RemoveGatewayRouter,
- 'floatingip-list': floatingip.ListFloatingIP,
- 'floatingip-show': floatingip.ShowFloatingIP,
- 'floatingip-create': floatingip.CreateFloatingIP,
- 'floatingip-delete': floatingip.DeleteFloatingIP,
- 'floatingip-associate': floatingip.AssociateFloatingIP,
- 'floatingip-disassociate': floatingip.DisassociateFloatingIP,
- 'security-group-list': securitygroup.ListSecurityGroup,
- 'security-group-show': securitygroup.ShowSecurityGroup,
- 'security-group-create': securitygroup.CreateSecurityGroup,
- 'security-group-delete': securitygroup.DeleteSecurityGroup,
- 'security-group-update': securitygroup.UpdateSecurityGroup,
- 'security-group-rule-list': securitygroup.ListSecurityGroupRule,
- 'security-group-rule-show': securitygroup.ShowSecurityGroupRule,
- 'security-group-rule-create': securitygroup.CreateSecurityGroupRule,
- 'security-group-rule-delete': securitygroup.DeleteSecurityGroupRule,
- 'lbaas-loadbalancer-list': lbaas_loadbalancer.ListLoadBalancer,
- 'lbaas-loadbalancer-show': lbaas_loadbalancer.ShowLoadBalancer,
- 'lbaas-loadbalancer-create': lbaas_loadbalancer.CreateLoadBalancer,
- 'lbaas-loadbalancer-update': lbaas_loadbalancer.UpdateLoadBalancer,
- 'lbaas-loadbalancer-delete': lbaas_loadbalancer.DeleteLoadBalancer,
- 'lbaas-loadbalancer-stats': lbaas_loadbalancer.RetrieveLoadBalancerStats,
- 'lbaas-loadbalancer-status': lbaas_loadbalancer.RetrieveLoadBalancerStatus,
- 'lbaas-listener-list': lbaas_listener.ListListener,
- 'lbaas-listener-show': lbaas_listener.ShowListener,
- 'lbaas-listener-create': lbaas_listener.CreateListener,
- 'lbaas-listener-update': lbaas_listener.UpdateListener,
- 'lbaas-listener-delete': lbaas_listener.DeleteListener,
- 'lbaas-l7policy-list': lbaas_l7policy.ListL7Policy,
- 'lbaas-l7policy-show': lbaas_l7policy.ShowL7Policy,
- 'lbaas-l7policy-create': lbaas_l7policy.CreateL7Policy,
- 'lbaas-l7policy-update': lbaas_l7policy.UpdateL7Policy,
- 'lbaas-l7policy-delete': lbaas_l7policy.DeleteL7Policy,
- 'lbaas-l7rule-list': lbaas_l7rule.ListL7Rule,
- 'lbaas-l7rule-show': lbaas_l7rule.ShowL7Rule,
- 'lbaas-l7rule-create': lbaas_l7rule.CreateL7Rule,
- 'lbaas-l7rule-update': lbaas_l7rule.UpdateL7Rule,
- 'lbaas-l7rule-delete': lbaas_l7rule.DeleteL7Rule,
- 'lbaas-pool-list': lbaas_pool.ListPool,
- 'lbaas-pool-show': lbaas_pool.ShowPool,
- 'lbaas-pool-create': lbaas_pool.CreatePool,
- 'lbaas-pool-update': lbaas_pool.UpdatePool,
- 'lbaas-pool-delete': lbaas_pool.DeletePool,
- 'lbaas-healthmonitor-list': lbaas_healthmon.ListHealthMonitor,
- 'lbaas-healthmonitor-show': lbaas_healthmon.ShowHealthMonitor,
- 'lbaas-healthmonitor-create': lbaas_healthmon.CreateHealthMonitor,
- 'lbaas-healthmonitor-update': lbaas_healthmon.UpdateHealthMonitor,
- 'lbaas-healthmonitor-delete': lbaas_healthmon.DeleteHealthMonitor,
- 'lbaas-member-list': lbaas_member.ListMember,
- 'lbaas-member-show': lbaas_member.ShowMember,
- 'lbaas-member-create': lbaas_member.CreateMember,
- 'lbaas-member-update': lbaas_member.UpdateMember,
- 'lbaas-member-delete': lbaas_member.DeleteMember,
- 'lb-vip-list': lb_vip.ListVip,
- 'lb-vip-show': lb_vip.ShowVip,
- 'lb-vip-create': lb_vip.CreateVip,
- 'lb-vip-update': lb_vip.UpdateVip,
- 'lb-vip-delete': lb_vip.DeleteVip,
- 'lb-pool-list': lb_pool.ListPool,
- 'lb-pool-show': lb_pool.ShowPool,
- 'lb-pool-create': lb_pool.CreatePool,
- 'lb-pool-update': lb_pool.UpdatePool,
- 'lb-pool-delete': lb_pool.DeletePool,
- 'lb-pool-stats': lb_pool.RetrievePoolStats,
- 'lb-member-list': lb_member.ListMember,
- 'lb-member-show': lb_member.ShowMember,
- 'lb-member-create': lb_member.CreateMember,
- 'lb-member-update': lb_member.UpdateMember,
- 'lb-member-delete': lb_member.DeleteMember,
- 'lb-healthmonitor-list': lb_healthmonitor.ListHealthMonitor,
- 'lb-healthmonitor-show': lb_healthmonitor.ShowHealthMonitor,
- 'lb-healthmonitor-create': lb_healthmonitor.CreateHealthMonitor,
- 'lb-healthmonitor-update': lb_healthmonitor.UpdateHealthMonitor,
- 'lb-healthmonitor-delete': lb_healthmonitor.DeleteHealthMonitor,
- 'lb-healthmonitor-associate': lb_healthmonitor.AssociateHealthMonitor,
- 'lb-healthmonitor-disassociate': (
- lb_healthmonitor.DisassociateHealthMonitor
- ),
- 'agent-list': agent.ListAgent,
- 'agent-show': agent.ShowAgent,
- 'agent-delete': agent.DeleteAgent,
- 'agent-update': agent.UpdateAgent,
- 'dhcp-agent-network-add': agentscheduler.AddNetworkToDhcpAgent,
- 'dhcp-agent-network-remove': agentscheduler.RemoveNetworkFromDhcpAgent,
- 'net-list-on-dhcp-agent': agentscheduler.ListNetworksOnDhcpAgent,
- 'dhcp-agent-list-hosting-net': agentscheduler.ListDhcpAgentsHostingNetwork,
- 'l3-agent-router-add': agentscheduler.AddRouterToL3Agent,
- 'l3-agent-router-remove': agentscheduler.RemoveRouterFromL3Agent,
- 'router-list-on-l3-agent': agentscheduler.ListRoutersOnL3Agent,
- 'l3-agent-list-hosting-router': agentscheduler.ListL3AgentsHostingRouter,
- 'lb-pool-list-on-agent': agentscheduler.ListPoolsOnLbaasAgent,
- 'lb-agent-hosting-pool': agentscheduler.GetLbaasAgentHostingPool,
- 'lbaas-loadbalancer-list-on-agent':
- agentscheduler.ListLoadBalancersOnLbaasAgent,
- 'lbaas-agent-hosting-loadbalancer':
- agentscheduler.GetLbaasAgentHostingLoadBalancer,
- 'service-provider-list': servicetype.ListServiceProvider,
- 'firewall-rule-list': firewallrule.ListFirewallRule,
- 'firewall-rule-show': firewallrule.ShowFirewallRule,
- 'firewall-rule-create': firewallrule.CreateFirewallRule,
- 'firewall-rule-update': firewallrule.UpdateFirewallRule,
- 'firewall-rule-delete': firewallrule.DeleteFirewallRule,
- 'firewall-policy-list': firewallpolicy.ListFirewallPolicy,
- 'firewall-policy-show': firewallpolicy.ShowFirewallPolicy,
- 'firewall-policy-create': firewallpolicy.CreateFirewallPolicy,
- 'firewall-policy-update': firewallpolicy.UpdateFirewallPolicy,
- 'firewall-policy-delete': firewallpolicy.DeleteFirewallPolicy,
- 'firewall-policy-insert-rule': firewallpolicy.FirewallPolicyInsertRule,
- 'firewall-policy-remove-rule': firewallpolicy.FirewallPolicyRemoveRule,
- 'firewall-list': firewall.ListFirewall,
- 'firewall-show': firewall.ShowFirewall,
- 'firewall-create': firewall.CreateFirewall,
- 'firewall-update': firewall.UpdateFirewall,
- 'firewall-delete': firewall.DeleteFirewall,
- 'ipsec-site-connection-list': (
- ipsec_site_connection.ListIPsecSiteConnection
- ),
- 'ipsec-site-connection-show': (
- ipsec_site_connection.ShowIPsecSiteConnection
- ),
- 'ipsec-site-connection-create': (
- ipsec_site_connection.CreateIPsecSiteConnection
- ),
- 'ipsec-site-connection-update': (
- ipsec_site_connection.UpdateIPsecSiteConnection
- ),
- 'ipsec-site-connection-delete': (
- ipsec_site_connection.DeleteIPsecSiteConnection
- ),
- 'vpn-endpoint-group-list': endpoint_group.ListEndpointGroup,
- 'vpn-endpoint-group-show': endpoint_group.ShowEndpointGroup,
- 'vpn-endpoint-group-create': endpoint_group.CreateEndpointGroup,
- 'vpn-endpoint-group-update': endpoint_group.UpdateEndpointGroup,
- 'vpn-endpoint-group-delete': endpoint_group.DeleteEndpointGroup,
- 'vpn-service-list': vpnservice.ListVPNService,
- 'vpn-service-show': vpnservice.ShowVPNService,
- 'vpn-service-create': vpnservice.CreateVPNService,
- 'vpn-service-update': vpnservice.UpdateVPNService,
- 'vpn-service-delete': vpnservice.DeleteVPNService,
- 'vpn-ipsecpolicy-list': ipsecpolicy.ListIPsecPolicy,
- 'vpn-ipsecpolicy-show': ipsecpolicy.ShowIPsecPolicy,
- 'vpn-ipsecpolicy-create': ipsecpolicy.CreateIPsecPolicy,
- 'vpn-ipsecpolicy-update': ipsecpolicy.UpdateIPsecPolicy,
- 'vpn-ipsecpolicy-delete': ipsecpolicy.DeleteIPsecPolicy,
- 'vpn-ikepolicy-list': ikepolicy.ListIKEPolicy,
- 'vpn-ikepolicy-show': ikepolicy.ShowIKEPolicy,
- 'vpn-ikepolicy-create': ikepolicy.CreateIKEPolicy,
- 'vpn-ikepolicy-update': ikepolicy.UpdateIKEPolicy,
- 'vpn-ikepolicy-delete': ikepolicy.DeleteIKEPolicy,
- 'meter-label-create': metering.CreateMeteringLabel,
- 'meter-label-list': metering.ListMeteringLabel,
- 'meter-label-show': metering.ShowMeteringLabel,
- 'meter-label-delete': metering.DeleteMeteringLabel,
- 'meter-label-rule-create': metering.CreateMeteringLabelRule,
- 'meter-label-rule-list': metering.ListMeteringLabelRule,
- 'meter-label-rule-show': metering.ShowMeteringLabelRule,
- 'meter-label-rule-delete': metering.DeleteMeteringLabelRule,
- 'rbac-create': rbac.CreateRBACPolicy,
- 'rbac-update': rbac.UpdateRBACPolicy,
- 'rbac-list': rbac.ListRBACPolicy,
- 'rbac-show': rbac.ShowRBACPolicy,
- 'rbac-delete': rbac.DeleteRBACPolicy,
- 'address-scope-list': address_scope.ListAddressScope,
- 'address-scope-show': address_scope.ShowAddressScope,
- 'address-scope-create': address_scope.CreateAddressScope,
- 'address-scope-delete': address_scope.DeleteAddressScope,
- 'address-scope-update': address_scope.UpdateAddressScope,
- 'qos-policy-list': qos_policy.ListQoSPolicy,
- 'qos-policy-show': qos_policy.ShowQoSPolicy,
- 'qos-policy-create': qos_policy.CreateQoSPolicy,
- 'qos-policy-update': qos_policy.UpdateQoSPolicy,
- 'qos-policy-delete': qos_policy.DeleteQoSPolicy,
- 'qos-bandwidth-limit-rule-create': (
- bandwidth_limit_rule.CreateQoSBandwidthLimitRule
- ),
- 'qos-bandwidth-limit-rule-show': (
- bandwidth_limit_rule.ShowQoSBandwidthLimitRule
- ),
- 'qos-bandwidth-limit-rule-list': (
- bandwidth_limit_rule.ListQoSBandwidthLimitRules
- ),
- 'qos-bandwidth-limit-rule-update': (
- bandwidth_limit_rule.UpdateQoSBandwidthLimitRule
- ),
- 'qos-bandwidth-limit-rule-delete': (
- bandwidth_limit_rule.DeleteQoSBandwidthLimitRule
- ),
- 'qos-dscp-marking-rule-create': (
- dscp_marking_rule.CreateQoSDscpMarkingRule
- ),
- 'qos-dscp-marking-rule-show': (
- dscp_marking_rule.ShowQoSDscpMarkingRule
- ),
- 'qos-dscp-marking-rule-list': (
- dscp_marking_rule.ListQoSDscpMarkingRules
- ),
- 'qos-dscp-marking-rule-update': (
- dscp_marking_rule.UpdateQoSDscpMarkingRule
- ),
- 'qos-dscp-marking-rule-delete': (
- dscp_marking_rule.DeleteQoSDscpMarkingRule
- ),
- 'qos-minimum-bandwidth-rule-create': (
- minimum_bandwidth_rule.CreateQoSMinimumBandwidthRule
- ),
- 'qos-minimum-bandwidth-rule-show': (
- minimum_bandwidth_rule.ShowQoSMinimumBandwidthRule
- ),
- 'qos-minimum-bandwidth-rule-list': (
- minimum_bandwidth_rule.ListQoSMinimumBandwidthRules
- ),
- 'qos-minimum-bandwidth-rule-update': (
- minimum_bandwidth_rule.UpdateQoSMinimumBandwidthRule
- ),
- 'qos-minimum-bandwidth-rule-delete': (
- minimum_bandwidth_rule.DeleteQoSMinimumBandwidthRule
- ),
- 'qos-available-rule-types': qos_rule.ListQoSRuleTypes,
- 'flavor-list': flavor.ListFlavor,
- 'flavor-show': flavor.ShowFlavor,
- 'flavor-create': flavor.CreateFlavor,
- 'flavor-delete': flavor.DeleteFlavor,
- 'flavor-update': flavor.UpdateFlavor,
- 'flavor-associate': flavor.AssociateFlavor,
- 'flavor-disassociate': flavor.DisassociateFlavor,
- 'flavor-profile-list': flavor_profile.ListFlavorProfile,
- 'flavor-profile-show': flavor_profile.ShowFlavorProfile,
- 'flavor-profile-create': flavor_profile.CreateFlavorProfile,
- 'flavor-profile-delete': flavor_profile.DeleteFlavorProfile,
- 'flavor-profile-update': flavor_profile.UpdateFlavorProfile,
- 'availability-zone-list': availability_zone.ListAvailabilityZone,
- 'auto-allocated-topology-show': (
- auto_allocated_topology.ShowAutoAllocatedTopology),
- 'auto-allocated-topology-delete': (
- auto_allocated_topology.DeleteAutoAllocatedTopology),
- 'bgp-dragent-speaker-add': (
- bgp_drsched.AddBGPSpeakerToDRAgent
- ),
- 'bgp-dragent-speaker-remove': (
- bgp_drsched.RemoveBGPSpeakerFromDRAgent
- ),
- 'bgp-speaker-list-on-dragent': (
- bgp_drsched.ListBGPSpeakersOnDRAgent
- ),
- 'bgp-dragent-list-hosting-speaker': (
- bgp_drsched.ListDRAgentsHostingBGPSpeaker
- ),
- 'bgp-speaker-list': bgp_speaker.ListSpeakers,
- 'bgp-speaker-advertiseroute-list': (
- bgp_speaker.ListRoutesAdvertisedBySpeaker
- ),
- 'bgp-speaker-show': bgp_speaker.ShowSpeaker,
- 'bgp-speaker-create': bgp_speaker.CreateSpeaker,
- 'bgp-speaker-update': bgp_speaker.UpdateSpeaker,
- 'bgp-speaker-delete': bgp_speaker.DeleteSpeaker,
- 'bgp-speaker-peer-add': bgp_speaker.AddPeerToSpeaker,
- 'bgp-speaker-peer-remove': bgp_speaker.RemovePeerFromSpeaker,
- 'bgp-speaker-network-add': bgp_speaker.AddNetworkToSpeaker,
- 'bgp-speaker-network-remove': bgp_speaker.RemoveNetworkFromSpeaker,
- 'bgp-peer-list': bgp_peer.ListPeers,
- 'bgp-peer-show': bgp_peer.ShowPeer,
- 'bgp-peer-create': bgp_peer.CreatePeer,
- 'bgp-peer-update': bgp_peer.UpdatePeer,
- 'bgp-peer-delete': bgp_peer.DeletePeer,
- 'net-ip-availability-list': network_ip_availability.ListIpAvailability,
- 'net-ip-availability-show': network_ip_availability.ShowIpAvailability,
- 'tag-add': tag.AddTag,
- 'tag-replace': tag.ReplaceTag,
- 'tag-remove': tag.RemoveTag,
-}
-
-COMMANDS = {'2.0': COMMAND_V2}
-
-
class HelpAction(argparse.Action):
"""Print help message including sub-commands
@@ -508,13 +148,11 @@ class NeutronShell(app.App):
log = logging.getLogger(__name__)
def __init__(self, apiversion):
+ namespace = NAMESPACE_MAP[apiversion]
super(NeutronShell, self).__init__(
description=__doc__.strip(),
version=VERSION,
- command_manager=commandmanager.CommandManager('neutron.cli'), )
- self.commands = COMMANDS
- for k, v in self.commands[apiversion].items():
- self.command_manager.add_command(k, v)
+ command_manager=commandmanager.CommandManager(namespace), )
self._register_extensions(VERSION)
@@ -813,7 +451,6 @@ class NeutronShell(app.App):
cls.__doc__ = ("%s %s" % (name_prefix, cls.__doc__) if
cls.__doc__ else name_prefix)
self.command_manager.add_command(cmd, cls)
- self.commands[version][cmd] = cls
except TypeError:
pass
@@ -832,15 +469,17 @@ class NeutronShell(app.App):
if arg == 'bash-completion' and help_command_pos == -1:
self._bash_completion()
return 0
- if arg in self.commands[self.api_version]:
- if command_pos == -1:
- command_pos = index
- elif arg in ('-h', '--help'):
+ if arg in ('-h', '--help'):
if help_pos == -1:
help_pos = index
+ # self.command_manager.commands contains 'help',
+ # so we need to check this first.
elif arg == 'help':
if help_command_pos == -1:
help_command_pos = index
+ elif arg in self.command_manager.commands:
+ if command_pos == -1:
+ command_pos = index
index = index + 1
if command_pos > -1 and help_pos > command_pos:
argv = ['help', argv[command_pos]]
diff --git a/neutronclient/tests/unit/test_client_extension.py b/neutronclient/tests/unit/test_client_extension.py
index 60a2085..7e443a0 100644
--- a/neutronclient/tests/unit/test_client_extension.py
+++ b/neutronclient/tests/unit/test_client_extension.py
@@ -41,25 +41,28 @@ class CLITestV20ExtensionJSON(test_cli20.CLITestV20Base):
return contrib
def test_ext_cmd_loaded(self):
- shell.NeutronShell('2.0')
+ neutron_shell = shell.NeutronShell('2.0')
ext_cmd = {'fox-sockets-list': fox_sockets.FoxInSocketsList,
'fox-sockets-create': fox_sockets.FoxInSocketsCreate,
'fox-sockets-update': fox_sockets.FoxInSocketsUpdate,
'fox-sockets-delete': fox_sockets.FoxInSocketsDelete,
'fox-sockets-show': fox_sockets.FoxInSocketsShow}
- self.assertDictContainsSubset(ext_cmd, shell.COMMANDS['2.0'])
+ for cmd_name, cmd_class in ext_cmd.items():
+ found = neutron_shell.command_manager.find_command([cmd_name])
+ self.assertEqual(cmd_class, found[0])
def test_ext_cmd_help_doc_with_extension_name(self):
- shell.NeutronShell('2.0')
+ neutron_shell = shell.NeutronShell('2.0')
ext_cmd = {'fox-sockets-list': fox_sockets.FoxInSocketsList,
'fox-sockets-create': fox_sockets.FoxInSocketsCreate,
'fox-sockets-update': fox_sockets.FoxInSocketsUpdate,
'fox-sockets-delete': fox_sockets.FoxInSocketsDelete,
'fox-sockets-show': fox_sockets.FoxInSocketsShow}
- self.assertDictContainsSubset(ext_cmd, shell.COMMANDS['2.0'])
- for item in ext_cmd:
- cmdcls = shell.COMMANDS['2.0'].get(item)
- self.assertTrue(cmdcls.__doc__.startswith("[_fox_sockets]"))
+ for cmd_name, cmd_class in ext_cmd.items():
+ found = neutron_shell.command_manager.find_command([cmd_name])
+ found_factory = found[0]
+ self.assertEqual(cmd_class, found_factory)
+ self.assertTrue(found_factory.__doc__.startswith("[_fox_sockets]"))
def test_delete_fox_socket(self):
# Delete fox socket: myid.
@@ -138,9 +141,11 @@ class CLITestV20ExtensionJSONAlternatePlurals(test_cli20.CLITestV20Base):
return contrib
def test_ext_cmd_loaded(self):
- shell.NeutronShell('2.0')
+ neutron_shell = shell.NeutronShell('2.0')
ext_cmd = {'ip-address-list': self.IPAddressesList}
- self.assertDictContainsSubset(ext_cmd, shell.COMMANDS['2.0'])
+ for cmd_name, cmd_class in ext_cmd.items():
+ found = neutron_shell.command_manager.find_command([cmd_name])
+ self.assertEqual(cmd_class, found[0])
def test_list_ip_addresses(self):
# List ip_addresses.
@@ -195,13 +200,15 @@ class CLITestV20ExtensionJSONChildResource(test_cli20.CLITestV20Base):
return contrib
def test_ext_cmd_loaded(self):
- shell.NeutronShell('2.0')
+ neutron_shell = shell.NeutronShell('2.0')
ext_cmd = {'parent-child-list': self.ChildrenList,
'parent-child-show': self.ChildShow,
'parent-child-update': self.ChildUpdate,
'parent-child-delete': self.ChildDelete,
'parent-child-create': self.ChildCreate}
- self.assertDictContainsSubset(ext_cmd, shell.COMMANDS['2.0'])
+ for cmd_name, cmd_class in ext_cmd.items():
+ found = neutron_shell.command_manager.find_command([cmd_name])
+ self.assertEqual(cmd_class, found[0])
def test_client_methods_have_parent_id_arg(self):
methods = (self.client.list_parents_children,
diff --git a/setup.cfg b/setup.cfg
index cec20f9..a14c06a 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -79,6 +79,291 @@ openstack.neutronclient.v2 =
bgpvpn_router_association_list = neutronclient.osc.v2.networking_bgpvpn.router_association:ListBgpvpnRouterAssoc
bgpvpn_router_association_show = neutronclient.osc.v2.networking_bgpvpn.router_association:ShowBgpvpnRouterAssoc
+neutron.cli.v2 =
+ bash-completion = neutronclient.shell:BashCompletionCommand
+
+ net-list = neutronclient.neutron.v2_0.network:ListNetwork
+ net-external-list = neutronclient.neutron.v2_0.network:ListExternalNetwork
+ net-show = neutronclient.neutron.v2_0.network:ShowNetwork
+ net-create = neutronclient.neutron.v2_0.network:CreateNetwork
+ net-delete = neutronclient.neutron.v2_0.network:DeleteNetwork
+ net-update = neutronclient.neutron.v2_0.network:UpdateNetwork
+
+ subnet-list = neutronclient.neutron.v2_0.subnet:ListSubnet
+ subnet-show = neutronclient.neutron.v2_0.subnet:ShowSubnet
+ subnet-create = neutronclient.neutron.v2_0.subnet:CreateSubnet
+ subnet-delete = neutronclient.neutron.v2_0.subnet:DeleteSubnet
+ subnet-update = neutronclient.neutron.v2_0.subnet:UpdateSubnet
+
+ subnetpool-list = neutronclient.neutron.v2_0.subnetpool:ListSubnetPool
+ subnetpool-show = neutronclient.neutron.v2_0.subnetpool:ShowSubnetPool
+ subnetpool-create = neutronclient.neutron.v2_0.subnetpool:CreateSubnetPool
+ subnetpool-delete = neutronclient.neutron.v2_0.subnetpool:DeleteSubnetPool
+ subnetpool-update = neutronclient.neutron.v2_0.subnetpool:UpdateSubnetPool
+
+ port-list = neutronclient.neutron.v2_0.port:ListPort
+ port-show = neutronclient.neutron.v2_0.port:ShowPort
+ port-create = neutronclient.neutron.v2_0.port:CreatePort
+ port-delete = neutronclient.neutron.v2_0.port:DeletePort
+ port-update = neutronclient.neutron.v2_0.port:UpdatePort
+
+ purge = neutronclient.neutron.v2_0.purge:Purge
+
+ quota-list = neutronclient.neutron.v2_0.quota:ListQuota
+ quota-show = neutronclient.neutron.v2_0.quota:ShowQuota
+ quota-default-show = neutronclient.neutron.v2_0.quota:ShowQuotaDefault
+ quota-delete = neutronclient.neutron.v2_0.quota:DeleteQuota
+ quota-update = neutronclient.neutron.v2_0.quota:UpdateQuota
+
+ ext-list = neutronclient.neutron.v2_0.extension:ListExt
+ ext-show = neutronclient.neutron.v2_0.extension:ShowExt
+
+ router-list = neutronclient.neutron.v2_0.router:ListRouter
+ router-port-list = neutronclient.neutron.v2_0.port:ListRouterPort
+ router-show = neutronclient.neutron.v2_0.router:ShowRouter
+ router-create = neutronclient.neutron.v2_0.router:CreateRouter
+ router-delete = neutronclient.neutron.v2_0.router:DeleteRouter
+ router-update = neutronclient.neutron.v2_0.router:UpdateRouter
+ router-interface-add = neutronclient.neutron.v2_0.router:AddInterfaceRouter
+ router-interface-delete = neutronclient.neutron.v2_0.router:RemoveInterfaceRouter
+ router-gateway-set = neutronclient.neutron.v2_0.router:SetGatewayRouter
+ router-gateway-clear = neutronclient.neutron.v2_0.router:RemoveGatewayRouter
+
+ floatingip-list = neutronclient.neutron.v2_0.floatingip:ListFloatingIP
+ floatingip-show = neutronclient.neutron.v2_0.floatingip:ShowFloatingIP
+ floatingip-create = neutronclient.neutron.v2_0.floatingip:CreateFloatingIP
+ floatingip-delete = neutronclient.neutron.v2_0.floatingip:DeleteFloatingIP
+ floatingip-associate = neutronclient.neutron.v2_0.floatingip:AssociateFloatingIP
+ floatingip-disassociate = neutronclient.neutron.v2_0.floatingip:DisassociateFloatingIP
+
+ security-group-list = neutronclient.neutron.v2_0.securitygroup:ListSecurityGroup
+ security-group-show = neutronclient.neutron.v2_0.securitygroup:ShowSecurityGroup
+ security-group-create = neutronclient.neutron.v2_0.securitygroup:CreateSecurityGroup
+ security-group-delete = neutronclient.neutron.v2_0.securitygroup:DeleteSecurityGroup
+ security-group-update = neutronclient.neutron.v2_0.securitygroup:UpdateSecurityGroup
+ security-group-rule-list = neutronclient.neutron.v2_0.securitygroup:ListSecurityGroupRule
+ security-group-rule-show = neutronclient.neutron.v2_0.securitygroup:ShowSecurityGroupRule
+ security-group-rule-create = neutronclient.neutron.v2_0.securitygroup:CreateSecurityGroupRule
+ security-group-rule-delete = neutronclient.neutron.v2_0.securitygroup:DeleteSecurityGroupRule
+
+ agent-list = neutronclient.neutron.v2_0.agent:ListAgent
+ agent-show = neutronclient.neutron.v2_0.agent:ShowAgent
+ agent-delete = neutronclient.neutron.v2_0.agent:DeleteAgent
+ agent-update = neutronclient.neutron.v2_0.agent:UpdateAgent
+
+ dhcp-agent-network-add = neutronclient.neutron.v2_0.agentscheduler:AddNetworkToDhcpAgent
+ dhcp-agent-network-remove = neutronclient.neutron.v2_0.agentscheduler:RemoveNetworkFromDhcpAgent
+ net-list-on-dhcp-agent = neutronclient.neutron.v2_0.agentscheduler:ListNetworksOnDhcpAgent
+ dhcp-agent-list-hosting-net = neutronclient.neutron.v2_0.agentscheduler:ListDhcpAgentsHostingNetwork
+
+ l3-agent-router-add = neutronclient.neutron.v2_0.agentscheduler:AddRouterToL3Agent
+ l3-agent-router-remove = neutronclient.neutron.v2_0.agentscheduler:RemoveRouterFromL3Agent
+ router-list-on-l3-agent = neutronclient.neutron.v2_0.agentscheduler:ListRoutersOnL3Agent
+ l3-agent-list-hosting-router = neutronclient.neutron.v2_0.agentscheduler:ListL3AgentsHostingRouter
+
+ lb-pool-list-on-agent = neutronclient.neutron.v2_0.agentscheduler:ListPoolsOnLbaasAgent
+ lb-agent-hosting-pool = neutronclient.neutron.v2_0.agentscheduler:GetLbaasAgentHostingPool
+
+ lbaas-loadbalancer-list-on-agent = neutronclient.neutron.v2_0.agentscheduler:ListLoadBalancersOnLbaasAgent
+ lbaas-agent-hosting-loadbalancer = neutronclient.neutron.v2_0.agentscheduler:GetLbaasAgentHostingLoadBalancer
+
+ service-provider-list = neutronclient.neutron.v2_0.servicetype:ListServiceProvider
+
+ rbac-create = neutronclient.neutron.v2_0.rbac:CreateRBACPolicy
+ rbac-update = neutronclient.neutron.v2_0.rbac:UpdateRBACPolicy
+ rbac-list = neutronclient.neutron.v2_0.rbac:ListRBACPolicy
+ rbac-show = neutronclient.neutron.v2_0.rbac:ShowRBACPolicy
+ rbac-delete = neutronclient.neutron.v2_0.rbac:DeleteRBACPolicy
+
+ address-scope-list = neutronclient.neutron.v2_0.address_scope:ListAddressScope
+ address-scope-show = neutronclient.neutron.v2_0.address_scope:ShowAddressScope
+ address-scope-create = neutronclient.neutron.v2_0.address_scope:CreateAddressScope
+ address-scope-delete = neutronclient.neutron.v2_0.address_scope:DeleteAddressScope
+ address-scope-update = neutronclient.neutron.v2_0.address_scope:UpdateAddressScope
+
+ availability-zone-list = neutronclient.neutron.v2_0.availability_zone:ListAvailabilityZone
+
+ auto-allocated-topology-show = neutronclient.neutron.v2_0.auto_allocated_topology:ShowAutoAllocatedTopology
+ auto-allocated-topology-delete = neutronclient.neutron.v2_0.auto_allocated_topology:DeleteAutoAllocatedTopology
+
+ net-ip-availability-list = neutronclient.neutron.v2_0.network_ip_availability:ListIpAvailability
+ net-ip-availability-show = neutronclient.neutron.v2_0.network_ip_availability:ShowIpAvailability
+
+ tag-add = neutronclient.neutron.v2_0.tag:AddTag
+ tag-replace = neutronclient.neutron.v2_0.tag:ReplaceTag
+ tag-remove = neutronclient.neutron.v2_0.tag:RemoveTag
+
+ qos-policy-list = neutronclient.neutron.v2_0.qos.policy:ListQoSPolicy
+ qos-policy-show = neutronclient.neutron.v2_0.qos.policy:ShowQoSPolicy
+ qos-policy-create = neutronclient.neutron.v2_0.qos.policy:CreateQoSPolicy
+ qos-policy-update = neutronclient.neutron.v2_0.qos.policy:UpdateQoSPolicy
+ qos-policy-delete = neutronclient.neutron.v2_0.qos.policy:DeleteQoSPolicy
+ qos-bandwidth-limit-rule-create = neutronclient.neutron.v2_0.qos.bandwidth_limit_rule:CreateQoSBandwidthLimitRule
+ qos-bandwidth-limit-rule-show = neutronclient.neutron.v2_0.qos.bandwidth_limit_rule:ShowQoSBandwidthLimitRule
+ qos-bandwidth-limit-rule-list = neutronclient.neutron.v2_0.qos.bandwidth_limit_rule:ListQoSBandwidthLimitRules
+ qos-bandwidth-limit-rule-update = neutronclient.neutron.v2_0.qos.bandwidth_limit_rule:UpdateQoSBandwidthLimitRule
+ qos-bandwidth-limit-rule-delete = neutronclient.neutron.v2_0.qos.bandwidth_limit_rule:DeleteQoSBandwidthLimitRule
+ qos-dscp-marking-rule-create = neutronclient.neutron.v2_0.qos.dscp_marking_rule:CreateQoSDscpMarkingRule
+ qos-dscp-marking-rule-show = neutronclient.neutron.v2_0.qos.dscp_marking_rule:ShowQoSDscpMarkingRule
+ qos-dscp-marking-rule-list = neutronclient.neutron.v2_0.qos.dscp_marking_rule:ListQoSDscpMarkingRules
+ qos-dscp-marking-rule-update = neutronclient.neutron.v2_0.qos.dscp_marking_rule:UpdateQoSDscpMarkingRule
+ qos-dscp-marking-rule-delete = neutronclient.neutron.v2_0.qos.dscp_marking_rule:DeleteQoSDscpMarkingRule
+ qos-minimum-bandwidth-rule-create = neutronclient.neutron.v2_0.qos.minimum_bandwidth_rule:CreateQoSMinimumBandwidthRule
+ qos-minimum-bandwidth-rule-show = neutronclient.neutron.v2_0.qos.minimum_bandwidth_rule:ShowQoSMinimumBandwidthRule
+ qos-minimum-bandwidth-rule-list = neutronclient.neutron.v2_0.qos.minimum_bandwidth_rule:ListQoSMinimumBandwidthRules
+ qos-minimum-bandwidth-rule-update = neutronclient.neutron.v2_0.qos.minimum_bandwidth_rule:UpdateQoSMinimumBandwidthRule
+ qos-minimum-bandwidth-rule-delete = neutronclient.neutron.v2_0.qos.minimum_bandwidth_rule:DeleteQoSMinimumBandwidthRule
+ qos-available-rule-types = neutronclient.neutron.v2_0.qos.rule:ListQoSRuleTypes
+
+ flavor-list = neutronclient.neutron.v2_0.flavor.flavor:ListFlavor
+ flavor-show = neutronclient.neutron.v2_0.flavor.flavor:ShowFlavor
+ flavor-create = neutronclient.neutron.v2_0.flavor.flavor:CreateFlavor
+ flavor-delete = neutronclient.neutron.v2_0.flavor.flavor:DeleteFlavor
+ flavor-update = neutronclient.neutron.v2_0.flavor.flavor:UpdateFlavor
+ flavor-associate = neutronclient.neutron.v2_0.flavor.flavor:AssociateFlavor
+ flavor-disassociate = neutronclient.neutron.v2_0.flavor.flavor:DisassociateFlavor
+ flavor-profile-list = neutronclient.neutron.v2_0.flavor.flavor_profile:ListFlavorProfile
+ flavor-profile-show = neutronclient.neutron.v2_0.flavor.flavor_profile:ShowFlavorProfile
+ flavor-profile-create = neutronclient.neutron.v2_0.flavor.flavor_profile:CreateFlavorProfile
+ flavor-profile-delete = neutronclient.neutron.v2_0.flavor.flavor_profile:DeleteFlavorProfile
+ flavor-profile-update = neutronclient.neutron.v2_0.flavor.flavor_profile:UpdateFlavorProfile
+
+ meter-label-create = neutronclient.neutron.v2_0.metering:CreateMeteringLabel
+ meter-label-list = neutronclient.neutron.v2_0.metering:ListMeteringLabel
+ meter-label-show = neutronclient.neutron.v2_0.metering:ShowMeteringLabel
+ meter-label-delete = neutronclient.neutron.v2_0.metering:DeleteMeteringLabel
+ meter-label-rule-create = neutronclient.neutron.v2_0.metering:CreateMeteringLabelRule
+ meter-label-rule-list = neutronclient.neutron.v2_0.metering:ListMeteringLabelRule
+ meter-label-rule-show = neutronclient.neutron.v2_0.metering:ShowMeteringLabelRule
+ meter-label-rule-delete = neutronclient.neutron.v2_0.metering:DeleteMeteringLabelRule
+
+ firewall-rule-list = neutronclient.neutron.v2_0.fw.firewallrule:ListFirewallRule
+ firewall-rule-show = neutronclient.neutron.v2_0.fw.firewallrule:ShowFirewallRule
+ firewall-rule-create = neutronclient.neutron.v2_0.fw.firewallrule:CreateFirewallRule
+ firewall-rule-update = neutronclient.neutron.v2_0.fw.firewallrule:UpdateFirewallRule
+ firewall-rule-delete = neutronclient.neutron.v2_0.fw.firewallrule:DeleteFirewallRule
+ firewall-policy-list = neutronclient.neutron.v2_0.fw.firewallpolicy:ListFirewallPolicy
+ firewall-policy-show = neutronclient.neutron.v2_0.fw.firewallpolicy:ShowFirewallPolicy
+ firewall-policy-create = neutronclient.neutron.v2_0.fw.firewallpolicy:CreateFirewallPolicy
+ firewall-policy-update = neutronclient.neutron.v2_0.fw.firewallpolicy:UpdateFirewallPolicy
+ firewall-policy-delete = neutronclient.neutron.v2_0.fw.firewallpolicy:DeleteFirewallPolicy
+ firewall-policy-insert-rule = neutronclient.neutron.v2_0.fw.firewallpolicy:FirewallPolicyInsertRule
+ firewall-policy-remove-rule = neutronclient.neutron.v2_0.fw.firewallpolicy:FirewallPolicyRemoveRule
+ firewall-list = neutronclient.neutron.v2_0.fw.firewall:ListFirewall
+ firewall-show = neutronclient.neutron.v2_0.fw.firewall:ShowFirewall
+ firewall-create = neutronclient.neutron.v2_0.fw.firewall:CreateFirewall
+ firewall-update = neutronclient.neutron.v2_0.fw.firewall:UpdateFirewall
+ firewall-delete = neutronclient.neutron.v2_0.fw.firewall:DeleteFirewall
+
+ bgp-dragent-speaker-add = neutronclient.neutron.v2_0.bgp.dragentscheduler:AddBGPSpeakerToDRAgent
+ bgp-dragent-speaker-remove = neutronclient.neutron.v2_0.bgp.dragentscheduler:RemoveBGPSpeakerFromDRAgent
+ bgp-speaker-list-on-dragent = neutronclient.neutron.v2_0.bgp.dragentscheduler:ListBGPSpeakersOnDRAgent
+ bgp-dragent-list-hosting-speaker = neutronclient.neutron.v2_0.bgp.dragentscheduler:ListDRAgentsHostingBGPSpeaker
+ bgp-speaker-list = neutronclient.neutron.v2_0.bgp.speaker:ListSpeakers
+ bgp-speaker-advertiseroute-list = neutronclient.neutron.v2_0.bgp.speaker:ListRoutesAdvertisedBySpeaker
+ bgp-speaker-show = neutronclient.neutron.v2_0.bgp.speaker:ShowSpeaker
+ bgp-speaker-create = neutronclient.neutron.v2_0.bgp.speaker:CreateSpeaker
+ bgp-speaker-update = neutronclient.neutron.v2_0.bgp.speaker:UpdateSpeaker
+ bgp-speaker-delete = neutronclient.neutron.v2_0.bgp.speaker:DeleteSpeaker
+ bgp-speaker-peer-add = neutronclient.neutron.v2_0.bgp.speaker:AddPeerToSpeaker
+ bgp-speaker-peer-remove = neutronclient.neutron.v2_0.bgp.speaker:RemovePeerFromSpeaker
+ bgp-speaker-network-add = neutronclient.neutron.v2_0.bgp.speaker:AddNetworkToSpeaker
+ bgp-speaker-network-remove = neutronclient.neutron.v2_0.bgp.speaker:RemoveNetworkFromSpeaker
+ bgp-peer-list = neutronclient.neutron.v2_0.bgp.peer:ListPeers
+ bgp-peer-show = neutronclient.neutron.v2_0.bgp.peer:ShowPeer
+ bgp-peer-create = neutronclient.neutron.v2_0.bgp.peer:CreatePeer
+ bgp-peer-update = neutronclient.neutron.v2_0.bgp.peer:UpdatePeer
+ bgp-peer-delete = neutronclient.neutron.v2_0.bgp.peer:DeletePeer
+
+ lbaas-loadbalancer-list = neutronclient.neutron.v2_0.lb.v2.loadbalancer:ListLoadBalancer
+ lbaas-loadbalancer-show = neutronclient.neutron.v2_0.lb.v2.loadbalancer:ShowLoadBalancer
+ lbaas-loadbalancer-create = neutronclient.neutron.v2_0.lb.v2.loadbalancer:CreateLoadBalancer
+ lbaas-loadbalancer-update = neutronclient.neutron.v2_0.lb.v2.loadbalancer:UpdateLoadBalancer
+ lbaas-loadbalancer-delete = neutronclient.neutron.v2_0.lb.v2.loadbalancer:DeleteLoadBalancer
+ lbaas-loadbalancer-stats = neutronclient.neutron.v2_0.lb.v2.loadbalancer:RetrieveLoadBalancerStats
+ lbaas-loadbalancer-status = neutronclient.neutron.v2_0.lb.v2.loadbalancer:RetrieveLoadBalancerStatus
+ lbaas-listener-list = neutronclient.neutron.v2_0.lb.v2.listener:ListListener
+ lbaas-listener-show = neutronclient.neutron.v2_0.lb.v2.listener:ShowListener
+ lbaas-listener-create = neutronclient.neutron.v2_0.lb.v2.listener:CreateListener
+ lbaas-listener-update = neutronclient.neutron.v2_0.lb.v2.listener:UpdateListener
+ lbaas-listener-delete = neutronclient.neutron.v2_0.lb.v2.listener:DeleteListener
+ lbaas-l7policy-list = neutronclient.neutron.v2_0.lb.v2.l7policy:ListL7Policy
+ lbaas-l7policy-show = neutronclient.neutron.v2_0.lb.v2.l7policy:ShowL7Policy
+ lbaas-l7policy-create = neutronclient.neutron.v2_0.lb.v2.l7policy:CreateL7Policy
+ lbaas-l7policy-update = neutronclient.neutron.v2_0.lb.v2.l7policy:UpdateL7Policy
+ lbaas-l7policy-delete = neutronclient.neutron.v2_0.lb.v2.l7policy:DeleteL7Policy
+ lbaas-l7rule-list = neutronclient.neutron.v2_0.lb.v2.l7rule:ListL7Rule
+ lbaas-l7rule-show = neutronclient.neutron.v2_0.lb.v2.l7rule:ShowL7Rule
+ lbaas-l7rule-create = neutronclient.neutron.v2_0.lb.v2.l7rule:CreateL7Rule
+ lbaas-l7rule-update = neutronclient.neutron.v2_0.lb.v2.l7rule:UpdateL7Rule
+ lbaas-l7rule-delete = neutronclient.neutron.v2_0.lb.v2.l7rule:DeleteL7Rule
+ lbaas-pool-list = neutronclient.neutron.v2_0.lb.v2.pool:ListPool
+ lbaas-pool-show = neutronclient.neutron.v2_0.lb.v2.pool:ShowPool
+ lbaas-pool-create = neutronclient.neutron.v2_0.lb.v2.pool:CreatePool
+ lbaas-pool-update = neutronclient.neutron.v2_0.lb.v2.pool:UpdatePool
+ lbaas-pool-delete = neutronclient.neutron.v2_0.lb.v2.pool:DeletePool
+ lbaas-healthmonitor-list = neutronclient.neutron.v2_0.lb.v2.healthmonitor:ListHealthMonitor
+ lbaas-healthmonitor-show = neutronclient.neutron.v2_0.lb.v2.healthmonitor:ShowHealthMonitor
+ lbaas-healthmonitor-create = neutronclient.neutron.v2_0.lb.v2.healthmonitor:CreateHealthMonitor
+ lbaas-healthmonitor-update = neutronclient.neutron.v2_0.lb.v2.healthmonitor:UpdateHealthMonitor
+ lbaas-healthmonitor-delete = neutronclient.neutron.v2_0.lb.v2.healthmonitor:DeleteHealthMonitor
+ lbaas-member-list = neutronclient.neutron.v2_0.lb.v2.member:ListMember
+ lbaas-member-show = neutronclient.neutron.v2_0.lb.v2.member:ShowMember
+ lbaas-member-create = neutronclient.neutron.v2_0.lb.v2.member:CreateMember
+ lbaas-member-update = neutronclient.neutron.v2_0.lb.v2.member:UpdateMember
+ lbaas-member-delete = neutronclient.neutron.v2_0.lb.v2.member:DeleteMember
+
+ lb-vip-list = neutronclient.neutron.v2_0.lb.vip:ListVip
+ lb-vip-show = neutronclient.neutron.v2_0.lb.vip:ShowVip
+ lb-vip-create = neutronclient.neutron.v2_0.lb.vip:CreateVip
+ lb-vip-update = neutronclient.neutron.v2_0.lb.vip:UpdateVip
+ lb-vip-delete = neutronclient.neutron.v2_0.lb.vip:DeleteVip
+ lb-pool-list = neutronclient.neutron.v2_0.lb.pool:ListPool
+ lb-pool-show = neutronclient.neutron.v2_0.lb.pool:ShowPool
+ lb-pool-create = neutronclient.neutron.v2_0.lb.pool:CreatePool
+ lb-pool-update = neutronclient.neutron.v2_0.lb.pool:UpdatePool
+ lb-pool-delete = neutronclient.neutron.v2_0.lb.pool:DeletePool
+ lb-pool-stats = neutronclient.neutron.v2_0.lb.pool:RetrievePoolStats
+ lb-member-list = neutronclient.neutron.v2_0.lb.member:ListMember
+ lb-member-show = neutronclient.neutron.v2_0.lb.member:ShowMember
+ lb-member-create = neutronclient.neutron.v2_0.lb.member:CreateMember
+ lb-member-update = neutronclient.neutron.v2_0.lb.member:UpdateMember
+ lb-member-delete = neutronclient.neutron.v2_0.lb.member:DeleteMember
+ lb-healthmonitor-list = neutronclient.neutron.v2_0.lb.healthmonitor:ListHealthMonitor
+ lb-healthmonitor-show = neutronclient.neutron.v2_0.lb.healthmonitor:ShowHealthMonitor
+ lb-healthmonitor-create = neutronclient.neutron.v2_0.lb.healthmonitor:CreateHealthMonitor
+ lb-healthmonitor-update = neutronclient.neutron.v2_0.lb.healthmonitor:UpdateHealthMonitor
+ lb-healthmonitor-delete = neutronclient.neutron.v2_0.lb.healthmonitor:DeleteHealthMonitor
+ lb-healthmonitor-associate = neutronclient.neutron.v2_0.lb.healthmonitor:AssociateHealthMonitor
+ lb-healthmonitor-disassociate = neutronclient.neutron.v2_0.lb.healthmonitor:DisassociateHealthMonitor
+
+ ipsec-site-connection-list = neutronclient.neutron.v2_0.vpn.ipsec_site_connection:ListIPsecSiteConnection
+ ipsec-site-connection-show = neutronclient.neutron.v2_0.vpn.ipsec_site_connection:ShowIPsecSiteConnection
+ ipsec-site-connection-create = neutronclient.neutron.v2_0.vpn.ipsec_site_connection:CreateIPsecSiteConnection
+ ipsec-site-connection-update = neutronclient.neutron.v2_0.vpn.ipsec_site_connection:UpdateIPsecSiteConnection
+ ipsec-site-connection-delete = neutronclient.neutron.v2_0.vpn.ipsec_site_connection:DeleteIPsecSiteConnection
+ vpn-endpoint-group-list = neutronclient.neutron.v2_0.vpn.endpoint_group:ListEndpointGroup
+ vpn-endpoint-group-show = neutronclient.neutron.v2_0.vpn.endpoint_group:ShowEndpointGroup
+ vpn-endpoint-group-create = neutronclient.neutron.v2_0.vpn.endpoint_group:CreateEndpointGroup
+ vpn-endpoint-group-update = neutronclient.neutron.v2_0.vpn.endpoint_group:UpdateEndpointGroup
+ vpn-endpoint-group-delete = neutronclient.neutron.v2_0.vpn.endpoint_group:DeleteEndpointGroup
+ vpn-service-list = neutronclient.neutron.v2_0.vpn.vpnservice:ListVPNService
+ vpn-service-show = neutronclient.neutron.v2_0.vpn.vpnservice:ShowVPNService
+ vpn-service-create = neutronclient.neutron.v2_0.vpn.vpnservice:CreateVPNService
+ vpn-service-update = neutronclient.neutron.v2_0.vpn.vpnservice:UpdateVPNService
+ vpn-service-delete = neutronclient.neutron.v2_0.vpn.vpnservice:DeleteVPNService
+ vpn-ipsecpolicy-list = neutronclient.neutron.v2_0.vpn.ipsecpolicy:ListIPsecPolicy
+ vpn-ipsecpolicy-show = neutronclient.neutron.v2_0.vpn.ipsecpolicy:ShowIPsecPolicy
+ vpn-ipsecpolicy-create = neutronclient.neutron.v2_0.vpn.ipsecpolicy:CreateIPsecPolicy
+ vpn-ipsecpolicy-update = neutronclient.neutron.v2_0.vpn.ipsecpolicy:UpdateIPsecPolicy
+ vpn-ipsecpolicy-delete = neutronclient.neutron.v2_0.vpn.ipsecpolicy:DeleteIPsecPolicy
+ vpn-ikepolicy-list = neutronclient.neutron.v2_0.vpn.ikepolicy:ListIKEPolicy
+ vpn-ikepolicy-show = neutronclient.neutron.v2_0.vpn.ikepolicy:ShowIKEPolicy
+ vpn-ikepolicy-create = neutronclient.neutron.v2_0.vpn.ikepolicy:CreateIKEPolicy
+ vpn-ikepolicy-update = neutronclient.neutron.v2_0.vpn.ikepolicy:UpdateIKEPolicy
+ vpn-ikepolicy-delete = neutronclient.neutron.v2_0.vpn.ikepolicy:DeleteIKEPolicy
+
+
[build_sphinx]
all_files = 1
build-dir = doc/build