Hello community,

here is the log from the commit of package kail for openSUSE:Factory checked in 
at 2020-01-24 14:20:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kail (Old)
 and      /work/SRC/openSUSE:Factory/.kail.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kail"

Fri Jan 24 14:20:59 2020 rev:4 rq:766236 version:0.13.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kail/kail.changes        2019-11-03 
10:49:36.630367435 +0100
+++ /work/SRC/openSUSE:Factory/.kail.new.26092/kail.changes     2020-01-24 
14:21:10.290619496 +0100
@@ -1,0 +2,7 @@
+Wed Jan 22 09:22:35 UTC 2020 - Thorsten Kukuk <[email protected]>
+
+- Update to version 0.13.0
+  - Add job filter
+- Update vendor.tar.gz
+
+-------------------------------------------------------------------

Old:
----
  kail-0.12.0.tar.gz

New:
----
  kail-0.13.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kail.spec ++++++
--- /var/tmp/diff_new_pack.QycbI8/_old  2020-01-24 14:21:12.794620376 +0100
+++ /var/tmp/diff_new_pack.QycbI8/_new  2020-01-24 14:21:12.798620377 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package kail
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           kail
-Version:        0.12.0
+Version:        0.13.0
 Release:        0
 Summary:        Kubernetes log viewer
 License:        MIT

++++++ kail-0.12.0.tar.gz -> kail-0.13.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kail-0.12.0/README.md new/kail-0.13.0/README.md
--- old/kail-0.12.0/README.md   2019-10-16 20:02:58.000000000 +0200
+++ new/kail-0.13.0/README.md   2020-01-21 22:35:38.000000000 +0100
@@ -21,6 +21,7 @@
 `--rc NAME` | match pods belonging to the given replication controller
 `--rs NAME` | match pods belonging to the given replica set
 `-d, --deploy NAME` | match pods belonging to the given deployment
+`-j, --job NAME` | match pods belonging to the given job
 `--node NODE-NAME` | match pods running on the given node
 `--ing NAME` | match pods belonging to services targeted by the given ingress
 `-c, --containers CONTAINER-NAME` | restrict which containers logs are shown 
for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kail-0.12.0/cmd/kail/main.go 
new/kail-0.13.0/cmd/kail/main.go
--- old/kail-0.12.0/cmd/kail/main.go    2019-10-16 20:02:58.000000000 +0200
+++ new/kail-0.13.0/cmd/kail/main.go    2020-01-21 22:35:38.000000000 +0100
@@ -41,6 +41,7 @@
        flagRs         = kingpin.Flag("rs", "replica 
set").PlaceHolder("NAME").Strings()
        flagDs         = kingpin.Flag("ds", 
"daemonset").PlaceHolder("NAME").Strings()
        flagDeployment = kingpin.Flag("deploy", 
"deployment").Short('d').PlaceHolder("NAME").Strings()
+       flagJob        = kingpin.Flag("job", 
"job").Short('j').PlaceHolder("NAME").Strings()
        flagNode       = kingpin.Flag("node", 
"node").PlaceHolder("NAME").Strings()
        flagIng        = kingpin.Flag("ing", 
"ingress").PlaceHolder("NAME").Strings()
 
@@ -253,6 +254,10 @@
                dsb = dsb.WithDeployment(ids...)
        }
 
+       if ids := parseIds("job", *flagJob); len(ids) > 0 {
+               dsb = dsb.WithJob(ids...)
+       }
+
        if ids := parseIds("ing", *flagIng); len(ids) > 0 {
                dsb = dsb.WithIngress(ids...)
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kail-0.12.0/ds.go new/kail-0.13.0/ds.go
--- old/kail-0.12.0/ds.go       2019-10-16 20:02:58.000000000 +0200
+++ new/kail-0.13.0/ds.go       2020-01-21 22:35:38.000000000 +0100
@@ -7,6 +7,7 @@
        "github.com/boz/kcache/types/daemonset"
        "github.com/boz/kcache/types/deployment"
        "github.com/boz/kcache/types/ingress"
+       "github.com/boz/kcache/types/job"
        "github.com/boz/kcache/types/node"
        "github.com/boz/kcache/types/pod"
        "github.com/boz/kcache/types/replicaset"
@@ -29,6 +30,7 @@
        rssBase         replicaset.Controller
        dssBase         daemonset.Controller
        deploymentsBase deployment.Controller
+       jobsBase        job.Controller
        ingressesBase   ingress.Controller
 
        pods        pod.Controller
@@ -38,6 +40,7 @@
        rss         replicaset.Controller
        dss         daemonset.Controller
        deployments deployment.Controller
+       jobs        job.Controller
        ingresses   ingress.Controller
 
        readych chan struct{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kail-0.12.0/ds_builder.go 
new/kail-0.13.0/ds_builder.go
--- old/kail-0.12.0/ds_builder.go       2019-10-16 20:02:58.000000000 +0200
+++ new/kail-0.13.0/ds_builder.go       2020-01-21 22:35:38.000000000 +0100
@@ -2,6 +2,7 @@
 
 import (
        "context"
+       "github.com/boz/kcache/types/job"
 
        logutil "github.com/boz/go-logutil"
        "github.com/boz/kcache/filter"
@@ -31,6 +32,7 @@
        WithRS(id ...nsname.NSName) DSBuilder
        WithDS(id ...nsname.NSName) DSBuilder
        WithDeployment(id ...nsname.NSName) DSBuilder
+       WithJob(id ...nsname.NSName) DSBuilder
        WithIngress(id ...nsname.NSName) DSBuilder
 
        Create(ctx context.Context, cs kubernetes.Interface) (DS, error)
@@ -52,6 +54,7 @@
        rss         []nsname.NSName
        dss         []nsname.NSName
        deployments []nsname.NSName
+       jobs        []nsname.NSName
        ingresses   []nsname.NSName
 }
 
@@ -110,6 +113,11 @@
        return b
 }
 
+func (b *dsBuilder) WithJob(id ...nsname.NSName) DSBuilder {
+       b.jobs = append(b.jobs, id...)
+       return b
+}
+
 func (b *dsBuilder) WithIngress(id ...nsname.NSName) DSBuilder {
        b.ingresses = append(b.ingresses, id...)
        return b
@@ -321,6 +329,26 @@
                }
        }
 
