summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkhilman <khilman@users.noreply.github.com>2018-10-15 16:44:34 +0200
committerGitHub <noreply@github.com>2018-10-15 16:44:34 +0200
commit24fb00544ba3191216876112d3bad8a742812ed6 (patch)
tree1b67fa00684c7a215ae04fc8b8f72b950dc4948a
parentf74ee88cb72165a8a825fa674a53372df169f4b6 (diff)
parent1f8c902768af3dd9738bdd0188c9be8231dd327a (diff)
Merge pull request #52 from montjoie/export_port
lavalab-gen.py: Permit to customize exported ports to a slave
-rw-r--r--README.md4
-rwxr-xr-xlavalab-gen.py14
2 files changed, 13 insertions, 5 deletions
diff --git a/README.md b/README.md
index 2aeaf88..902b517 100644
--- a/README.md
+++ b/README.md
@@ -246,7 +246,9 @@ slaves:
remote_user_token: The remote_user's token. This option is necessary only if no master node exists in boards.yaml. Otherwise lavalab-gen.py will get from it.
remote_proto: http(default) or https
default_slave: Does this slave is the default slave where to add boards (default: lab-slave-0)
- export_ser2net: Do ser2net ports need to be available on host
+ expose_ser2net: Do ser2net ports need to be available on host
+ expose_ports: Expose port p1 on the host to p2 on the worker slave.
+ - p1:p2
extra_actions: An optional list of action to do at end of the docker build
- "apt-get install package"
diff --git a/lavalab-gen.py b/lavalab-gen.py
index 80c10e7..ce24e2d 100755
--- a/lavalab-gen.py
+++ b/lavalab-gen.py
@@ -221,7 +221,7 @@ def main():
else:
slaves = workers["slaves"]
for slave in slaves:
- keywords_slaves = [ "name", "host", "dispatcher_ip", "remote_user", "remote_master", "remote_address", "remote_rpc_port", "remote_proto", "extra_actions", "zmq_auth_key", "zmq_auth_key_secret", "default_slave", "export_ser2net", "remote_user_token", "zmq_auth_master_key" ]
+ keywords_slaves = [ "name", "host", "dispatcher_ip", "remote_user", "remote_master", "remote_address", "remote_rpc_port", "remote_proto", "extra_actions", "zmq_auth_key", "zmq_auth_key_secret", "default_slave", "export_ser2net", "expose_ser2net", "remote_user_token", "zmq_auth_master_key", "expose_ports" ]
for keyword in slave:
if not keyword in keywords_slaves:
print("WARNING: unknown keyword %s" % keyword)
@@ -325,6 +325,9 @@ def main():
if "dispatcher_ip" in worker:
dockcomp["services"][worker_name]["environment"]["LAVA_DISPATCHER_IP"] = worker["dispatcher_ip"]
+ if "expose_ports" in worker:
+ for eports in worker["expose_ports"]:
+ dockcomp["services"][name]["ports"].append("%s" % eports)
with open(dockcomposeymlpath, 'w') as f:
yaml.dump(dockcomp, f)
if "extra_actions" in worker:
@@ -478,16 +481,19 @@ def main():
#end for board
for slave_name in ser2net_ports:
- export_ser2net = False
+ expose_ser2net = False
for fs in workers["slaves"]:
if fs["name"] == slave_name:
if not "host" in fs:
host = "local"
else:
host = fs["host"]
+ if "expose_ser2net" in fs:
+ expose_ser2net = fs["expose_ser2net"]
if "export_ser2net" in fs:
- export_ser2net = fs["export_ser2net"]
- if not export_ser2net:
+ print("export_ser2net is deprecated, please use expose_ser2net")
+ expose_ser2net = fs["export_ser2net"]
+ if not expose_ser2net:
continue
print("Add ser2net ports for %s (%s) %s-%s" % (slave_name, host, ser2net_port_start, ser2net_ports[slave_name]))
dockcomposeymlpath = "output/%s/docker-compose.yml" % host