Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(141)

Unified Diff: third_party/gsutil/20110627/boto/boto/fps/connection.py

Issue 10199002: Upgrade gsutil to 3.4 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed comments Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/20110627/boto/boto/fps/connection.py
diff --git a/third_party/gsutil/20110627/boto/boto/fps/connection.py b/third_party/gsutil/20110627/boto/boto/fps/connection.py
deleted file mode 100644
index 84eaf18bad30cede881267f81098fbd7c67e4429..0000000000000000000000000000000000000000
--- a/third_party/gsutil/20110627/boto/boto/fps/connection.py
+++ /dev/null
@@ -1,400 +0,0 @@
-# Copyright (c) 2008 Chris Moyer http://coredumped.org/
-# Copyringt (c) 2010 Jason R. Coombs http://www.jaraco.com/
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish, dis-
-# tribute, sublicense, and/or sell copies of the Software, and to permit
-# persons to whom the Software is furnished to do so, subject to the fol-
-# lowing conditions:
-#
-# The above copyright notice and this permission notice shall be included
-# in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
-# ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
-# SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import base64
-import hmac
-import hashlib
-import urllib
-import xml.sax
-import uuid
-import boto
-import boto.utils
-from boto import handler
-from boto.connection import AWSQueryConnection
-from boto.resultset import ResultSet
-from boto.exception import FPSResponseError
-
-class FPSConnection(AWSQueryConnection):
-
- APIVersion = '2007-01-08'
-
- def __init__(self, aws_access_key_id=None, aws_secret_access_key=None,
- is_secure=True, port=None, proxy=None, proxy_port=None,
- proxy_user=None, proxy_pass=None,
- host='fps.sandbox.amazonaws.com', debug=0,
- https_connection_factory=None, path="/"):
- AWSQueryConnection.__init__(self, aws_access_key_id, aws_secret_access_key,
- is_secure, port, proxy, proxy_port,
- proxy_user, proxy_pass, host, debug,
- https_connection_factory, path)
-
- def _required_auth_capability(self):
- return ['fps']
-
- def install_payment_instruction(self, instruction, token_type="Unrestricted", transaction_id=None):
- """
- InstallPaymentInstruction
- instruction: The PaymentInstruction to send, for example:
-
- MyRole=='Caller' orSay 'Roles do not match';
-
- token_type: Defaults to "Unrestricted"
- transaction_id: Defaults to a new ID
- """
-
- if(transaction_id == None):
- transaction_id = uuid.uuid4()
- params = {}
- params['PaymentInstruction'] = instruction
- params['TokenType'] = token_type
- params['CallerReference'] = transaction_id
- response = self.make_request("InstallPaymentInstruction", params)
- return response
-
- def install_caller_instruction(self, token_type="Unrestricted", transaction_id=None):
- """
- Set us up as a caller
- This will install a new caller_token into the FPS section.
- This should really only be called to regenerate the caller token.
- """
- response = self.install_payment_instruction("MyRole=='Caller';", token_type=token_type, transaction_id=transaction_id)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- caller_token = rs.TokenId
- try:
- boto.config.save_system_option("FPS", "caller_token", caller_token)
- except(IOError):
- boto.config.save_user_option("FPS", "caller_token", caller_token)
- return caller_token
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def install_recipient_instruction(self, token_type="Unrestricted", transaction_id=None):
- """
- Set us up as a Recipient
- This will install a new caller_token into the FPS section.
- This should really only be called to regenerate the recipient token.
- """
- response = self.install_payment_instruction("MyRole=='Recipient';", token_type=token_type, transaction_id=transaction_id)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- recipient_token = rs.TokenId
- try:
- boto.config.save_system_option("FPS", "recipient_token", recipient_token)
- except(IOError):
- boto.config.save_user_option("FPS", "recipient_token", recipient_token)
-
- return recipient_token
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def make_marketplace_registration_url(self, returnURL, pipelineName, maxFixedFee=0.0, maxVariableFee=0.0, recipientPaysFee='True', **params):
- """
- Generate the URL with the signature required for signing up a recipient
- """
- # use the sandbox authorization endpoint if we're using the
- # sandbox for API calls.
- endpoint_host = 'authorize.payments.amazon.com'
- if 'sandbox' in self.host:
- endpoint_host = 'authorize.payments-sandbox.amazon.com'
- base = "/cobranded-ui/actions/start"
-
- params['callerKey'] = str(self.aws_access_key_id)
- params['returnURL'] = str(returnURL)
- params['pipelineName'] = str(pipelineName)
- params['maxFixedFee'] = str(maxFixedFee)
- params['maxVariableFee'] = str(maxVariableFee)
- params['recipientPaysFee'] = str(recipientPaysFee)
- params["signatureMethod"] = 'HmacSHA256'
- params["signatureVersion"] = '2'
-
- if(not params.has_key('callerReference')):
- params['callerReference'] = str(uuid.uuid4())
-
- parts = ''
- for k in sorted(params.keys()):
- parts += "&%s=%s" % (k, urllib.quote(params[k], '~'))
-
- canonical = '\n'.join(['GET',
- str(endpoint_host).lower(),
- base,
- parts[1:]])
-
- signature = self._auth_handler.sign_string(canonical)
- params["signature"] = signature
-
- urlsuffix = ''
- for k in sorted(params.keys()):
- urlsuffix += "&%s=%s" % (k, urllib.quote(params[k], '~'))
- urlsuffix = urlsuffix[1:] # strip the first &
-
- fmt = "https://%(endpoint_host)s%(base)s?%(urlsuffix)s"
- final = fmt % vars()
- return final
-
-
- def make_url(self, returnURL, paymentReason, pipelineName, transactionAmount, **params):
- """
- Generate the URL with the signature required for a transaction
- """
- # use the sandbox authorization endpoint if we're using the
- # sandbox for API calls.
- endpoint_host = 'authorize.payments.amazon.com'
- if 'sandbox' in self.host:
- endpoint_host = 'authorize.payments-sandbox.amazon.com'
- base = "/cobranded-ui/actions/start"
-
- params['callerKey'] = str(self.aws_access_key_id)
- params['returnURL'] = str(returnURL)
- params['paymentReason'] = str(paymentReason)
- params['pipelineName'] = pipelineName
- params['transactionAmount'] = transactionAmount
- params["signatureMethod"] = 'HmacSHA256'
- params["signatureVersion"] = '2'
-
- if(not params.has_key('callerReference')):
- params['callerReference'] = str(uuid.uuid4())
-
- parts = ''
- for k in sorted(params.keys()):
- parts += "&%s=%s" % (k, urllib.quote(params[k], '~'))
-
- canonical = '\n'.join(['GET',
- str(endpoint_host).lower(),
- base,
- parts[1:]])
-
- signature = self._auth_handler.sign_string(canonical)
- params["signature"] = signature
-
- urlsuffix = ''
- for k in sorted(params.keys()):
- urlsuffix += "&%s=%s" % (k, urllib.quote(params[k], '~'))
- urlsuffix = urlsuffix[1:] # strip the first &
-
- fmt = "https://%(endpoint_host)s%(base)s?%(urlsuffix)s"
- final = fmt % vars()
- return final
-
- def pay(self, transactionAmount, senderTokenId,
- recipientTokenId=None, callerTokenId=None,
- chargeFeeTo="Recipient",
- callerReference=None, senderReference=None, recipientReference=None,
- senderDescription=None, recipientDescription=None, callerDescription=None,
- metadata=None, transactionDate=None, reserve=False):
- """
- Make a payment transaction. You must specify the amount.
- This can also perform a Reserve request if 'reserve' is set to True.
- """
- params = {}
- params['SenderTokenId'] = senderTokenId
- # this is for 2008-09-17 specification
- params['TransactionAmount.Amount'] = str(transactionAmount)
- params['TransactionAmount.CurrencyCode'] = "USD"
- #params['TransactionAmount'] = str(transactionAmount)
- params['ChargeFeeTo'] = chargeFeeTo
-
- params['RecipientTokenId'] = (
- recipientTokenId if recipientTokenId is not None
- else boto.config.get("FPS", "recipient_token")
- )
- params['CallerTokenId'] = (
- callerTokenId if callerTokenId is not None
- else boto.config.get("FPS", "caller_token")
- )
- if(transactionDate != None):
- params['TransactionDate'] = transactionDate
- if(senderReference != None):
- params['SenderReference'] = senderReference
- if(recipientReference != None):
- params['RecipientReference'] = recipientReference
- if(senderDescription != None):
- params['SenderDescription'] = senderDescription
- if(recipientDescription != None):
- params['RecipientDescription'] = recipientDescription
- if(callerDescription != None):
- params['CallerDescription'] = callerDescription
- if(metadata != None):
- params['MetaData'] = metadata
- if(callerReference == None):
- callerReference = uuid.uuid4()
- params['CallerReference'] = callerReference
-
- if reserve:
- response = self.make_request("Reserve", params)
- else:
- response = self.make_request("Pay", params)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def get_transaction_status(self, transactionId):
- """
- Returns the status of a given transaction.
- """
- params = {}
- params['TransactionId'] = transactionId
-
- response = self.make_request("GetTransactionStatus", params)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def cancel(self, transactionId, description=None):
- """
- Cancels a reserved or pending transaction.
- """
- params = {}
- params['transactionId'] = transactionId
- if(description != None):
- params['description'] = description
-
- response = self.make_request("Cancel", params)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def settle(self, reserveTransactionId, transactionAmount=None):
- """
- Charges for a reserved payment.
- """
- params = {}
- params['ReserveTransactionId'] = reserveTransactionId
- if(transactionAmount != None):
- params['TransactionAmount'] = transactionAmount
-
- response = self.make_request("Settle", params)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def refund(self, callerReference, transactionId, refundAmount=None, callerDescription=None):
- """
- Refund a transaction. This refunds the full amount by default unless 'refundAmount' is specified.
- """
- params = {}
- params['CallerReference'] = callerReference
- params['TransactionId'] = transactionId
- if(refundAmount != None):
- params['RefundAmount'] = refundAmount
- if(callerDescription != None):
- params['CallerDescription'] = callerDescription
-
- response = self.make_request("Refund", params)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def get_recipient_verification_status(self, recipientTokenId):
- """
- Test that the intended recipient has a verified Amazon Payments account.
- """
- params ={}
- params['RecipientTokenId'] = recipientTokenId
-
- response = self.make_request("GetRecipientVerificationStatus", params)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def get_token_by_caller_reference(self, callerReference):
- """
- Returns details about the token specified by 'callerReference'.
- """
- params ={}
- params['callerReference'] = callerReference
-
- response = self.make_request("GetTokenByCaller", params)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
- else:
- raise FPSResponseError(response.status, response.reason, body)
- def get_token_by_caller_token(self, tokenId):
- """
- Returns details about the token specified by 'callerReference'.
- """
- params ={}
- params['TokenId'] = tokenId
-
- response = self.make_request("GetTokenByCaller", params)
- body = response.read()
- if(response.status == 200):
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
- else:
- raise FPSResponseError(response.status, response.reason, body)
-
- def verify_signature(self, end_point_url, http_parameters):
- params = dict(
- UrlEndPoint = end_point_url,
- HttpParameters = http_parameters,
- )
- response = self.make_request("VerifySignature", params)
- body = response.read()
- if(response.status != 200):
- raise FPSResponseError(response.status, response.reason, body)
- rs = ResultSet()
- h = handler.XmlHandler(rs, self)
- xml.sax.parseString(body, h)
- return rs
« no previous file with comments | « third_party/gsutil/20110627/boto/boto/fps/__init__.py ('k') | third_party/gsutil/20110627/boto/boto/fps/test/__init__.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698