Documentation ¶
Index ¶
- Constants
- Variables
- func ExtractDefaultLabels(instanceId string, details brokerapi.ProvisionDetails) map[string]string
- func GetAuthedConfig() (*jwt.Config, error)
- func GetDefaultProjectId() (string, error)
- 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 UnmarshalObjectRemainder(data []byte, v interface{}) ([]byte, error)
Examples ¶
Constants ¶
const (
EnvironmentVarPrefix = "gsb"
)
const Version = "4.1.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 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 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 ¶
This section is empty.