Skip to content
This repository was archived by the owner on Dec 13, 2018. It is now read-only.

Commit 21f34c3

Browse files
committed
conver dockercloud event from json text to dict, adapting sdk 1.0.2
1 parent b24cb6b commit 21f34c3

File tree

2 files changed

+31
-24
lines changed

2 files changed

+31
-24
lines changed

haproxy/eventhandler.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import logging
2+
import json
23

34
import config
45
from haproxycfg import run_haproxy, Haproxy
@@ -7,9 +8,15 @@
78
logger = logging.getLogger("haproxy")
89

910

10-
def on_cloud_event(event):
11-
logger.debug(event)
11+
def on_cloud_event(message):
12+
logger.debug(message)
1213
logger.debug(Haproxy.cls_linked_services)
14+
try:
15+
event = json.loads(message)
16+
except ValueError:
17+
logger.info("event is not a valid json message")
18+
return
19+
1320
# When service scale up/down or container start/stop/terminate/redeploy, reload the service
1421
if event.get("state", "") not in ["In progress", "Pending", "Terminating", "Starting", "Scaling", "Stopping"] and \
1522
event.get("type", "").lower() in ["container", "service"] and \

tests/unit/test_eventhandler.py

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ def tearDown(self):
2323

2424
@mock.patch("haproxy.eventhandler.run_haproxy")
2525
def test_event_reload_in_service_opterations(self, mock_run_haproxy):
26-
not_triggered_event_01 = {}
27-
not_triggered_event_02 = {"state": "In progress", "type": "container", "parents": ["/svc/a/"]}
28-
not_triggered_event_03 = {"state": "Pending", "type": "container", "parents": ["/svc/a/"]}
29-
not_triggered_event_04 = {"state": "Terminating", "type": "container", "parents": ["/svc/a/"]}
30-
not_triggered_event_05 = {"state": "Starting", "type": "container", "parents": ["/svc/a/"]}
31-
not_triggered_event_06 = {"state": "Scaling", "type": "container", "parents": ["/svc/a/"]}
32-
not_triggered_event_07 = {"state": "Stopping", "type": "container", "parents": ["/svc/a/"]}
33-
not_triggered_event_08 = {"state": "Running", "type": "node", "parents": ["/svc/a/"]}
34-
not_triggered_event_09 = {"state": "Running", "type": "container", "parents": ["/svc/d/"]}
26+
not_triggered_event_01 = '{}'
27+
not_triggered_event_02 = '{"state": "In progress", "type": "container", "parents": ["/svc/a/"]}'
28+
not_triggered_event_03 = '{"state": "Pending", "type": "container", "parents": ["/svc/a/"]}'
29+
not_triggered_event_04 = '{"state": "Terminating", "type": "container", "parents": ["/svc/a/"]}'
30+
not_triggered_event_05 = '{"state": "Starting", "type": "container", "parents": ["/svc/a/"]}'
31+
not_triggered_event_06 = '{"state": "Scaling", "type": "container", "parents": ["/svc/a/"]}'
32+
not_triggered_event_07 = '{"state": "Stopping", "type": "container", "parents": ["/svc/a/"]}'
33+
not_triggered_event_08 = '{"state": "Running", "type": "node", "parents": ["/svc/a/"]}'
34+
not_triggered_event_09 = '{"state": "Running", "type": "container", "parents": ["/svc/d/"]}'
3535

3636
on_cloud_event(not_triggered_event_01)
3737
on_cloud_event(not_triggered_event_02)
@@ -45,13 +45,13 @@ def test_event_reload_in_service_opterations(self, mock_run_haproxy):
4545

4646
self.assertEqual(0, mock_run_haproxy.call_count)
4747

48-
triggered_event_01 = {"state": "Stopped", "type": "container", "parents": ["/svc/a/"]}
49-
triggered_event_02 = {"state": "Started", "type": "container", "parents": ["/svc/a/"]}
50-
triggered_event_03 = {"state": "Running", "type": "container", "parents": ["/svc/a/"]}
51-
triggered_event_04 = {"state": "Running", "type": "service", "parents": ["/svc/a/"]}
52-
triggered_event_05 = {"state": "Running", "type": "container", "parents": ["/svc/b/"]}
53-
triggered_event_06 = {"state": "Running", "type": "container", "parents": ["/svc/b/", "/svc/b/"]}
54-
triggered_event_07 = {"state": "Running", "type": "container", "parents": ["/svc/a/", "/svc/b/", "/svc/c/"]}
48+
triggered_event_01 = '{"state": "Stopped", "type": "container", "parents": ["/svc/a/"]}'
49+
triggered_event_02 = '{"state": "Started", "type": "container", "parents": ["/svc/a/"]}'
50+
triggered_event_03 = '{"state": "Running", "type": "container", "parents": ["/svc/a/"]}'
51+
triggered_event_04 = '{"state": "Running", "type": "service", "parents": ["/svc/a/"]}'
52+
triggered_event_05 = '{"state": "Running", "type": "container", "parents": ["/svc/b/"]}'
53+
triggered_event_06 = '{"state": "Running", "type": "container", "parents": ["/svc/b/", "/svc/b/"]}'
54+
triggered_event_07 = '{"state": "Running", "type": "container", "parents": ["/svc/a/", "/svc/b/", "/svc/c/"]}'
5555

5656
on_cloud_event(triggered_event_01)
5757
on_cloud_event(triggered_event_02)
@@ -65,19 +65,19 @@ def test_event_reload_in_service_opterations(self, mock_run_haproxy):
6565

6666
@mock.patch("haproxy.eventhandler.run_haproxy")
6767
def test_event_reload_in_link_opterations(self, mock_run_haproxy):
68-
not_triggered_event_01 = {}
69-
not_triggered_event_02 = {"state": "Failed", "parents": ["/svc/a/"]}
70-
not_triggered_event_03 = {"state": "Success", "parents": ["/svc/a/"]}
71-
not_triggered_event_04 = {"state": "Success", "parents": []}
68+
not_triggered_event_01 = '{}'
69+
not_triggered_event_02 = '{"state": "Failed", "parents": ["/svc/a/"]}'
70+
not_triggered_event_03 = '{"state": "Success", "parents": ["/svc/a/"]}'
71+
not_triggered_event_04 = '{"state": "Success", "parents": []}'
7272

7373
on_cloud_event(not_triggered_event_01)
7474
on_cloud_event(not_triggered_event_02)
7575
on_cloud_event(not_triggered_event_03)
7676
on_cloud_event(not_triggered_event_04)
7777
self.assertEqual(0, mock_run_haproxy.call_count)
7878

79-
triggered_event_01 = {"state": "Success", "parents": ["/svc/uuid/"]}
80-
triggered_event_02 = {"state": "Success", "parents": ["/svc/a/", "/svc/uuid/"]}
79+
triggered_event_01 = '{"state": "Success", "parents": ["/svc/uuid/"]}'
80+
triggered_event_02 = '{"state": "Success", "parents": ["/svc/a/", "/svc/uuid/"]}'
8181

8282
on_cloud_event(triggered_event_01)
8383
on_cloud_event(triggered_event_02)

0 commit comments

Comments
 (0)