1package custom 2 3import ( 4 "time" 5 6 "gitlab.com/gitlab-org/gitlab-runner/common" 7 "gitlab.com/gitlab-org/gitlab-runner/helpers/process" 8) 9 10type config struct { 11 *common.CustomConfig 12} 13 14func (c *config) GetConfigExecTimeout() time.Duration { 15 return getDuration(c.ConfigExecTimeout, defaultConfigExecTimeout) 16} 17 18func (c *config) GetPrepareExecTimeout() time.Duration { 19 return getDuration(c.PrepareExecTimeout, defaultPrepareExecTimeout) 20} 21 22func (c *config) GetCleanupScriptTimeout() time.Duration { 23 return getDuration(c.CleanupExecTimeout, defaultCleanupExecTimeout) 24} 25 26func (c *config) GetGracefulKillTimeout() time.Duration { 27 return getDuration(c.GracefulKillTimeout, process.GracefulTimeout) 28} 29 30func (c *config) GetForceKillTimeout() time.Duration { 31 return getDuration(c.ForceKillTimeout, process.KillTimeout) 32} 33 34func getDuration(source *int, defaultValue time.Duration) time.Duration { 35 if source == nil { 36 return defaultValue 37 } 38 39 timeout := *source 40 if timeout <= 0 { 41 return defaultValue 42 } 43 44 return time.Duration(timeout) * time.Second 45} 46