Skip to content
This repository was archived by the owner on Aug 11, 2020. It is now read-only.

Commit 8252626

Browse files
BartoszCkimkulaczkowski
authored andcommitted
Fix handling error response in experiments list (#77)
1 parent 8cd8905 commit 8252626

File tree

3 files changed

+194
-173
lines changed

3 files changed

+194
-173
lines changed

paperspace/commands/experiments.py

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,12 @@ def execute(self, project_handles=None):
6161
response = self.api.get("/experiments/", params=params)
6262

6363
try:
64-
experiments = self._get_experiments_list(response, bool(project_handles))
64+
data = response.json()
65+
if not response.ok:
66+
self.logger.log_error_response(data)
67+
return
68+
69+
experiments = self._get_experiments_list(data, bool(project_handles))
6570
except (ValueError, KeyError) as e:
6671
self.logger.error("Error while parsing response data: {}".format(e))
6772
else:
@@ -90,16 +95,12 @@ def _make_experiments_list_table(experiments):
9095
return table_string
9196

9297
@staticmethod
93-
def _get_experiments_list(response, filtered=False):
94-
if not response.ok:
95-
raise ValueError("Unknown error")
96-
97-
data = response.json()["data"]
98+
def _get_experiments_list(data, filtered=False):
9899
if not filtered: # If filtering by projectHandle response data has different format...
99-
return data
100+
return data["data"]
100101

101102
experiments = []
102-
for project_experiments in data:
103+
for project_experiments in data["data"]:
103104
for experiment in project_experiments["data"]:
104105
experiments.append(experiment)
105106
return experiments

tests/example_responses.py

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,169 @@
1+
LIST_OF_EXPERIMENTS_RESPONSE_JSON = {
2+
"data": [
3+
{
4+
"dtCreated": "2019-03-21T07:47:05.616096+00:00",
5+
"dtDeleted": None,
6+
"dtFinished": None,
7+
"dtModified": "2019-03-21T07:47:05.616096+00:00",
8+
"dtProvisioningFinished": None,
9+
"dtProvisioningStarted": None,
10+
"dtStarted": None,
11+
"dtTeardownFinished": None,
12+
"dtTeardownStarted": None,
13+
"experimentError": None,
14+
"experimentTemplateHistoryId": 6315,
15+
"experimentTemplateId": 60,
16+
"experimentTypeId": 1,
17+
"handle": "ea2lfbbpdyzsq",
18+
"id": 6292,
19+
"projectHandle": "prq70zy79",
20+
"projectId": 612,
21+
"started_by_user_id": 1,
22+
"state": 1,
23+
"templateHistory": {
24+
"dtCreated": "2019-03-21T07:47:04.925852+00:00",
25+
"dtDeleted": None,
26+
"experimentTemplateId": 60,
27+
"id": 6315,
28+
"params": {
29+
"experimentTypeId": 1,
30+
"name": "dsfads",
31+
"ports": 5000,
32+
"project_handle": "prq70zy79",
33+
"worker_command": "sadas",
34+
"worker_container": "asd",
35+
"worker_machine_type": "sadas"
36+
},
37+
"triggerEvent": None,
38+
"triggerEventId": None
39+
}
40+
},
41+
{
42+
"dtCreated": "2019-03-21T07:46:57.706055+00:00",
43+
"dtDeleted": None,
44+
"dtFinished": None,
45+
"dtModified": "2019-03-21T07:46:57.706055+00:00",
46+
"dtProvisioningFinished": None,
47+
"dtProvisioningStarted": None,
48+
"dtStarted": None,
49+
"dtTeardownFinished": None,
50+
"dtTeardownStarted": None,
51+
"experimentError": None,
52+
"experimentTemplateHistoryId": 6314,
53+
"experimentTemplateId": 60,
54+
"experimentTypeId": 1,
55+
"handle": "em6btk2vtb7it",
56+
"id": 6291,
57+
"projectHandle": "prq70zy79",
58+
"projectId": 612,
59+
"started_by_user_id": 1,
60+
"state": 1,
61+
"templateHistory": {
62+
"dtCreated": "2019-03-21T07:46:56.949590+00:00",
63+
"dtDeleted": None,
64+
"experimentTemplateId": 60,
65+
"id": 6314,
66+
"params": {
67+
"experimentTypeId": 1,
68+
"name": "dsfads",
69+
"ports": 5000,
70+
"project_handle": "prq70zy79",
71+
"worker_command": "sadas",
72+
"worker_container": "asd",
73+
"worker_machine_type": "sadas"
74+
},
75+
"triggerEvent": None,
76+
"triggerEventId": None
77+
}
78+
},
79+
{
80+
"dtCreated": "2019-03-20T19:56:50.154853+00:00",
81+
"dtDeleted": None,
82+
"dtFinished": None,
83+
"dtModified": "2019-03-20T19:56:50.154853+00:00",
84+
"dtProvisioningFinished": None,
85+
"dtProvisioningStarted": None,
86+
"dtStarted": None,
87+
"dtTeardownFinished": None,
88+
"dtTeardownStarted": None,
89+
"experimentError": None,
90+
"experimentTemplateHistoryId": 6297,
91+
"experimentTemplateId": 60,
92+
"experimentTypeId": 3,
93+
"handle": "ew69ls0vy3eto",
94+
"id": 6286,
95+
"projectHandle": "prq70zy79",
96+
"projectId": 612,
97+
"started_by_user_id": 1,
98+
"state": 1,
99+
"templateHistory": {
100+
"dtCreated": "2019-03-20T19:56:49.427354+00:00",
101+
"dtDeleted": None,
102+
"experimentTemplateId": 60,
103+
"id": 6297,
104+
"params": {
105+
"artifactDirectory": "/artdir",
106+
"clusterId": 2,
107+
"experimentEnv": {
108+
"key": "val"
109+
},
110+
"experimentTypeId": 3,
111+
"name": "multinode_mpi",
112+
"parameter_server_command": "ls",
113+
"parameter_server_container": "pscon",
114+
"parameter_server_container_user": "pscuser",
115+
"parameter_server_count": 2,
116+
"parameter_server_machine_type": "psmtype",
117+
"parameter_server_registry_password": "psrpass",
118+
"parameter_server_registry_username": "psrcus",
119+
"ports": 3456,
120+
"project_handle": "prq70zy79",
121+
"project_id": 34,
122+
"trigger_event_id": 12,
123+
"worker_command": "wcom",
124+
"worker_container": "wcon",
125+
"worker_container_user": "usr",
126+
"worker_count": 2,
127+
"worker_machine_type": "mty",
128+
"worker_registry_password": "rpass",
129+
"worker_registry_username": "rusr",
130+
"workingDirectory": "/dir",
131+
"workspaceUrl": "wurl"
132+
},
133+
"triggerEvent": {
134+
"dtCreated": "2019-03-11T14:47:57+00:00",
135+
"eventData": {
136+
"author": {
137+
"email": "bluckey@paperspace.com",
138+
"login": "ultrabluewolf",
139+
"name": "Britney Luckey"
140+
},
141+
"branch": "feature/test-1",
142+
"message": "Update readme #2",
143+
"repo_node_id": "MDEwOlJlcG9zaXRvcnkxNzQ3MjI3NDc=",
144+
"sender": {
145+
"id": 4633049,
146+
"login": "ultrabluewolf"
147+
},
148+
"sha": "daa117a00cd1e0e9b1b55695031e698a560cca29",
149+
"timestamp": "2019-03-11T10:47:57-04:00"
150+
},
151+
"id": 12,
152+
"type": "github"
153+
},
154+
"triggerEventId": 12
155+
}
156+
}
157+
],
158+
"message": "success",
159+
"meta": {
160+
"filter": [],
161+
"limit": 11,
162+
"offset": 0,
163+
"totalItems": 27
164+
}
165+
}
166+
1167
LIST_OF_EXPERIMENTS_FILTERED_WITH_TWO_PROJECTS = {
2168
"data": [
3169
{

0 commit comments

Comments
 (0)