66from datetime import datetime , timezone
77import humanize
88from prettytable import PrettyTable
9+ import warnings
10+ import urllib3
911
1012
1113# Class to handle the server address and port
@@ -61,9 +63,24 @@ def handle_unexpected_status(response):
6163 print (f"Unexpected status code { response .status_code } " )
6264
6365
66+ def do_api_call (method , endpoint , payload = None ):
67+ warnings .filterwarnings ("ignore" , category = urllib3 .exceptions .InsecureRequestWarning )
68+ try :
69+ if method == 'get' :
70+ return requests .get (f"{ devmate_server .base_url } /{ endpoint } " , verify = False )
71+ elif method == 'post' :
72+ return requests .post (f"{ devmate_server .base_url } /{ endpoint } " , json = payload , verify = False )
73+ elif method == 'delete' :
74+ return requests .delete (f"{ devmate_server .base_url } /{ endpoint } " , verify = False )
75+ else :
76+ raise ValueError (f"Invalid method { method } " )
77+ finally :
78+ warnings .resetwarnings ()
79+
80+
6481def check_server_accessibility ():
6582 try :
66- response = requests . get ( f" { devmate_server . base_url } / health" )
83+ response = do_api_call ( 'get' , ' health' )
6784 if response .status_code != 200 :
6885 # Check that it's not one of 5** errors
6986 if response .status_code // 100 == 5 :
@@ -82,7 +99,7 @@ def datetime_now():
8299
83100
84101def list_devices ():
85- response = requests . get ( f" { devmate_server . base_url } / devices/list" )
102+ response = do_api_call ( 'get' , ' devices/list' )
86103 if response .status_code == 200 :
87104 devices = response .json ().get ('devices' , [])
88105
@@ -118,7 +135,7 @@ def list_devices():
118135
119136def reserve_device (device_name , username ):
120137 payload = {'device' : device_name , 'username' : username }
121- response = requests . post ( f" { devmate_server . base_url } / devices/reserve" , json = payload )
138+ response = do_api_call ( 'post' , ' devices/reserve' , payload = payload )
122139 if response .status_code == 200 :
123140 print ("Device successfully reserved." )
124141 elif response .status_code == 409 :
@@ -133,7 +150,7 @@ def reserve_device(device_name, username):
133150
134151def release_device (device_name ):
135152 payload = {'device' : device_name }
136- response = requests . post ( f" { devmate_server . base_url } / devices/release" , json = payload )
153+ response = do_api_call ( 'post' , ' devices/release' , payload = payload )
137154 if response .status_code == 200 :
138155 print ("Device successfully released." )
139156 elif response .status_code == 304 :
@@ -148,7 +165,7 @@ def release_device(device_name):
148165
149166def add_device (device_name , model ):
150167 payload = {'device' : device_name , 'model' : model }
151- response = requests . post ( f" { devmate_server . base_url } / devices/add" , json = payload )
168+ response = do_api_call ( 'post' , ' devices/add' , payload = payload )
152169 if response .status_code == 201 :
153170 print ("Device successfully added." )
154171 elif response .status_code == 409 :
@@ -161,7 +178,7 @@ def add_device(device_name, model):
161178
162179def set_device_offline (device_name ):
163180 payload = {'device' : device_name }
164- response = requests . post ( f" { devmate_server . base_url } / devices/offline" , json = payload )
181+ response = do_api_call ( 'post' , ' devices/offline' , payload = payload )
165182 if response .status_code == 200 :
166183 print ("Device successfully set to offline." )
167184 elif response .status_code == 304 :
@@ -176,7 +193,7 @@ def set_device_offline(device_name):
176193
177194def set_device_online (device_name ):
178195 payload = {'device' : device_name }
179- response = requests . post ( f" { devmate_server . base_url } / devices/online" , json = payload )
196+ response = do_api_call ( 'post' , ' devices/online' , payload = payload )
180197 if response .status_code == 200 :
181198 print ("Device successfully set to online." )
182199 elif response .status_code == 304 :
@@ -190,7 +207,7 @@ def set_device_online(device_name):
190207
191208
192209def delete_device (device_name ):
193- response = requests . delete ( f" { devmate_server . base_url } / devices/delete/{ device_name } " )
210+ response = do_api_call ( 'delete' , f' devices/delete/{ device_name } ' )
194211 if response .status_code == 204 :
195212 print ("Device successfully deleted." )
196213 elif response .status_code == 404 :
0 commit comments