on develop help sign in
Updating to use http-client >= 0.5 and http-conduit >= 2.2
74fb2abBrendan Hay
core/gogol-core.cabal+1−1
@@ -55,7 +55,7 @@ library
55 , exceptions >= 0.6
55 , exceptions >= 0.6
56 , hashable >= 1.2
56 , hashable >= 1.2
57 , http-api-data >= 0.2
57 , http-api-data >= 0.2
58− , http-client >= 0.4.4
58+ , http-client >= 0.5 && < 1
59 , http-media >= 0.6
59 , http-media >= 0.6
60 , http-types >= 0.8.6
60 , http-types >= 0.8.6
61 , lens >= 4.4
61 , lens >= 4.4
gogol/gogol.cabal+2−3
@@ -63,13 +63,12 @@ library
63 , conduit >= 1.1
63 , conduit >= 1.1
64 , conduit-extra >= 1.1
64 , conduit-extra >= 1.1
65 , cryptonite >= 0.6
65 , cryptonite >= 0.6
66− , data-default-class >= 0.0.1
67 , directory >= 1.2
66 , directory >= 1.2
68 , exceptions >= 0.6
67 , exceptions >= 0.6
69 , filepath >= 1.2
68 , filepath >= 1.2
70 , gogol-core == 0.1.0.*
69 , gogol-core == 0.1.0.*
71− , http-client >= 0.4.4
70+ , http-client >= 0.5 && < 1
72− , http-conduit >= 2.1.4
71+ , http-conduit >= 2.2 && < 3
73 , http-media >= 0.6
72 , http-media >= 0.6
74 , http-types >= 0.8.6
73 , http-types >= 0.8.6
75 , lens >= 4.4
74 , lens >= 4.4
gogol/src/Network/Google/Compute/Metadata.hs+19−14
@@ -40,19 +40,20 @@ module Network.Google.Compute.Metadata
40 , getMetadata
40 , getMetadata
41 ) where
41 ) where
42
42
43+import Control.Exception (throwIO)
43import Control.Monad.Catch
44import Control.Monad.Catch
44import Control.Monad.IO.Class (MonadIO (..))
45import Control.Monad.IO.Class (MonadIO (..))
45import Data.Aeson (eitherDecode')
46import Data.Aeson (eitherDecode')
46import Data.ByteString (ByteString)
47import Data.ByteString (ByteString)
47import qualified Data.ByteString.Lazy as LBS
48import qualified Data.ByteString.Lazy as LBS
48import Data.Char (toLower)
49import Data.Char (toLower)
49−import Data.Default.Class (def)
50import qualified Data.Text.Encoding as Text
50import qualified Data.Text.Encoding as Text
51import qualified Data.Text.Lazy as LText
51import qualified Data.Text.Lazy as LText
52import qualified Data.Text.Lazy.Encoding as LText
52import qualified Data.Text.Lazy.Encoding as LText
53import Network.Google.Prelude (Text, (<>))
53import Network.Google.Prelude (Text, (<>))
54−import Network.HTTP.Conduit (HttpException (..), Manager)
54+import Network.HTTP.Client (HttpException (..),
55+ HttpExceptionContent (..), Manager)
55−import qualified Network.HTTP.Conduit as Client
56+import qualified Network.HTTP.Client as Client
56import Network.HTTP.Types (HeaderName)
57import Network.HTTP.Types (HeaderName)
57import System.Environment (lookupEnv)
58import System.Environment (lookupEnv)
58
59
@@ -91,7 +92,7 @@ isGCE m = liftIO $ do
91 failure = const (pure False)
92 failure = const (pure False)
92
93
93 rq = metadataRequest
94 rq = metadataRequest
94− { Client.responseTimeout = Just 1000000
95+ { Client.responseTimeout = Client.responseTimeoutMicro 1000000
95 }
96 }
96
97
97-- | A directory of custom metadata values that have been set for this project.
98-- | A directory of custom metadata values that have been set for this project.
@@ -223,20 +224,24 @@ getMetadata :: MonadIO m
223 -> [Int] -- ^ Acceptable status code responses.
224 -> [Int] -- ^ Acceptable status code responses.
224 -> Manager
225 -> Manager
225 -> m (Client.Response LBS.ByteString)
226 -> m (Client.Response LBS.ByteString)
226−getMetadata path ss m =
227+getMetadata path statuses m =
227− liftIO . flip Client.httpLbs m $ metadataRequest
228+ liftIO . flip Client.httpLbs m $
229+ metadataRequest
228− { Client.path = "/computeMetadata/v1/" <> path
230+ { Client.path = "/computeMetadata/v1/" <> path
229− , Client.checkStatus = \s hs cj ->
231+ , Client.checkResponse = \rq rs ->
230− let c = fromEnum s
232+ let c = fromEnum (Client.responseStatus rs)
231− in if 200 <= c && c < 300 && notElem c ss
233+ in if 200 <= c && c < 300 && notElem c statuses
232− then Nothing
234+ then return ()
235+ else do
236+ bs <- Client.brReadSome (Client.responseBody rs) 4096
237+ throwIO . HttpExceptionRequest rq $
233− else Just . toException $ StatusCodeException s hs cj
238+ StatusCodeException (() <$ rs) (LBS.toStrict bs)
234− }
239+ }
235
240
236-- | A default @http-client@ 'Client.Request' with the host, port, and headers
241-- | A default @http-client@ 'Client.Request' with the host, port, and headers
237-- set appropriately for @metadata.google.internal@ use.
242-- set appropriately for @metadata.google.internal@ use.
238metadataRequest :: Client.Request
243metadataRequest :: Client.Request
239−metadataRequest = def
244+metadataRequest = Client.defaultRequest
240 { Client.host = "metadata.google.internal"
245 { Client.host = "metadata.google.internal"
241 , Client.port = 80
246 , Client.port = 80
242 , Client.secure = False
247 , Client.secure = False
gogol/src/Network/Google/Internal/Auth.hs+1−3
@@ -32,7 +32,6 @@ import Data.ByteArray.Encoding
32import Data.ByteString (ByteString)
32import Data.ByteString (ByteString)
33import Data.ByteString.Builder ()
33import Data.ByteString.Builder ()
34import qualified Data.ByteString.Lazy as LBS
34import qualified Data.ByteString.Lazy as LBS
35−import Data.Default.Class (def)
36import Data.String (IsString)
35import Data.String (IsString)
37import qualified Data.Text as Text
36import qualified Data.Text as Text
38import qualified Data.Text.Encoding as Text
37import qualified Data.Text.Encoding as Text
@@ -250,11 +249,10 @@ accountsURL :: Text
250accountsURL = "https://accounts.google.com/o/oauth2/v2/auth"
249accountsURL = "https://accounts.google.com/o/oauth2/v2/auth"
251
250
252accountsRequest :: Client.Request
251accountsRequest :: Client.Request
253−accountsRequest = def
252+accountsRequest = Client.defaultRequest
254 { Client.host = "accounts.google.com"
253 { Client.host = "accounts.google.com"
255 , Client.port = 443
254 , Client.port = 443
256 , Client.secure = True
255 , Client.secure = True
257− , Client.checkStatus = \_ _ _ -> Nothing
258 , Client.method = "POST"
256 , Client.method = "POST"
259 , Client.path = "/o/oauth2/v2/auth"
257 , Client.path = "/o/oauth2/v2/auth"
260 , Client.requestHeaders =
258 , Client.requestHeaders =
gogol/src/Network/Google/Internal/HTTP.hs+5−4
@@ -22,7 +22,6 @@ import Control.Monad.Trans.Resource (MonadResource (..))
22import qualified Data.ByteString.Lazy as LBS
22import qualified Data.ByteString.Lazy as LBS
23import Data.Conduit (($$+-))
23import Data.Conduit (($$+-))
24import qualified Data.Conduit.List as Conduit
24import qualified Data.Conduit.List as Conduit
25−import Data.Default.Class (Default (..))
26import Data.Monoid (Dual (..), Endo (..), (<>))
25import Data.Monoid (Dual (..), Endo (..), (<>))
27import qualified Data.Text.Encoding as Text
26import qualified Data.Text.Encoding as Text
28import qualified Data.Text.Lazy as LText
27import qualified Data.Text.Lazy as LText
@@ -81,11 +80,10 @@ perform Env{..} x = catches go handlers
81 , _serializeBody = Just bs
80 , _serializeBody = Just bs
82 }
81 }
83
82
84− request ct b = def
83+ request ct b = Client.defaultRequest
85 { Client.host = _svcHost
84 { Client.host = _svcHost
86 , Client.port = _svcPort
85 , Client.port = _svcPort
87 , Client.secure = _svcSecure
86 , Client.secure = _svcSecure
88− , Client.checkStatus = \_ _ _ -> Nothing
89 , Client.responseTimeout = timeout
87 , Client.responseTimeout = timeout
90 , Client.method = _cliMethod
88 , Client.method = _cliMethod
91 , Client.path = path
89 , Client.path = path
@@ -113,7 +111,10 @@ perform Env{..} x = catches go handlers
113 , _serviceBody = Just b
111 , _serviceBody = Just b
114 }
112 }
115
113
114+ timeout =
115+ maybe Client.responseTimeoutNone
116+ (Client.responseTimeoutMicro . microseconds)
116− timeout = microseconds <$> _svcTimeout
117+ _svcTimeout
117
118
118 handlers =
119 handlers =
119 [ Handler $ err
120 [ Handler $ err
gogol/src/Network/Google/Internal/Logger.hs+1−2
@@ -43,7 +43,6 @@ import Data.CaseInsensitive (CI)
43import qualified Data.CaseInsensitive as CI
43import qualified Data.CaseInsensitive as CI
44import Data.Int (Int16, Int8)
44import Data.Int (Int16, Int8)
45import Data.List (intersperse)
45import Data.List (intersperse)
46−import qualified Data.Text as Text
47import qualified Data.Text.Encoding as Text
46import qualified Data.Text.Encoding as Text
48import qualified Data.Text.Lazy as LText
47import qualified Data.Text.Lazy as LText
49import qualified Data.Text.Lazy.Encoding as LText
48import qualified Data.Text.Lazy.Encoding as LText
@@ -171,7 +170,7 @@ instance ToLog Request where
171 , " host = " <> build (host x) <> ":" <> build (port x)
170 , " host = " <> build (host x) <> ":" <> build (port x)
172 , " secure = " <> build (secure x)
171 , " secure = " <> build (secure x)
173 , " method = " <> build (method x)
172 , " method = " <> build (method x)
174− , " timeout = " <> build (responseTimeout x)
173+ , " timeout = " <> build (show (responseTimeout x))
175 , " redirects = " <> build (redirectCount x)
174 , " redirects = " <> build (redirectCount x)
176 , " path = " <> build (path x)
175 , " path = " <> build (path x)
177 , " query = " <> build (queryString x)
176 , " query = " <> build (queryString x)
gogol/src/Network/Google/Internal/Multipart.hs−1
@@ -14,7 +14,6 @@ import Control.Monad.IO.Class (MonadIO (..))
14import Data.ByteString (ByteString)
14import Data.ByteString (ByteString)
15import qualified Data.ByteString as BS
15import qualified Data.ByteString as BS
16import Data.ByteString.Builder.Extra (byteStringCopy)
16import Data.ByteString.Builder.Extra (byteStringCopy)
17−import qualified Data.CaseInsensitive as CI
18import Data.Monoid ((<>))
17import Data.Monoid ((<>))
19import Network.Google.Types (Body (..))
18import Network.Google.Types (Body (..))
20import Network.HTTP.Client
19import Network.HTTP.Client
script/travis-matrix+1−1
@@ -43,7 +43,7 @@ ghc_710=( 7.10.3 )
43ghc_801=( 8.0.1 )
43ghc_801=( 8.0.1 )
44ghc_all=( 8.0.1 7.10.3 )
44ghc_all=( 8.0.1 7.10.3 )
45
45
46−matrix "Documentation" ghc_710[@] docs[@]
46+matrix "Documentation" ghc_801[@] docs[@]
47matrix "Core" ghc_all[@] core[@]
47matrix "Core" ghc_all[@] core[@]
48matrix "Priority" ghc_801[@] priority[@]
48matrix "Priority" ghc_801[@] priority[@]
49matrix "Remainder" ghc_801[@] library[@]
49matrix "Remainder" ghc_801[@] library[@]
stack-7.10.3.yaml+5−2
@@ -1,7 +1,10 @@
1compiler: ghc-7.10.3
1compiler: ghc-7.10.3
2−resolver: lts-6.2
2+resolver: lts-6.9
3flags: {}
3flags: {}
4−extra-deps: []
4+extra-deps:
5+ - http-conduit-2.2.0
6+ - http-client-0.5.0.1
7+ - http-client-tls-0.3.0
5packages:
8packages:
6 - core
9 - core
7 - gogol
10 - gogol
stack-8.0.1.yaml+2−1
@@ -1,11 +1,12 @@
1compiler: ghc-8.0.1
1compiler: ghc-8.0.1
2−resolver: nightly-2016-06-20
2+resolver: nightly-2016-09-18
3flags: {}
3flags: {}
4extra-deps: []
4extra-deps: []
5packages:
5packages:
6 - core
6 - core
7 - gogol
7 - gogol
8 - examples
8 - examples
9+
9 - gogol-adexchange-buyer
10 - gogol-adexchange-buyer
10 - gogol-adexchange-seller
11 - gogol-adexchange-seller
11 - gogol-admin-datatransfer
12 - gogol-admin-datatransfer