func (j *Job) HasChanged(k K8sResource) bool {
	return true
}
HasChanged returns true if the resource's dump needs to be updated
package k8sresources
import (
	"fmt"
	"github.com/golang/glog"
	batchv1 "k8s.io/api/batch/v1"
	"kubectlfzf/pkg/util"
)
const JobHeader = "Cluster Namespace Name Completions Containers Age Labels\n"
type Job struct {
	ResourceMeta
	completions string
	containers  []string
}
func NewJobFromRuntime(obj interface{}, config CtorConfig) K8sResource {
	j := &Job{}
	j.FromRuntime(obj, config)
	return j
}
func (j *Job) FromRuntime(obj interface{}, config CtorConfig) {
	job := obj.(*batchv1.Job)
	glog.V(19).Infof("Reading meta %#v", job)
	j.FromObjectMeta(job.ObjectMeta, config)
	j.completions = "-"
	if job.Spec.Completions != nil {
		desired := int(*job.Spec.Completions)
		successful := int(job.Status.Succeeded)
		j.completions = fmt.Sprintf("%d/%d", successful, desired)
	}
	spec := job.Spec.Template.Spec
	containers := spec.Containers
	containers = append(containers, spec.InitContainers...)
	j.containers = make([]string, len(containers))
	for k, v := range containers {
		j.containers[k] = v.Name
	}
}