def handle_error(self, error): ''' When an error is propagated up to here, is time to return to the sender that this task failed ''' session = requests.sessions.Session() input_data = self.task.get_data()['input_data'] election_id = input_data['election_id'] callback_url = input_data['callback_url'] election = db.session.query(Election)\ .filter(Election.id == election_id).first() session = requests.sessions.Session() fail_data = { "status": "error", "reference": { "election_id": election_id, "action": "POST /tally" }, "data": { "message": "election tally failed for some reason" } } r = session.request('post', callback_url, data=dumps(fail_data), headers={'content-type': 'application/json'}, verify=False) print r.text end_task()
def handle_error(self, error): ''' When an error is propagated up to here, is time to return to the sender that this task failed ''' session = requests.sessions.Session() session.mount('http://', RejectAdapter()) input_data = self.task.get_data()['input_data'] election_id = input_data['election_id'] callback_url = input_data['callback_url'] election = db.session.query(Election)\ .filter(Election.id == election_id).first() session = requests.sessions.Session() fail_data = { "status": "error", "reference": { "election_id": election_id, "action": "POST /tally" }, "data": { "message": "election tally failed for some reason" } } ssl_calist_path = app.config.get('SSL_CALIST_PATH', '') ssl_cert_path = app.config.get('SSL_CERT_PATH', '') ssl_key_path = app.config.get('SSL_KEY_PATH', '') print("\nFF callback_url4 " + callback_url) r = session.request('post', callback_url, data=dumps(fail_data), headers={'content-type': 'application/json'}, verify=ssl_calist_path, cert=(ssl_cert_path, ssl_key_path)) print r.text end_task()
def return_election(task): input_data = task.get_parent().get_data()['input_data'] election_id = input_data['election_id'] callback_url = input_data['callback_url'] pub_data_url = app.config.get('PUBLIC_DATA_BASE_URL', '') tally_url = pub_data_url + '/' + str(election_id) + '/tally.tar.gz' pub_data_path = app.config.get('PUBLIC_DATA_PATH', '') tally_hash_path = os.path.join(pub_data_path, str(election_id), 'tally.tar.gz.sha256') f = open(tally_hash_path, 'r') tally_hash = f.read() f.close() ret_data = { "status": "finished", "reference": { "election_id": election_id, "action": "POST /tally" }, "data": { "tally_url": tally_url, "tally_hash": "ni:///sha-256;" + tally_hash } } session = requests.sessions.Session() r = session.request('post', callback_url, data=dumps(ret_data), headers={'content-type': 'application/json'}, verify=False) print r.text end_task()
def handle_error(self, error): ''' When an error is propagated up to here, is time to return to the sender that this task failed ''' session = requests.sessions.Session() input_data = self.task.get_data()['input_data'] election_id = input_data['election_id'] election = db.session.query(Election)\ .filter(Election.session_id == election_id).first() session = requests.sessions.Session() callback_url = election.callback_url fail_data = { "status": "error", "reference": { "election_id": election_id, "action": "POST /election" }, "data": { "message": "election creation failed for some reason" } } r = session.request('post', callback_url, data=dumps(fail_data), verify=False) end_task()
def return_election(task): input_data = task.get_data()['input_data'] election_id = input_data['election_id'] session_ids = input_data['session_ids'] election = db.session.query(Election)\ .filter(Election.id == election_id).first() session_data = [] for session_id in session_ids: # read into a string the pubkey privdata_path = app.config.get('PRIVATE_DATA_PATH', '') pubkey_path = os.path.join(privdata_path, str(election_id), session_id, 'publicKey_json') pubkey_file = open(pubkey_path, 'r') pubkey = pubkey_file.read() pubkey_file.close() session_data.append(dict( session_id=session_id, pubkey=json.loads(pubkey) )) # publish the pubkey pubdata_path = app.config.get('PUBLIC_DATA_PATH', '') pub_session_path = os.path.join(pubdata_path, str(election_id), session_id) pubkey_path2 = os.path.join(pub_session_path, 'publicKey_json') if not os.path.exists(pub_session_path): mkdir_recursive(pub_session_path) shutil.copyfile(pubkey_path, pubkey_path2) # publish protInfo.xml too session_privpath = os.path.join(privdata_path, str(election_id), session_id) protinfo_privpath = os.path.join(session_privpath, 'protInfo.xml') protinfo_pubpath = os.path.join(pub_session_path, 'protInfo.xml') shutil.copyfile(protinfo_privpath, protinfo_pubpath) session = requests.sessions.Session() session.mount('http://', RejectAdapter()) callback_url = election.callback_url ret_data = { "status": "finished", "reference": { "election_id": election_id, "action": "POST /election" }, "session_data": session_data } print "callback_url, ", callback_url print dumps(ret_data) ssl_calist_path = app.config.get('SSL_CALIST_PATH', '') ssl_cert_path = app.config.get('SSL_CERT_PATH', '') ssl_key_path = app.config.get('SSL_KEY_PATH', '') print("\nFF callback_url2 " + callback_url) r = session.request('post', callback_url, data=dumps(ret_data), headers={'content-type': 'application/json'}, verify=ssl_calist_path, cert=(ssl_cert_path, ssl_key_path)) print r.text end_task()
def return_election(task): input_data = task.get_data()['input_data'] election_id = input_data['election_id'] session_ids = input_data['session_ids'] election = db.session.query(Election)\ .filter(Election.id == election_id).first() session_data = [] for session_id in session_ids: # read into a string the pubkey privdata_path = app.config.get('PRIVATE_DATA_PATH', '') pubkey_path = os.path.join(privdata_path, str(election_id), session_id, 'publicKey_json') pubkey_file = open(pubkey_path, 'r') pubkey = pubkey_file.read() pubkey_file.close() session_data.append( dict(session_id=session_id, pubkey=json.loads(pubkey))) # publish the pubkey pubdata_path = app.config.get('PUBLIC_DATA_PATH', '') pub_session_path = os.path.join(pubdata_path, str(election_id), session_id) pubkey_path2 = os.path.join(pub_session_path, 'publicKey_json') if not os.path.exists(pub_session_path): mkdir_recursive(pub_session_path) shutil.copyfile(pubkey_path, pubkey_path2) # publish protInfo.xml too session_privpath = os.path.join(privdata_path, str(election_id), session_id) protinfo_privpath = os.path.join(session_privpath, 'protInfo.xml') protinfo_pubpath = os.path.join(pub_session_path, 'protInfo.xml') shutil.copyfile(protinfo_privpath, protinfo_pubpath) session = requests.sessions.Session() callback_url = election.callback_url ret_data = { "status": "finished", "reference": { "election_id": election_id, "action": "POST /election" }, "session_data": session_data } print "callback_url, ", callback_url print dumps(ret_data) r = session.request('post', callback_url, data=dumps(ret_data), headers={'content-type': 'application/json'}, verify=False) print r.text end_task()
def return_election(task): input_data = task.get_parent().get_data()['input_data'] election_id = input_data['election_id'] callback_url = input_data['callback_url'] pub_data_url = app.config.get('PUBLIC_DATA_BASE_URL', '') tally_url = pub_data_url + '/' + str(election_id) + '/tally.tar.gz' pub_data_path = app.config.get('PUBLIC_DATA_PATH', '') tally_hash_path = os.path.join(pub_data_path, str(election_id), 'tally.tar.gz.sha256') f = open(tally_hash_path, 'r') tally_hash = f.read() f.close() ret_data = { "status": "finished", "reference": { "election_id": election_id, "action": "POST /tally" }, "data": { "tally_url": tally_url, "tally_hash": "ni:///sha-256;" + tally_hash } } session = requests.sessions.Session() session.mount('http://', RejectAdapter()) ssl_calist_path = app.config.get('SSL_CALIST_PATH', '') ssl_cert_path = app.config.get('SSL_CERT_PATH', '') ssl_key_path = app.config.get('SSL_KEY_PATH', '') print("\nFF callback_url5 " + callback_url) r = session.request('post', callback_url, data=dumps(ret_data), headers={'content-type': 'application/json'}, verify=ssl_calist_path, cert=(ssl_cert_path, ssl_key_path)) print(r.text) end_task()
def handle_error(self, error): ''' When an error is propagated up to here, is time to return to the sender that this task failed ''' try: session = requests.sessions.Session() session.mount('http://', RejectAdapter()) input_data = self.task.get_data()['input_data'] election_id = input_data['election_id'] callback_url = input_data['callback_url'] election = db.session.query(Election)\ .filter(Election.id == election_id).first() session = requests.sessions.Session() fail_data = { "status": "error", "reference": { "election_id": election_id, "action": "POST /tally" }, "data": { "message": "election tally failed for some reason" } } ssl_calist_path = app.config.get('SSL_CALIST_PATH', '') ssl_cert_path = app.config.get('SSL_CERT_PATH', '') ssl_key_path = app.config.get('SSL_KEY_PATH', '') print("\nFF callback_url4 " + callback_url) r = session.request('post', callback_url, data=dumps(fail_data), headers={'content-type': 'application/json'}, verify=ssl_calist_path, cert=(ssl_cert_path, ssl_key_path)) print(r.text) finally: end_task()
def return_election(task): input_data = task.get_data()['input_data'] election_id = input_data['election_id'] session_ids = input_data['session_ids'] election = db.session.query(Election)\ .filter(Election.id == election_id).first() session_data = [] for session_id in session_ids: # read into a string the pubkey privdata_path = app.config.get('PRIVATE_DATA_PATH', '') pubkey_path = os.path.join(privdata_path, str(election_id), session_id, 'publicKey_json') pubkey_file = open(pubkey_path, 'r') pubkey = pubkey_file.read() pubkey_file.close() session_data.append( dict(session_id=session_id, pubkey=json.loads(pubkey))) # publish the pubkey pubdata_path = app.config.get('PUBLIC_DATA_PATH', '') pub_session_path = os.path.join(pubdata_path, str(election_id), session_id) pubkey_path2 = os.path.join(pub_session_path, 'publicKey_json') if not os.path.exists(pub_session_path): mkdir_recursive(pub_session_path) shutil.copyfile(pubkey_path, pubkey_path2) # publish protInfo.xml too session_privpath = os.path.join(privdata_path, str(election_id), session_id) protinfo_privpath = os.path.join(session_privpath, 'protInfo.xml') protinfo_pubpath = os.path.join(pub_session_path, 'protInfo.xml') shutil.copyfile(protinfo_privpath, protinfo_pubpath) session = requests.sessions.Session() session.mount('http://', RejectAdapter()) callback_url = election.callback_url ret_data = { "status": "finished", "reference": { "election_id": election_id, "action": "POST /election" }, "session_data": session_data } print("callback_url, " + callback_url + ", data = ") print(dumps(ret_data)) ssl_calist_path = app.config.get('SSL_CALIST_PATH', '') ssl_cert_path = app.config.get('SSL_CERT_PATH', '') ssl_key_path = app.config.get('SSL_KEY_PATH', '') try: r = session.request('post', callback_url, data=dumps(ret_data), headers={'content-type': 'application/json'}, verify=ssl_calist_path, cert=(ssl_cert_path, ssl_key_path)) except Exception as e: print("exception posting callback = ") print(e) raise e print("received text = ") print(r.text) end_task()