github.com/randomtask1155/cli@v6.41.1-0.20181227003417-a98eed78cbde+incompatible/integration/helpers/name_generator.go (about)

     1  package helpers
     2  
     3  import (
     4  	"fmt"
     5  	"sort"
     6  
     7  	uuid "github.com/nu7hatch/gouuid"
     8  )
     9  
    10  // TODO: Is this working???
    11  func GenerateHigherName(randomNameGenerator func() string, names ...string) string {
    12  	name := randomNameGenerator()
    13  
    14  	var safe bool
    15  	for !safe {
    16  		safe = true
    17  		for _, nameToBeLowerThan := range names {
    18  			// regenerate name if name is NOT higher
    19  			if !sort.StringsAreSorted([]string{nameToBeLowerThan, name}) {
    20  				name = randomNameGenerator()
    21  				safe = false
    22  				break
    23  			}
    24  		}
    25  	}
    26  	return name
    27  }
    28  
    29  // TODO: Is this working???
    30  func GenerateLowerName(randomNameGenerator func() string, names ...string) string {
    31  	name := randomNameGenerator()
    32  
    33  	var safe bool
    34  	for !safe {
    35  		safe = true
    36  		for _, nameToBeHigherThan := range names {
    37  			// regenerate name if name is NOT lower
    38  			if !sort.StringsAreSorted([]string{name, nameToBeHigherThan}) {
    39  				name = randomNameGenerator()
    40  				safe = false
    41  				break
    42  			}
    43  		}
    44  	}
    45  	return name
    46  }
    47  
    48  func NewAppName() string {
    49  	return PrefixedRandomName("INTEGRATION-APP")
    50  }
    51  
    52  func NewIsolationSegmentName(infix ...string) string {
    53  	return PrefixedRandomName("INTEGRATION-ISOLATION-SEGMENT")
    54  }
    55  
    56  func NewOrgName() string {
    57  	return PrefixedRandomName("INTEGRATION-ORG")
    58  }
    59  
    60  func NewServiceBrokerName() string {
    61  	return PrefixedRandomName("INTEGRATION-SERVICE-BROKER")
    62  }
    63  
    64  func NewPlanName() string {
    65  	return PrefixedRandomName("INTEGRATION-PLAN")
    66  }
    67  
    68  func NewPassword() string {
    69  	return PrefixedRandomName("INTEGRATION-PASSWORD")
    70  }
    71  
    72  func NewSecurityGroupName(infix ...string) string {
    73  	if len(infix) > 0 {
    74  		return PrefixedRandomName("INTEGRATION-SEC-GROUP-" + infix[0])
    75  	}
    76  
    77  	return PrefixedRandomName("INTEGRATION-SEC-GROUP")
    78  }
    79  
    80  func NewSpaceName() string {
    81  	return PrefixedRandomName("INTEGRATION-SPACE")
    82  }
    83  
    84  func NewUsername() string {
    85  	return PrefixedRandomName("INTEGRATION-USER")
    86  }
    87  
    88  func NewBuildpackName() string {
    89  	return PrefixedRandomName("INTEGRATION-BUILDPACK")
    90  }
    91  
    92  func NewStackName() string {
    93  	return PrefixedRandomName("INTEGRATION-STACK")
    94  }
    95  
    96  func NewDomainName(prefix ...string) string {
    97  	if len(prefix) > 0 {
    98  		return fmt.Sprintf("integration-%s.com", PrefixedRandomName(prefix[0]))
    99  	}
   100  	return fmt.Sprintf("integration%s.com", PrefixedRandomName(""))
   101  }
   102  
   103  func PrefixedRandomName(namePrefix string) string {
   104  	return namePrefix + "-" + RandomName()
   105  }
   106  
   107  func RandomName() string {
   108  	guid, err := uuid.NewV4()
   109  	if err != nil {
   110  		panic(err)
   111  	}
   112  
   113  	return guid.String()
   114  }