+       if len(b.jobs) != 0 {
+               ds.jobsBase, err = job.NewController(ctx, log, cs, namespace)
+               if err != nil {
+                       ds.closeAll()
+                       return nil, log.Err(err, "job base controller")
+               }
+
+               ds.jobs, err = 
ds.jobsBase.CloneWithFilter(filter.NSName(b.jobs...))
+               if err != nil {
+                       ds.closeAll()
+                       return nil, log.Err(err, "job controller")
+               }
+
+               ds.pods, err = join.JobPods(ctx, ds.jobs, ds.pods)
+               if err != nil {
+                       ds.closeAll()
+                       return nil, log.Err(err, "job join")
+               }
+       }
+
        if len(b.ingresses) != 0 {
                ds.ingressesBase, err = ingress.NewController(ctx, log, cs, 
namespace)
                if err != nil {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kail-0.12.0/go.mod new/kail-0.13.0/go.mod
--- old/kail-0.12.0/go.mod      2019-10-16 20:02:58.000000000 +0200
+++ new/kail-0.13.0/go.mod      2020-01-21 22:35:38.000000000 +0100
@@ -5,7 +5,7 @@
 require (
        github.com/boz/go-lifecycle v0.1.0
        github.com/boz/go-logutil v0.1.0
-       github.com/boz/kcache v0.2.0
+       github.com/boz/kcache v0.3.0
        github.com/dgrijalva/jwt-go v0.0.0-20170608005149-a539ee1a749a // 
indirect
        github.com/fatih/color v1.7.0
        github.com/googleapis/gnostic v0.0.0-20170807220725-57b029087370 // 
indirect
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kail-0.12.0/go.sum new/kail-0.13.0/go.sum
--- old/kail-0.12.0/go.sum      2019-10-16 20:02:58.000000000 +0200
+++ new/kail-0.13.0/go.sum      2020-01-21 22:35:38.000000000 +0100
@@ -20,6 +20,8 @@
 github.com/boz/go-logutil v0.1.0/go.mod 
h1:CXkIsoVfGPwOxTaTaS+xry4ohurGiGuT3A84vSzX9BM=
 github.com/boz/kcache v0.2.0 h1:C5ksTjWVHjCP/GTQFZvavZAzgBouQG4LjCX95b+yw3Q=
 github.com/boz/kcache v0.2.0/go.mod 
h1:hQl4JnUxZ9Dv46mY+9aEFu5mQdFSOEN7abv28NCUcIc=
+github.com/boz/kcache v0.3.0 h1:g0Fe6j6C06pydQuCNf8bKh4u9z1kd0v/gq8WhwFVOQM=
+github.com/boz/kcache v0.3.0/go.mod 
h1:hQl4JnUxZ9Dv46mY+9aEFu5mQdFSOEN7abv28NCUcIc=
 github.com/caarlos0/ctrlc v1.0.0/go.mod 
h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw=
 github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e 
h1:V9a67dfYqPLAvzk5hMQOXYJlZ4SLIXgyKIE+ZiHzgGQ=
 github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod 
h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo=

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/Makefile 
new/vendor/github.com/boz/kcache/Makefile
--- old/vendor/github.com/boz/kcache/Makefile   2019-10-29 11:53:26.467961934 
+0100
+++ new/vendor/github.com/boz/kcache/Makefile   2020-01-22 10:21:19.439212203 
+0100
@@ -29,6 +29,7 @@
        genny -in=types/gen/template.go 
-out=types/replicationcontroller/generated.go -pkg=replicationcontroller gen 
'ObjectType=*corev1.ReplicationController'
        genny -in=types/gen/template.go -out=types/replicaset/generated.go 
-pkg=replicaset gen 'ObjectType=*extv1beta1.ReplicaSet'
        genny -in=types/gen/template.go -out=types/deployment/generated.go 
-pkg=deployment gen 'ObjectType=*extv1beta1.Deployment'
+       genny -in=types/gen/template.go -out=types/job/generated.go -pkg=job 
gen 'ObjectType=*batchv1.Job'
        genny -in=types/gen/template.go -out=types/daemonset/generated.go 
-pkg=daemonset gen 'ObjectType=*extv1beta1.DaemonSet'
        goimports -w types/**/generated.go
        $(GO) build ./types/...
@@ -44,6 +45,7 @@
        ./types/gen/gen corev1.ReplicationController > 
types/replicationcontroller/generated_test.go
        ./types/gen/gen extv1beta1.ReplicaSet > 
types/replicaset/generated_test.go
        ./types/gen/gen extv1beta1.Deployment > 
types/deployment/generated_test.go
+       ./types/gen/gen batchv1.Job > types/job/generated_test.go
        ./types/gen/gen extv1beta1.DaemonSet > types/daemonset/generated_test.go
        $(GO) test ./types/...
 
@@ -53,6 +55,7 @@
        ./join/gen/gen RC  replicationcontroller 
'*corev1.ReplicationController' Pod pod > ./join/generated_rc_pod.go
        ./join/gen/gen RS  replicaset '*extv1beta1.ReplicaSet' Pod pod > 
./join/generated_rs_pod.go
        ./join/gen/gen Deployment deployment '*extv1beta1.Deployment' Pod pod > 
./join/generated_deployment_pod.go
+       ./join/gen/gen Job job '*batchv1.Job' Pod pod > 
./join/generated_job_pod.go
        ./join/gen/gen DaemonSet daemonset '*extv1beta1.DaemonSet' Pod pod > 
./join/generated_daemonset_pod.go
        ./join/gen/gen Ingress ingress '*extv1beta1.Ingress' Service service > 
./join/generated_ingress_service.go
        $(GO) build ./join
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/join/fiximport.go 
new/vendor/github.com/boz/kcache/join/fiximport.go
--- old/vendor/github.com/boz/kcache/join/fiximport.go  2019-10-29 
11:53:26.467961934 +0100
+++ new/vendor/github.com/boz/kcache/join/fiximport.go  2020-01-22 
10:21:19.439212203 +0100
@@ -1,6 +1,7 @@
 package join
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/boz/kcache/join/generated_job_pod.go 
new/vendor/github.com/boz/kcache/join/generated_job_pod.go
--- old/vendor/github.com/boz/kcache/join/generated_job_pod.go  1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/boz/kcache/join/generated_job_pod.go  2020-01-22 
10:21:19.439212203 +0100
@@ -0,0 +1,57 @@
+/*
+ * AUTO GENERATED - DO NOT EDIT BY HAND
+ */
+
+package join
+
+import (
+       "context"
+
+       logutil "github.com/boz/go-logutil"
+       "github.com/boz/kcache/filter"
+       "github.com/boz/kcache/types/job"
+       "github.com/boz/kcache/types/pod"
+       batchv1 "k8s.io/api/batch/v1"
+)
+
+func JobPodsWith(ctx context.Context,
+       srcController job.Controller,
+       dstController pod.Publisher,
+       filterFn func(...*batchv1.Job) filter.ComparableFilter) 
(pod.Controller, error) {
+
+       log := logutil.FromContextOrDefault(ctx)
+
+       dst, err := dstController.CloneForFilter()
+       if err != nil {
+               return nil, err
+       }
+
+       update := func(_ *batchv1.Job) {
+               objs, err := srcController.Cache().List()
+               if err != nil {
+                       log.Err(err, "join(job,pod: cache list")
+                       return
+               }
+               dst.Refilter(filterFn(objs...))
+       }
+
+       handler := job.BuildHandler().
+               OnInitialize(func(objs []*batchv1.Job) { 
dst.Refilter(filterFn(objs...)) }).
+               OnCreate(update).
+               OnUpdate(update).
+               OnDelete(update).
+               Create()
+
+       monitor, err := job.NewMonitor(srcController, handler)
+       if err != nil {
+               dst.Close()
+               return nil, log.Err(err, "join(job,pod): monitor")
+       }
+
+       go func() {
+               <-dst.Done()
+               monitor.Close()
+       }()
+
+       return dst, nil
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/join/join.go 
new/vendor/github.com/boz/kcache/join/join.go
--- old/vendor/github.com/boz/kcache/join/join.go       2019-10-29 
11:53:26.467961934 +0100
+++ new/vendor/github.com/boz/kcache/join/join.go       2020-01-22 
10:21:19.439212203 +0100
@@ -2,10 +2,10 @@
 
 import (
        "context"
-
        "github.com/boz/kcache/types/daemonset"
        "github.com/boz/kcache/types/deployment"
        "github.com/boz/kcache/types/ingress"
+       "github.com/boz/kcache/types/job"
        "github.com/boz/kcache/types/pod"
        "github.com/boz/kcache/types/replicaset"
        "github.com/boz/kcache/types/replicationcontroller"
@@ -32,6 +32,11 @@
        return DeploymentPodsWith(ctx, src, dst, deployment.PodsFilter)
 }
 
+func JobPods(ctx context.Context,
+       src job.Controller, dst pod.Publisher) (pod.Controller, error) {
+       return JobPodsWith(ctx, src, dst, job.PodsFilter)
+}
+
 func DaemonSetPods(ctx context.Context,
        src daemonset.Controller, dst pod.Publisher) (pod.Controller, error) {
        return DaemonSetPodsWith(ctx, src, dst, daemonset.PodsFilter)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/boz/kcache/types/daemonset/fiximport.go 
new/vendor/github.com/boz/kcache/types/daemonset/fiximport.go
--- old/vendor/github.com/boz/kcache/types/daemonset/fiximport.go       
2019-10-29 11:53:26.467961934 +0100
+++ new/vendor/github.com/boz/kcache/types/daemonset/fiximport.go       
2020-01-22 10:21:19.439212203 +0100
@@ -1,6 +1,7 @@
 package daemonset
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/boz/kcache/types/deployment/fiximport.go 
new/vendor/github.com/boz/kcache/types/deployment/fiximport.go
--- old/vendor/github.com/boz/kcache/types/deployment/fiximport.go      
2019-10-29 11:53:26.467961934 +0100
+++ new/vendor/github.com/boz/kcache/types/deployment/fiximport.go      
2020-01-22 10:21:19.439212203 +0100
@@ -1,6 +1,7 @@
 package deployment
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/boz/kcache/types/ingress/fiximport.go 
new/vendor/github.com/boz/kcache/types/ingress/fiximport.go
--- old/vendor/github.com/boz/kcache/types/ingress/fiximport.go 2019-10-29 
11:53:26.467961934 +0100
+++ new/vendor/github.com/boz/kcache/types/ingress/fiximport.go 2020-01-22 
10:21:19.439212203 +0100
@@ -1,6 +1,7 @@
 package ingress
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/types/job/client.go 
new/vendor/github.com/boz/kcache/types/job/client.go
--- old/vendor/github.com/boz/kcache/types/job/client.go        1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/boz/kcache/types/job/client.go        2020-01-22 
10:21:19.439212203 +0100
@@ -0,0 +1,13 @@
+package job
+
+import (
+       "github.com/boz/kcache/client"
+       "k8s.io/client-go/kubernetes"
+)
+
+const resourceName = "jobs"
+
+func NewClient(cs kubernetes.Interface, ns string) client.Client {
+       scope := cs.BatchV1()
+       return client.ForResource(scope.RESTClient(), resourceName, ns)
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/types/job/filter.go 
new/vendor/github.com/boz/kcache/types/job/filter.go
--- old/vendor/github.com/boz/kcache/types/job/filter.go        1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/boz/kcache/types/job/filter.go        2020-01-22 
10:21:19.439212203 +0100
@@ -0,0 +1,42 @@
+package job
+
+import (
+       "sort"
+
+       "github.com/boz/kcache/filter"
+       "github.com/boz/kcache/nsname"
+       batchv1 "k8s.io/api/batch/v1"
+)
+
+func PodsFilter(sources ...*batchv1.Job) filter.ComparableFilter {
+
+       // make a copy and sort
+       srcs := make([]*batchv1.Job, len(sources))
+       copy(srcs, sources)
+
+       sort.Slice(srcs, func(i, j int) bool {
+               if srcs[i].Namespace != srcs[j].Namespace {
+                       return srcs[i].Namespace < srcs[j].Namespace
+               }
+               return srcs[i].Name < srcs[j].Name
+       })
+
+       filters := make([]filter.Filter, 0, len(srcs))
+
+       for _, svc := range srcs {
+
+               var sfilter filter.Filter
+               if sel := svc.Spec.Selector; sel != nil {
+                       sfilter = filter.LabelSelector(sel)
+               } else {
+                       sfilter = filter.Labels(svc.Spec.Template.Labels)
+               }
+
+               nsfilter := filter.NSName(nsname.New(svc.GetNamespace(), ""))
+
+               filters = append(filters, filter.And(nsfilter, sfilter))
+       }
+
+       return filter.Or(filters...)
+
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/types/job/fiximport.go 
new/vendor/github.com/boz/kcache/types/job/fiximport.go
--- old/vendor/github.com/boz/kcache/types/job/fiximport.go     1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/boz/kcache/types/job/fiximport.go     2020-01-22 
10:21:19.439212203 +0100
@@ -0,0 +1,21 @@
+package job
+
+import (
+       corev1 "k8s.io/api/core/v1"
+       extv1beta1 "k8s.io/api/extensions/v1beta1"
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+       batchv1 "k8s.io/api/batch/v1"
+)
+
+var _ metav1.Object
+var _ corev1.Pod
+var _ corev1.Secret
+var _ corev1.Service
+var _ corev1.Event
+var _ corev1.Node
+var _ corev1.ReplicationController
+var _ extv1beta1.Deployment
+var _ extv1beta1.Ingress
+var _ extv1beta1.ReplicaSet
+var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/types/job/generated.go 
new/vendor/github.com/boz/kcache/types/job/generated.go
--- old/vendor/github.com/boz/kcache/types/job/generated.go     1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/boz/kcache/types/job/generated.go     2020-01-22 
10:21:19.439212203 +0100
@@ -0,0 +1,506 @@
+// This file was automatically generated by genny.
+// Any changes will be lost if this file is regenerated.
+// see https://github.com/cheekybits/genny
+
+package job
+
+import (
+       "context"
+       "fmt"
+
+       logutil "github.com/boz/go-logutil"
+       "github.com/boz/kcache"
+       "github.com/boz/kcache/client"
+       "github.com/boz/kcache/filter"
+       batchv1 "k8s.io/api/batch/v1"
+       extv1beta1 "k8s.io/api/extensions/v1beta1"
+       metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
+       "k8s.io/client-go/kubernetes"
+)
+
+var (
+       ErrInvalidType = fmt.Errorf("invalid type")
+       adapter        = _adapter{}
+)
+
+var _ = extv1beta1.Deployment{}
+
+type Event interface {
+       Type() kcache.EventType
+       Resource() *batchv1.Job
+}
+
+type CacheReader interface {
+       Get(ns string, name string) (*batchv1.Job, error)
+       List() ([]*batchv1.Job, error)
+}
+
+type CacheController interface {
+       Cache() CacheReader
+       Ready() <-chan struct{}
+}
+
+type Subscription interface {
+       CacheController
+       Events() <-chan Event
+       Close()
+       Done() <-chan struct{}
+}
+
+type Publisher interface {
+       Subscribe() (Subscription, error)
+       SubscribeWithFilter(filter.Filter) (FilterSubscription, error)
+       SubscribeForFilter() (FilterSubscription, error)
+       Clone() (Controller, error)
+       CloneWithFilter(filter.Filter) (FilterController, error)
+       CloneForFilter() (FilterController, error)
+}
+
+type Controller interface {
+       CacheController
+       Publisher
+       Done() <-chan struct{}
+       Close()
+       Error() error
+}
+
+type FilterSubscription interface {
+       Subscription
+       Refilter(filter.Filter) error
+}
+
+type FilterController interface {
+       Controller
+       Refilter(filter.Filter) error
+}
+
+type BaseHandler interface {
+       OnCreate(*batchv1.Job)
+       OnUpdate(*batchv1.Job)
+       OnDelete(*batchv1.Job)
+}
+
+type Handler interface {
+       BaseHandler
+       OnInitialize([]*batchv1.Job)
+}
+
+type HandlerBuilder interface {
+       OnInitialize(func([]*batchv1.Job)) HandlerBuilder
+       OnCreate(func(*batchv1.Job)) HandlerBuilder
+       OnUpdate(func(*batchv1.Job)) HandlerBuilder
+       OnDelete(func(*batchv1.Job)) HandlerBuilder
+       Create() Handler
+}
+
+type UnitaryHandler interface {
+       BaseHandler
+       OnInitialize(*batchv1.Job)
+}
+
+type UnitaryHandlerBuilder interface {
+       OnInitialize(func(*batchv1.Job)) UnitaryHandlerBuilder
+       OnCreate(func(*batchv1.Job)) UnitaryHandlerBuilder
+       OnUpdate(func(*batchv1.Job)) UnitaryHandlerBuilder
+       OnDelete(func(*batchv1.Job)) UnitaryHandlerBuilder
+       Create() UnitaryHandler
+}
+
+type _adapter struct{}
+
+func (_adapter) adaptObject(obj metav1.Object) (*batchv1.Job, error) {
+       if obj, ok := obj.(*batchv1.Job); ok {
+               return obj, nil
+       }
+       return nil, ErrInvalidType
+}
+
+func (a _adapter) adaptList(objs []metav1.Object) ([]*batchv1.Job, error) {
+       var ret []*batchv1.Job
+       for _, orig := range objs {
+               adapted, err := a.adaptObject(orig)
+               if err != nil {
+                       continue
+               }
+               ret = append(ret, adapted)
+       }
+       return ret, nil
+}
+
+func newCache(parent kcache.CacheReader) CacheReader {
+       return &cache{parent}
+}
+
+type cache struct {
+       parent kcache.CacheReader
+}
+
+func (c *cache) Get(ns string, name string) (*batchv1.Job, error) {
+       obj, err := c.parent.Get(ns, name)
+       switch {
+       case err != nil:
+               return nil, err
+       case obj == nil:
+               return nil, nil
+       default:
+               return adapter.adaptObject(obj)
+       }
+}
+
+func (c *cache) List() ([]*batchv1.Job, error) {
+       objs, err := c.parent.List()
+       if err != nil {
+               return nil, err
+       }
+       return adapter.adaptList(objs)
+}
+
+type event struct {
+       etype    kcache.EventType
+       resource *batchv1.Job
+}
+
+func wrapEvent(evt kcache.Event) (Event, error) {
+       obj, err := adapter.adaptObject(evt.Resource())
+       if err != nil {
+               return nil, err
+       }
+       return event{evt.Type(), obj}, nil
+}
+
+func (e event) Type() kcache.EventType {
+       return e.etype
+}
+
+func (e event) Resource() *batchv1.Job {
+       return e.resource
+}
+
+type subscription struct {
+       parent kcache.Subscription
+       cache  CacheReader
+       outch  chan Event
+}
+
+func newSubscription(parent kcache.Subscription) *subscription {
+       s := &subscription{
+               parent: parent,
+               cache:  newCache(parent.Cache()),
+               outch:  make(chan Event, kcache.EventBufsiz),
+       }
+       go s.run()
+       return s
+}
+
+func (s *subscription) run() {
+       defer close(s.outch)
+       for pevt := range s.parent.Events() {
+               evt, err := wrapEvent(pevt)
+               if err != nil {
+                       continue
+               }
+               select {
+               case s.outch <- evt:
+               default:
+               }
+       }
+}
+
+func (s *subscription) Cache() CacheReader {
+       return s.cache
+}
+
+func (s *subscription) Ready() <-chan struct{} {
+       return s.parent.Ready()
+}
+
+func (s *subscription) Events() <-chan Event {
+       return s.outch
+}
+
+func (s *subscription) Close() {
+       s.parent.Close()
+}
+
+func (s *subscription) Done() <-chan struct{} {
+       return s.parent.Done()
+}
+
+func NewController(ctx context.Context, log logutil.Log, cs 
kubernetes.Interface, ns string) (Controller, error) {
+       client := NewClient(cs, ns)
+       return BuildController(ctx, log, client)
+}
+
+func BuildController(ctx context.Context, log logutil.Log, client 
client.Client) (Controller, error) {
+       parent, err := kcache.NewController(ctx, log, client)
+       if err != nil {
+               return nil, err
+       }
+       return newController(parent), nil
+}
+
+func newController(parent kcache.Controller) *controller {
+       return &controller{parent, newCache(parent.Cache())}
+}
+
+type controller struct {
+       parent kcache.Controller
+       cache  CacheReader
+}
+
+func (c *controller) Close() {
+       c.parent.Close()
+}
+
+func (c *controller) Ready() <-chan struct{} {
+       return c.parent.Ready()
+}
+
+func (c *controller) Done() <-chan struct{} {
+       return c.parent.Done()
+}
+
+func (c *controller) Error() error {
+       return c.parent.Error()
+}
+
+func (c *controller) Cache() CacheReader {
+       return c.cache
+}
+
+func (c *controller) Subscribe() (Subscription, error) {
+       parent, err := c.parent.Subscribe()
+       if err != nil {
+               return nil, err
+       }
+       return newSubscription(parent), nil
+}
+
+func (c *controller) SubscribeWithFilter(f filter.Filter) (FilterSubscription, 
error) {
+       parent, err := c.parent.SubscribeWithFilter(f)
+       if err != nil {
+               return nil, err
+       }
+       return newFilterSubscription(parent), nil
+}
+
+func (c *controller) SubscribeForFilter() (FilterSubscription, error) {
+       parent, err := c.parent.SubscribeForFilter()
+       if err != nil {
+               return nil, err
+       }
+       return newFilterSubscription(parent), nil
+}
+
+func (c *controller) Clone() (Controller, error) {
+       parent, err := c.parent.Clone()
+       if err != nil {
+               return nil, err
+       }
+       return newController(parent), nil
+}
+
+func (c *controller) CloneWithFilter(f filter.Filter) (FilterController, 
error) {
+       parent, err := c.parent.CloneWithFilter(f)
+       if err != nil {
+               return nil, err
+       }
+       return newFilterController(parent), nil
+}
+
+func (c *controller) CloneForFilter() (FilterController, error) {
+       parent, err := c.parent.CloneForFilter()
+       if err != nil {
+               return nil, err
+       }
+       return newFilterController(parent), nil
+}
+
+type filterController struct {
+       controller
+       filterParent kcache.FilterController
+}
+
+func newFilterController(parent kcache.FilterController) FilterController {
+       return &filterController{
+               controller:   controller{parent, newCache(parent.Cache())},
+               filterParent: parent,
+       }
+}
+
+func (c *filterController) Refilter(f filter.Filter) error {
+       return c.filterParent.Refilter(f)
+}
+
+type filterSubscription struct {
+       subscription
+       filterParent kcache.FilterSubscription
+}
+
+func newFilterSubscription(parent kcache.FilterSubscription) 
FilterSubscription {
+       return &filterSubscription{
+               subscription: *newSubscription(parent),
+               filterParent: parent,
+       }
+}
+
+func (s *filterSubscription) Refilter(f filter.Filter) error {
+       return s.filterParent.Refilter(f)
+}
+
+func NewMonitor(publisher Publisher, handler Handler) (kcache.Monitor, error) {
+       phandler := kcache.BuildHandler().
+               OnInitialize(func(objs []metav1.Object) {
+                       aobjs, _ := adapter.adaptList(objs)
+                       handler.OnInitialize(aobjs)
+               }).
+               OnCreate(func(obj metav1.Object) {
+                       aobj, _ := adapter.adaptObject(obj)
+                       handler.OnCreate(aobj)
+               }).
+               OnUpdate(func(obj metav1.Object) {
+                       aobj, _ := adapter.adaptObject(obj)
+                       handler.OnUpdate(aobj)
+               }).
+               OnDelete(func(obj metav1.Object) {
+                       aobj, _ := adapter.adaptObject(obj)
+                       handler.OnDelete(aobj)
+               }).Create()
+
+       switch obj := publisher.(type) {
+       case *controller:
+               return kcache.NewMonitor(obj.parent, phandler)
+       case *filterController:
+               return kcache.NewMonitor(obj.parent, phandler)
+       default:
+               panic(fmt.Sprintf("Invalid publisher type: %T is not a 
*controller", publisher))
+       }
+}
+
+func ToUnitary(log logutil.Log, delegate UnitaryHandler) Handler {
+       return BuildHandler().
+               OnInitialize(func(objs []*batchv1.Job) {
+                       if count := len(objs); count > 1 {
+                               log.Warnf("initialized with invalid count: %v", 
count)
+                               return
+                       }
+                       if count := len(objs); count == 0 {
+                               log.Debugf("initialized with empty result, 
ignoring")
+                               return
+                       }
+                       delegate.OnInitialize(objs[0])
+               }).
+               OnCreate(func(obj *batchv1.Job) {
+                       delegate.OnCreate(obj)
+               }).
+               OnUpdate(func(obj *batchv1.Job) {
+                       delegate.OnUpdate(obj)
+               }).
+               OnDelete(func(obj *batchv1.Job) {
+                       delegate.OnDelete(obj)
+               }).Create()
+}
+
+func BuildHandler() HandlerBuilder {
+       return &handlerBuilder{}
+}
+
+func BuildUnitaryHandler() UnitaryHandlerBuilder {
+       return &unitaryHandlerBuilder{}
+}
+
+type baseHandler struct {
+       onCreate func(*batchv1.Job)
+       onUpdate func(*batchv1.Job)
+       onDelete func(*batchv1.Job)
+}
+
+type handler struct {
+       baseHandler
+       onInitialize func([]*batchv1.Job)
+}
+type handlerBuilder handler
+
+type unitaryHandler struct {
+       baseHandler
+       onInitialize func(*batchv1.Job)
+}
+type unitaryHandlerBuilder unitaryHandler
+
+func (hb *handlerBuilder) OnInitialize(fn func([]*batchv1.Job)) HandlerBuilder 
{
+       hb.onInitialize = fn
+       return hb
+}
+
+func (hb *handlerBuilder) OnCreate(fn func(*batchv1.Job)) HandlerBuilder {
+       hb.onCreate = fn
+       return hb
+}
+
+func (hb *handlerBuilder) OnUpdate(fn func(*batchv1.Job)) HandlerBuilder {
+       hb.onUpdate = fn
+       return hb
+}
+
+func (hb *handlerBuilder) OnDelete(fn func(*batchv1.Job)) HandlerBuilder {
+       hb.onDelete = fn
+       return hb
+}
+
+func (hb *handlerBuilder) Create() Handler {
+       return handler(*hb)
+}
+
+func (h handler) OnInitialize(objs []*batchv1.Job) {
+       if h.onInitialize != nil {
+               h.onInitialize(objs)
+       }
+}
+
+func (hb *unitaryHandlerBuilder) OnInitialize(fn func(*batchv1.Job)) 
UnitaryHandlerBuilder {
+       hb.onInitialize = fn
+       return hb
+}
+
+func (hb *unitaryHandlerBuilder) OnCreate(fn func(*batchv1.Job)) 
UnitaryHandlerBuilder {
+       hb.onCreate = fn
+       return hb
+}
+
+func (hb *unitaryHandlerBuilder) OnUpdate(fn func(*batchv1.Job)) 
UnitaryHandlerBuilder {
+       hb.onUpdate = fn
+       return hb
+}
+
+func (hb *unitaryHandlerBuilder) OnDelete(fn func(*batchv1.Job)) 
UnitaryHandlerBuilder {
+       hb.onDelete = fn
+       return hb
+}
+
+func (hb *unitaryHandlerBuilder) Create() UnitaryHandler {
+       return unitaryHandler(*hb)
+}
+
+func (h unitaryHandler) OnInitialize(obj *batchv1.Job) {
+       if h.onInitialize != nil {
+               h.onInitialize(obj)
+       }
+}
+
+func (h baseHandler) OnCreate(obj *batchv1.Job) {
+       if h.onCreate != nil {
+               h.onCreate(obj)
+       }
+}
+
+func (h baseHandler) OnUpdate(obj *batchv1.Job) {
+       if h.onUpdate != nil {
+               h.onUpdate(obj)
+       }
+}
+
+func (h baseHandler) OnDelete(obj *batchv1.Job) {
+       if h.onDelete != nil {
+               h.onDelete(obj)
+       }
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/types/node/fiximport.go 
new/vendor/github.com/boz/kcache/types/node/fiximport.go
--- old/vendor/github.com/boz/kcache/types/node/fiximport.go    2019-10-29 
11:53:26.467961934 +0100
+++ new/vendor/github.com/boz/kcache/types/node/fiximport.go    2020-01-22 
10:21:19.439212203 +0100
@@ -1,6 +1,7 @@
 package node
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/boz/kcache/types/pod/fiximport.go 
new/vendor/github.com/boz/kcache/types/pod/fiximport.go
--- old/vendor/github.com/boz/kcache/types/pod/fiximport.go     2019-10-29 
11:53:26.467961934 +0100
+++ new/vendor/github.com/boz/kcache/types/pod/fiximport.go     2020-01-22 
10:21:19.439212203 +0100
@@ -1,6 +1,7 @@
 package pod
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/boz/kcache/types/replicaset/fiximport.go 
new/vendor/github.com/boz/kcache/types/replicaset/fiximport.go
--- old/vendor/github.com/boz/kcache/types/replicaset/fiximport.go      
2019-10-29 11:53:26.471961934 +0100
+++ new/vendor/github.com/boz/kcache/types/replicaset/fiximport.go      
2020-01-22 10:21:19.439212203 +0100
@@ -1,6 +1,7 @@
 package replicaset
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/boz/kcache/types/replicationcontroller/fiximport.go 
new/vendor/github.com/boz/kcache/types/replicationcontroller/fiximport.go
--- old/vendor/github.com/boz/kcache/types/replicationcontroller/fiximport.go   
2019-10-29 11:53:26.471961934 +0100
+++ new/vendor/github.com/boz/kcache/types/replicationcontroller/fiximport.go   
2020-01-22 10:21:19.439212203 +0100
@@ -1,6 +1,7 @@
 package replicationcontroller
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/boz/kcache/types/service/fiximport.go 
new/vendor/github.com/boz/kcache/types/service/fiximport.go
--- old/vendor/github.com/boz/kcache/types/service/fiximport.go 2019-10-29 
11:53:26.471961934 +0100
+++ new/vendor/github.com/boz/kcache/types/service/fiximport.go 2020-01-22 
10:21:19.443212216 +0100
@@ -1,6 +1,7 @@
 package service
 
 import (
+       batchv1 "k8s.io/api/batch/v1"
        corev1 "k8s.io/api/core/v1"
        extv1beta1 "k8s.io/api/extensions/v1beta1"
        metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -17,3 +18,4 @@
 var _ extv1beta1.Ingress
 var _ extv1beta1.ReplicaSet
 var _ extv1beta1.DaemonSet
+var _ batchv1.Job
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2019-10-29 11:53:26.667961928 +0100
+++ new/vendor/modules.txt      2020-01-22 10:21:19.555212562 +0100
@@ -56,7 +56,7 @@
 # github.com/boz/go-logutil v0.1.0
 github.com/boz/go-logutil
 github.com/boz/go-logutil/logrus
-# github.com/boz/kcache v0.2.0
+# github.com/boz/kcache v0.3.0
 github.com/boz/kcache
 github.com/boz/kcache/filter
 github.com/boz/kcache/join
@@ -64,6 +64,7 @@
 github.com/boz/kcache/types/daemonset
 github.com/boz/kcache/types/deployment
 github.com/boz/kcache/types/ingress
+github.com/boz/kcache/types/job
 github.com/boz/kcache/types/node
 github.com/boz/kcache/types/pod
 github.com/boz/kcache/types/replicaset
@@ -231,6 +232,7 @@
 gopkg.in/yaml.v2
 # k8s.io/api v0.0.0-20190515023547-db5a9d1c40eb
 k8s.io/api/core/v1
+k8s.io/api/batch/v1
 k8s.io/api/extensions/v1beta1
 k8s.io/api/authentication/v1
 k8s.io/api/autoscaling/v1
@@ -245,7 +247,6 @@
 k8s.io/api/authorization/v1beta1
 k8s.io/api/autoscaling/v2beta1
 k8s.io/api/autoscaling/v2beta2
-k8s.io/api/batch/v1
 k8s.io/api/batch/v1beta1
 k8s.io/api/batch/v2alpha1
 k8s.io/api/certificates/v1beta1


Reply via email to