Exemple #1
0
 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))
Exemple #2
0
 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)