Skip to content

Instantly share code, notes, and snippets.

@esbullington
Created November 3, 2012 23:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save esbullington/4009280 to your computer and use it in GitHub Desktop.
Save esbullington/4009280 to your computer and use it in GitHub Desktop.
Python script to reverse MTurk rejection using boto library and M2Crypto
#!/usr/bin/env python
import sys
# We use M2Crypto here because MTurk API does not presently allow use of IAM keys, making SSL essential
# Adapted from script by Heikki Toivonen:
# http://www.heikkitoivonen.net/blog/2009/10/12/using-m2crypto-with-boto-secure-access-to-amazon-web-services/
from M2Crypto import httpslib, SSL
from boto.mturk.connection import MTurkConnection
AWS_ACCESS_KEY = "AWSKEYHERE"
AWS_SECRET_ACCESS_KEY = "SECRETKEYHERE"
REASON ="""
Put reason for the reversal here
"""
ASSIGNMENT_ID = "ASSIGNMENT_ID_HERE_NOT_HIT_ID"
def https_connection_factory(host, port=None, strict=0, **ssl):
"""HTTPS connection factory that creates secure connections
using M2Crypto."""
ctx = SSL.Context('tlsv1')
ctx.set_verify(SSL.verify_peer | SSL.verify_fail_if_no_peer_cert, depth=9)
if ctx.load_verify_locations('cacert.pem') != 1:
raise Exception('No CA certs')
return httpslib.HTTPSConnection(host, port=port, strict=strict,
ssl_context=ctx)
def create_connection(aws_access_key_id, aws_secret_access_key):
"""Create MTurk connection."""
conn = MTurkConnection(aws_access_key_id=aws_access_key_id,
aws_secret_access_key=aws_secret_access_key,
https_connection_factory=(https_connection_factory, ()))
return conn
if __name__ == '__main__':
# Sample usage
conn = create_connection(AWS_ACCESS_KEY, AWS_SECRET_ACCESS_KEY)
try:
conn.approve_rejected_assignment(ASSIGNMENT_ID, REASON)
except EXCEPTION, e:
print e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment