def testStartNode(self): """Testing starting node""" print "### testStartNode ###", self.runtime rt, id_, peers = self.runtime, self.runtime.id, self.peerlist print "GOT RT" assert utils.get_node(rt, id_)['uri'] == rt.uri print "GOT URI", rt.uri
def testStartNode(self): """Testing starting node""" print "### testStartNode ###", self.runtime rt, id_, peers = self.runtime, self.runtime.id, self.peerlist print "GOT RT" assert utils.get_node(rt, id_)['uri'] == rt.uri print "GOT URI", rt.uri
def control_nodes(args): from requests.exceptions import ConnectionError if args.cmd == 'info': if not args.peerlist: raise Exception("No node id given") return utils.get_node(args.node, args.peerlist[0]) elif args.cmd == 'list': return utils.get_nodes(args.node) elif args.cmd == 'add': return utils.peer_setup(args.node, *args.peerlist) elif args.cmd == 'stop': try: return utils.quit(args.node) except ConnectionError: # If the connection goes down before response that is OK return None
def uri(self): if self._uri is None: self._uri = get_node(self, self.id)["uri"] return self._uri
def get_node_info(control_uri, node_id): try: return utils.get_node(control_uri, node_id) except: raise Exception("No node with id {} found".format(node_id))
def setup_module(module): global runtime global runtimes global peerlist global kill_peers ip_addr = None try: ip_addr = os.environ["CALVIN_TEST_IP"] purpose = os.environ["CALVIN_TEST_UUID"] except KeyError: pass if ip_addr: remote_node_count = 2 kill_peers = False test_peers = None import socket ports=[] for a in range(2): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 0)) addr = s.getsockname() ports.append(addr[1]) s.close() runtime,_ = dispatch_node("calvinip://%s:%s" % (ip_addr, ports[0]), "http://%s:%s" % (ip_addr, ports[1])) _log.debug("First runtime started, control http://%s:%s, calvinip://%s:%s" % (ip_addr, ports[1], ip_addr, ports[0])) interval = 0.5 for retries in range(1,20): time.sleep(interval) _log.debug("Trying to get test nodes for 'purpose' %s" % purpose) test_peers = utils.get_index(runtime, format_index_string({'node_name': {'organization': 'com.ericsson', 'purpose': purpose} })) if not test_peers is None and not test_peers["result"] is None and \ len(test_peers["result"]) == remote_node_count: test_peers = test_peers["result"] break if test_peers is None or len(test_peers) != remote_node_count: _log.debug("Failed to find all remote nodes within time, peers = %s" % test_peers) raise Exception("Not all nodes found dont run tests, peers = %s" % test_peers) test_peer2_id = test_peers[0] test_peer2 = utils.get_node(runtime, test_peer2_id) if test_peer2: runtime2 = utils.RT(test_peer2["control_uri"]) runtime2.id = test_peer2_id runtime2.uri = test_peer2["uri"] runtimes.append(runtime2) test_peer3_id = test_peers[1] if test_peer3_id: test_peer3 = utils.get_node(runtime, test_peer3_id) if test_peer3: runtime3 = utils.RT(test_peer3["control_uri"]) runtime3.id = test_peer3_id runtime3.uri = test_peer3["uri"] runtimes.append(runtime3) else: try: ip_addr = os.environ["CALVIN_TEST_LOCALHOST"] except: import socket ip_addr = socket.gethostbyname(socket.gethostname()) localhost = "calvinip://%s:5000" % (ip_addr,), "http://localhost:5001" remotehosts = [("calvinip://%s:%d" % (ip_addr, d), "http://localhost:%d" % (d+1)) for d in range(5002, 5005, 2)] # remotehosts = [("calvinip://127.0.0.1:5002", "http://localhost:5003")] for host in remotehosts: runtimes += [dispatch_node(host[0], host[1])[0]] runtime, _ = dispatch_node(localhost[0], localhost[1]) time.sleep(1) # FIXME When storage up and running peersetup not needed, but still useful during testing utils.peer_setup(runtime, [i[0] for i in remotehosts]) time.sleep(0.5) """ # FIXME Does not yet support peerlist try: self.peerlist = peerlist( self.runtime, self.runtime.id, len(remotehosts)) # Make sure all peers agree on network [peerlist(self.runtime, p, len(self.runtimes)) for p in self.peerlist] except: self.peerlist = [] """ peerlist = [rt.control_uri for rt in runtimes] print "SETUP DONE ***", peerlist
def uri(self): if self._uri is None: self._uri = get_node(self, self.id)["uri"] return self._uri
def setup_module(module): global rt1 global rt2 global rt3 global kill_peers ip_addr = None try: ip_addr = os.environ["CALVIN_TEST_IP"] purpose = os.environ["CALVIN_TEST_UUID"] _log.debug("Running remote tests") except KeyError: _log.debug("Running lcoal test") pass if ip_addr: remote_node_count = 2 kill_peers = False test_peers = None import socket ports=[] for a in range(2): s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('', 0)) addr = s.getsockname() ports.append(addr[1]) s.close() rt1,_ = dispatch_node("calvinip://%s:%s" % (ip_addr, ports[0]), "http://%s:%s" % (ip_addr, ports[1])) _log.debug("First runtime started, control http://%s:%s, calvinip://%s:%s" % (ip_addr, ports[1], ip_addr, ports[0])) interval = 0.5 for retries in range(1,20): time.sleep(interval) _log.debug("Trying to get test nodes for 'purpose' %s" % purpose) test_peers = utils.get_index(rt1, format_index_string({'node_name': {'organization': 'com.ericsson', 'purpose': purpose} })) if not test_peers is None and not test_peers["result"] is None and \ len(test_peers["result"]) == remote_node_count: test_peers = test_peers["result"] break if test_peers is None or len(test_peers) != remote_node_count: _log.debug("Failed to find all remote nodes within time, peers = %s" % test_peers) raise Exception("Not all nodes found dont run tests, peers = %s" % test_peers) _log.debug("All remote nodes found!") test_peer2_id = test_peers[0] test_peer2 = utils.get_node(rt1, test_peer2_id) if test_peer2: rt2 = utils.RT(test_peer2["control_uri"]) rt2.id = test_peer2_id rt2.uri = test_peer2["uri"] test_peer3_id = test_peers[1] if test_peer3_id: test_peer3 = utils.get_node(rt1, test_peer3_id) if test_peer3: rt3 = utils.RT(test_peer3["control_uri"]) rt3.id = test_peer3_id rt3.uri = test_peer3["uri"] else: try: ip_addr = os.environ["CALVIN_TEST_LOCALHOST"] except: import socket ip_addr = socket.gethostbyname(socket.gethostname()) rt1,_ = dispatch_node("calvinip://%s:5000" % (ip_addr,), "http://localhost:5003") rt2,_ = dispatch_node("calvinip://%s:5001" % (ip_addr,), "http://localhost:5004") rt3,_ = dispatch_node("calvinip://%s:5002" % (ip_addr,), "http://localhost:5005") time.sleep(.4) utils.peer_setup(rt1, ["calvinip://%s:5001" % (ip_addr,), "calvinip://%s:5002" % (ip_addr, )]) utils.peer_setup(rt2, ["calvinip://%s:5000" % (ip_addr,), "calvinip://%s:5002" % (ip_addr, )]) utils.peer_setup(rt3, ["calvinip://%s:5000" % (ip_addr,), "calvinip://%s:5001" % (ip_addr, )]) time.sleep(.4)
def get_node_info(control_uri, node_id): try: return utils.get_node(control_uri, node_id) except: raise Exception("No node with id {} found".format(node_id))