50 lines
2 KiB
Python
Executable file
50 lines
2 KiB
Python
Executable file
#!/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()
|