Skip to content

Commit 1fd3691

Browse files
committed
- Don't need to update the host DNS if service IP addresses did't change
1 parent 5309f7c commit 1fd3691

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

serius/serius.py

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import collections
12
import json
23
import logging
34
import os
@@ -17,9 +18,12 @@
1718
hostsWrite = homePath+"/serius/hosts.write"
1819
hostsBackup = homePath+"/serius/hosts.backup"
1920

20-
# Service IP Address
21+
# Service IP Addresses
2122
serviceIpAddresses = []
2223

24+
# Service Old IP Addresses
25+
serviceOldIpAddresses = []
26+
2327
# Loggings
2428
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(name)s.%(funcName)s +%(lineno)s: %(levelname)-3s [%(process)d] %(message)s")
2529
log = logging.getLogger('Serius')
@@ -41,6 +45,10 @@ def resolveDockerIPToDomain(configFileJson):
4145

4246
copyfile(hostsFile, hostsWrite)
4347

48+
global serviceIpAddresses
49+
50+
serviceIpAddresses = []
51+
4452
for serviceKey in configFileJson["services"].keys():
4553

4654
log.info("Service: "+serviceKey)
@@ -63,21 +71,34 @@ def resolveDockerIPToDomain(configFileJson):
6371

6472
copyfile(hostsWrite, hostsBackup)
6573

66-
log.info("Map "+serviceKey+" Docker IP to Domain")
74+
global serviceOldIpAddresses
6775

68-
global serviceIpAddresses
76+
log.info("Checking if service IP addresses have been changed ...")
6977

70-
for serviceIpAddress in serviceIpAddresses:
78+
compare = lambda x, y: collections.Counter(x) == collections.Counter(y)
7179

72-
with open(hostsWrite, "a") as file:
80+
if not compare(serviceIpAddresses, serviceOldIpAddresses):
7381

74-
file.write(serviceIpAddress+"\n")
82+
log.info("Updated the host DNS")
7583

76-
file.close()
84+
for serviceIpAddress in serviceIpAddresses:
7785

78-
copyfile(hostsWrite, hostsFile)
86+
with open(hostsWrite, "a") as file:
87+
88+
file.write(serviceIpAddress+"\n")
89+
90+
file.close()
91+
92+
copyfile(hostsWrite, hostsFile)
93+
94+
serviceOldIpAddresses = []
95+
96+
serviceOldIpAddresses = serviceIpAddresses[:]
97+
98+
else:
99+
100+
log.info("Nothing changed")
79101

80-
serviceIpAddresses = []
81102

82103
# Main
83104

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
setup(
1010
name='serius',
1111

12-
version='1.0',
12+
version='1.1',
1313

1414
description='Microservice Docker DNS for Local Linux',
1515

0 commit comments

Comments
 (0)