def dh_key_exchange(self, client, coder): while True: try: print("waiting dh params..") raw_data = ClientManager.get_msg(client) print("get msg " + str(raw_data)) if "dh_params" in raw_data: ClientManager.send_msg( client, *ClientManager.build_response(coder.get_dh_params())) print("Waiting for client's public key") client_key_msg = ClientManager.get_msg(client) print("Public key received") if "public_key" not in client_key_msg: raise Exception( "Waiting for client public key for encryption") coder.calc_shared_key(client_key_msg["public_key"]) return elif coder.shared_key is None: raise Exception("Missing client public key for encryption") except Exception as e: print("Server exception " + str(e)) ClientManager.send_msg( client, *ClientManager.build_response( error_msg("dh_params", str(e))))
def __init__(self, address, neighbours=[], gateways=[], defaultGateway=None): self.address = address self.defaultGateway = defaultGateway self.cManager = cm.ClientManager(self, neighbours, gateways)
def init(self, subtype, conf): cfgip = str(conf.get("configsvr", "host")) cfgport = int(conf.get("configsvr", "port")) self.m_config = ConfigClient.ConfigClent(self, subtype, Base.SVR_TYPE_SRS, cfgip, cfgport) self.m_connectorServer = ConnectorServer.ConnectorServer(self) self.m_centerClients = ClientManager.ClientManager(self) self.m_playerManager = PlayerManager.PlayerManager(self)
from ClientManager import * SELF_IP = "127.0.0.1" TRACKER_PORT = 3456 seeders_manager = seeder_communication_manager() clients_manager = ClientManager(SELF_IP, TRACKER_PORT, seeders_manager) clients_manager.wait_for_connections()
import ClientManager import Logger import Configurations import time import os, shutil import glob import re if __name__ == '__main__': os.system('reset') Logger.Logger('-' * 50) #REVERT TEST CLIENTS TO PROPER SNAPSHOT for vm in Configurations.VmNameList: ClientManager.Revert(vm, Configurations.VmSnapshot) #POWER ON TEST CLIENTS for vm in Configurations.VmNameList: ClientManager.StartVM(vm) time.sleep(Configurations.OsStartupTimeout) #COPY REQUIRED FILES TO CLIENTS for vm in Configurations.VmNameList: ClientManager.CreateDirectoryOnGuest(vm, Configurations.ClientPath) for cfile in Configurations.ClientFilesPath: ClientManager.CopyFromHostToGuest( vm, cfile, Configurations.ClientPath + cfile.split('/')[-1:][0]) #COLLECT IPs FROM CLIENTS AND GET THEM TO PADVISH SERVER
#Sub - methods def submitParsingRequest(self, parsingRequest): gearmanClient = Client(ClientManager.JOB_SERVER_ADDRESS_LIST, parsingRequest) gearmanClient.run() gearmanClient = None def readStatus(self, requestSequenceNumber="all"): return self._parsingRequestQueue.getStatus(requestSequenceNumber) if __name__=="__main__": _clientManager = ClientManager() _runMode = constants.RUN_MODE_DAEMON if(len(sys.argv) > 1): if(sys.argv[1]=="-f"): _runMode = constants.RUN_MODE_FOREGROUND #try: _clientManager.start(_runMode) #except Exception: # _clientManager.stop() # exit(0)
def authorization(self, client, instances, coder): while True: print("client's authorization...") try: raw_data = ClientManager.get_msg(client, coder) print("get msg " + str(raw_data)) if raw_data is None or RequestType.AUTHORIZE not in raw_data: ClientManager.send_msg( client, *ClientManager.build_response( error_msg(RequestType.AUTHORIZE, "You are not authorized"), coder)) continue array = json.loads(raw_data[RequestType.AUTHORIZE]) access_rights = None admin = instances.DATA_BASE.get_admin(array[DataType.LOGIN]) if admin is not None and self.psw_equals( admin[DataType.PASSWORD], array[DataType.PASSWORD]): access_rights = DataType.ACCESS_ADMIN else: viewer = instances.DATA_BASE.get_viewer( array[DataType.LOGIN]) if viewer is not None and self.psw_equals( viewer[DataType.PASSWORD], array[DataType.PASSWORD]): access_rights = DataType.ACCESS_VIEWER if access_rights is None: ClientManager.send_msg( client, *ClientManager.build_response( error_msg(RequestType.AUTHORIZE, "Wrong login or password"), coder)) else: ClientManager.send_msg( client, *ClientManager.build_response( { RequestType.AUTHORIZE: admin if admin is not None else viewer, DataType.ACCESS: access_rights, DataType.CODE: DataType.CODE_SUCCESS }, coder)) ClientManager.run(client, instances, access_rights, coder) except ConnectionAbortedError as e: client.close() return except Exception as e: print("Server exception " + str(e)) ClientManager.send_msg( client, *ClientManager.build_response( error_msg(RequestType.AUTHORIZE, str(e)), coder))
def __init__(self): self.m_conn = ClientManager.ClientManager(self)