-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontainerData.py
40 lines (29 loc) · 1.15 KB
/
containerData.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from dataclasses import dataclass
import configInit
@dataclass
class ContData:
status: str
exitCode: int
oomKilled: str
errorMsg: str
restartCount: int
restartPolicy: str
def getData(rawData, conf: configInit.Config):
contData = ContData(None, None, None, None, None, None)
try:
contData.status = rawData["State"]["Status"]
contData.oomKilled = rawData["State"]["OOMKilled"]
contData.exitCode = int(rawData["State"]["ExitCode"])
contData.errorMsg = rawData["State"]["Error"]
if contData.errorMsg == "":
contData.errorMsg = """Please check container logs for more info.. ¯\_(ツ)_/¯"""
contData.restartPolicy = rawData["HostConfig"]["RestartPolicy"]["Name"]
if contData.restartPolicy == "":
contData.restartPolicy = None
contData.restartCount = rawData["RestartCount"]
except KeyError:
pass
if contData.oomKilled is True or contData.status == "exited" or (
conf.restartPolicyEnabled and contData.status == "restarting" and contData.restartCount <= conf.restartPolicyCountNotify):
return contData
return None