github.com/hechain20/hechain@v0.0.0-20220316014945-b544036ba106/integration/nwo/runner/defaults.go (about) 1 /* 2 Copyright hechain. All Rights Reserved. 3 4 SPDX-License-Identifier: Apache-2.0 5 */ 6 7 package runner 8 9 import ( 10 "crypto/rand" 11 "encoding/base32" 12 "io" 13 "strings" 14 "time" 15 ) 16 17 const DefaultStartTimeout = 45 * time.Second 18 19 // DefaultNamer is the default naming function. 20 var DefaultNamer NameFunc = UniqueName 21 22 // A NameFunc is used to generate container names. 23 type NameFunc func() string 24 25 // UniqueName generates base-32 enocded strings for container names. 26 func UniqueName() string { 27 id := make([]byte, 16) 28 if _, err := io.ReadFull(rand.Reader, id); err != nil { 29 panic("failed to read 16 bytes from rand.Reader") 30 } 31 32 return strings.ToLower(base32.StdEncoding.WithPadding(base32.NoPadding).EncodeToString(id)) 33 }