influxdb 0.5.1 → 0.6.0
raw patch · 6 files changed
+75/−27 lines, 6 filesdep +network-uridep −lifted-basedep ~http-clientdep ~mtldep ~retryPVP ok
version bump matches the API change (PVP)
Dependencies added: network-uri
Dependencies removed: lifted-base
Dependency ranges changed: http-client, mtl, retry, tasty-hunit
API changes (from Hackage documentation)
+ Database.InfluxDB: newServerPoolWithRetryPolicy :: RetryPolicy -> Server -> [Server] -> IO (IORef ServerPool)
+ Database.InfluxDB.Types: newServerPoolWithRetryPolicy :: RetryPolicy -> Server -> [Server] -> IO (IORef ServerPool)
+ Database.InfluxDB.Types: serverRetryPolicy :: ServerPool -> RetryPolicy
- Database.InfluxDB: newServerPoolWithRetrySettings :: RetrySettings -> Server -> [Server] -> IO (IORef ServerPool)
+ Database.InfluxDB: newServerPoolWithRetrySettings :: RetryPolicy -> Server -> [Server] -> IO (IORef ServerPool)
- Database.InfluxDB.Types: newServerPoolWithRetrySettings :: RetrySettings -> Server -> [Server] -> IO (IORef ServerPool)
+ Database.InfluxDB.Types: newServerPoolWithRetrySettings :: RetryPolicy -> Server -> [Server] -> IO (IORef ServerPool)
- Database.InfluxDB.Types: serverRetrySettings :: ServerPool -> RetrySettings
+ Database.InfluxDB.Types: serverRetrySettings :: ServerPool -> RetryPolicy
Files
- CHANGELOG.md +7/−0
- influxdb.cabal +22/−14
- src/Database/InfluxDB.hs +2/−1
- src/Database/InfluxDB/Http.hs +7/−3
- src/Database/InfluxDB/Types.hs +37/−8
- tests/test-suite.hs +0/−1
CHANGELOG.md view
@@ -1,3 +1,10 @@+## v0.6.0 - 2014-08-19++* Support for retry-0.5 (#16)+ * `newServerPoolWithRetrySettings` has been renamed to `newServerPoolWithRetryPolicy`+ * `serverRetrySettings` field in `ServerPool` has been renamed to `serverRetryPolicy`+* Support for network-uri (#17)+ ## v0.5.1 - 2014-07-18 * Export `InfluxException` from `Database.InfluxDB`
influxdb.cabal view
@@ -1,5 +1,5 @@ name: influxdb-version: 0.5.1+version: 0.6.0 synopsis: Haskell client library for InfluxDB description: Haskell client library for InfluxDB homepage: https://github.com/maoe/influxdb-haskell@@ -26,11 +26,15 @@ default: True manual: False -flag retry-040- description: Use retry >= 0.4, which depends on exceptions+flag retry-050+ description: Use retry == 0.5.* default: True manual: False +flag network-uri+ description: Get Network.URI from the network-uri package+ default: True+ library exposed-modules: Database.InfluxDB@@ -68,13 +72,12 @@ , containers , data-default-class , dlist- , http-client- , mtl- , network+ , exceptions >= 0.5 && < 0.7+ , http-client < 0.4+ , mtl < 2.3 , tagged , template-haskell , text- , time , vector if flag(aeson-070)@@ -85,15 +88,20 @@ build-depends: aeson >= 0.6.1.0 && < 0.7.0 - if flag(retry-040)+ if flag(retry-050) build-depends:- exceptions >= 0.5 && < 0.7- , retry >= 0.4+ retry == 0.5.* else build-depends:- lifted-base- , retry < 0.4+ retry == 0.4.* + if flag(network-uri)+ build-depends:+ network-uri >= 2.6+ else+ build-depends:+ network < 2.6+ hs-source-dirs: src default-language: Haskell2010 @@ -107,7 +115,7 @@ , influxdb , mtl , tasty- , tasty-hunit+ , tasty-hunit == 0.9.* , tasty-quickcheck , tasty-th , text@@ -141,5 +149,5 @@ source-repository this type: git- tag: v0.5.1+ tag: v0.6.0 location: https://github.com/maoe/influxdb-haskell.git
src/Database/InfluxDB.hs view
@@ -23,7 +23,8 @@ , Credentials(..), rootCreds , TimePrecision(..) , Server(..), localServer- , ServerPool, newServerPool, newServerPoolWithRetrySettings+ , ServerPool, newServerPool+ , newServerPoolWithRetryPolicy, newServerPoolWithRetrySettings , Database(..) , User(..) , Admin(..)
src/Database/InfluxDB/Http.hs view
@@ -676,8 +676,8 @@ -> (HC.Request -> IO a) -> IO a withPool pool request f = do- retrySettings <- serverRetrySettings <$> readIORef pool- recovering retrySettings handlers $ do+ retryPolicy <- serverRetryPolicy <$> readIORef pool+ recovering retryPolicy handlers $ do server <- activeServer pool f $ makeRequest server where@@ -687,7 +687,11 @@ , HC.secure = serverSsl } handlers =- [ Handler $ \e -> case e of+ [+#if MIN_VERSION_retry(0, 5, 0)+ const $+#endif+ Handler $ \e -> case e of HC.InternalIOException _ -> do failover pool return True
src/Database/InfluxDB/Types.hs view
@@ -25,8 +25,10 @@ -- * Server pool , ServerPool+ , serverRetryPolicy , serverRetrySettings , newServerPool+ , newServerPoolWithRetryPolicy , newServerPoolWithRetrySettings , activeServer , failover@@ -48,7 +50,6 @@ import Data.Vector (Vector) import qualified Data.Sequence as Seq -import Control.Retry (RetrySettings(..), limitedRetries) import Data.Aeson ((.=), (.:)) import Data.Aeson.TH import qualified Data.Aeson as A@@ -61,6 +62,14 @@ import Data.Attoparsec.Number #endif +#if MIN_VERSION_retry(0, 5, 0)+import Data.Monoid ((<>))++import Control.Retry (RetryPolicy(..), limitRetries, exponentialBackoff)+#else+import Control.Retry (RetrySettings(..), limitedRetries)+#endif+ ----------------------------------------------------------- -- Compatibility for older GHC @@ -197,9 +206,17 @@ -- ^ Current active server , serverBackup :: !(Seq Server) -- ^ The rest of the servers in the pool.- , serverRetrySettings :: !RetrySettings+ , serverRetryPolicy :: !RetryPolicy } +{-# DEPRECATED serverRetrySettings "Use serverRetryPolicy instead" #-}+serverRetrySettings :: ServerPool -> RetryPolicy+serverRetrySettings = serverRetryPolicy++#if !MIN_VERSION_retry(0, 5, 0)+type RetryPolicy = RetrySettings+#endif+ newtype Database = Database { databaseName :: Text } deriving Show@@ -231,22 +248,34 @@ -- | Create a non-empty server pool. You must specify at least one server -- location to create a pool. newServerPool :: Server -> [Server] -> IO (IORef ServerPool)-newServerPool = newServerPoolWithRetrySettings defaultRetrySettings+newServerPool = newServerPoolWithRetrySettings defaultRetryPolicy where- defaultRetrySettings = RetrySettings+#if MIN_VERSION_retry(0, 5, 0)+ defaultRetryPolicy =+ limitRetries 5 <>+ exponentialBackoff 50+#else+ defaultRetryPolicy = RetrySettings { numRetries = limitedRetries 5 , backoff = True , baseDelay = 50 }+#endif -newServerPoolWithRetrySettings- :: RetrySettings -> Server -> [Server] -> IO (IORef ServerPool)-newServerPoolWithRetrySettings retrySettings active backups =+newServerPoolWithRetryPolicy+ :: RetryPolicy -> Server -> [Server] -> IO (IORef ServerPool)+newServerPoolWithRetryPolicy retryPolicy active backups = newIORef ServerPool { serverActive = active , serverBackup = Seq.fromList backups- , serverRetrySettings = retrySettings+ , serverRetryPolicy = retryPolicy }++{-# DEPRECATED newServerPoolWithRetrySettings+ "Use newServerPoolWithRetryPolicy instead" #-}+newServerPoolWithRetrySettings+ :: RetryPolicy -> Server -> [Server] -> IO (IORef ServerPool)+newServerPoolWithRetrySettings = newServerPoolWithRetryPolicy -- | Get a server from the pool. activeServer :: IORef ServerPool -> IO Server
tests/test-suite.hs view
@@ -14,7 +14,6 @@ import qualified Data.Text.Lazy as TL import qualified Data.Vector as V -import Test.HUnit.Lang (HUnitFailure(..)) import Test.Tasty.HUnit import Test.Tasty.TH import Test.Tasty.QuickCheck hiding (reason)