def callf(self, action, params=None, service_name='ec2', now=None): from faws.futures import Future import requests import datetime from faws.service import get_service from faws.sign.v2 import signed_request if params is None: params = {} if now is None: now = datetime.datetime.utcnow() service = get_service(service_name, self.creds.region) expires = now + datetime.timedelta(days=5) params.update({ 'Action' : action, }) assert service.method in {'GET', 'POST'}, service.name # do_request will be one of requests.get or requests.post if 'GET' == service.method: do_request = requests.get else: do_request = requests.put sr = signed_request(service, params, self.creds, now) def do_call(): return do_request( sr.url, data = sr.payload, headers = sr.headers, ) return Future(self.executor.submit(do_call))
def callf_v4(self, action, params=None, service_name='ec2', now=None): from faws.sign.common import DATETIME_ISO8601_F import requests import datetime from faws.service import get_service from faws.sign.v4 import ( datefmt, signed_request, ) if params is None: params = {} if now is None: now = datetime.datetime.now() service = get_service(service_name, self.creds.region) expires = now + datetime.timedelta(minutes=5) params.update({ 'Action' : action, 'Version' : service.version, 'AWSAccessKeyId' : self.creds.access_key, 'Timestamp' : now.strftime(DATETIME_ISO8601_F), 'Expires' : expires.strftime(DATETIME_ISO8601_F), }) assert service.method in {'GET', 'POST'}, service.name # do_request will be one of requests.get or requests.post if 'GET' == service.method: do_request = requests.get else: do_request = requests.put sr = signed_request(service, params, self.creds, when=now) def do_call(): return do_request( sr.url, data = sr.payload, headers = sr.headers, ) return self.executor.submit(do_call)