manifestclient

package
v0.0.0-...-6018a90 Latest Latest
Warning

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

Go to latest
Published: Dec 18, 2024 License: Apache-2.0 Imports: 37 Imported by: 3

Documentation

Index

Constants

View Source
const DeletionNameAnnotation = "operator.openshift.io/deletion-name"
View Source
const SyntheticControllerInstanceNameAnnotation = "synthetic.mom.openshift.io/controller-instance-name"

Variables

Functions

func AreAllSerializedRequestsEquivalent

func AreAllSerializedRequestsEquivalent[S ~[]E, E SerializedRequestish, T ~[]F, F SerializedRequestish](lhs S, rhs T) bool

func AreAllSerializedRequestsEquivalentWithReasons

func AreAllSerializedRequestsEquivalentWithReasons[S ~[]E, E SerializedRequestish, T ~[]F, F SerializedRequestish](lhs S, rhs T) (bool, []SerializedRequest, []SerializedRequest)

func CompareFileOriginatedSerializedRequest

func CompareFileOriginatedSerializedRequest(lhs, rhs *FileOriginatedSerializedRequest) int

func CompareSerializedRequest

func CompareSerializedRequest(lhs, rhs *SerializedRequest) int

func CompareTrackedSerializedRequest

func CompareTrackedSerializedRequest(lhs, rhs *TrackedSerializedRequest) int

func ControllerInstanceNameFromContext

func ControllerInstanceNameFromContext(ctx context.Context) string

func DifferenceOfSerializedRequests

func DifferenceOfSerializedRequests[S ~[]E, E SerializedRequestish, T ~[]F, F SerializedRequestish](lhs S, rhs T) S

Difference returns a set of objects that are not in s2. For example: s1 = {a1, a2, a3} s2 = {a1, a2, a4, a5} s1.Difference(s2) = {a3} s2.Difference(s1) = {a4, a5}

func EquivalentSerializedRequests

func EquivalentSerializedRequests(lhs, rhs SerializedRequestish) bool

func MakeFilenameGoModSafe

func MakeFilenameGoModSafe(in string) string

func NewRoundTripper

func NewRoundTripper(mustGatherDir string) *readWriteRoundTripper

func NewTestingRoundTripper

func NewTestingRoundTripper(embedFS fs.FS) *readWriteRoundTripper

func RecommendedRESTConfig

func RecommendedRESTConfig() *rest.Config

RecommendedRESTConfig is meant to be paired with the HTTPClients below

func WithControllerInstanceNameFromContext

func WithControllerInstanceNameFromContext(ctx context.Context, name string) context.Context

func WriteMutationDirectory

func WriteMutationDirectory[T SerializedRequestish](mutationDirectory string, requests ...T) error

Types

type Action

type Action string
const (
	// this is really a subset of patch, but we treat it separately because it is useful to do so
	ActionPatch        Action = "Patch"
	ActionPatchStatus  Action = "PatchStatus"
	ActionApply        Action = "Apply"
	ActionApplyStatus  Action = "ApplyStatus"
	ActionUpdate       Action = "Update"
	ActionUpdateStatus Action = "UpdateStatus"
	ActionCreate       Action = "Create"
	ActionDelete       Action = "Delete"
)

type ActionMetadata

type ActionMetadata struct {
	Action           Action `json:"action"`
	ResourceMetadata `json:",inline"`

	PatchType              string `json:"patchType,omitempty"`
	FieldManager           string `json:"fieldManager,omitempty"`
	ControllerInstanceName string `json:"controllerInstanceName"`
}

type AllActionsTracker

type AllActionsTracker[T SerializedRequestish] struct {
	// contains filtered or unexported fields
}

func NewAllActionsTracker

func NewAllActionsTracker[T SerializedRequestish]() *AllActionsTracker[T]

func ReadEmbeddedMutationDirectory

func ReadEmbeddedMutationDirectory(inFS fs.FS) (*AllActionsTracker[FileOriginatedSerializedRequest], error)

func ReadMutationDirectory

func ReadMutationDirectory(mutationDirectory string) (*AllActionsTracker[FileOriginatedSerializedRequest], error)

func (*AllActionsTracker[T]) AddRequest

func (a *AllActionsTracker[T]) AddRequest(request T)

func (*AllActionsTracker[T]) AddRequests

