diff options
author | Aravinda VK <avishwan@redhat.com> | 2019-03-26 13:20:13 +0530 |
---|---|---|
committer | Shyamsundar Ranganathan <srangana@redhat.com> | 2019-04-17 13:58:52 +0000 |
commit | ec95f02b1ebe000e3bb6c7cc9c69a2ed172f50cc (patch) | |
tree | 0dee8580e27ddad20dca24501888f941a2e5eb7d /geo-replication | |
parent | cbb52082da9d968908dc2f62b59328e948ced271 (diff) |
geo-rep: fix integer config validation
ssh-port validation is mentioned as `validation=int` in template
`gsyncd.conf`, but not handled this during geo-rep config set.
Backport of https://review.gluster.org/22418
Fixes: bz#1695445
Change-Id: I3f19d9b471b0a3327e4d094dfbefcc58ed2c34f6
Signed-off-by: Aravinda VK <avishwan@redhat.com>
(cherry picked from commit c574984e19d59e351372eacce0ce11fb36e96dd4)
Diffstat (limited to 'geo-replication')
-rw-r--r-- | geo-replication/syncdaemon/gsyncdconfig.py | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/geo-replication/syncdaemon/gsyncdconfig.py b/geo-replication/syncdaemon/gsyncdconfig.py index 23a1c5769c7..26fb6a57318 100644 --- a/geo-replication/syncdaemon/gsyncdconfig.py +++ b/geo-replication/syncdaemon/gsyncdconfig.py @@ -313,6 +313,9 @@ class Gconf(object): if item["validation"] == "unixtime": return validate_unixtime(value) + if item["validation"] == "int": + return validate_int(value) + return False def _is_config_changed(self): @@ -326,6 +329,14 @@ class Gconf(object): return False +def validate_int(value): + try: + _ = int(value) + return True + except ValueError: + return False + + def validate_unixtime(value): try: y = datetime.fromtimestamp(int(value)).strftime("%Y") @@ -338,11 +349,13 @@ def validate_unixtime(value): def validate_minmax(value, minval, maxval): - value = int(value) - minval = int(minval) - maxval = int(maxval) - - return value >= minval and value <= maxval + try: + value = int(value) + minval = int(minval) + maxval = int(maxval) + return value >= minval and value <= maxval + except ValueError: + return False def validate_choice(value, allowed_values): |