#!usr/bin/python import socket import sys sys.path.append("..") sys.path.append(".") from src.utils import configUtils assert(len(sys.argv) == 4) masterName = sys.argv[1] slaveName = sys.argv[2] nodeNum = sys.argv[3] masterDict = configUtils.parse(masterName) assert(masterDict["NODE_TYPE"] == "MASTER") masterIP, masterPort = masterDict["ADDRESS"] with open(slaveName, "r") as fp: lines = [line.strip() for line in fp.read().split("\n")] for (i, line) in enumerate(lines): if "MASTER_ADDRESS" in line: lines[i] = "MASTER_ADDRESS=%s,%s" % (masterIP, masterPort) elif "ADDRESS" in line: ip = socket.gethostbyname(socket.gethostname()) port = masterPort[:-1] + nodeNum lines[i] = "ADDRESS=%s,%s" % (ip, port) with open(slaveName, "w") as fp: for line in lines: fp.write(line + "\n")
while RUNNING: tokens = getUserInput().split(" ") command, args = tokens[0], tokens[1:] if command not in COMMAND_MAP: print "Command '%s' not recognized." % command else: try: COMMAND_MAP[command](dfsManager, configDict, args) except BaseException as exn: traceback.print_exc() if __name__ == "__main__": if len(sys.argv) != 2: printBasicHelp() sys.exit(1) elif len(sys.argv) in ("--help", "-help"): printVerboseHelp() sys.exit(0) configFile = sys.argv[1] configDict = configUtils.parse(configFile) masterIP, masterPort = configDict["ADDRESS"] masterRMI = rmiUI.getServer(masterIP, int(masterPort)) dfsManagerID = masterRMI.IDFromName("dfsManager") dfsManager = masterRMI.get(dfsManagerID) mainLoop(dfsManager, configDict)