20
20
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
# SOFTWARE.
22
22
23
+ import requests
24
+ from http import HTTPStatus
25
+
26
+ from heahmund .status import Status
23
27
from heahmund .logger import Logger
24
28
25
29
26
- class HTTP :
27
- """HTTP Check"""
30
+ class GET :
31
+ """GET Check"""
32
+
33
+ def __init__ (self , name , url , headers = {}, params = {}):
34
+ self .name = name
35
+ self .url = url
36
+ self .headers = headers
37
+ self .params = params
38
+ self .logger = Logger ().get_logger (__name__ )
39
+
40
+ def run (self ):
41
+ """
42
+ Run The Check
43
+
44
+ Returns:
45
+ The Check Result
46
+ """
47
+
48
+ try :
49
+ response = requests .get (self .url , headers = self .headers , params = self .params )
50
+
51
+ if response .status_code == HTTPStatus .OK :
52
+ return {"name" : self .name , "status" : Status .OK }
53
+ else :
54
+ return {"name" : self .name , "status" : Status .NOT_OK }
55
+
56
+ except requests .exceptions .Timeout as e :
57
+ self .logger .debug (
58
+ "Get request to url {} throw timeout error {}." .format (self .url , str (e ))
59
+ )
60
+
61
+ return {"name" : self .name , "status" : Status .ERROR }
62
+
63
+ except Exception as e :
64
+ self .logger .debug (
65
+ "Get request to url {} throw error {}." .format (self .url , str (e ))
66
+ )
67
+
68
+ return {"name" : self .name , "status" : Status .ERROR }
69
+
70
+
71
+ class HEAD :
72
+ """HEAD Check"""
28
73
29
- def __init__ (self , name ):
74
+ def __init__ (self , name , url , headers = {}, params = {} ):
30
75
self .name = name
76
+ self .url = url
77
+ self .headers = headers
78
+ self .params = params
31
79
self .logger = Logger ().get_logger (__name__ )
32
80
33
81
def run (self ):
@@ -37,4 +85,25 @@ def run(self):
37
85
Returns:
38
86
The Check Result
39
87
"""
40
- return {"name" : self .name , "status" : "OK" }
88
+
89
+ try :
90
+ response = requests .head (self .url , headers = self .headers , params = self .params )
91
+
92
+ if response .status_code == HTTPStatus .OK :
93
+ return {"name" : self .name , "status" : Status .OK }
94
+ else :
95
+ return {"name" : self .name , "status" : Status .NOT_OK }
96
+
97
+ except requests .exceptions .Timeout as e :
98
+ self .logger .debug (
99
+ "Get request to url {} throw timeout error {}." .format (self .url , str (e ))
100
+ )
101
+
102
+ return {"name" : self .name , "status" : Status .ERROR }
103
+
104
+ except Exception as e :
105
+ self .logger .debug (
106
+ "Get request to url {} throw error {}." .format (self .url , str (e ))
107
+ )
108
+
109
+ return {"name" : self .name , "status" : Status .ERROR }
0 commit comments