Skip to content

Commit be46edd

Browse files
committed
Merge branch 'more_fixes' into 'master'
Miscellaneouos fixes around config args, networking, and podman support See merge request evernym/utilities/devlab!24
2 parents a90742f + 9e2ffee commit be46edd

4 files changed

Lines changed: 14 additions & 13 deletions

File tree

devlab_bench/actions/build.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,8 +87,9 @@ def action(images='*', clean=False, no_cache=False, pull=False, skip_pull_images
8787
if config['network']['name']:
8888
network_status = docker_obj_status(config['network']['name'], 'network', devlab_bench.helpers.docker.DOCKER, logger=log)[0]
8989
if network_status['exists'] and not network_status['owned']:
90-
log.error("Conflicting custom network found! There is already a docker network defined: '%s' , but is not owned by this project", config['network']['name'])
91-
sys.exit(1)
90+
if config['network']['name'] != 'host': #This is to allow a project to use the 'host' network
91+
log.error("Conflicting custom network found! There is already a docker network defined: '%s' , but is not owned by this project", config['network']['name'])
92+
sys.exit(1)
9293
if not network_status['exists']:
9394
log.info("Custom user network: '%s' not found. Creating", config['network']['name'])
9495
docker_helper.create_network(**config['network'])

devlab_bench/actions/up.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,9 @@ def action(components='*', skip_provision=False, bind_to_host=False, keep_up_on_
8282
if config['network']['name']:
8383
network_status = docker_obj_status(config['network']['name'], 'network', devlab_bench.helpers.docker.DOCKER, logger=log)[0]
8484
if network_status['exists'] and not network_status['owned']:
85-
log.error("Conflicting custom network found! There is already a docker network defined with this name, but is not owned by this project")
86-
sys.exit(1)
85+
if config['network']['name'] != 'host': #This is to allow a project to use the 'host' network
86+
log.error("Conflicting custom network found! There is already a docker network defined with this name, but is not owned by this project")
87+
sys.exit(1)
8788
if not network_status['exists']:
8889
log.info("Custom user network: '%s' not found. Creating", config['network']['name'])
8990
devlab_bench.helpers.docker.DOCKER.create_network(**config['network'])

devlab_bench/helpers/command.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -238,13 +238,16 @@ def run_nowait(self):
238238
if self.env:
239239
subprocess_args['env'] = dict(os.environ)
240240
subprocess_args['env'].update(self.env)
241-
cmd_str = ' '.join([self.real_path] + [quote(script_arg) for script_arg in self.args])
241+
# Convert all args to str
242+
strd_args = [str(script_arg) for script_arg in self.args]
243+
# Quote them if use_shell is true
244+
cmd_str = ' '.join([self.real_path] + [quote(script_arg) for script_arg in strd_args])
242245
self.log.debug("Running command: '%s'", cmd_str)
243246
self.ctime = time.time()
244247
if self.use_shell:
245248
self.proc = subprocess.Popen(cmd_str, **subprocess_args)
246249
else:
247-
self.proc = subprocess.Popen([self.real_path] + self.args, **subprocess_args)
250+
self.proc = subprocess.Popen([self.real_path] + strd_args, **subprocess_args)
248251
for strm in (self.proc.stdout, self.proc.stderr):
249252
if strm is not None:
250253
fno = strm.fileno()

devlab_bench/helpers/docker.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ def build_image(self, name, tag, context, docker_file, apply_filter_label=True,
139139
else:
140140
self.log.error("Cannot find docker_file: %s", docker_file)
141141
return (1, ['Cannot find docker_file: {}'.format(docker_file)])
142-
def create_network(self, name, cidr=None, gateway=None, ip_range=None, ipv6=False, driver_opts=None, scope=None, subnet=None, device_name=None, driver='bridge'):
142+
def create_network(self, name, cidr=None, gateway=None, ip_range=None, ipv6=False, driver_opts=None, subnet=None, device_name=None, driver='bridge'):
143143
"""
144144
Create a docker network
145145
@@ -152,7 +152,6 @@ def create_network(self, name, cidr=None, gateway=None, ip_range=None, ipv6=Fals
152152
driver: str, which docker driver to use. Default: 'bridge'
153153
driver_opts: dict, list of key=value pairs to pass with --opt to
154154
the docker network create command.
155-
scope: str, for use with network drivers that require the argument
156155
subnet: str, CIDR notation for the subnet network (Same argument as cidr)
157156
device_name: str, specify the exact name of the bridge device for
158157
docker to create
@@ -175,8 +174,6 @@ def create_network(self, name, cidr=None, gateway=None, ip_range=None, ipv6=Fals
175174
opts += ['--ip-range', ip_range]
176175
if ipv6:
177176
opts += ['--ipv6=true']
178-
if scope:
179-
opts += ['--scope', scope]
180177
if self.labels:
181178
for label in self.labels:
182179
opts += [
@@ -351,7 +348,7 @@ def get_networks(self, return_all=False):
351348
opts.append('--filter')
352349
opts.append('label={}'.format(self.filter_label))
353350
opts.append('--format')
354-
opts.append('{{.ID}},{{.Name}},{{.Driver}},{{.Scope}}')
351+
opts.append('{{.ID}},{{.Name}},{{.Driver}}')
355352
cmd_ret = Command(
356353
self.docker_bin_paths,
357354
opts,
@@ -360,12 +357,11 @@ def get_networks(self, return_all=False):
360357
networks = []
361358
if cmd_ret[0] == 0:
362359
for nres in cmd_ret[1]:
363-
network_id, name, driver, scope = nres.split(',')
360+
network_id, name, driver = nres.split(',')
364361
networks.append({
365362
'id': network_id,
366363
'name': name,
367364
'driver': driver,
368-
'scope': scope
369365
})
370366
return (cmd_ret[0], networks)
371367
return cmd_ret

0 commit comments

Comments
 (0)