X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=examples%2Flinux%2Fping.py;h=4d6c7a94901fc4568f38d31c262c9ae651a3fc52;hb=ddb5d7e50ffef50b41186199de2a9b6b21850bf8;hp=eaee0dee751f73949d39975c489efc34bf8d4bcc;hpb=8f080d4ec78ff09753a3ce72bc2315889755a466;p=nepi.git diff --git a/examples/linux/ping.py b/examples/linux/ping.py index eaee0dee..4d6c7a94 100644 --- a/examples/linux/ping.py +++ b/examples/linux/ping.py @@ -4,9 +4,8 @@ # Copyright (C) 2013 INRIA # # This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# it under the terms of the GNU General Public License version 2 as +# published by the Free Software Foundation; # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -18,25 +17,66 @@ # # Author: Alina Quereilhac +# This very simple experiment will ssh in a linux box, and from there +# issue a ping command towards a landmark (default faraday.inria.fr) +# +# $ ping.py -u root mybox.domain.com +# +# would do the equivalent of +# ssh root@mybox.domain.com ping -c3 faraday.inria.fr +# +# If nepi is not installed in your system, and you only have a git clone +# you might wish to do instead +# +# $ cd /src +# $ python ../examples/linux/ping.py -u root mybox.domain.com + +# let's be ready for python3 +from __future__ import print_function + +import os +from argparse import ArgumentParser + from nepi.execution.ec import ExperimentController +# +default_landmark = "faraday.inria.fr" + +parser = ArgumentParser() +parser.add_argument("-u", "--username", dest="username", + help="Username to SSH to remote host") +parser.add_argument("-i", "--ssh-key", dest="ssh_key", + help="Path to private SSH key to be used for connection") +parser.add_argument("-l", "--landmark", dest='landmark', default=default_landmark, + help="Set pings destination, default={}".format(default_landmark)) +# this is required +parser.add_argument("hostname", type=str) + +args = parser.parse_args() + +hostname = args.hostname +username = args.username +ssh_key = args.ssh_key +landmark = args.landmark + ec = ExperimentController(exp_id = "ping-exp") -node = ec.register_resource("LinuxNode") -ec.set(node, "hostname", host) +node = ec.register_resource("linux::Node") +ec.set(node, "hostname", hostname) ec.set(node, "username", username) -ec.set(node, "cleanHome", True) +ec.set(node, "identity", ssh_key) +ec.set(node, "cleanExperiment", True) ec.set(node, "cleanProcesses", True) -app = ec.register_resource("LinuxApplication") -ec.set(app, "command", "ping -c3 www.google.com") +app = ec.register_resource("linux::Application") +ec.set(app, "command", "ping -c3 {}".format(landmark)) ec.register_connection(app, node) ec.deploy() ec.wait_finished(app) -print ec.trace(app, "stdout") - +print(ec.trace(app, "stdout")) ec.shutdown() +