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  }