github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+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 NewServiceName() string {
    61  	return PrefixedRandomName("INTEGRATION-SERVICE")
    62  }
    63  
    64  func NewServiceBrokerName() string {
    65  	return PrefixedRandomName("INTEGRATION-SERVICE-BROKER")
    66  }
    67  
    68  func NewPlanName() string {
    69  	return PrefixedRandomName("INTEGRATION-PLAN")
    70  }
    71  
    72  func NewPassword() string {
    73  	return PrefixedRandomName("INTEGRATION-PASSWORD")
    74  }
    75  
    76  func NewSecurityGroupName(infix ...string) string {
    77  	if len(infix) > 0 {
    78  		return PrefixedRandomName("INTEGRATION-SEC-GROUP-" + infix[0])
    79  	}
    80  
    81  	return PrefixedRandomName("INTEGRATION-SEC-GROUP")
    82  }
    83  
    84  func NewSpaceName() string {
    85  	return PrefixedRandomName("INTEGRATION-SPACE")
    86  }
    87  
    88  func NewUsername() string {
    89  	return PrefixedRandomName("INTEGRATION-USER")
    90  }
    91  
    92  func NewBuildpackName() string {
    93  	return PrefixedRandomName("INTEGRATION-BUILDPACK")
    94  }
    95  
    96  func NewStackName() string {
    97  	return PrefixedRandomName("INTEGRATION-STACK")
    98  }
    99  
   100  func NewDomainName(prefix ...string) string {
   101  	if len(prefix) > 0 {
   102  		return fmt.Sprintf("integration-%s.com", PrefixedRandomName(prefix[0]))
   103  	}
   104  	return fmt.Sprintf("integration%s.com", PrefixedRandomName(""))
   105  }
   106  
   107  func PrefixedRandomName(namePrefix string) string {
   108  	return namePrefix + "-" + RandomName()
   109  }
   110  
   111  func RandomName() string {
   112  	guid, err := uuid.NewV4()
   113  	if err != nil {
   114  		panic(err)
   115  	}
   116  
   117  	return guid.String()
   118  }