Skip to content

Commit 0aa4522

Browse files
yeyeto2788Juan Biondi
andauthored
Fix issue on index out of error (#54)
* Add gather info about all networks in the system. * Only generate host networks if all info is required. * Fix issue getting network information. Co-authored-by: Juan Biondi <[email protected]>
1 parent dea3d84 commit 0aa4522

File tree

1 file changed

+9
-25
lines changed

1 file changed

+9
-25
lines changed

autocompose.py

Lines changed: 9 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import docker
99
import pyaml
1010

11+
IGNORE_VALUES = [None, "", [], "null", {}, "default", 0, ",", "no"]
12+
1113

1214
def list_container_names():
1315
c = docker.from_env()
@@ -210,9 +212,11 @@ def generate(cname, createvolumes=False):
210212
networks = {}
211213
if values["networks"] == set():
212214
del values["networks"]
213-
assumed_default_network = list(cattrs.get("NetworkSettings", {}).get("Networks", {}).keys())[0]
214-
values["network_mode"] = assumed_default_network
215-
networks = None
215+
216+
if len(cattrs.get("NetworkSettings", {}).get("Networks", {}).keys()) > 0:
217+
assumed_default_network = list(cattrs.get("NetworkSettings", {}).get("Networks", {}).keys())[0]
218+
values["network_mode"] = assumed_default_network
219+
networks = None
216220
else:
217221
networklist = c.networks.list()
218222
for network in networklist:
@@ -268,17 +272,7 @@ def generate(cname, createvolumes=False):
268272
]
269273

270274
# If bound ports found, don't use the 'expose' value.
271-
if (
272-
(ports_value != None)
273-
and (ports_value != "")
274-
and (ports_value != [])
275-
and (ports_value != "null")
276-
and (ports_value != {})
277-
and (ports_value != "default")
278-
and (ports_value != 0)
279-
and (ports_value != ",")
280-
and (ports_value != "no")
281-
):
275+
if ports_value not in IGNORE_VALUES:
282276
for index, port in enumerate(ports_value):
283277
if port[0] == ":":
284278
ports_value[index] = port[1:]
@@ -294,17 +288,7 @@ def generate(cname, createvolumes=False):
294288
# Iterate through values to finish building yaml dict.
295289
for key in values:
296290
value = values[key]
297-
if (
298-
(value != None)
299-
and (value != "")
300-
and (value != [])
301-
and (value != "null")
302-
and (value != {})
303-
and (value != "default")
304-
and (value != 0)
305-
and (value != ",")
306-
and (value != "no")
307-
):
291+
if value not in IGNORE_VALUES:
308292
ct[key] = value
309293

310294
return cfile, networks, volumes

0 commit comments

Comments
 (0)