func (a *AllActionsTracker[T]) AddRequests(requests ...T)

func (*AllActionsTracker[T]) AllRequests

func (a *AllActionsTracker[T]) AllRequests() []SerializedRequestish

func (*AllActionsTracker[T]) DeepCopy

func (a *AllActionsTracker[T]) DeepCopy() *AllActionsTracker[T]

func (*AllActionsTracker[T]) ListActions

func (a *AllActionsTracker[T]) ListActions() []Action

func (*AllActionsTracker[T]) RequestsForAction

func (a *AllActionsTracker[T]) RequestsForAction(action Action) []SerializedRequestish

func (*AllActionsTracker[T]) RequestsForResource

func (a *AllActionsTracker[T]) RequestsForResource(metadata ActionMetadata) []SerializedRequestish

type FileOriginatedSerializedRequest

type FileOriginatedSerializedRequest struct {
	MetadataFilename string
	BodyFilename     string
	OptionsFilename  string

	SerializedRequest SerializedRequest
}

func (FileOriginatedSerializedRequest) DeepCopy

func (*FileOriginatedSerializedRequest) Equals

func (FileOriginatedSerializedRequest) GetSerializedRequest

func (a FileOriginatedSerializedRequest) GetSerializedRequest() *SerializedRequest

func (FileOriginatedSerializedRequest) SuggestedFilenames

func (a FileOriginatedSerializedRequest) SuggestedFilenames() (string, string, string)

type MutationTrackingClient

type MutationTrackingClient interface {
	GetHTTPClient() *http.Client
	GetMutations() *AllActionsTracker[TrackedSerializedRequest]
}

func NewHTTPClient

func NewHTTPClient(mustGatherDir string) MutationTrackingClient

Enter here and call `NewForConfigAndClient(manifestclient.RecommendedRESTConfig(), httpClient)`

func NewTestingHTTPClient

func NewTestingHTTPClient(embedFS fs.FS) MutationTrackingClient

Enter here and call `NewForConfigAndClient(manifestclient.RecommendedRESTConfig(), httpClient)`

type MutationTrackingRoundTripper

type MutationTrackingRoundTripper interface {
	http.RoundTripper
	GetMutations() *AllActionsTracker[TrackedSerializedRequest]
}

type ResourceMetadata

type ResourceMetadata struct {
	ResourceType schema.GroupVersionResource `json:"resourceType"`
	Namespace    string                      `json:"namespace,omitempty"`
	Name         string                      `json:"mame"`
	GenerateName string                      `json:"generateName"`
}

ResourceMetadata uniquely identifies an item in the API This is probably shareable across multiple packages.

type SerializedRequest

type SerializedRequest struct {
	ActionMetadata
	KindType schema.GroupVersionKind

	Options []byte
	Body    []byte
}

func (SerializedRequest) DeepCopy

func (*SerializedRequest) Equals

func (lhs *SerializedRequest) Equals(rhs *SerializedRequest) bool

func (SerializedRequest) GetLookupMetadata

func (a SerializedRequest) GetLookupMetadata() ActionMetadata

func (SerializedRequest) GetSerializedRequest

func (a SerializedRequest) GetSerializedRequest() *SerializedRequest

func (SerializedRequest) StringID

func (a SerializedRequest) StringID() string

func (SerializedRequest) SuggestedFilenames

func (a SerializedRequest) SuggestedFilenames() (string, string, string)

type SerializedRequestish

type SerializedRequestish interface {
	GetSerializedRequest() *SerializedRequest
	SuggestedFilenames() (string, string, string)
	DeepCopy() SerializedRequestish
}

func RequestsForResource

func RequestsForResource[S ~[]E, E SerializedRequestish](mutations S, metadata ActionMetadata) []SerializedRequestish

type TrackedSerializedRequest

type TrackedSerializedRequest struct {
	RequestNumber int

	SerializedRequest SerializedRequest
}

func (TrackedSerializedRequest) DeepCopy

func (*TrackedSerializedRequest) Equals

func (TrackedSerializedRequest) GetSerializedRequest

func (a TrackedSerializedRequest) GetSerializedRequest() *SerializedRequest

func (TrackedSerializedRequest) SuggestedFilenames

func (a TrackedSerializedRequest) SuggestedFilenames() (string, string, string)

Jump to

Keyboard shortcuts

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