Documentation ¶
Index ¶
- Constants
- Variables
- func ExtractDefaultLabels(instanceId string, details brokerapi.ProvisionDetails) map[string]string
- func GetAuthedConfig() (*jwt.Config, error)
- func GetDefaultProjectId() (string, error)
- func GetServiceAccountJson() string
- func NewLogger(name string) lager.Logger
- func PrettyPrintOrErr(content interface{}) error
- func PrettyPrintOrExit(content interface{})
- func PropertyToEnv(propertyName string) string
- func PropertyToEnvUnprefixed(propertyName string) string
- func SetParameter(input json.RawMessage, key string, value interface{}) (json.RawMessage, error)
- func SingleLineErrorFormatter(es []error) string
- func SplitNewlineDelimitedList(paksText string) []string
- func UnmarshalObjectRemainder(data []byte, v interface{}) ([]byte, error)
- type StringSet
- func (set StringSet) Add(str ...string)
- func (set StringSet) Contains(other string) bool
- func (set StringSet) Equals(other StringSet) bool
- func (set StringSet) IsEmpty() bool
- func (set StringSet) Minus(other StringSet) StringSet
- func (set StringSet) String() string
- func (set StringSet) ToSlice() []string
Examples ¶
Constants ¶
const (
EnvironmentVarPrefix = "gsb"
)
const Version = "4.2.0"
Version sets the version for the whole GCP service broker software.
Variables ¶
var (
PropertyToEnvReplacer = strings.NewReplacer(".", "_", "-", "_")
)
Functions ¶
func ExtractDefaultLabels ¶
func ExtractDefaultLabels(instanceId string, details brokerapi.ProvisionDetails) map[string]string
ExtractDefaultLabels creates a map[string]string of labels that should be applied to a resource on creation if the resource supports labels. These include the organization, space, and instance id.
func GetAuthedConfig ¶
func GetDefaultProjectId ¶
GetDefaultProject gets the default project id for the service broker based on the JSON Service Account key.
Example ¶
serviceAccountJson := `{ "//": "Dummy account from https://github.com/GoogleCloudPlatform/google-cloud-java/google-cloud-clients/google-cloud-core/src/test/java/com/google/cloud/ServiceOptionsTest.java", "private_key_id": "somekeyid", "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC+K2hSuFpAdrJI\nnCgcDz2M7t7bjdlsadsasad+fvRSW6TjNQZ3p5LLQY1kSZRqBqylRkzteMOyHgaR\n0Pmxh3ILCND5men43j3h4eDbrhQBuxfEMalkG92sL+PNQSETY2tnvXryOvmBRwa/\nQP/9dJfIkIDJ9Fw9N4Bhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\nknddadwkwewcVxHFhcZJO+XWf6ofLUXpRwiTZakGMn8EE1uVa2LgczOjwWHGi99MFjxSer5m9\n1tCa3/KEGKiS/YL71JvjwX3mb+cewlkcmweBKZHM2JPTk0ZednFSpVZMtycjkbLa\ndYOS8V85AgMBewECggEBAKksaldajfDZDV6nGqbFjMiizAKJolr/M3OQw16K6o3/\n0S31xIe3sSlgW0+UbYlF4U8KifhManD1apVSC3csafaspP4RZUHFhtBywLO9pR5c\nr6S5aLp+gPWFyIp1pfXbWGvc5VY/v9x7ya1VEa6rXvLsKupSeWAW4tMj3eo/64ge\nsdaceaLYw52KeBYiT6+vpsnYrEkAHO1fF/LavbLLOFJmFTMxmsNaG0tuiJHgjshB\n82DpMCbXG9YcCgI/DbzuIjsdj2JC1cascSP//3PmefWysucBQe7Jryb6NQtASmnv\nCdDw/0jmZTEjpe4S1lxfHplAhHFtdgYTvyYtaLZiVVkCgYEA8eVpof2rceecw/I6\n5ng1q3Hl2usdWV/4mZMvR0fOemacLLfocX6IYxT1zA1FFJlbXSRsJMf/Qq39mOR2\nSpW+hr4jCoHeRVYLgsbggtrevGmILAlNoqCMpGZ6vDmJpq6ECV9olliDvpPgWOP+\nmYPDreFBGxWvQrADNbRt2dmGsrsCgYEAyUHqB2wvJHFqdmeBsaacewzV8x9WgmeX\ngUIi9REwXlGDW0Mz50dxpxcKCAYn65+7TCnY5O/jmL0VRxU1J2mSWyWTo1C+17L0\n3fUqjxL1pkefwecxwecvC+gFFYdJ4CQ/MHHXU81Lwl1iWdFCd2UoGddYaOF+KNeM\nHC7cmqra+JsCgYEAlUNywzq8nUg7282E+uICfCB0LfwejuymR93CtsFgb7cRd6ak\nECR8FGfCpH8ruWJINllbQfcHVCX47ndLZwqv3oVFKh6pAS/vVI4dpOepP8++7y1u\ncoOvtreXCX6XqfrWDtKIvv0vjlHBhhhp6mCcRpdQjV38H7JsyJ7lih/oNjECgYAt\nkndj5uNl5SiuVxHFhcZJO+XWf6ofLUregtevZakGMn8EE1uVa2AY7eafmoU/nZPT\n00YB0TBATdCbn/nBSuKDESkhSg9s2GEKQZG5hBmL5uCMfo09z3SfxZIhJdlerreP\nJ7gSidI12N+EZxYd4xIJh/HFDgp7RRO87f+WJkofMQKBgGTnClK1VMaCRbJZPriw\nEfeFCoOX75MxKwXs6xgrw4W//AYGGUjDt83lD6AZP6tws7gJ2IwY/qP7+lyhjEqN\nHtfPZRGFkGZsdaksdlaksd323423d+15/UvrlRSFPNj1tWQmNKkXyRDW4IG1Oa2p\nrALStNBx5Y9t0/LQnFI4w3aG\n-----END PRIVATE KEY-----\n", "client_email": "someclientid@developer.gserviceaccount.com", "client_id": "someclientid.apps.googleusercontent.com", "type": "service_account", "project_id": "my-project-123" }` os.Setenv("ROOT_SERVICE_ACCOUNT_JSON", serviceAccountJson) defer os.Unsetenv("ROOT_SERVICE_ACCOUNT_JSON") projectId, err := GetDefaultProjectId() fmt.Printf("%s, %v\n", projectId, err)
Output: my-project-123, <nil>
func GetServiceAccountJson ¶
func GetServiceAccountJson() string
GetServiceAccountJson gets the raw JSON credentials of the Service Account the service broker acts as.
func NewLogger ¶
NewLogger creates a new lager.Logger with the given name that has correct writing settings.
func PrettyPrintOrErr ¶
func PrettyPrintOrErr(content interface{}) error
PrettyPrintOrErr writes a JSON serialized version of the content to stdout. If a failure occurs during marshaling, the error is logged along with a formatted version of the object and the function will return the error.
func PrettyPrintOrExit ¶
func PrettyPrintOrExit(content interface{})
PrettyPrintOrExit writes a JSON serialized version of the content to stdout. If a failure occurs during marshaling, the error is logged along with a formatted version of the object and the program exits with a failure status.
func PropertyToEnv ¶
PropertyToEnv converts a Viper configuration property name into an environment variable prefixed with EnvironmentVarPrefix
Example ¶
env := PropertyToEnv("my.property.key-value") fmt.Println(env)
Output: GSB_MY_PROPERTY_KEY_VALUE
func PropertyToEnvUnprefixed ¶
PropertyToEnvUnprefixed converts a Viper configuration property name into an environment variable using PropertyToEnvReplacer
Example ¶
env := PropertyToEnvUnprefixed("my.property.key-value") fmt.Println(env)
Output: MY_PROPERTY_KEY_VALUE
func SetParameter ¶
func SetParameter(input json.RawMessage, key string, value interface{}) (json.RawMessage, error)
SetParameter sets a value on a JSON raw message and returns a modified version with the value set
Example ¶
// Creates an object if none is input out, err := SetParameter(nil, "foo", 42) fmt.Printf("%s, %v\n", string(out), err) // Replaces existing values out, err = SetParameter([]byte(`{"replace": "old"}`), "replace", "new") fmt.Printf("%s, %v\n", string(out), err)
Output: {"foo":42}, <nil> {"replace":"new"}, <nil>
func SingleLineErrorFormatter ¶
SingleLineErrorFormatter creates a single line error string from an array of errors.
func SplitNewlineDelimitedList ¶
SplitNewlineDelimitedList splits a list of newline delimited items and trims any leading or trailing whitespace from them.
func UnmarshalObjectRemainder ¶
UnmarshalObjectRemaidner unmarshals an object into v and returns the remaining key/value pairs as a JSON string by doing a set difference.
Example ¶
var obj struct { A string `json:"a_str"` B int } remainder, err := UnmarshalObjectRemainder([]byte(`{"a_str":"hello", "B": 33, "C": 123}`), &obj) fmt.Printf("%s, %v\n", string(remainder), err) remainder, err = UnmarshalObjectRemainder([]byte(`{"a_str":"hello", "B": 33}`), &obj) fmt.Printf("%s, %v\n", string(remainder), err)
Output: {"C":123}, <nil> {}, <nil>
Types ¶
type StringSet ¶
StringSet is a set data structure for strings
func NewStringSet ¶
NewStringSet creates a new string set with the given contents.
Example ¶
a := NewStringSet() a.Add("a") a.Add("b") b := NewStringSet("b", "a") fmt.Println(a.Equals(b))
Output: true
func (StringSet) Add ¶
Add puts one or more elements into the set.
Example ¶
set := NewStringSet() set.Add("a") set.Add("b") fmt.Println(set) set.Add("a") fmt.Println(set)
Output: [a b] [a b]
func (StringSet) Contains ¶
Contains performs a set membership check.
Example ¶
a := NewStringSet("a", "b") fmt.Println(a.Contains("z")) fmt.Println(a.Contains("a"))
Output: false true
func (StringSet) Equals ¶
Equals compares the contents of the two sets and returns true if they are the same.
Example ¶
a := NewStringSet("a", "b") b := NewStringSet("a", "b", "c") fmt.Println(a.Equals(b)) a.Add("c") fmt.Println(a.Equals(b))
Output: false true
func (StringSet) IsEmpty ¶
IsEmpty determines if the set has zero elements.
Example ¶
a := NewStringSet() fmt.Println(a.IsEmpty()) a.Add("a") fmt.Println(a.IsEmpty())
Output: true false
func (StringSet) Minus ¶
Returns a copy of this set with every string in the other removed.
Example ¶
a := NewStringSet("a", "b") b := NewStringSet("b", "c") delta := a.Minus(b) fmt.Println(delta)
Output: [a]