#!/usr/bin/python #coding: utf-8 import os import subprocess import requests BOOTSTRAP_SERVER_ADDRESS = '10.10.10.10:5555' def retrieve_config(): my_json_config = {"verdict":"oops"} my_ip = str(subprocess.check_output("echo $MY_IP", shell=True)).rstrip() print("MY_IP : %s"%(my_ip)) while my_json_config["verdict"] != "yes": try: resp = requests.get("http://%s/getmyconfig/%s"%(BOOTSTRAP_SERVER_ADDRESS, my_ip), timeout=2) except: print("Unable to join the bootstrap server") try: my_json_config = resp.json() print("Extracted configs [succ] : %s"%(my_json_config)) except: print("Unable to extract configs from bootstrap server's answer") print("Extracted configs [fail] : %s"%(my_json_config)) print("request url : ==>%s<=="%("http://%s/getmyconfig/%s"%(BOOTSTRAP_SERVER_ADDRESS, my_ip))) if "verdict" in my_json_config and my_json_config["verdict"] == "yes": my_config = config_json_to_string(my_json_config) subprocess.check_output("node /mydir/*.js %s"%(my_config), shell=True) else: my_json_config = {"verdict":"oops"} def config_json_to_string(json_config): config = "" if "local_ip" in json_config: config += "--local_ip "+json_config["local_ip"]+" " if "local_port" in json_config: config += "--local_port "+str(json_config["local_port"])+" " if "local_name" in json_config: config += "--local_name "+json_config["local_name"]+" " if "remote_ip" in json_config: config += "--remote_ip "+json_config["remote_ip"]+" " if "remote_port" in json_config: config += "--remote_port "+str(json_config["remote_port"])+" " if "remote_name" in json_config: config += "--remote_name "+json_config["remote_name"]+" " if "send_period" in json_config: config += "--send_period "+str(json_config["send_period"])+" " return config.strip() retrieve_config()