def tryReconnect(self): """checks if reconnect needed""" if not self.core.config["reconnect"][ "activated"] or not self.core.api.isTimeReconnect(): return False # only reconnect when all threads are ready if not (0 < self.wantReconnect() == len(self.working)): return False if not exists(self.core.config['reconnect']['method']): if exists(join(pypath, self.core.config['reconnect']['method'])): self.core.config['reconnect']['method'] = join( pypath, self.core.config['reconnect']['method']) else: self.core.config["reconnect"]["activated"] = False self.log.warning(_("Reconnect script not found!")) return self.reconnecting.set() self.log.info(_("Starting reconnect")) # wait until all thread got the event while [x.active.plugin.waiting for x in self.working].count(True) != 0: sleep(0.25) old_ip = get_ip() self.core.evm.dispatchEvent("reconnect:before", old_ip) self.log.debug("Old IP: %s" % old_ip) try: call(self.core.config['reconnect']['method'], shell=True) except: self.log.warning(_("Failed executing reconnect script!")) self.core.config["reconnect"]["activated"] = False self.reconnecting.clear() self.core.print_exc() return sleep(1) ip = get_ip() self.core.evm.dispatchEvent("reconnect:after", ip) if not old_ip or old_ip == ip: self.log.warning(_("Reconnect not successful")) else: self.log.info(_("Reconnected, new IP: %s") % ip) self.reconnecting.clear()
def tryReconnect(self): """checks if reconnect needed""" if not self.core.config["reconnect"]["activated"] or not self.core.api.isTimeReconnect(): return False # only reconnect when all threads are ready if not (0 < self.wantReconnect() == len(self.working)): return False if not exists(self.core.config['reconnect']['method']): if exists(join(pypath, self.core.config['reconnect']['method'])): self.core.config['reconnect']['method'] = join(pypath, self.core.config['reconnect']['method']) else: self.core.config["reconnect"]["activated"] = False self.log.warning(_("Reconnect script not found!")) return self.reconnecting.set() self.log.info(_("Starting reconnect")) # wait until all thread got the event while [x.active.plugin.waiting for x in self.working].count(True) != 0: sleep(0.25) old_ip = get_ip() self.core.evm.dispatchEvent("reconnect:before", old_ip) self.log.debug("Old IP: %s" % old_ip) try: call(self.core.config['reconnect']['method'], shell=True) except: self.log.warning(_("Failed executing reconnect script!")) self.core.config["reconnect"]["activated"] = False self.reconnecting.clear() self.core.print_exc() return sleep(1) ip = get_ip() self.core.evm.dispatchEvent("reconnect:after", ip) if not old_ip or old_ip == ip: self.log.warning(_("Reconnect not successful")) else: self.log.info(_("Reconnected, new IP: %s") % ip) self.reconnecting.clear()
def __main__(): global TOTAL_PIS_CONNECTED #Create main socket to listen to connections on mainSock = socket.socket() mainSock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) localIP = network.get_ip() print("localIP is ", localIP) mainSock.bind((localIP, PORT)) mainSock.listen(10) socketList = [socket.socket() for i in range(OTHERPIS)] #Start attempting to connect to all pis threading.Thread(target=bcastConnect, args=(socketList,)).start() #Start thread that handles receives threading.Thread(target=processNetworkData, args=(recvQueue, sendQueue, socketMap)).start() #threading.Thread(target=sendThread, args=(sendQueue,socketMap)).start() threading.Thread(target=sendThread, args=(socketMap,)).start() while True: newConnection = mainSock.accept()[0] print("New Connection received!", newConnection.getpeername()) #threading.Thread(target=recvThread,args=(newConnection, recvQueue, socketMap)).start() threading.Thread(target=recvThread,args=(newConnection, socketMap)).start() mainSock.close()
def network(): default() os.system("tput setaf 5") print("\tNETWORK SERVICES") print("\t----------------") os.system("tput setaf 7") print("") print("PRESS 1: Create new web server\t\t\tPRESS 2: Configure existing web server\nPRESS 3: To see IP\t\t\t\tPRESS 4: To go back to home screen") print("\nEnter Choice: ",end='') ch=int(input()) if ch==1: net.create_web_server() home_screen() elif ch==2: net.file_add() net.personalised_link() home_screen() elif ch==3: print(net.get_ip()) while True: print("Press y to continue: ",end='') ch2=input() if ch2=='y' or ch2=='Y': network() elif ch==4: home_screen() else: while True: print("Invalid Choice!!Try Again") print("\nPress y to continue: ",end="") x=input() if x=='y'or x=='Y': network()
def run (vm_name, run_cmd, args=None): user, host = get_username(vm_name) ip = network.get_ip(vm_name) if not ip: print "ERROR: Could not get the IP of %s"%(vm_name) raise SystemExit command = build_ssh_command (ip, user, terminal=True) command += " %s"%(run_cmd) return cmd.run(command)
def __init__(self): self.alive = True self.elevators = {} self.ip = network.get_ip() self.backup_ip = '' self.external_buttons = [False for floor in range(constants.N_FLOORS)] self.lock = Lock() self.broadcaster = Thread(target=self.broadcast) self.broadcaster.setDaemon(True) self.broadcaster.start() self.server = network.ThreadedTCPServer((self.ip, 10001), network.ClientHandler) self.server.clients = {} self.server.master = self self.server_thread = Thread(target=self.run_server) self.server_thread.setDaemon(True) self.server_thread.start()
def __init__(self, envs=os.environ): self.mysql_db = env('MYSQL_DATABASE', None, envs) self.mysql_user = env('MYSQL_USER', None, envs) self.mysql_password = env('MYSQL_PASSWORD', None, envs) self.mysql_root_password = env('MYSQL_ROOT_PASSWORD', '', envs) self.mysql_random_root_password = env('MYSQL_RANDOM_ROOT_PASSWORD', True, envs, to_flag) self.mysql_onetime_password = env('MYSQL_ONETIME_PASSWORD', False, envs, to_flag) self.repl_user = env('MYSQL_REPL_USER', None, envs) self.repl_password = env('MYSQL_REPL_PASSWORD', None, envs) self.datadir = env('MYSQL_DATADIR', '/var/lib/mysql', envs) self.pool_size = env('INNODB_BUFFER_POOL_SIZE', 0, envs, fn=int) # state self.ip = get_ip() self._conn = None self._query_buffer = OrderedDict()
def execute_file_over_ssh (vm_name, fullpath, prog_args=None): user, host = get_username(vm_name) ip = network.get_ip(vm_name) if not ip: print "ERROR: Could not get the IP of %s"%(vm_name) raise SystemExit # Copy command = "scp %s %s %s:/tmp" % (SSH_CLI_PARAMS, fullpath, build_hostname(ip, user)) cmd.run(command) # Execute command = build_ssh_command(ip, user, terminal=True) command += " /tmp/%s" %(os.path.basename(fullpath)) if prog_args: command += ' %s'%(prog_args) cmd.run(command) # Clean up command = build_ssh_command(ip, user) command += " rm -fv /tmp/%s" %(os.path.basename(fullpath)) cmd.run(command)
def run(self): """Start communication with master, movement- and button handler. Elev objects are used as a mirror of the real clients on the master side, so to initiate connection with the server, move the elevator, etc this must be called. """ self.alive = True self.client = network.Client(self.master_addr, 10001, self) self.ip = network.get_ip() self.backup_ip = '' self.backup = None self.client.send_msg('request_backup_ip', None, self.ip) self.worker = network.Msg_receiver(self.client, self.client.connection) self.worker.setDaemon(True) self.worker.start() self.elev = cdll.LoadLibrary("../driver/driver.so") self.elev.elev_init(self.mode) self.movement = Thread(target=self.movement_handler) self.buttons = Thread(target=self.button_handler) self.movement.setDaemon(True) self.buttons.setDaemon(True) self.movement.start() self.buttons.start()
#Queues to share messages over send and receive recvQueue = Queue() sendQueue = Queue() #Maps to map IP to corresponding send/recv socket recvMap = {} sendMap = {} #Set of other addresses ipAddrs = set() #Lock for concurrency lock = threading.Lock() #My IP localIP = network.get_ip() PORT = 10000 #To be used in processNetworkData me = localIP #Self socket - send messages to self selfSocket = socket.socket() ''' # ballot = <Num, pid, depth of block> # "An acceptor doesnot accept, prepare, or accept messages from a contending leader # if the depth of the block being proposed is lower than the acceptor’s depth of # its copy of the blockchain" ''' #Paxos info pid = boot.getPiNum()
# Start the VM if it isn't running if not util.vm_is_running(vm_name): cmd.run("qvm start %s"%(vm_name)) # Command if len(sys.argv) > 2: remote_cmd = ' '.join(sys.argv[2:]) else: remote_cmd = None # Get username for the session user, vm_name = ssh.get_username(vm_name) # Get IP ip = network.get_ip(vm_name) if not ip: print "ERROR: Could not get the IP of %s"%(vm_name) raise SystemExit # SSH command line command = ssh.build_ssh_command(ip, user) if remote_cmd: command += ' %s'%(remote_cmd) # Make sure the SSH service is ready network.wait_vm_net_service (vm_name, 22) # Execute if not sys.stdin.isatty(): cmd.run_command(command, stdin=sys.stdin.read())
servo.runScriptSub(0) print("crouch") return {'postion': 'crouch'} api.add_resource(Crouch, '/crouch') class Taunt(Resource): def get(self): servo.runScriptSub(1) print("taunt") return {'postion': 'taunt'} api.add_resource(Taunt, '/taunt') class Neutral(Resource): def get(self): servo.runScriptSub(1) print("neutral") return {'postion': 'neutral'} api.add_resource(Neutral, '/neutral') if __name__ == '__main__': rpiIP = str(get_ip()) # sets ip address of raspberry pi app.run(debug=True, host=str(rpiIP))
import os import re import util import network # Run virsh list cmd = "virsh list --all" with os.popen(cmd) as f: cont = [l.strip() for l in f.read().split('\n') if l] # Skip header cont = cont[2:] # VMs VMs = [] for line in cont: line = line.replace ('shut off', 'shut_off') VMs.append([f for f in line.split(' ') if f]) # Get IPs for vm in VMs: vm_name = vm[1] vm.append(network.get_ip(vm_name)) # Print print util.format_table (["VM", "Status", "IP"], [[vm[1], vm[2], vm[3]] for vm in VMs])