def send_request(s, vm_path, guest_path): # request is a dict type request = {'vm_path': vm_path, 'guest_path': guest_path} header_string = encode_header(request) send_all(s, header_string) # receive response len_string = receive_all(s, 4) if len_string: header_length, = struct.unpack('!I', len_string) json_string = receive_all(s, header_length) response = json.loads(json_string) if 'url' in response: url = response['url'] return url
def send_file(s, file_path): # send header and file content header_string = encode_file_header(file_path) file_len = os.path.getsize(file_path) send_all(s, header_string) with open(file_path, 'rb')as f: data = f.read(BUF_SIZE) while data: send_all(s, data) data = f.read(BUF_SIZE) # receive response len_string = receive_all(s, 4) if len_string: header_length, = struct.unpack('!I', len_string) json_string = receive_all(s, header_length) response = json.loads(json_string) if not response['success']: raise Exception(response.get('reason', None)) return file_len
def send_message(s, request): header_string = encode_header(request) send_all(s, header_string)