utils

package
v4.2.0-rc2+incompatible Latest Latest
Warning

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

Go to latest
Published: Jan 16, 2019 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Index

Examples

Constants

View Source
const (
	EnvironmentVarPrefix = "gsb"
)
View Source
const Version = "4.2.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 GetServiceAccountJson

func GetServiceAccountJson() string

GetServiceAccountJson gets the raw JSON credentials of the Service Account the service broker acts as.

func NewLogger

func NewLogger(name string) lager.Logger

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

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 SplitNewlineDelimitedList

func SplitNewlineDelimitedList(paksText string) []string

SplitNewlineDelimitedList splits a list of newline delimited items and trims any leading or trailing whitespace from them.

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

type StringSet

type StringSet map[string]bool

StringSet is a set data structure for strings

func NewStringSet

func NewStringSet(contents ...string) StringSet

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

func (set StringSet) Add(str ...string)

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

func (set StringSet) Contains(other string) bool

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

func (set StringSet) Equals(other StringSet) bool

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

func (set StringSet) IsEmpty() bool

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

func (set StringSet) Minus(other StringSet) StringSet

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]

func (StringSet) String

func (set StringSet) String() string

String converts this set to a human readable string.

func (StringSet) ToSlice

func (set StringSet) ToSlice() []string

ToSlice converts the set to a slice with sort.Strings order.

Example
a := NewStringSet()
a.Add("z")
a.Add("b")

fmt.Println(a.ToSlice())
Output:

[b z]

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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