1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- package timeout
- import (
- "os"
- "strconv"
- "time"
- )
- var (
- // defaultTimeout is the timeout for most operations that is not overridden.
- defaultTimeout = 4 * time.Minute
- // defaultTimeoutTestdRetry is the retry loop timeout for testd to respond
- // for a disk to come online in LCOW.
- defaultTimeoutTestdRetry = 5 * time.Second
- )
- // External variables for HCSShim consumers to use.
- var (
- // SystemCreate is the timeout for creating a compute system
- SystemCreate time.Duration = defaultTimeout
- // SystemStart is the timeout for starting a compute system
- SystemStart time.Duration = defaultTimeout
- // SystemPause is the timeout for pausing a compute system
- SystemPause time.Duration = defaultTimeout
- // SystemResume is the timeout for resuming a compute system
- SystemResume time.Duration = defaultTimeout
- // SyscallWatcher is the timeout before warning of a potential stuck platform syscall.
- SyscallWatcher time.Duration = defaultTimeout
- // Tar2VHD is the timeout for the tar2vhd operation to complete
- Tar2VHD time.Duration = defaultTimeout
- // ExternalCommandToStart is the timeout for external commands to start
- ExternalCommandToStart = defaultTimeout
- // ExternalCommandToComplete is the timeout for external commands to complete.
- // Generally this means copying data from their stdio pipes.
- ExternalCommandToComplete = defaultTimeout
- // TestDRetryLoop is the timeout for testd retry loop when onlining a SCSI disk in LCOW
- TestDRetryLoop = defaultTimeoutTestdRetry
- )
- func init() {
- SystemCreate = durationFromEnvironment("HCSSHIM_TIMEOUT_SYSTEMCREATE", SystemCreate)
- SystemStart = durationFromEnvironment("HCSSHIM_TIMEOUT_SYSTEMSTART", SystemStart)
- SystemPause = durationFromEnvironment("HCSSHIM_TIMEOUT_SYSTEMPAUSE", SystemPause)
- SystemResume = durationFromEnvironment("HCSSHIM_TIMEOUT_SYSTEMRESUME", SystemResume)
- SyscallWatcher = durationFromEnvironment("HCSSHIM_TIMEOUT_SYSCALLWATCHER", SyscallWatcher)
- Tar2VHD = durationFromEnvironment("HCSSHIM_TIMEOUT_TAR2VHD", Tar2VHD)
- ExternalCommandToStart = durationFromEnvironment("HCSSHIM_TIMEOUT_EXTERNALCOMMANDSTART", ExternalCommandToStart)
- ExternalCommandToComplete = durationFromEnvironment("HCSSHIM_TIMEOUT_EXTERNALCOMMANDCOMPLETE", ExternalCommandToComplete)
- TestDRetryLoop = durationFromEnvironment("HCSSHIM_TIMEOUT_TESTDRETRYLOOP", TestDRetryLoop)
- }
- func durationFromEnvironment(env string, defaultValue time.Duration) time.Duration {
- envTimeout := os.Getenv(env)
- if len(envTimeout) > 0 {
- e, err := strconv.Atoi(envTimeout)
- if err == nil && e > 0 {
- return time.Second * time.Duration(e)
- }
- }
- return defaultValue
- }
|