Connector for adding/cleaning ip forwarding rules added
diff --git a/scripts/agent.py b/scripts/agent.py
new file mode 100644
index 0000000..56189f9
--- /dev/null
+++ b/scripts/agent.py
@@ -0,0 +1,66 @@
+import argparse
+import subprocess
+import sys
+
+
+def make_tunnels(ips, base_port=12345, delete=False):
+ node_port = {}
+
+ if delete is True:
+ mode = "-D"
+ else:
+ mode = "-A"
+
+ for ip in ips:
+ p = subprocess.Popen(["iptables -t nat " + mode + " PREROUTING " +
+ "-p tcp -i eth1 --dport " + str(base_port) +
+ " -j DNAT --to " + str(ip) + ":22"],
+ stdin=subprocess.PIPE,
+ stdout=subprocess.PIPE,
+ stderr=subprocess.STDOUT,
+ shell=True)
+
+ out, err = p.communicate()
+
+ if not out is None:
+ print out
+
+ if not err is None:
+ print err
+
+ node_port[ip] = base_port
+ base_port += 1
+
+ return node_port
+
+
+def parse_command_line(argv):
+ parser = argparse.ArgumentParser(description=
+ "Connect to fuel master "
+ "and setup ssh agent")
+ parser.add_argument(
+ "--base_port", type=int, required=True)
+
+ # To do: fix clean to be False when string is False
+ parser.add_argument(
+ "--clean", type=bool, default=False)
+
+ parser.add_argument(
+ "--ports", type=str, nargs='+')
+
+ return parser.parse_args(argv)
+
+
+def main(argv):
+ arg_object = parse_command_line(argv)
+ mapping = make_tunnels(arg_object.ports,
+ base_port=arg_object.base_port,
+ delete=arg_object.clean)
+
+ if arg_object.clean is False:
+ for k in mapping:
+ print k + " " + str(mapping[k])
+
+
+if __name__ == "__main__":
+ main(sys.argv[1:])