Files
python-group-based-policy-c…/gbpclient/common/utils.py
Sumit Naiksatam 5364af6bd5 Add add_boolean_argument method if missing
This method is persent in python-neutronclient version
2.3.12 but not in 2.3.9. So if the later version is
present in a deployment, we add this method via this
patch.

Change-Id: I3c3cb398b7fb5eaf39504412567d78c4fcf365c3
Closes-bug: 1518671
2015-11-22 01:44:44 -08:00

60 lines
2.1 KiB
Python

# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
import argparse
from neutronclient.common import utils as n_utils
import re
if not hasattr(n_utils, 'add_boolean_argument'):
def add_boolean_argument(parser, name, **kwargs):
for keyword in ('metavar', 'choices'):
kwargs.pop(keyword, None)
default = kwargs.pop('default', argparse.SUPPRESS)
parser.add_argument(name, metavar='{True,False}',
choices=['True', 'true', 'False', 'false'],
default=default, **kwargs)
n_utils.add_boolean_argument = add_boolean_argument
def str2dict(strdict):
"""Convert key1=value1,key2=value2,... string into dictionary.
:param strdict: key1=value1,key2=value2
Note: This implementation overrides the original implementation
in the neutronclient such that it is no longer required to append
the key with a = to specify a corresponding empty value. For example,
key1=value1,key2,key3=value3
key1
key1,key2
will also be supported and converted to a dictionary with empty
values for the relevant keys.
"""
if not strdict:
return {}
return dict([kv.split('=', 1) if '=' in kv else [kv, ""]
for kv in strdict.split(',')])
def str2list(strlist):
"""Convert key1,key2,... string into list.
:param strlist: key1,key2
strlist can be comma or space separated.
"""
if strlist is not None:
strlist = strlist.strip(', ')
if not strlist:
return []
return re.split("[, ]+", strlist)