Commit 4cd79ca8 authored by Iustin Pop's avatar Iustin Pop
Browse files

Cleanup network timeouts and htools imports



This patch removes the last HTools module imports from non-htools code
(the HTools.Types module), but it requires an associated cleanup:
using luxi-specific constants for luxi timeouts (the only effect is
that one timeout decreases from 15 to 10, the default value in the
python code), and moving of the (now) RAPI specific constants to
RAPI.hs (which allows simplifying their type/usage).
Signed-off-by: default avatarIustin Pop <iustin@google.com>
Reviewed-by: default avatarMichael Hanselmann <hansmi@google.com>
parent 2d52359b
......@@ -44,9 +44,9 @@ import System.Time
import qualified Text.JSON as J
import System.INotify
import Ganeti.BasicTypes
import Ganeti.Daemon
import Ganeti.JSON
import Ganeti.HTools.Types
import Ganeti.Objects
import Ganeti.Confd
import Ganeti.Confd.Utils
......
......@@ -66,12 +66,20 @@ getUrl _ = return $ fail "RAPI/curl backend disabled at compile time"
#else
-- | Connection timeout (when using non-file methods).
connTimeout :: Long
connTimeout = 15
-- | The default timeout for queries (when using non-file methods).
queryTimeout :: Long
queryTimeout = 60
-- | The curl options we use.
curlOpts :: [CurlOption]
curlOpts = [ CurlSSLVerifyPeer False
, CurlSSLVerifyHost 0
, CurlTimeout (fromIntegral queryTimeout)
, CurlConnectTimeout (fromIntegral connTimeout)
, CurlTimeout queryTimeout
, CurlConnectTimeout connTimeout
]
getUrl url = do
......
......@@ -72,8 +72,6 @@ module Ganeti.HTools.Types
, FailStats
, OpResult(..)
, opToResult
, connTimeout
, queryTimeout
, EvacMode(..)
, ISpec(..)
, IPolicy(..)
......@@ -319,14 +317,6 @@ unknownField = "<unknown field>"
-- | A list of command elements.
type JobSet = [MoveJob]
-- | Connection timeout (when using non-file methods).
connTimeout :: Int
connTimeout = 15
-- | The default timeout for queries (when using non-file methods).
queryTimeout :: Int
queryTimeout = 60
-- | Default max disk usage ratio.
defReservedDiskRatio :: Double
defReservedDiskRatio = 0
......
......@@ -67,8 +67,8 @@ import System.IO.Error (isEOFError)
import System.Timeout
import qualified Network.Socket as S
import Ganeti.BasicTypes
import Ganeti.JSON
import Ganeti.HTools.Types
import Ganeti.Utils
import Ganeti.Constants
......@@ -214,7 +214,7 @@ data Client = Client { socket :: Handle -- ^ The socket of the client
getClient :: String -> IO Client
getClient path = do
s <- S.socket S.AF_UNIX S.Stream S.defaultProtocol
withTimeout connTimeout "creating luxi connection" $
withTimeout luxiDefCtmo "creating luxi connection" $
S.connect s (S.SockAddrUnix path)
rf <- newIORef B.empty
h <- S.socketToHandle s ReadWriteMode
......@@ -250,7 +250,7 @@ closeClient = hClose . socket
-- | Sends a message over a luxi transport.
sendMsg :: Client -> String -> IO ()
sendMsg s buf = withTimeout queryTimeout "sending luxi message" $ do
sendMsg s buf = withTimeout luxiDefRwto "sending luxi message" $ do
let encoded = UTF8.fromString buf
handle = socket s
B.hPut handle encoded
......@@ -262,7 +262,7 @@ sendMsg s buf = withTimeout queryTimeout "sending luxi message" $ do
-- message and the leftover buffer contents.
recvUpdate :: Handle -> B.ByteString -> IO (B.ByteString, B.ByteString)
recvUpdate handle obuf = do
nbuf <- withTimeout queryTimeout "reading luxi response" $ do
nbuf <- withTimeout luxiDefRwto "reading luxi response" $ do
_ <- hWaitForInput handle (-1)
B.hGetNonBlocking handle 4096
let (msg, remaining) = B.break (eOM ==) nbuf
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment