utils

package
v4.1.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 31, 2018 License: Apache-2.0 Imports: 9 Imported by: 21

Documentation

Index

Examples

Constants

View Source
const (
	EnvironmentVarPrefix = "gsb"
)
View Source
const Version = "4.1.0"

Version sets the version for the whole GCP service broker software.

Variables

View Source
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 GetAuthedConfig() (*jwt.Config, error)

func GetDefaultProjectId

func GetDefaultProjectId() (string, error)

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

func PropertyToEnv(propertyName string) string

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

func PropertyToEnvUnprefixed(propertyName string) string

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

func SingleLineErrorFormatter(es []error) string

SingleLineErrorFormatter creates a single line error string from an array of errors.

func UnmarshalObjectRemainder

func UnmarshalObjectRemainder(data []byte, v interface{}) ([]byte, error)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL