From da965f80da37c2b775e1e62e469589a3be05da30 Mon Sep 17 00:00:00 2001 From: Marco Capitani Date: Fri, 28 Apr 2017 12:04:44 +0200 Subject: ssh_support: added proxy_command to copy path to testbed other: fix to democonf2rumba jfed arguments --- tools/democonf2rumba.py | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'tools') diff --git a/tools/democonf2rumba.py b/tools/democonf2rumba.py index a73d6b7..9c6d64f 100755 --- a/tools/democonf2rumba.py +++ b/tools/democonf2rumba.py @@ -24,6 +24,8 @@ def make_experiment(filename, experiment_class, experiment_kwargs, difs = {} print('Reading file %s.' % (filename,)) + print('+++++++++++++++++++') + print() with open(filename, 'r') as conf: @@ -120,6 +122,12 @@ def make_experiment(filename, experiment_class, experiment_kwargs, parsed_nodes.append(mod.Node(name, difs, dif_registrations)) log.set_logging_level(verbosity) + print() + print('++++++++++++++++++++') + print('Calling constructor of testbed %s with args %s.' + % (testbed_class, testbed_kwargs)) + print('++++++++++++++++++++') + print() testbed = testbed_class(**testbed_kwargs) @@ -130,6 +138,7 @@ def make_experiment(filename, experiment_class, experiment_kwargs, try: exp.swap_in() exp.bootstrap_prototype() + input("Press ENTER to quit") finally: exp.swap_out() @@ -200,14 +209,14 @@ if __name__ == '__main__': jfed_p.add_argument('-C', '--cert_file', metavar='CERT', type=str, required=True, help='Certificate file') - jfed_p.add_argument('-J', '--jar', metavar='JAR', type=str, - required=True, - help='Jfed jar') - jfed_p.add_argument('-H', '--exp_hours', metavar='HOURS', type=int, + jfed_p.add_argument('-H', '--exp_hours', metavar='HOURS', type=str, default=2, help='Experiment hours') jfed_p.add_argument('-A', '--authority', metavar='AUTH', type=str, default="wall2.ilabt.iminds.be", help='Authority') + jfed_p.add_argument('-I', '--image', metavar='IMAGE', type=str, + default=None, + help='Image to be used') args = parser.parse_args() -- cgit v1.2.3 From 1e179fc8058f7bbcea7b6a681726796b4ffe9748 Mon Sep 17 00:00:00 2001 From: Vincenzo Maffione Date: Wed, 7 Jun 2017 10:04:07 +0200 Subject: rumba: add initial version of rumba-access --- rumba/model.py | 8 ++++++++ tools/rumba-access | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100755 tools/rumba-access (limited to 'tools') diff --git a/rumba/model.py b/rumba/model.py index eee8fac..941cba8 100644 --- a/rumba/model.py +++ b/rumba/model.py @@ -520,6 +520,13 @@ class Experiment: if not ipcp.dif_bootstrapper: break + def dump_ssh_info(self): + f = open('ssh_info', 'w') + for node in self.nodes: + f.write("%s %s %s %s\n" % (node.name, self.testbed.username, + node.ssh_config.hostname, node.ssh_config.port)) + f.close() + # Examine the nodes and DIFs, compute the registration and enrollment # order, the list of IPCPs to create, registrations, ... def generate(self): @@ -545,6 +552,7 @@ class Experiment: def swap_in(self): # Realize the experiment testbed (testbed-specific) self.testbed.swap_in(self) + self.dump_ssh_info() def swap_out(self): # Undo the testbed (testbed-specific) diff --git a/tools/rumba-access b/tools/rumba-access new file mode 100755 index 0000000..06b0a02 --- /dev/null +++ b/tools/rumba-access @@ -0,0 +1,31 @@ +#!/bin/bash + +FILE=ssh_info + +MACHINE_ID=$1 +if [ "$MACHINE_ID" == "" ]; then + echo "usage: $0 NODE_NAME" + exit 255 +fi + +USER=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $2}') +if [ "$USER" == "" ]; then + echo "Error: Node ${MACHINE_ID} unknown" + exit 255 +fi + +HOST=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $3}') +if [ "$HOST" == "" ]; then + echo "Error: Node ${MACHINE_ID} unknown" + exit 255 +fi + +SSH_PORT=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $4}') +if [ "$SSH_PORT" == "" ]; then + echo "Error: Node ${MACHINE_ID} unknown" + exit 255 +fi + +echo "Accessing Rumba node ${MACHINE_ID}" +# -o IdentityFile=buildroot/irati_rsa +ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} -- cgit v1.2.3 From dcb7c8743244b4010db159d7d8d794278a792b17 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Wed, 7 Jun 2017 11:27:22 +0200 Subject: tools: Update access script to use proxy The proxy command was not added to the file generated with ssh info. This adds it, and changes the access script to use it if it is there. --- rumba/model.py | 9 ++++++--- tools/rumba-access | 20 +++++++++++++++----- 2 files changed, 21 insertions(+), 8 deletions(-) (limited to 'tools') diff --git a/rumba/model.py b/rumba/model.py index 941cba8..d1b9988 100644 --- a/rumba/model.py +++ b/rumba/model.py @@ -523,8 +523,11 @@ class Experiment: def dump_ssh_info(self): f = open('ssh_info', 'w') for node in self.nodes: - f.write("%s %s %s %s\n" % (node.name, self.testbed.username, - node.ssh_config.hostname, node.ssh_config.port)) + f.write("%s;%s;%s;%s;%s\n" % (node.name, + self.testbed.username, + node.ssh_config.hostname, + node.ssh_config.port, + node.ssh_config.proxycommand)) f.close() # Examine the nodes and DIFs, compute the registration and enrollment @@ -642,7 +645,7 @@ class Server: def get_new_clients(self, interval): """ Returns a list of clients of size appropriate to the server's rate. - + The list's size should be a sample from Poisson(arrival_rate) over interval seconds. Hence, the average size should be interval * arrival_rate. diff --git a/tools/rumba-access b/tools/rumba-access index 06b0a02..4c77d2b 100755 --- a/tools/rumba-access +++ b/tools/rumba-access @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash FILE=ssh_info @@ -8,24 +8,34 @@ if [ "$MACHINE_ID" == "" ]; then exit 255 fi -USER=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $2}') +USER=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk -F';' '{print $2}') if [ "$USER" == "" ]; then echo "Error: Node ${MACHINE_ID} unknown" exit 255 fi -HOST=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $3}') +HOST=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk -F';' '{print $3}') if [ "$HOST" == "" ]; then echo "Error: Node ${MACHINE_ID} unknown" exit 255 fi -SSH_PORT=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk '{print $4}') +SSH_PORT=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk -F';' '{print $4}') if [ "$SSH_PORT" == "" ]; then echo "Error: Node ${MACHINE_ID} unknown" exit 255 fi +PROXY_CMD=$(grep "\<${MACHINE_ID}\>" ${FILE} | awk -F';' '{print $5}') +if [ "$PROXY_CMD" == "" ]; then + echo "Error: Node ${MACHINE_ID} unknown" + exit 255 +fi + echo "Accessing Rumba node ${MACHINE_ID}" # -o IdentityFile=buildroot/irati_rsa -ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} +if [[ $PROXY_CMD = "None" ]]; then + ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} +else + ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -oProxyCommand="$PROXY_CMD" -p ${SSH_PORT} ${USER}@${HOST} +fi -- cgit v1.2.3 From fcdbe20a05764f84a7c95c4bf916a7569e373270 Mon Sep 17 00:00:00 2001 From: Marco Capitani Date: Thu, 8 Jun 2017 16:37:16 +0200 Subject: tools: democonf updated; irati: added sleep after ipcm start --- rumba/prototypes/irati.py | 10 ++-------- tools/democonf2rumba.py | 2 +- 2 files changed, 3 insertions(+), 9 deletions(-) (limited to 'tools') diff --git a/rumba/prototypes/irati.py b/rumba/prototypes/irati.py index 1e75efc..2ae4723 100644 --- a/rumba/prototypes/irati.py +++ b/rumba/prototypes/irati.py @@ -88,12 +88,6 @@ class Experiment(mod.Experiment): ssh.execute_proxy_commands(self.testbed, node.ssh_config, cmds, time_out=None) - def setup(self): - for node in self.nodes: - ssh.execute_command(self.testbed, node.ssh_config, - "sudo nohup ipcm &> ipcm.log &", - time_out=None) - def bootstrap_network(self): """Creates the network by enrolling and configuring the nodes""" for node in self.nodes: @@ -107,8 +101,6 @@ class Experiment(mod.Experiment): def bootstrap_prototype(self): logger.info("setting up") - self.setup() - logger.info("software initialized on all nodes") self.conf_files = self.write_conf() logger.info("configuration files generated for all nodes") self.bootstrap_network() @@ -178,6 +170,8 @@ class Experiment(mod.Experiment): def enroll_nodes(self): """Runs the enrollments one by one, respecting dependencies""" + time.sleep(5) + logger.info("Waiting 5 seconds for the ipcm to start.") for enrollment_list in self.enrollments: for e in enrollment_list: logger.info( diff --git a/tools/democonf2rumba.py b/tools/democonf2rumba.py index 9c6d64f..dc2f0a4 100755 --- a/tools/democonf2rumba.py +++ b/tools/democonf2rumba.py @@ -210,7 +210,7 @@ if __name__ == '__main__': required=True, help='Certificate file') jfed_p.add_argument('-H', '--exp_hours', metavar='HOURS', type=str, - default=2, help='Experiment hours') + default="2", help='Experiment hours') jfed_p.add_argument('-A', '--authority', metavar='AUTH', type=str, default="wall2.ilabt.iminds.be", help='Authority') -- cgit v1.2.3 From a427bde346383f8b414e3f49680d40cd1e94d321 Mon Sep 17 00:00:00 2001 From: Vincenzo Maffione Date: Thu, 8 Jun 2017 22:19:05 +0200 Subject: tools: rumba-access: rearrange script --- tools/rumba-access | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'tools') diff --git a/tools/rumba-access b/tools/rumba-access index 4c77d2b..e4ab468 100755 --- a/tools/rumba-access +++ b/tools/rumba-access @@ -32,10 +32,12 @@ if [ "$PROXY_CMD" == "" ]; then exit 255 fi -echo "Accessing Rumba node ${MACHINE_ID}" -# -o IdentityFile=buildroot/irati_rsa if [[ $PROXY_CMD = "None" ]]; then - ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} + PROXY_CMD="" else - ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -oProxyCommand="$PROXY_CMD" -p ${SSH_PORT} ${USER}@${HOST} + PROXY_CMD="-oProxyCommand=$PROXY_CMD" fi + +echo "Accessing Rumba node ${MACHINE_ID}" +# -o IdentityFile=buildroot/irati_rsa +ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${PROXY_CMD} -p ${SSH_PORT} ${USER}@${HOST} -- cgit v1.2.3 From a10ec3b3a963c486344a90214c162e118d801c47 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Mon, 12 Jun 2017 13:14:47 +0200 Subject: tools: Fix rumba access script This fixes some errors in the rumba access script. --- tools/rumba-access | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'tools') diff --git a/tools/rumba-access b/tools/rumba-access index e4ab468..075caf0 100755 --- a/tools/rumba-access +++ b/tools/rumba-access @@ -34,10 +34,11 @@ fi if [[ $PROXY_CMD = "None" ]]; then PROXY_CMD="" + PROXY_PREF="" else - PROXY_CMD="-oProxyCommand=$PROXY_CMD" + PROXY_PREF="-oProxyCommand=" fi echo "Accessing Rumba node ${MACHINE_ID}" # -o IdentityFile=buildroot/irati_rsa -ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${PROXY_CMD} -p ${SSH_PORT} ${USER}@${HOST} +ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${PROXY_PREF}"${PROXY_CMD}" -p ${SSH_PORT} ${USER}@${HOST} -- cgit v1.2.3 From a5e67722327ecb2046798e6ad9a103fb42cb09e8 Mon Sep 17 00:00:00 2001 From: Sander Vrijders Date: Tue, 13 Jun 2017 09:42:01 +0200 Subject: tools: Revert rumba-access to initial state This reverts the script to its original state since it was not functioning properly. --- tools/rumba-access | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) (limited to 'tools') diff --git a/tools/rumba-access b/tools/rumba-access index 075caf0..1cf382e 100755 --- a/tools/rumba-access +++ b/tools/rumba-access @@ -32,13 +32,9 @@ if [ "$PROXY_CMD" == "" ]; then exit 255 fi +echo "Accessing Rumba node ${MACHINE_ID}" if [[ $PROXY_CMD = "None" ]]; then - PROXY_CMD="" - PROXY_PREF="" + ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -p ${SSH_PORT} ${USER}@${HOST} else - PROXY_PREF="-oProxyCommand=" + ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -oProxyCommand="$PROXY_CMD" -p ${SSH_PORT} ${USER}@${HOST} fi - -echo "Accessing Rumba node ${MACHINE_ID}" -# -o IdentityFile=buildroot/irati_rsa -ssh -A -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null ${PROXY_PREF}"${PROXY_CMD}" -p ${SSH_PORT} ${USER}@${HOST} -- cgit v1.2.3