Skip to content

Commit e2796b2

Browse files
committed
Merge pull request #2 from ihmpdcc/header_error_dry
osdf.py: def header_error, move all duplicate lines into it.
2 parents 85401ed + f712ab5 commit e2796b2

1 file changed

Lines changed: 18 additions & 39 deletions

File tree

osdf.py

Lines changed: 18 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,7 @@ def edit_node(self, json_data):
8080

8181
if osdf_response["code"] != 200:
8282
headers = osdf_response['headers']
83-
84-
if 'x-osdf-error' in headers:
85-
msg = "Unable to edit node document. Reason: " \
86-
+ headers['x-osdf-error']
87-
raise Exception(msg)
88-
else:
89-
raise Exception("Unable to edit node document.")
83+
self.header_error(headers, 'edit', 'node')
9084

9185
def _byteify(self, input):
9286
if isinstance(input, dict):
@@ -120,14 +114,7 @@ def get_node(self, node_id):
120114

121115
if osdf_response["code"] != 200:
122116
headers = osdf_response['headers']
123-
124-
if 'x-osdf-error' in headers:
125-
msg = "Unable to retrieve node document. Reason: " \
126-
+ headers['x-osdf-error']
127-
else:
128-
msg = "Unable to retrieve node document."
129-
130-
raise Exception(msg)
117+
self.header_error(headers, 'retrieve', 'node')
131118

132119
data = json.loads( osdf_response['content'] )
133120

@@ -147,14 +134,7 @@ def get_schema(self, namespace, schema_name):
147134

148135
if osdf_response["code"] != 200:
149136
headers = osdf_response['headers']
150-
151-
if 'x-osdf-error' in headers:
152-
msg = "Unable to retrieve schema document. Reason: " \
153-
+ headers['x-osdf-error']
154-
else:
155-
msg = "Unable to retrieve schema document."
156-
157-
raise Exception(msg)
137+
self.header_error(headers, 'retrieve', 'schema')
158138

159139
schema_data = json.loads( osdf_response['content'] )
160140

@@ -174,14 +154,7 @@ def get_aux_schema(self, namespace, aux_schema_name):
174154

175155
if osdf_response["code"] != 200:
176156
headers = osdf_response['headers']
177-
178-
if 'x-osdf-error' in headers:
179-
msg = "Unable to retrieve schema document. Reason: " \
180-
+ headers['x-osdf-error']
181-
else:
182-
msg = "Unable to retrieve schema document."
183-
184-
raise Exception(msg)
157+
self.header_error(headers, 'retrieve', 'schema')
185158

186159
aux_schema_data = json.loads( osdf_response['content'] )
187160

@@ -223,15 +196,9 @@ def delete_node(self, node_id):
223196
"""
224197
osdf_response = self._request.delete("/nodes/" + node_id)
225198

226-
headers = osdf_response["headers"]
227-
228199
if osdf_response['code'] != 204:
229-
if 'x-osdf-error' in headers:
230-
msg = "Unable to delete node document. Reason: " + headers['x-osdf-error']
231-
else:
232-
msg = "Unable to delete node document."
233-
234-
raise Exception(msg)
200+
headers = osdf_response['headers']
201+
self.header_error(headers, 'delete', 'node')
235202

236203
def validate_node(self, json_data):
237204
"""
@@ -323,3 +290,15 @@ def create_osdf_node(self, namespace, node_type, domain_json, linkage={}, read="
323290
'node_type': node_type }
324291

325292
return node_json
293+
294+
def header_error(self, heades=[], method_type='retrieve',
295+
document_type=None):
296+
if 'x-osdf-error' in headers:
297+
msg = "Unable to %s %s document. Reason: %s" \
298+
% (method_type, document_type, headers['x-osdf-error'])
299+
else:
300+
msg = "Unable to %s %s document." \
301+
% (method_type, document_type)
302+
303+
raise Exception(msg)
304+

0 commit comments

Comments
 (0)