Documentation ¶
Index ¶
- func CompareSecretKeyReferences(a, b []*ackv1alpha1.SecretKeyReference) (equal bool, added, removed []*ackv1alpha1.SecretKeyReference)
- func GetTagsDifference(from, to acktags.Tags) (added, unchanged, removed acktags.Tags)
- func HasNilDifference(a, b interface{}) bool
- func IsNil(i interface{}) bool
- func IsNotNil(i interface{}) bool
- func MapStringStringEqual(a, b map[string]string) bool
- func MapStringStringPEqual(a, b map[string]*string) bool
- func MetaV1ObjectEqual(a, b k8smetav1.Object) (bool, error)
- func SecretKeyReferenceEqual(a, b *ackv1alpha1.SecretKeyReference) bool
- func SliceSecretKeyReferenceEqual(a, b []*ackv1alpha1.SecretKeyReference) bool
- func SliceStringEqual(a, b []string) bool
- func SliceStringPEqual(a, b []*string) bool
- type Delta
- type DiffItem
- type Difference
- type Path
- type Reporter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CompareSecretKeyReferences ¶ added in v0.19.3
func CompareSecretKeyReferences( a, b []*ackv1alpha1.SecretKeyReference, ) (equal bool, added, removed []*ackv1alpha1.SecretKeyReference)
CompareSecretKeyReference returns true if the supplied slices of secret key reference pointers contain the exact same elements. It will also return 2 slices containing elements contained in a that aren't in b, and elements contained in b that aren't in a, respectively. The comparison doesn't take into consideration the order of elements. Duplicated elements will not impact the behaviour of this function, meaning that the function will always return only unique instances of the added/removed elements.
func GetTagsDifference ¶ added in v0.24.0
GetTagsDifference determines which tags have been added, unchanged or have been removed between the `from` and the `to` inputs. Tags that are in `from` but not in `to` are added to `removed`, whereas tags that are in `to` but not in `from` are added to `added`.
func HasNilDifference ¶
func HasNilDifference(a, b interface{}) bool
HasNilDifference returns true if the supplied subjects' nilness is different
func IsNil ¶ added in v0.2.1
func IsNil(i interface{}) bool
IsNil checks the passed interface argument for Nil value. For interfaces, only 'i==nil' check is not sufficient. https://tour.golang.org/methods/12 More details: https://mangatmodi.medium.com/go-check-nil-interface-the-right-way-d142776edef1
func MapStringStringEqual ¶ added in v0.7.0
MapStringStringEqual returns true if the supplied maps are equal
func MapStringStringPEqual ¶
MapStringStringPEqual returns true if the supplied maps are equal
func MetaV1ObjectEqual ¶ added in v0.7.0
MetaV1ObjectEqual returns true if the supplied k8s.io/apimachinery/pkg/apis/meta/v1.Object have equal values.
func SecretKeyReferenceEqual ¶ added in v0.19.3
func SecretKeyReferenceEqual(a, b *ackv1alpha1.SecretKeyReference) bool
SecretKeyReferenceEqual returns true if the supplied secret key references are equal.
func SliceSecretKeyReferenceEqual ¶ added in v0.19.3
func SliceSecretKeyReferenceEqual( a, b []*ackv1alpha1.SecretKeyReference, ) bool
SliceSecretKeyReferenceEqual returns true if the supplied slices of secret key reference pointers contain the exact same elements.
func SliceStringEqual ¶ added in v0.7.0
SliceStringEqual returns true if the supplied slices of string have equal values regardless of order.
func SliceStringPEqual ¶
SliceStringPEqual returns true if the supplied slices of string pointers have equal values regardless of order.
Types ¶
type Delta ¶
type Delta struct { // Differences is a slice of *ackcompare.Difference structs representing // differences in values of two resources under comparison Differences []*Difference }
Delta represents differences between two AWSResources. The underlying types of the two supplied AWSResources should be the same. In other words, the Delta() method should be called with the same concrete implementing AWSResource type
func NewDelta ¶
func NewDelta() *Delta
NewDelta returns a new Delta struct used to compare two resources.
func (*Delta) DifferentAt ¶
DifferentAt returns whether there is a difference at the supplied JSONPath expression in the resources under comparison
func (*Delta) DifferentExcept ¶ added in v0.18.5
DifferentExcept returns true if the delta contains any differences *other* than any of the supplied path strings.
This method is useful if you have a scenario where you don't want to proceed with a modification action if certain fields in a resource have not been changed.
For example, consider this code:
if delta.DifferentAt("Spec.Tags") { if err = rm.SyncTags(ctx, desired, latest); err != nil { return nil, err } } if !delta.DifferentExcept("Spec.Tags") { // We don't want to proceed to call the ModifyDBInstance API since // no other resource fields have changed. return desired, nil }
might be placed in an sdk_update_pre_build_request custom code hook to prevent the ModifyDBInstance call from being executed if the DBInstance's Tags field is the only field with changes.
type Difference ¶
type Difference struct { // Path is the field path to the detected difference between resources // under comparison Path Path // A is the value of the first resource under comparison at the Path A interface{} // B is the value of the first resource under comparison at the Path B interface{} }
Difference contains the difference in values for a specified field path into two compared resources.
type Path ¶
type Path struct {
// contains filtered or unexported fields
}
Path provides a JSONPath-like struct and field-member "route" to a particular field within a compared struct. Path implements json.Marshaler interface.
func NewPath ¶
NewPath returns a new Path struct pointer from a dotted-notation string, e.g. "Author.Name"
func (Path) Contains ¶
Contains returns true if the supplied string, delimited on ".", matches p.parts up to the length of the supplied string.
e.g. if the Path p represents "A.B": subject "A" -> true subject "A.B" -> true subject "A.B.C" -> false subject "B" -> false subject "A.C" -> false
func (Path) MarshalJSON ¶ added in v0.2.1
MarshalJSON returns the JSON encoding of a Path object.