github.com/arunkumar7540/cli@v6.45.0+incompatible/integration/helpers/name_generator.go (about) 1 package helpers 2 3 import ( 4 "fmt" 5 "sort" 6 "strings" 7 8 uuid "github.com/nu7hatch/gouuid" 9 ) 10 11 // TODO: Is this working??? 12 13 // GenerateHigherName will use the passed randomNameGenerator to generate a name with a higher 14 // sort value than all the passed names 15 func GenerateHigherName(randomNameGenerator func() string, names ...string) string { 16 if len(names) == 0 { 17 return randomNameGenerator() 18 } 19 sort.Strings(names) 20 21 maxName := names[len(names)-1] 22 23 for { 24 name := randomNameGenerator() 25 // regenerate name if name is NOT higher 26 if strings.Compare(name, maxName) > 0 { 27 return name 28 } 29 } 30 } 31 32 // TODO: Is this working??? 33 34 // GenerateLowerName will use the passed randomNameGenerator to generate a name with a lower 35 // sort value than all the passed names 36 func GenerateLowerName(randomNameGenerator func() string, names ...string) string { 37 if len(names) == 0 { 38 return randomNameGenerator() 39 } 40 41 sort.Strings(names) 42 43 minName := names[0] 44 45 for { 46 name := randomNameGenerator() 47 // regenerate name if name is NOT higher 48 if strings.Compare(name, minName) < 0 { 49 return name 50 } 51 } 52 } 53 54 // NewAppName provides a random name prefixed with INTEGRATION-APP 55 func NewAppName() string { 56 return PrefixedRandomName("INTEGRATION-APP") 57 } 58 59 // NewIsolationSegmentName provides a random name prefixed with INTEGRATION-ISOLATION-SEGMENT 60 func NewIsolationSegmentName(infix ...string) string { 61 return PrefixedRandomName("INTEGRATION-ISOLATION-SEGMENT") 62 } 63 64 // NewOrgName provides a random name prefixed with INTEGRATION-ORG 65 func NewOrgName() string { 66 return PrefixedRandomName("INTEGRATION-ORG") 67 } 68 69 // NewServiceBrokerName provides a random name prefixed with INTEGRATION-SERVICE-BROKER 70 func NewServiceBrokerName() string { 71 return PrefixedRandomName("INTEGRATION-SERVICE-BROKER") 72 } 73 74 // NewPlanName provides a random name prefixed with INTEGRATION-PLAN 75 func NewPlanName() string { 76 return PrefixedRandomName("INTEGRATION-PLAN") 77 } 78 79 // NewPassword provides a random string prefixed with INTEGRATION-PASSWORD 80 func NewPassword() string { 81 return PrefixedRandomName("INTEGRATION-PASSWORD") 82 } 83 84 // NewSecurityGroupName provides a random name prefixed with INTEGRATION-SEC-GROUP. If an infix is provided, it 85 // is placed between INTEGRATION-SEC-GROUP and the random string. 86 func NewSecurityGroupName(infix ...string) string { 87 if len(infix) > 0 { 88 return PrefixedRandomName("INTEGRATION-SEC-GROUP-" + infix[0]) 89 } 90 91 return PrefixedRandomName("INTEGRATION-SEC-GROUP") 92 } 93 94 // NewSpaceName provides a random name prefixed with INTEGRATION-SPACE 95 func NewSpaceName() string { 96 return PrefixedRandomName("INTEGRATION-SPACE") 97 } 98 99 // NewUsername provides a random name prefixed with INTEGRATION-USER 100 func NewUsername() string { 101 return PrefixedRandomName("INTEGRATION-USER") 102 } 103 104 // NewBuildpackName provides a random name prefixed with INTEGRATION-BUILDPACK 105 func NewBuildpackName() string { 106 return PrefixedRandomName("INTEGRATION-BUILDPACK") 107 } 108 109 // NewStackName provides a random name prefixed with INTEGRATION-STACK 110 func NewStackName() string { 111 return PrefixedRandomName("INTEGRATION-STACK") 112 } 113 114 // NewDomainName provides a random domain name prefixed with integration. If prefix is provided the domain name 115 // will have structure "integration-prefix-randomstring.com" else it will have structure "integration-randomstring.com" 116 func NewDomainName(prefix ...string) string { 117 if len(prefix) > 0 { 118 return fmt.Sprintf("integration-%s.com", PrefixedRandomName(prefix[0])) 119 } 120 return fmt.Sprintf("integration%s.com", PrefixedRandomName("")) 121 } 122 123 // PrefixedRandomName provides a random name with structure "namePrefix-randomstring" 124 func PrefixedRandomName(namePrefix string) string { 125 return namePrefix + "-" + RandomName() 126 } 127 128 // RandomName provides a random string 129 func RandomName() string { 130 guid, err := uuid.NewV4() 131 if err != nil { 132 panic(err) 133 } 134 135 return guid.String() 136 }