Remove case dependancy for user inputs
With the introduction of Lowercase/Uppercase conversion functions in the utils.py, the following patch removes the dependancy of the current code on character casing. utils.convert_to_lowercase is called where the code expects the input to be in lower case while utils.convert_to_uppercase will be called where the code expects the input to be in CAPITAL casing only. Change-Id: I1c5c3c87f343fc2731469b9a0c38d278f6018a11
This commit is contained in:
@@ -13,6 +13,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from neutronclient._i18n import _
|
from neutronclient._i18n import _
|
||||||
|
from neutronclient.common import utils
|
||||||
from neutronclient.neutron import v2_0 as neutronv20
|
from neutronclient.neutron import v2_0 as neutronv20
|
||||||
|
|
||||||
|
|
||||||
@@ -93,6 +94,7 @@ class CreateMeteringLabelRule(neutronv20.CreateCommand):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--direction',
|
'--direction',
|
||||||
default='ingress', choices=['ingress', 'egress'],
|
default='ingress', choices=['ingress', 'egress'],
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
help=_('Direction of traffic, default: ingress.'))
|
help=_('Direction of traffic, default: ingress.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--excluded',
|
'--excluded',
|
||||||
|
@@ -253,11 +253,13 @@ class CreatePort(neutronV20.CreateCommand, UpdatePortSecGroupMixin,
|
|||||||
'| normal | baremetal>',
|
'| normal | baremetal>',
|
||||||
choices=['direct', 'direct-physical', 'macvtap',
|
choices=['direct', 'direct-physical', 'macvtap',
|
||||||
'normal', 'baremetal'],
|
'normal', 'baremetal'],
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
help=_('VNIC type for this port.'))
|
help=_('VNIC type for this port.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--vnic_type',
|
'--vnic_type',
|
||||||
choices=['direct', 'direct-physical', 'macvtap',
|
choices=['direct', 'direct-physical', 'macvtap',
|
||||||
'normal', 'baremetal'],
|
'normal', 'baremetal'],
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
help=argparse.SUPPRESS)
|
help=argparse.SUPPRESS)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--binding-profile',
|
'--binding-profile',
|
||||||
|
@@ -14,6 +14,7 @@
|
|||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from neutronclient._i18n import _
|
from neutronclient._i18n import _
|
||||||
|
from neutronclient.common import utils
|
||||||
from neutronclient.neutron import v2_0 as neutronV20
|
from neutronclient.neutron import v2_0 as neutronV20
|
||||||
|
|
||||||
# key=object_type: value={key=resource, value=cmd_resource}
|
# key=object_type: value={key=resource, value=cmd_resource}
|
||||||
@@ -66,6 +67,7 @@ class CreateRBACPolicy(neutronV20.CreateCommand):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--type', choices=RBAC_OBJECTS.keys(),
|
'--type', choices=RBAC_OBJECTS.keys(),
|
||||||
required=True,
|
required=True,
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
help=_('Type of the object that RBAC policy affects.'))
|
help=_('Type of the object that RBAC policy affects.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--target-tenant',
|
'--target-tenant',
|
||||||
@@ -74,6 +76,7 @@ class CreateRBACPolicy(neutronV20.CreateCommand):
|
|||||||
'policy will be enforced.'))
|
'policy will be enforced.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--action', choices=['access_as_external', 'access_as_shared'],
|
'--action', choices=['access_as_external', 'access_as_shared'],
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
required=True,
|
required=True,
|
||||||
help=_('Action for the RBAC policy.'))
|
help=_('Action for the RBAC policy.'))
|
||||||
|
|
||||||
|
@@ -18,6 +18,7 @@ import argparse
|
|||||||
|
|
||||||
from neutronclient._i18n import _
|
from neutronclient._i18n import _
|
||||||
from neutronclient.common import exceptions
|
from neutronclient.common import exceptions
|
||||||
|
from neutronclient.common import utils
|
||||||
from neutronclient.neutron import v2_0 as neutronV20
|
from neutronclient.neutron import v2_0 as neutronV20
|
||||||
|
|
||||||
|
|
||||||
@@ -314,6 +315,7 @@ class CreateSecurityGroupRule(neutronV20.CreateCommand):
|
|||||||
'which the rule is added.'))
|
'which the rule is added.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--direction',
|
'--direction',
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
default='ingress', choices=['ingress', 'egress'],
|
default='ingress', choices=['ingress', 'egress'],
|
||||||
help=_('Direction of traffic: ingress/egress.'))
|
help=_('Direction of traffic: ingress/egress.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
@@ -321,6 +323,7 @@ class CreateSecurityGroupRule(neutronV20.CreateCommand):
|
|||||||
help=_('IPv4/IPv6'))
|
help=_('IPv4/IPv6'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--protocol',
|
'--protocol',
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
help=_('Protocol of packet. Allowed values are '
|
help=_('Protocol of packet. Allowed values are '
|
||||||
'[icmp, icmpv6, tcp, udp] and '
|
'[icmp, icmpv6, tcp, udp] and '
|
||||||
'integer representations [0-255].'))
|
'integer representations [0-255].'))
|
||||||
|
@@ -184,10 +184,12 @@ class CreateSubnet(neutronV20.CreateCommand):
|
|||||||
help=_('CIDR of subnet to create.'))
|
help=_('CIDR of subnet to create.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--ipv6-ra-mode',
|
'--ipv6-ra-mode',
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
choices=['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac'],
|
choices=['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac'],
|
||||||
help=_('IPv6 RA (Router Advertisement) mode.'))
|
help=_('IPv6 RA (Router Advertisement) mode.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--ipv6-address-mode',
|
'--ipv6-address-mode',
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
choices=['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac'],
|
choices=['dhcpv6-stateful', 'dhcpv6-stateless', 'slaac'],
|
||||||
help=_('IPv6 address mode.'))
|
help=_('IPv6 address mode.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
|
@@ -28,27 +28,31 @@ def add_common_args(parser, is_create=True):
|
|||||||
help=_('Description of the IKE policy.'))
|
help=_('Description of the IKE policy.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--auth-algorithm',
|
'--auth-algorithm',
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
default='sha1' if is_create else argparse.SUPPRESS,
|
default='sha1' if is_create else argparse.SUPPRESS,
|
||||||
help=_('Authentication algorithm in lowercase. '
|
help=_('Authentication algorithm, default:sha1.'))
|
||||||
'Default:sha1'))
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--encryption-algorithm',
|
'--encryption-algorithm',
|
||||||
default='aes-128' if is_create else argparse.SUPPRESS,
|
default='aes-128' if is_create else argparse.SUPPRESS,
|
||||||
help=_('Encryption algorithm in lowercase, default:aes-128'))
|
type=utils.convert_to_lowercase,
|
||||||
|
help=_('Encryption algorithm, default:aes-128.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--phase1-negotiation-mode',
|
'--phase1-negotiation-mode',
|
||||||
default='main' if is_create else argparse.SUPPRESS,
|
default='main' if is_create else argparse.SUPPRESS,
|
||||||
choices=['main'],
|
choices=['main'],
|
||||||
help=_('IKE Phase1 negotiation mode in lowercase, default:main'))
|
type=utils.convert_to_lowercase,
|
||||||
|
help=_('IKE Phase1 negotiation mode, default:main.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--ike-version',
|
'--ike-version',
|
||||||
default='v1' if is_create else argparse.SUPPRESS,
|
default='v1' if is_create else argparse.SUPPRESS,
|
||||||
choices=['v1', 'v2'],
|
choices=['v1', 'v2'],
|
||||||
help=_('IKE version in lowercase, default:v1'))
|
type=utils.convert_to_lowercase,
|
||||||
|
help=_('IKE version for the policy, default:v1.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--pfs',
|
'--pfs',
|
||||||
default='group5' if is_create else argparse.SUPPRESS,
|
default='group5' if is_create else argparse.SUPPRESS,
|
||||||
help=_('Perfect Forward Secrecy in lowercase, default:group5'))
|
type=utils.convert_to_lowercase,
|
||||||
|
help=_('Perfect Forward Secrecy, default:group5.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--lifetime',
|
'--lifetime',
|
||||||
metavar="units=UNITS,value=VALUE",
|
metavar="units=UNITS,value=VALUE",
|
||||||
@@ -109,7 +113,7 @@ class UpdateIKEPolicy(neutronv20.UpdateCommand):
|
|||||||
def add_known_arguments(self, parser):
|
def add_known_arguments(self, parser):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--name',
|
'--name',
|
||||||
help=_('Updated Name of the IKE policy.'))
|
help=_('Updated name of the IKE policy.'))
|
||||||
add_common_args(parser, is_create=False)
|
add_common_args(parser, is_create=False)
|
||||||
|
|
||||||
def args2body(self, parsed_args):
|
def args2body(self, parsed_args):
|
||||||
|
@@ -96,7 +96,7 @@ class IPsecSiteConnectionMixin(object):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--mtu',
|
'--mtu',
|
||||||
default='1500' if is_create else argparse.SUPPRESS,
|
default='1500' if is_create else argparse.SUPPRESS,
|
||||||
help=_('MTU size for the connection, default:1500'))
|
help=_('MTU size for the connection, default:1500.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--initiator',
|
'--initiator',
|
||||||
default='bi-directional' if is_create else argparse.SUPPRESS,
|
default='bi-directional' if is_create else argparse.SUPPRESS,
|
||||||
|
@@ -26,19 +26,22 @@ def add_common_args(parser, is_create=True):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--auth-algorithm',
|
'--auth-algorithm',
|
||||||
default='sha1' if is_create else argparse.SUPPRESS,
|
default='sha1' if is_create else argparse.SUPPRESS,
|
||||||
help=_('Authentication algorithm in lowercase, default:sha1'))
|
type=utils.convert_to_lowercase,
|
||||||
|
help=_('Authentication algorithm for IPsec policy, default:sha1.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--description',
|
'--description',
|
||||||
help=_('Description of the IPsec policy.'))
|
help=_('Description of the IPsec policy.'))
|
||||||
parser.add_argument(
|
|
||||||
'--encryption-algorithm',
|
|
||||||
default='aes-128' if is_create else argparse.SUPPRESS,
|
|
||||||
help=_('Encryption algorithm in lowercase, default:aes-128'))
|
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--encapsulation-mode',
|
'--encapsulation-mode',
|
||||||
default='tunnel' if is_create else argparse.SUPPRESS,
|
default='tunnel' if is_create else argparse.SUPPRESS,
|
||||||
choices=['tunnel', 'transport'],
|
choices=['tunnel', 'transport'],
|
||||||
help=_('Encapsulation mode in lowercase, default:tunnel'))
|
type=utils.convert_to_lowercase,
|
||||||
|
help=_('Encapsulation mode for IPsec policy, default:tunnel.'))
|
||||||
|
parser.add_argument(
|
||||||
|
'--encryption-algorithm',
|
||||||
|
default='aes-128' if is_create else argparse.SUPPRESS,
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
|
help=_('Encryption algorithm for IPsec policy, default:aes-128.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--lifetime',
|
'--lifetime',
|
||||||
metavar="units=UNITS,value=VALUE",
|
metavar="units=UNITS,value=VALUE",
|
||||||
@@ -47,12 +50,14 @@ def add_common_args(parser, is_create=True):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--pfs',
|
'--pfs',
|
||||||
default='group5' if is_create else argparse.SUPPRESS,
|
default='group5' if is_create else argparse.SUPPRESS,
|
||||||
help=_('Perfect Forward Secrecy in lowercase, default:group5'))
|
type=utils.convert_to_lowercase,
|
||||||
|
help=_('Perfect Forward Secrecy for IPsec policy, default:group5.'))
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--transform-protocol',
|
'--transform-protocol',
|
||||||
default='esp' if is_create else argparse.SUPPRESS,
|
default='esp' if is_create else argparse.SUPPRESS,
|
||||||
|
type=utils.convert_to_lowercase,
|
||||||
choices=['esp', 'ah', 'ah-esp'],
|
choices=['esp', 'ah', 'ah-esp'],
|
||||||
help=_('Transform protocol in lowercase, default:esp'))
|
help=_('Transform protocol for IPsec policy, default:esp.'))
|
||||||
|
|
||||||
|
|
||||||
def parse_common_args2body(parsed_args, body):
|
def parse_common_args2body(parsed_args, body):
|
||||||
@@ -88,6 +93,7 @@ class CreateIPsecPolicy(neutronv20.CreateCommand):
|
|||||||
"""Create an IPsec policy."""
|
"""Create an IPsec policy."""
|
||||||
|
|
||||||
resource = 'ipsecpolicy'
|
resource = 'ipsecpolicy'
|
||||||
|
help_resource = 'IPsec policy'
|
||||||
|
|
||||||
def add_known_arguments(self, parser):
|
def add_known_arguments(self, parser):
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
|
@@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
other:
|
||||||
|
- |
|
||||||
|
This patch provides user the support to use
|
||||||
|
any form of casing, thus removing the specific
|
||||||
|
UPPER/lower case inputs required by different
|
||||||
|
neutron CLIs.
|
Reference in New Issue
Block a user