Skip to content

Commit 3a78334

Browse files
committed
Fixing IOError management to be compatible to python 2 and 3
1 parent e4923ef commit 3a78334

File tree

3 files changed

+22
-7
lines changed

3 files changed

+22
-7
lines changed

cpapi/mgmt_api.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
# compatible import for python 2 and 3
1616
from .api_exceptions import APIException, APIClientException
1717
from .api_response import APIResponse
18+
from cpapi.utils import get_massage_from_io_error, compatible_loads
19+
1820
if sys.version_info >= (3, 0):
1921
import http.client as http_client
2022
else:
@@ -27,8 +29,6 @@
2729
import subprocess
2830
import time
2931

30-
from cpapi.utils import compatible_loads
31-
3232

3333
class APIClientArgs:
3434
"""
@@ -243,7 +243,9 @@ def login_as_root(self, domain=None, payload=None):
243243
raise APIClientException(
244244
"Could not load JSON from login as root command, perhaps no root privileges?\n" + str(
245245
type(err)) + " - " + str(err))
246-
except (WindowsError, subprocess.CalledProcessError) as err:
246+
except subprocess.CalledProcessError as err:
247+
raise APIClientException("Could not login as root:\n" + str(type(err)) + " - " + str(err))
248+
except (WindowsError) as err:
247249
raise APIClientException("Could not login as root:\n" + str(type(err)) + " - " + str(err))
248250

249251
def api_call(self, command, payload=None, sid=None, wait_for_task=True):
@@ -650,7 +652,7 @@ def save_fingerprint_to_file(server, fingerprint, filename="fingerprints.txt"):
650652
print(e.message, file=sys.stderr)
651653
return False
652654
except IOError as e:
653-
print("Couldn't open file: " + filename + "\n" + e.message, file=sys.stderr)
655+
print("Couldn't open file: " + filename + "\n" + get_massage_from_io_error(e), file=sys.stderr)
654656
return False
655657
except Exception as e:
656658
print(e, file=sys.stderr)
@@ -669,7 +671,8 @@ def save_fingerprint_to_file(server, fingerprint, filename="fingerprints.txt"):
669671
filedump.close()
670672
return True
671673
except IOError as e:
672-
print("Couldn't open file: " + filename + " for writing.\n" + e.message, file=sys.stderr)
674+
print("Couldn't open file: " + filename + " for writing.\n" + get_massage_from_io_error(e),
675+
file=sys.stderr)
673676
except Exception as e:
674677
print(e, file=sys.stderr)
675678
return False
@@ -699,7 +702,8 @@ def read_fingerprint_from_file(server, filename="fingerprints.txt"):
699702
else:
700703
print(e.message, file=sys.stderr)
701704
except IOError as e:
702-
print("Couldn't open file: " + filename + "\n" + e.message, file=sys.stderr)
705+
print("Couldn't open file: " + filename + "\n" + get_massage_from_io_error(e),
706+
file=sys.stderr)
703707
except Exception as e:
704708
print(e, file=sys.stderr)
705709
else:

cpapi/utils.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,14 @@ def compatible_loads(json_data):
1111
if isinstance(json_data, bytes) and (3, 0) <= sys.version_info < (3, 6):
1212
json_data = json_data.decode("utf-8")
1313
return json.loads(json_data)
14+
15+
16+
def get_massage_from_io_error(error):
17+
"""
18+
:param: IOError
19+
:return: error message
20+
"""
21+
if sys.version_info >= (3, 0):
22+
return error.strerror
23+
else:
24+
return error.message

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
setup(
55
name="cpapi",
6-
version="1.1.0",
6+
version="1.1.1",
77
author="API team",
88
author_email="[email protected]",
99
description="Check Point Management API SDK",

0 commit comments

Comments
 (0)