diff options
author | Akihiro Motoki <amotoki@gmail.com> | 2017-06-01 02:54:40 +0000 |
---|---|---|
committer | Akihiro Motoki <amotoki@gmail.com> | 2017-07-03 05:26:43 +0000 |
commit | 6295f85ab2a4a114f08743390c213bd6055b03f5 (patch) | |
tree | ae888dbebda0e3fd498cf590aea40c57ca9d718a | |
parent | 7790167f6f9f128a973059e55a5552b7b172cd02 (diff) | |
download | python-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.py | 381 | ||||
-rw-r--r-- | neutronclient/tests/unit/test_client_extension.py | 29 | ||||
-rw-r--r-- | setup.cfg | 285 |
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, @@ -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 |