var ( // ErrPodNotFound means operate pod may be deleted(almostly) ErrPodNotFound = errors.New("pod not found") // ErrPodNotRunning means operate pod may be not working // and it's non-sense to make changes on it. ErrPodNotRunning = errors.New("pod not running") )
Append adds an item to corresponding list in podnetworkchaos
type Append struct { Item interface{} }
func (a *Append) Apply(chaos *v1alpha1.PodNetworkChaos) error
Apply runs this action
Clear removes all resources with the same source
type Clear struct { Source string }
func (s *Clear) Apply(chaos *v1alpha1.PodNetworkChaos) error
Apply runs this action
CommitResponse is a tuple (Key, Err)
type CommitResponse struct { Key types.NamespacedName Err error }
PodNetworkManager will save all the related podnetworkchaos
type PodNetworkManager struct { Source string Log logr.Logger client.Client client.Reader Modifications map[types.NamespacedName]*PodNetworkTransaction }
func New(source string, logger logr.Logger, client client.Client, reader client.Reader) *PodNetworkManager
New creates a new PodNetworkMap
func (m *PodNetworkManager) Commit(ctx context.Context) []CommitResponse
Commit will update all modifications to the cluster
func (m *PodNetworkManager) WithInit(key types.NamespacedName) *PodNetworkTransaction
WithInit will get a transaction or start a transaction with initially clear
PodNetworkTransaction represents a modification on podnetwork
type PodNetworkTransaction struct { Steps []Step }
func (t *PodNetworkTransaction) Append(item interface{}) error
Append adds an item to corresponding list in podnetworkchaos
func (t *PodNetworkTransaction) Apply(chaos *v1alpha1.PodNetworkChaos) error
Apply runs every step on the chaos
func (t *PodNetworkTransaction) Clear(source string)
Clear will clear all related items in podnetworkchaos
Step represents a step of PodNetworkTransaction
type Step interface { // Apply will apply an action on podnetworkchaos Apply(chaos *v1alpha1.PodNetworkChaos) error }