func()

in pkg/cloud/filter/filter.go [198:231]


func (fp *filterPredicate) String() string {
	var op string
	switch fp.op {
	case regexpEquals:
		// GCE API maps regexp comparison to 'eq'
		op = "eq"
	case regexpNotEquals:
		op = "ne"
	// Since GCE API does not allow using a mix of 'eq' and '=' operators,
	// we use 'eq' everywhere
	case equals:
		op = "eq"
	case notEquals:
		op = "ne"
	default:
		op = "invalidOp"
	}

	var value string
	switch {
	case fp.s != nil:
		// There does not seem to be any sort of escaping as specified in the
		// document. This means it's possible to create malformed expressions.
		value = *fp.s
	case fp.i != nil:
		value = fmt.Sprintf("%d", *fp.i)
	case fp.b != nil:
		value = fmt.Sprintf("%t", *fp.b)
	default:
		value = "invalidValue"
	}

	return fmt.Sprintf("%s %s %s", fp.fieldName, op, value)
}