service/jenkins/types.go (112 lines of code) (raw):
package jenkins
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime"
"time"
)
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +k8s:openapi-gen=true
// +kubebuilder:subresource:status
type JenkinsJobBuildRun struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec JenkinsJobBuildRunSpec `json:"spec,omitempty"`
Status JenkinsJobBuildRunStatus `json:"status,omitempty"`
}
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
type JenkinsJobBuildRunList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []JenkinsJobBuildRun `json:"items"`
}
// +k8s:openapi-gen=true
type JenkinsJobBuildRunSpec struct {
JobPath string `json:"jobpath"`
Params map[string]string `json:"params"`
Retry int `json:"retry"`
OwnerName *string `json:"ownerName,omitempty"`
DeleteAfterCompletionInterval *string `json:"deleteAfterCompletionInterval,omitempty"`
}
func (in *JenkinsJobBuildRun) GetDeleteAfterCompletionInterval() time.Duration {
if in.Spec.DeleteAfterCompletionInterval == nil {
return time.Hour
}
dur, err := time.ParseDuration(*in.Spec.DeleteAfterCompletionInterval)
if err != nil {
return time.Hour
}
return dur
}
// +k8s:openapi-gen=true
type JenkinsJobBuildRunStatus struct {
Status string `json:"status"`
Launches int `json:"launches"`
BuildNumber int64 `json:"buildNumber"`
LastUpdated time.Time `json:"lastUpdated"`
}
func (in *JenkinsJobBuildRunList) DeepCopyInto(out *JenkinsJobBuildRunList) {
*out = *in
out.TypeMeta = in.TypeMeta
out.ListMeta = in.ListMeta
if in.Items != nil {
in, out := &in.Items, &out.Items
*out = make([]JenkinsJobBuildRun, len(*in))
for i := range *in {
(*in)[i].DeepCopyInto(&(*out)[i])
}
}
return
}
func (in *JenkinsJobBuildRunList) DeepCopy() *JenkinsJobBuildRunList {
if in == nil {
return nil
}
out := new(JenkinsJobBuildRunList)
in.DeepCopyInto(out)
return out
}
func (in *JenkinsJobBuildRunList) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
func (in *JenkinsJobBuildRun) DeepCopyObject() runtime.Object {
if c := in.DeepCopy(); c != nil {
return c
}
return nil
}
func (in *JenkinsJobBuildRun) DeepCopyInto(out *JenkinsJobBuildRun) {
*out = *in
out.TypeMeta = in.TypeMeta
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
in.Spec.DeepCopyInto(&out.Spec)
in.Status.DeepCopyInto(&out.Status)
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new JenkinsJob.
func (in *JenkinsJobBuildRun) DeepCopy() *JenkinsJobBuildRun {
if in == nil {
return nil
}
out := new(JenkinsJobBuildRun)
in.DeepCopyInto(out)
return out
}
func (in *JenkinsJobBuildRunStatus) DeepCopyInto(out *JenkinsJobBuildRunStatus) {
*out = *in
}
func (in *JenkinsJobBuildRunStatus) DeepCopy() *JenkinsJobBuildRunStatus {
if in == nil {
return nil
}
out := new(JenkinsJobBuildRunStatus)
in.DeepCopyInto(out)
return out
}
func (in *JenkinsJobBuildRunSpec) DeepCopyInto(out *JenkinsJobBuildRunSpec) {
*out = *in
return
}
func (in *JenkinsJobBuildRunSpec) DeepCopy() *JenkinsJobBuildRunSpec {
if in == nil {
return nil
}
out := new(JenkinsJobBuildRunSpec)
in.DeepCopyInto(out)
return out
}