aws-sdk 0.12.0 → 0.12.1
raw patch · 8 files changed
+29/−24 lines, 8 files
Files
- AWS/Class.hs +10/−4
- AWS/EC2/Metadata.hs +2/−2
- AWS/EC2/Query.hs +3/−3
- AWS/ELB/LoadBalancer.hs +2/−3
- AWS/Lib/Parser.hs +0/−1
- AWS/Lib/Query.hs +8/−7
- AWS/RDS/Internal.hs +3/−3
- aws-sdk.cabal +1/−1
AWS/Class.hs view
@@ -14,6 +14,7 @@ , runAWSwithManager , AWSException(..) , AWSContext(..)+ , AWSSettings(..) , getLastRequestId -- * re-export , monadThrow@@ -80,15 +81,20 @@ , lastRequestId :: Maybe Text } +data AWSSettings = AWSSettings+ { credential :: Credential+ , httpTimeout :: Maybe Int+ }+ newtype AWS context m a = AWST- { runAWST :: StateT context (ReaderT Credential m) a+ { runAWST :: StateT context (ReaderT AWSSettings m) a } deriving ( Monad , Applicative , Functor , MonadIO , MonadState context- , MonadReader Credential+ , MonadReader AWSSettings , MonadBase base ) @@ -119,7 +125,7 @@ -> AWS c m a -> m a runAWS ctx cred app = do- mgr <- liftIO $ HTTP.newManager HTTP.def+ mgr <- liftIO $ HTTP.newManager HTTP.conduitManagerSettings runAWSwithManager mgr ctx cred app runAWSwithManager :: Monad m@@ -131,7 +137,7 @@ runAWSwithManager mgr ctx cred app = R.runReaderT (S.evalStateT (runAWST app) $ ctx mgr)- cred+ $ AWSSettings cred (Just 60000000) getLastRequestId :: (Monad m, Functor m) => AWS AWSContext m (Maybe Text) getLastRequestId = lastRequestId <$> S.get
AWS/EC2/Metadata.hs view
@@ -55,7 +55,7 @@ query :: String -> IO [ByteString] query path = runResourceT $ do req <- liftIO $ parseUrl (base <> path)- mgr <- liftIO $ newManager def+ mgr <- liftIO $ newManager conduitManagerSettings res <- http req mgr responseBody res $$+- CB.lines =$ CL.consume @@ -155,7 +155,7 @@ queryRaw :: String -> IO ByteString queryRaw path = runResourceT $ do req <- liftIO $ parseUrl (base <> path)- mgr <- liftIO $ newManager def+ mgr <- liftIO $ newManager conduitManagerSettings res <- http req mgr mconcat <$> (responseBody res $$+- CL.consume)
AWS/EC2/Query.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}+{-# LANGUAGE FlexibleContexts, RankNTypes #-} module AWS.EC2.Query ( ec2Query@@ -75,10 +75,10 @@ -> Conduit Event m o -> EC2 m (ResumableSource m o) ec2QuerySource' action params token cond = do- cred <- Reader.ask+ settings <- Reader.ask ctx <- State.get (src1, rid) <- lift $ E.handle exceptionTransform $ do- response <- requestQuery cred ctx action params' apiVersion sinkError+ response <- requestQuery settings ctx action params' apiVersion sinkError res <- response $=+ XmlP.parseBytes XmlP.def res $$++ sinkRequestId State.put ctx{lastRequestId = rid}
AWS/ELB/LoadBalancer.hs view
@@ -27,7 +27,6 @@ ) where import Data.Text (Text)-import Data.IP (IPv4, AddrRange) import Data.Conduit import Control.Applicative import Data.XML.Types (Event(..))@@ -125,7 +124,7 @@ -> [Text] -- ^ AvailabilityZones -> Maybe Text -- ^ Scheme -> [Text] -- ^ SecurityGroups- -> [AddrRange IPv4] -- ^ Subnets+ -> [Text] -- ^ Subnets -> ELB m Text -- return DNSName createLoadBalancer name listeners zones scheme groups subnets = elbQuery "CreateLoadBalancer" params $ getT "DNSName"@@ -136,7 +135,7 @@ , "AvailabilityZones.member" |.#= zones , "Scheme" |=? scheme , "SecurityGroups.member" |.#= groups- , "Subnets.member" |.#= map toText subnets+ , "Subnets.member" |.#= subnets ] listeners' = flip map listeners $ \(Listener prot lbport iprot cert iport) ->
AWS/Lib/Parser.hs view
@@ -24,7 +24,6 @@ import Data.ByteString (ByteString) import Data.Char (isSpace) import Data.Conduit-import Data.Conduit.Internal (ConduitM) import qualified Data.Conduit.List as CL import qualified Data.Text as T import qualified Text.XML.Stream.Parse as XML
AWS/Lib/Query.hs view
@@ -41,7 +41,7 @@ import Data.Map (Map) import Network.HTTP.Conduit (HttpException) import qualified Network.HTTP.Types as H-import Network.TLS (HandshakeFailed)+import Network.TLS (TLSException) import qualified Data.Digest.Pure.SHA as SHA import qualified Data.ByteString.Base64 as BASE import Control.Monad.IO.Class (MonadIO, liftIO)@@ -220,22 +220,23 @@ requestQuery :: (MonadResource m, MonadBaseControl IO m)- => Credential+ => AWSSettings -> AWSContext -> ByteString -> [QueryParam] -> ByteString -> (ByteString -> Int -> Consumer Event m a) -> m (ResumableSource m ByteString)-requestQuery cred ctx action params ver errSink = do+requestQuery settings ctx action params ver errSink = do let mgr = manager ctx let ep = endpoint ctx+ let cred = credential settings time <- liftIO getCurrentTime let url = mkUrl ep cred time action params ver request <- liftIO $ HTTP.parseUrl (BSC.unpack url) let req = request { HTTP.checkStatus = checkStatus'- , HTTP.responseTimeout = Just 30000000+ , HTTP.responseTimeout = httpTimeout settings } response <- HTTP.http req mgr let body = HTTP.responseBody response@@ -282,9 +283,9 @@ -> AWS AWSContext m a commonQuery apiVersion action params sink = do ctx <- State.get- cred <- Reader.ask+ settings <- Reader.ask (res, rid) <- lift $ E.handle exceptionTransform $ do- rs <- requestQuery cred ctx action params apiVersion sinkError+ rs <- requestQuery settings ctx action params apiVersion sinkError rs $$+- XmlP.parseBytes XmlP.def =$ sinkResponse (bsToText action) sink State.put ctx { lastRequestId = Just rid }@@ -304,5 +305,5 @@ awse = fromException e :: Maybe AWSException xmle = fromException e :: Maybe XmlException httpe = fromException e :: Maybe HttpException- tlse = fromException e :: Maybe HandshakeFailed+ tlse = fromException e :: Maybe TLSException ioe = fromException e :: Maybe IOException
AWS/RDS/Internal.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE FlexibleContexts, RankNTypes, CPP #-}+{-# LANGUAGE FlexibleContexts, RankNTypes #-} module AWS.RDS.Internal ( apiVersion@@ -52,8 +52,8 @@ -> RDS m () rdsQueryOnlyMetadata action params = do ctx <- State.get- cred <- Reader.ask- rs <- lift $ requestQuery cred ctx action params apiVersion sinkError+ settings <- Reader.ask+ rs <- lift $ requestQuery settings ctx action params apiVersion sinkError rid <- lift $ rs $$+- XmlP.parseBytes XmlP.def =$ sinkResponseOnlyMetadata (bsToText action)
aws-sdk.cabal view
@@ -1,5 +1,5 @@ name: aws-sdk-version: 0.12.0+version: 0.12.1 synopsis: AWS SDK for Haskell description: AWS (Amazon Web Services) sdk for Haskell. .