Fix network alias and network link comparison.

- Using set based comparison was not working consistently
  - With != operator worked locally but consistently failed on Travis
  - With 'not in' operator failed locally and on Travis
This commit is contained in:
chouseknecht 2016-08-12 17:57:32 -04:00
parent 89916af2a5
commit e7abbbf134

View file

@ -1373,16 +1373,18 @@ class Container(DockerBaseClass):
if network.get('aliases') and not connected_networks[network['name']].get('Aliases'):
diff = True
if network.get('aliases') and connected_networks[network['name']].get('Aliases'):
if set(network.get('aliases')) != set(connected_networks[network['name']].get('Aliases')):
diff = True
for alias in network.get('aliases'):
if alias not in connected_networks[network['name']].get('Aliases', []):
diff = True
if network.get('links') and not connected_networks[network['name']].get('Links'):
diff = True
if network.get('links') and connected_networks[network['name']].get('Links'):
expected_links = []
for link, alias in network['links'].iteritems():
expected_links.append("%s:%s" % (link, alias))
if set(expected_links) != set(connected_networks[network['name']].get('Links', [])):
diff = True
for link in expected_links:
if link not in connected_networks[network['name']].get('Links', []):
diff = True
if diff:
different = True
differences.append(dict(