diff options
author | Abhishek Koneru <akoneru@redhat.com> | 2013-05-20 16:07:21 -0400 |
---|---|---|
committer | Abhishek Koneru <akoneru@redhat.com> | 2013-06-06 11:37:10 -0400 |
commit | e21bed6f6d049e776eded9016aed635945350ce6 (patch) | |
tree | 5fc2bf566e02a7867cc70a4cca605b753de39ea3 /base | |
parent | d81c8e94c36a9a32b9233754f11216e97bac9a54 (diff) | |
download | pki-e21bed6f6d049e776eded9016aed635945350ce6.tar.gz pki-e21bed6f6d049e776eded9016aed635945350ce6.tar.xz pki-e21bed6f6d049e776eded9016aed635945350ce6.zip |
Use 'with' construct for file operations.
Replace try-except with with construct in python code in applicable
places where there is no exception handling required. Also added
finally block to close resources opened in a try except block.
Ticket #560
Diffstat (limited to 'base')
-rw-r--r-- | base/kra/functional/drmclient.py | 16 | ||||
-rw-r--r-- | base/server/src/engine/pkihelper.py | 30 | ||||
-rw-r--r-- | base/server/src/engine/pkimanifest.py | 37 | ||||
-rw-r--r-- | base/server/src/engine/pkiparser.py | 31 |
4 files changed, 56 insertions, 58 deletions
diff --git a/base/kra/functional/drmclient.py b/base/kra/functional/drmclient.py index ea9514dce..5dd2336ea 100644 --- a/base/kra/functional/drmclient.py +++ b/base/kra/functional/drmclient.py @@ -318,7 +318,8 @@ def https_request(host, port, url, secdir, password, nickname, operation, args, elif kw != None: post = urlencode(kw) request_headers = {"Content-type": "application/x-www-form-urlencoded", - "Accept": "text/plain"} + "Accept": "text/plain"} + conn = None try: conn = nsslib.NSSConnection(host, port, dbdir=secdir) conn.set_debuglevel(0) @@ -338,9 +339,11 @@ def https_request(host, port, url, secdir, password, nickname, operation, args, http_reason_phrase = unicode(res.reason, 'utf-8') http_headers = res.msg.dict http_body = res.read() - conn.close() except Exception, e: raise NetworkError(uri=uri, error=str(e)) + finally: + if conn is not None: + conn.close() return http_status, http_reason_phrase, http_headers, http_body @@ -380,9 +383,11 @@ def http_request(host, port, url, operation, args): http_reason_phrase = unicode(res.reason, 'utf-8') http_headers = res.msg.dict http_body = res.read() - conn.close() except NSPRError, e: raise NetworkError(uri=uri, error=str(e)) + finally: + if conn is not None: + conn.close() logging.debug('request status %d', http_status) logging.debug('request reason_phrase %r', http_reason_phrase) @@ -411,9 +416,8 @@ class kra: self.transport_cert_nickname = kra_nickname self.mechanism = nss.CKM_DES3_CBC_PAD try: - f = open(self.pwd_file, "r") - self.password = f.readline().strip() - f.close() + with open(self.pwd_file, "r") as f: + self.password = f.readline().strip() except IOError: self.password = '' diff --git a/base/server/src/engine/pkihelper.py b/base/server/src/engine/pkihelper.py index df3658307..9c775f65d 100644 --- a/base/server/src/engine/pkihelper.py +++ b/base/server/src/engine/pkihelper.py @@ -1692,17 +1692,16 @@ class file: config.pki_log.info(log.PKIHELPER_COPY_WITH_SLOT_SUBSTITUTION_2, old_name, new_name, extra = config.PKI_INDENTATION_LEVEL_2) - FILE = open(new_name, "w") - for line in fileinput.FileInput(old_name): - for slot in slots: - if slot != '__name__' and slots[slot] in line: - config.pki_log.debug( - log.PKIHELPER_SLOT_SUBSTITUTION_2, - slots[slot], master[slot], - extra = config.PKI_INDENTATION_LEVEL_3) - line = line.replace(slots[slot], master[slot]) - FILE.write(line) - FILE.close() + with open(new_name, "w") as FILE: + for line in fileinput.FileInput(old_name): + for slot in slots: + if slot != '__name__' and slots[slot] in line: + config.pki_log.debug( + log.PKIHELPER_SLOT_SUBSTITUTION_2, + slots[slot], master[slot], + extra = config.PKI_INDENTATION_LEVEL_3) + line = line.replace(slots[slot], master[slot]) + FILE.write(line) if uid == None: uid = identity.get_uid() if gid == None: @@ -1750,11 +1749,10 @@ class file: config.pki_log.info(log.PKIHELPER_NOISE_FILE_2, name, bytes, extra = config.PKI_INDENTATION_LEVEL_2) open(name, "w").close() - FILE = open(name, "w") - noise = ''.join(random.choice(string.ascii_letters + \ - string.digits) for x in range(bytes)) - FILE.write(noise) - FILE.close() + with open(name, "w") as FILE: + noise = ''.join(random.choice(string.ascii_letters +\ + string.digits) for x in range(bytes)) + FILE.write(noise) # chmod <perms> <name> config.pki_log.debug(log.PKIHELPER_CHMOD_2, perms, name, extra = config.PKI_INDENTATION_LEVEL_3) diff --git a/base/server/src/engine/pkimanifest.py b/base/server/src/engine/pkimanifest.py index f53b76492..addc5a7d8 100644 --- a/base/server/src/engine/pkimanifest.py +++ b/base/server/src/engine/pkimanifest.py @@ -38,13 +38,13 @@ RECORD_TYPE_SYMLINK = "symlink" # PKI Deployment Manifest Record Class class record(object): - __slots__= "name",\ - "type",\ - "user",\ - "group",\ - "uid",\ - "gid",\ - "permissions",\ + __slots__ = "name", \ + "type", \ + "user", \ + "group", \ + "uid", \ + "gid", \ + "permissions", \ "acls", def items(self): @@ -73,29 +73,26 @@ class file: def write(self): try: - fd = open(self.filename, "wt") - c = csv.writer(fd) - for record in database: - c.writerow(tuple(record)) - fd.close() + with open(self.filename, "wt") as fd: + c = csv.writer(fd) + for record in database: + c.writerow(tuple(record)) except IOError as exc: config.pki_log.error(log.PKI_IOERROR_1, exc, - extra=config.PKI_INDENTATION_LEVEL_1) + extra = config.PKI_INDENTATION_LEVEL_1) raise def read(self): try: - fd = open(self.filename, "rt") - cr = csv.reader(fd) - for row in cr: - print tuple(row) - fd.close() + with open(self.filename, "rt") as fd: + cr = csv.reader(fd) + for row in cr: + print tuple(row) except IOError as exc: config.pki_log.error(log.PKI_IOERROR_1, exc, - extra=config.PKI_INDENTATION_LEVEL_1) + extra = config.PKI_INDENTATION_LEVEL_1) raise - # PKI Deployment Global Named Tuples database = [] file = file() diff --git a/base/server/src/engine/pkiparser.py b/base/server/src/engine/pkiparser.py index 6a94e3827..8c9b6d620 100644 --- a/base/server/src/engine/pkiparser.py +++ b/base/server/src/engine/pkiparser.py @@ -208,22 +208,21 @@ class PKIConfigParser: @staticmethod def read_simple_configuration_file(filename): values = {} - f = open(filename) - for line in f: - # First, remove comments: - if PKIConfigParser.COMMENT_CHAR in line: - # split on comment char, keep only the part before - line, comment = line.split(PKIConfigParser.COMMENT_CHAR, 1) - # Second, find lines with an name=value: - if PKIConfigParser.OPTION_CHAR in line: - # split on name char: - name, value = line.split(PKIConfigParser.OPTION_CHAR, 1) - # strip spaces: - name = name.strip() - value = value.strip() - # store in dictionary: - values[name] = value - f.close() + with open(filename) as f: + for line in f: + # First, remove comments: + if PKIConfigParser.COMMENT_CHAR in line: + # split on comment char, keep only the part before + line, comment = line.split(PKIConfigParser.COMMENT_CHAR, 1) + # Second, find lines with an name=value: + if PKIConfigParser.OPTION_CHAR in line: + # split on name char: + name, value = line.split(PKIConfigParser.OPTION_CHAR, 1) + # strip spaces: + name = name.strip() + value = value.strip() + # store in dictionary: + values[name] = value return values |