Skip to content

Commit 47d88d7

Browse files
committed
Fix a bunch of warnings
1 parent 2b0ba85 commit 47d88d7

File tree

7 files changed

+30
-16
lines changed

7 files changed

+30
-16
lines changed

kubernetes-client/kubernetes-client.cabal

+1-1
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ test-suite spec
199199
, tls >=1.4.1
200200
, typed-process >=0.2
201201
, uri-bytestring >=0.3
202-
, yaml
202+
, yaml >=0.8.4
203203
default-language: Haskell2010
204204
if impl(ghc >= 9.6)
205205
build-depends:

kubernetes-client/package.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ tests:
2626
- hspec
2727
- hspec-attoparsec
2828
- hspec-megaparsec
29-
- yaml
29+
- yaml >= 0.8.4
3030
- file-embed
3131
example:
3232
main: App.hs

kubernetes-client/src/Kubernetes/Client/Auth/GCP.hs

+1-2
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,7 @@ data GCPGetTokenException = GCPCmdProducedInvalidJSON String
7272
instance Exception GCPGetTokenException
7373

7474
getToken :: GCPAuth -> IO (Either GCPGetTokenException Text)
75-
getToken auth@(GCPAuth{..}) = getCurrentToken auth
76-
>>= maybe (fetchToken auth) (return . Right)
75+
getToken auth@(GCPAuth{}) = getCurrentToken auth >>= maybe (fetchToken auth) (return . Right)
7776

7877
getCurrentToken :: GCPAuth -> IO (Maybe Text)
7978
getCurrentToken (GCPAuth{..}) = do

kubernetes-client/src/Kubernetes/Client/Internal/TLSUtils.hs

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,10 @@ import Data.ByteString (ByteString)
77
import Data.Default.Class (def)
88
import Data.Either (rights)
99
import Data.Either.Combinators (mapLeft)
10-
import Data.Function ((&))
1110
import Data.PEM (pemContent, pemParseBS)
1211
import Data.X509 (SignedCertificate, decodeSignedCertificate)
1312
import Data.X509.CertificateStore (CertificateStore, makeCertificateStore)
14-
import Lens.Micro
13+
import Lens.Micro ((&), (.~), Lens', lens, set)
1514
import Network.TLS (Credential, credentialLoadX509FromMemory, defaultParamsClient)
1615
import System.X509 (getSystemCertificateStore)
1716

kubernetes-client/src/Kubernetes/Client/KubeConfig.hs

+6-2
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,12 @@ This is a mostly straightforward translation into Haskell, with 'FromJSON' and '
2020
module Kubernetes.Client.KubeConfig where
2121

2222
import Data.Aeson (FromJSON (..), Options, ToJSON (..),
23-
Value (..), camelTo2, defaultOptions,
23+
camelTo2, defaultOptions,
2424
fieldLabelModifier, genericParseJSON,
2525
genericToJSON, object, omitNothingFields,
2626
withObject, (.:), (.=))
2727
import qualified Data.Map as Map
2828
import Data.Proxy
29-
import Data.Semigroup ((<>))
3029
import Data.Text (Text)
3130
import qualified Data.Text as T
3231
import Data.Typeable
@@ -37,6 +36,11 @@ import GHC.TypeLits
3736
import qualified Data.Aeson.Key as A
3837
#endif
3938

39+
#if !MIN_VERSION_base(4,11,0)
40+
import Data.Monoid ((<>))
41+
#endif
42+
43+
4044
camelToWithOverrides :: Char -> Map.Map String String -> Options
4145
camelToWithOverrides c overrides = defaultOptions
4246
{ fieldLabelModifier = modifier

kubernetes-client/src/Kubernetes/Client/Watch.hs

+15-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
{-# LANGUAGE CPP #-}
12
{-# LANGUAGE FlexibleContexts #-}
23
{-# LANGUAGE OverloadedStrings #-}
4+
35
module Kubernetes.Client.Watch
46
( WatchEvent
57
, eventType
@@ -11,14 +13,22 @@ import Control.Monad
1113
import Control.Monad.Trans (lift)
1214
import Data.Aeson
1315
import qualified Data.ByteString as B
14-
import qualified Data.ByteString.Streaming.Char8 as Q
1516
import qualified Data.Text as T
16-
import Kubernetes.OpenAPI.Core
1717
import Kubernetes.OpenAPI.Client
18+
import Kubernetes.OpenAPI.Core
1819
import Kubernetes.OpenAPI.MimeTypes
1920
import Kubernetes.OpenAPI.Model (Watch(..))
2021
import Network.HTTP.Client
2122

23+
#if MIN_VERSION_streaming_bytestring(0,1,7)
24+
import qualified Streaming.ByteString.Char8 as Q
25+
type ByteStream = Q.ByteStream
26+
#else
27+
import qualified Data.ByteString.Streaming.Char8 as Q
28+
type ByteStream = Q.ByteString
29+
#endif
30+
31+
2232
data WatchEvent a = WatchEvent
2333
{ _eventType :: T.Text
2434
, _eventObject :: a
@@ -68,7 +78,7 @@ dispatchWatch ::
6878
Manager
6979
-> KubernetesClientConfig
7080
-> KubernetesRequest req contentType resp accept
71-
-> (Q.ByteString IO () -> IO a)
81+
-> (ByteStream IO () -> IO a)
7282
-> IO a
7383
dispatchWatch manager config request apply = do
7484
let watchRequest = applyOptionalParam request (Watch True)
@@ -78,14 +88,14 @@ dispatchWatch manager config request apply = do
7888
withHTTP ::
7989
Request
8090
-> Manager
81-
-> (Response (Q.ByteString IO ()) -> IO a)
91+
-> (Response (ByteStream IO ()) -> IO a)
8292
-> IO a
8393
withHTTP request manager f = withResponse request manager f'
8494
where
8595
f' resp = do
8696
let p = (from . brRead . responseBody) resp
8797
f (resp {responseBody = p})
88-
from :: IO B.ByteString -> Q.ByteString IO ()
98+
from :: IO B.ByteString -> ByteStream IO ()
8999
from io = go
90100
where
91101
go = do

kubernetes-client/test/Kubernetes/Client/KubeConfigSpec.hs

+5-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ module Kubernetes.Client.KubeConfigSpec where
44

55
import Data.Aeson (decode, encode, parseJSON,
66
toJSON)
7-
import Data.Maybe (fromJust)
8-
import Data.Yaml (decodeFile)
7+
import Data.Either (fromRight)
8+
import Data.Yaml (decodeFileEither)
99
import Kubernetes.Client.KubeConfig (AuthInfo (..), Cluster (..),
1010
Config, Context (..),
1111
getAuthInfo, getCluster,
@@ -15,11 +15,13 @@ import Test.Hspec
1515
spec :: Spec
1616
spec = do
1717
let getConfig :: IO Config
18-
getConfig = fromJust <$> decodeFile "test/testdata/kubeconfig.yaml"
18+
getConfig = fromRight (error "Couldn't decode config") <$> decodeFileEither "test/testdata/kubeconfig.yaml"
19+
1920
describe "FromJSON and ToJSON instances" $ do
2021
it "roundtrips successfully" $ do
2122
config <- getConfig
2223
decode (encode (toJSON config)) `shouldBe` Just config
24+
2325
describe "getContext" $ do
2426
it "returns the correct context" $ do
2527
config <- getConfig

0 commit comments

Comments
 (0)