Browse Source

Use base image

master
Chris Smith 7 years ago
parent
commit
b3114a439e
3 changed files with 4 additions and 72 deletions
  1. 2
    3
      Dockerfile
  2. 2
    2
      report.py
  3. 0
    67
      updater.py

+ 2
- 3
Dockerfile View File

@@ -1,10 +1,9 @@
1
-FROM python:3.5.1-alpine 
1
+FROM csmith/service-reporter-lib:latest
2 2
 MAINTAINER Chris Smith <chris87@gmail.com> 
3 3
 
4 4
 RUN \
5 5
   pip install \
6
-    docker-py \
7
-    python-etcd
6
+    docker-py
8 7
 
9 8
 COPY *.py /
10 9
 ENTRYPOINT ["python", "/report.py"]

+ 2
- 2
report.py View File

@@ -1,8 +1,8 @@
1 1
 #!/usr/bin/env python3
2 2
 
3 3
 from monitor import Monitor
4
-from updater import Updater
5 4
 import argparse
5
+import etcdlib
6 6
 
7 7
 parser = argparse.ArgumentParser()
8 8
 parser.add_argument('--name', help='Name of this docker host', default='unknown')
@@ -11,7 +11,7 @@ parser.add_argument('--etcd-host', help='Host to connect to etcd on', default='e
11 11
 parser.add_argument('--etcd-prefix', help='Prefix to use when adding keys to etcd', default='/docker')
12 12
 args = parser.parse_args()
13 13
 
14
-updater = Updater(args.etcd_host, args.etcd_port, args.etcd_prefix)
14
+updater = etcdlib.Connection(args.etcd_host, args.etcd_port, args.etcd_prefix)
15 15
 monitor = Monitor(args.name, updater.add_containers, updater.remove_containers)
16 16
 
17 17
 print('Starting updater...', flush=True)

+ 0
- 67
updater.py View File

@@ -1,67 +0,0 @@
1
-#!/usr/bin/env python3
2
-
3
-import etcd
4
-import time
5
-
6
-
7
-class Updater:
8
-
9
-  def __init__(self, host, port, prefix):
10
-    self._client = etcd.Client(host=host, port=port)
11
-    self._prefix = prefix
12
-
13
-
14
-  def _write(self, key, value):
15
-    self._client.write(self._prefix + key, value)
16
-
17
-
18
-  def _write_obj(self, prefix, obj):
19
-    for key, value in obj.items():
20
-      new_prefix = "%s/%s" % (prefix, key)
21
-
22
-      if isinstance(value, dict):
23
-        self._write_obj(new_prefix, value)
24
-      else:
25
-        self._write(new_prefix, str(value))
26
-
27
-
28
-  def _delete(self, key):
29
-    try:
30
-      self._client.delete(self._prefix + key, recursive=True)
31
-    except etcd.EtcdKeyNotFound:
32
-      pass
33
-
34
-
35
-  def wipe(self):
36
-    self._delete('')
37
-
38
-
39
-  def add_containers(self, new_containers):
40
-    for container in new_containers:
41
-      name = container['name']
42
-      print('Adding container %s' % name)
43
-      self._write_obj('/containers/%s' % name, container)
44
-      for k, v in container['labels'].items():
45
-        self._write('/labels/%s/%s' % (k, name), v)
46
-      for k, v in container['net']['addr'].items():
47
-        self._write('/networks/%s/%s' % (k, name), v)
48
-      self._write('/hosts/%s/%s' % (container['host'], name), name)
49
-    self._notify_update()
50
-
51
-
52
-  def remove_containers(self, old_containers):
53
-    for container in old_containers:
54
-      name = container['name']
55
-      print('Removing container %s' % name)
56
-      self._delete('/containers/%s' % name)
57
-      for k, v in container['labels'].items():
58
-        self._delete('/labels/%s/%s' % (k, name))
59
-      for k, v in container['net']['addr'].items():
60
-        self._delete('/networks/%s/%s' % (k, name)) 
61
-      self._delete('/hosts/%s/%s' % (container['host'], name))
62
-    self._notify_update()
63
-
64
-  def _notify_update(self):
65
-    print('Update completed', flush=True)
66
-    self._write('/_updated', time.time())
67
-

Loading…
Cancel
Save