mirror of https://github.com/k3s-io/k3s
Add support for CronJob to kind_visitor
parent
338ee7f5d5
commit
821ffddeae
|
@ -32,6 +32,7 @@ type KindVisitor interface {
|
|||
VisitReplicaSet(kind GroupKindElement)
|
||||
VisitReplicationController(kind GroupKindElement)
|
||||
VisitStatefulSet(kind GroupKindElement)
|
||||
VisitCronJob(kind GroupKindElement)
|
||||
}
|
||||
|
||||
// GroupKindElement defines a Kubernetes API group elem
|
||||
|
@ -48,12 +49,14 @@ func (elem GroupKindElement) Accept(visitor KindVisitor) error {
|
|||
visitor.VisitJob(elem)
|
||||
case elem.GroupMatch("", "core") && elem.Kind == "Pod":
|
||||
visitor.VisitPod(elem)
|
||||
case elem.GroupMatch("extensions") && elem.Kind == "ReplicaSet":
|
||||
case elem.GroupMatch("apps", "extensions") && elem.Kind == "ReplicaSet":
|
||||
visitor.VisitReplicaSet(elem)
|
||||
case elem.GroupMatch("", "core") && elem.Kind == "ReplicationController":
|
||||
visitor.VisitReplicationController(elem)
|
||||
case elem.GroupMatch("apps") && elem.Kind == "StatefulSet":
|
||||
visitor.VisitStatefulSet(elem)
|
||||
case elem.GroupMatch("batch") && elem.Kind == "CronJob":
|
||||
visitor.VisitCronJob(elem)
|
||||
default:
|
||||
return fmt.Errorf("no visitor method exists for %v", elem)
|
||||
}
|
||||
|
@ -83,3 +86,4 @@ func (*NoOpKindVisitor) VisitPod(kind GroupKindElement) {}
|
|||
func (*NoOpKindVisitor) VisitReplicaSet(kind GroupKindElement) {}
|
||||
func (*NoOpKindVisitor) VisitReplicationController(kind GroupKindElement) {}
|
||||
func (*NoOpKindVisitor) VisitStatefulSet(kind GroupKindElement) {}
|
||||
func (*NoOpKindVisitor) VisitCronJob(kind GroupKindElement) {}
|
||||
|
|
|
@ -145,6 +145,17 @@ var _ = Describe("When KindVisitor accepts a GroupKind", func() {
|
|||
}))
|
||||
})
|
||||
|
||||
It("should Visit CronJob iff the Kind is a CronJob", func() {
|
||||
kind := apps.GroupKindElement{
|
||||
Kind: "CronJob",
|
||||
Group: "batch",
|
||||
}
|
||||
Expect(kind.Accept(visitor)).ShouldNot(HaveOccurred())
|
||||
Expect(visitor.visits).To(Equal(map[string]int{
|
||||
"CronJob": 1,
|
||||
}))
|
||||
})
|
||||
|
||||
It("should give an error if the Kind is unknown", func() {
|
||||
kind := apps.GroupKindElement{
|
||||
Kind: "Unknown",
|
||||
|
@ -171,3 +182,4 @@ func (t *TestKindVisitor) VisitPod(kind apps.GroupKindElement)
|
|||
func (t *TestKindVisitor) VisitReplicaSet(kind apps.GroupKindElement) { t.Visit(kind) }
|
||||
func (t *TestKindVisitor) VisitReplicationController(kind apps.GroupKindElement) { t.Visit(kind) }
|
||||
func (t *TestKindVisitor) VisitStatefulSet(kind apps.GroupKindElement) { t.Visit(kind) }
|
||||
func (t *TestKindVisitor) VisitCronJob(kind apps.GroupKindElement) { t.Visit(kind) }
|
||||
|
|
|
@ -73,6 +73,7 @@ func (v *HistoryVisitor) VisitJob(kind kapps.GroupKindElement)
|
|||
func (v *HistoryVisitor) VisitPod(kind kapps.GroupKindElement) {}
|
||||
func (v *HistoryVisitor) VisitReplicaSet(kind kapps.GroupKindElement) {}
|
||||
func (v *HistoryVisitor) VisitReplicationController(kind kapps.GroupKindElement) {}
|
||||
func (v *HistoryVisitor) VisitCronJob(kind kapps.GroupKindElement) {}
|
||||
|
||||
// HistoryViewerFor returns an implementation of HistoryViewer interface for the given schema kind
|
||||
func HistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface) (HistoryViewer, error) {
|
||||
|
|
Loading…
Reference in New Issue