summaryrefslogtreecommitdiffstats
path: root/openstack
diff options
context:
space:
mode:
Diffstat (limited to 'openstack')
-rw-r--r--openstack/common/strutils.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/openstack/common/strutils.py b/openstack/common/strutils.py
index fe8418e..d6dfb13 100644
--- a/openstack/common/strutils.py
+++ b/openstack/common/strutils.py
@@ -49,12 +49,15 @@ def bool_from_string(subject):
Useful for JSON-decoded stuff and config file parsing
"""
- if isinstance(subject, bool):
- return subject
- if isinstance(subject, basestring):
- if subject.strip().lower() in ('true', 'on', 'yes', '1'):
- return True
- return False
+ try:
+ # True or 1 or '1' -> True
+ # False or < 1 or > 1 or '0' -> False
+ return int(subject) == 1
+ except TypeError:
+ # None -> False
+ return False
+ except ValueError:
+ return subject.strip().lower() in ('true', 'on', 'yes')
def safe_decode(text, incoming=None, errors='strict'):