func matchContainerPattern()

in pkg/apis/frameworkcontroller/v1/completion.go [336:392]


func matchContainerPattern(
	container core.ContainerStatus,
	containerPattern *ContainerPattern) *MatchedContainer {
	term := container.State.Terminated
	matchedContainer := &MatchedContainer{}

	if !containerPattern.NameRegex.IsZero() {
		if ms := containerPattern.NameRegex.FindString(container.Name); ms != nil {
			matchedContainer.Name = ms
		} else {
			return nil
		}
	}

	if !containerPattern.ReasonRegex.IsZero() {
		if term == nil {
			return nil
		}
		if ms := containerPattern.ReasonRegex.FindString(term.Reason); ms != nil {
			matchedContainer.Reason = *ms
		} else {
			return nil
		}
	}
	if !containerPattern.MessageRegex.IsZero() {
		if term == nil {
			return nil
		}
		if ms := containerPattern.MessageRegex.FindString(term.Message); ms != nil {
			matchedContainer.Message = *ms
		} else {
			return nil
		}
	}
	if !containerPattern.SignalRange.IsZero() {
		if term == nil {
			return nil
		}
		if containerPattern.SignalRange.Contains(term.Signal) {
			matchedContainer.Signal = term.Signal
		} else {
			return nil
		}
	}
	if !containerPattern.CodeRange.IsZero() {
		if term == nil {
			return nil
		}
		if containerPattern.CodeRange.Contains(term.ExitCode) {
			matchedContainer.Code = &term.ExitCode
		} else {
			return nil
		}
	}

	return matchedContainer
}