From d25ad17c32d8add63c386c8d815a9720be2e5e38 Mon Sep 17 00:00:00 2001 From: Alexander Kukushkin Date: Wed, 13 May 2015 14:53:23 +0200 Subject: [PATCH] Add support of python3 --- helpers/etcd.py | 8 ++++++-- helpers/ha.py | 6 ------ helpers/postgresql.py | 17 ++++++++++++----- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/helpers/etcd.py b/helpers/etcd.py index 181246d4..1606f22b 100644 --- a/helpers/etcd.py +++ b/helpers/etcd.py @@ -35,7 +35,7 @@ class Etcd: response = requests.get(self.client_url(path)) if response.status_code == 200: break - except Exception, e: + except Exception as e: logger.exception('get_client_path') ex = e @@ -61,7 +61,11 @@ class Etcd: @staticmethod def find_node(node, key): - if not node['dir']: + """ + >>> Etcd.find_node({}, None) + >>> Etcd.find_node({'dir': True, 'nodes': [], 'key': '/test/'}, 'test') + """ + if not node.get('dir', False): return None key = node['key'] + key for n in node['nodes']: diff --git a/helpers/ha.py b/helpers/ha.py index 3131a235..c6a2359e 100644 --- a/helpers/ha.py +++ b/helpers/ha.py @@ -1,4 +1,3 @@ -import inspect import logging import time @@ -8,11 +7,6 @@ from psycopg2 import OperationalError logger = logging.getLogger(__name__) -def lineno(): - """Returns the current line number in our program.""" - return inspect.currentframe().f_back.f_lineno - - class Ha: def __init__(self, state_handler, etcd): diff --git a/helpers/postgresql.py b/helpers/postgresql.py index 59c0f002..da8ea3b7 100644 --- a/helpers/postgresql.py +++ b/helpers/postgresql.py @@ -2,15 +2,22 @@ import logging import os import psycopg2 import re +import sys import time -import urlparse + +is_py3 = sys.hexversion >= 0x03000000 + +if is_py3: + from urllib.parse import urlparse +else: + from urlparse import urlparse logger = logging.getLogger(__name__) def parseurl(url): - r = urlparse.urlparse(url) + r = urlparse(url) return { 'hostname': r.hostname, 'port': r.port or 5432, @@ -83,7 +90,7 @@ class Postgresql: pgpass = 'pgpass' with open(pgpass, 'w') as f: - os.fchmod(f.fileno(), 0600) + os.fchmod(f.fileno(), 0o600) f.write('{hostname}:{port}:*:{username}:{password}\n'.format(**r)) try: @@ -126,7 +133,7 @@ class Postgresql: def server_options(self): host, port = self.config['listen'].split(':') options = '--listen_addresses={} --port={}'.format(host, port) - for setting, value in self.config['parameters'].iteritems(): + for setting, value in self.config['parameters'].items(): options += " --{}='{}'".format(setting, value) return options @@ -196,7 +203,7 @@ recovery_target_timeline = 'latest' primary_slot_name = '{}' primary_conninfo = '{}' """.format(self.name, self.primary_conninfo(leader.address))) - for name, value in self.config.get('recovery_conf', {}).iteritems(): + for name, value in self.config.get('recovery_conf', {}).items(): f.write("{} = '{}'\n".format(name, value)) def follow_the_leader(self, leader):