mirror of
https://github.com/containers/podman.git
synced 2025-05-31 15:42:48 +08:00
Merge pull request #10610 from cdoern/healthCheck
Edited compat handling code for containers/json status and added python tests
This commit is contained in:
@ -403,6 +403,24 @@ func LibpodToContainerJSON(l *libpod.Container, sz bool) (*types.ContainerJSON,
|
||||
state.Status = define.ContainerStateCreated.String()
|
||||
}
|
||||
|
||||
state.Health = &types.Health{
|
||||
Status: inspect.State.Healthcheck.Status,
|
||||
FailingStreak: inspect.State.Healthcheck.FailingStreak,
|
||||
}
|
||||
|
||||
log := inspect.State.Healthcheck.Log
|
||||
|
||||
for _, item := range log {
|
||||
res := &types.HealthcheckResult{}
|
||||
s, _ := time.Parse(time.RFC3339Nano, item.Start)
|
||||
e, _ := time.Parse(time.RFC3339Nano, item.End)
|
||||
res.Start = s
|
||||
res.End = e
|
||||
res.ExitCode = item.ExitCode
|
||||
res.Output = item.Output
|
||||
state.Health.Log = append(state.Health.Log, res)
|
||||
}
|
||||
|
||||
formatCapabilities(inspect.HostConfig.CapDrop)
|
||||
formatCapabilities(inspect.HostConfig.CapAdd)
|
||||
|
||||
|
@ -14,6 +14,13 @@ class ContainerTestCase(APITestCase):
|
||||
obj = r.json()
|
||||
self.assertEqual(len(obj), 1)
|
||||
|
||||
def test_list_filters(self):
|
||||
r = requests.get(self.podman_url + "/v1.40/containers/json?filters%3D%7B%22status%22%3A%5B%22running%22%5D%7D")
|
||||
self.assertEqual(r.status_code, 200, r.text)
|
||||
payload = r.json()
|
||||
containerAmnt = len(payload)
|
||||
self.assertGreater(containerAmnt, 0)
|
||||
|
||||
def test_list_all(self):
|
||||
r = requests.get(self.uri("/containers/json?all=true"))
|
||||
self.assertEqual(r.status_code, 200, r.text)
|
||||
@ -25,6 +32,22 @@ class ContainerTestCase(APITestCase):
|
||||
self.assertId(r.content)
|
||||
_ = parse(r.json()["Created"])
|
||||
|
||||
r = requests.post(
|
||||
self.podman_url + "/v1.40/containers/create?name=topcontainer",
|
||||
json={"Cmd": ["top"], "Image": "alpine:latest"},
|
||||
)
|
||||
self.assertEqual(r.status_code, 201, r.text)
|
||||
payload = r.json()
|
||||
container_id = payload["Id"]
|
||||
self.assertIsNotNone(container_id)
|
||||
|
||||
r = requests.get(self.podman_url + f"/v1.40/containers/{payload['Id']}/json")
|
||||
self.assertEqual(r.status_code, 200, r.text)
|
||||
self.assertId(r.content)
|
||||
out = r.json()
|
||||
state = out["State"]["Health"]
|
||||
self.assertIsInstance(state, dict)
|
||||
|
||||
def test_stats(self):
|
||||
r = requests.get(self.uri(self.resolve_container("/containers/{}/stats?stream=false")))
|
||||
self.assertIn(r.status_code, (200, 409), r.text)
|
||||
|
Reference in New Issue
Block a user