diff options
| -rw-r--r-- | README.md | 14 | ||||
| -rw-r--r-- | rumba/model.py | 9 | ||||
| -rwxr-xr-x | setup.py | 3 | ||||
| -rwxr-xr-x | tools/rumba-access | 20 | 
4 files changed, 28 insertions, 18 deletions
| @@ -128,15 +128,11 @@ folder.         $ eval `ssh-agent`         $ ssh-add /home/morty/cert.pem +## Accessing nodes after swap-in +     To access a node once the experiment swapped in, use the following -   command (in the same terminal where ssh-agent was run): +   command (in the same terminal where ssh-agent was run in case of jFed): -       $ ssh -A -oProxyCommand="ssh -i $CERTPATH -            -o StrictHostKeyChecking=no $USER@bastion.test.iminds.be -            nc $NODENAME.$EXP.wall2-ilabt-iminds-be.wall2.ilabt.iminds.be 22" -            $USER@$NODENAME.$EXP.wall2-ilabt-iminds-be.wall2.ilabt.iminds.be +       $ rumba-access $NODE_NAME -   where $CERTPATH is the absolute path of the certificate (e.g. -   /home/morty/cert.pem), $USER is the jFed username (e.g. "ricksanchez"), -   $NODENAME is the name of the node you want to access (e.g. "a"), -   and $EXP is the name of the experiment (e.g. "rochefort10"). +   Where $NODE_NAME is the name of the node to access.
\ No newline at end of file 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. @@ -20,5 +20,6 @@ setup(      description="Rumba measurement framework for RINA",      long_description=long_description,      packages=["rumba", "rumba.testbeds", "rumba.prototypes"], -    install_requires=["paramiko", "wheel", "wget"] +    install_requires=["paramiko", "wheel", "wget"], +    scripts = ['tools/rumba-access']  ) 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 | 
