2014-08-27 00:28:36 +00:00
|
|
|
/*
|
|
|
|
Copyright 2014 Google Inc. All rights reserved.
|
|
|
|
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
you may not use this file except in compliance with the License.
|
|
|
|
You may obtain a copy of the License at
|
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
See the License for the specific language governing permissions and
|
|
|
|
limitations under the License.
|
|
|
|
*/
|
|
|
|
|
2014-08-29 19:15:30 +00:00
|
|
|
package v1beta1
|
2014-08-27 00:28:36 +00:00
|
|
|
|
|
|
|
import (
|
2014-11-05 15:22:54 +00:00
|
|
|
"errors"
|
2014-10-07 20:51:28 +00:00
|
|
|
"strconv"
|
|
|
|
|
2014-08-29 19:15:30 +00:00
|
|
|
newer "github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
2014-09-05 23:02:39 +00:00
|
|
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/conversion"
|
2014-08-27 00:28:36 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
func init() {
|
2014-09-11 17:02:53 +00:00
|
|
|
newer.Scheme.AddConversionFuncs(
|
2014-10-23 20:53:58 +00:00
|
|
|
// TypeMeta must be split into two objects
|
2014-10-07 20:51:28 +00:00
|
|
|
func(in *newer.TypeMeta, out *TypeMeta, s conversion.Scope) error {
|
2014-10-23 20:53:58 +00:00
|
|
|
out.Kind = in.Kind
|
2014-10-07 20:51:28 +00:00
|
|
|
out.APIVersion = in.APIVersion
|
2014-10-23 20:53:58 +00:00
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *TypeMeta, out *newer.TypeMeta, s conversion.Scope) error {
|
2014-10-07 20:51:28 +00:00
|
|
|
out.Kind = in.Kind
|
2014-10-23 20:53:58 +00:00
|
|
|
out.APIVersion = in.APIVersion
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
// ListMeta must be converted to TypeMeta
|
|
|
|
func(in *newer.ListMeta, out *TypeMeta, s conversion.Scope) error {
|
|
|
|
out.SelfLink = in.SelfLink
|
|
|
|
if len(in.ResourceVersion) > 0 {
|
|
|
|
v, err := strconv.ParseUint(in.ResourceVersion, 10, 64)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
out.ResourceVersion = v
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *TypeMeta, out *newer.ListMeta, s conversion.Scope) error {
|
|
|
|
out.SelfLink = in.SelfLink
|
|
|
|
if in.ResourceVersion != 0 {
|
|
|
|
out.ResourceVersion = strconv.FormatUint(in.ResourceVersion, 10)
|
|
|
|
} else {
|
|
|
|
out.ResourceVersion = ""
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
// ObjectMeta must be converted to TypeMeta
|
|
|
|
func(in *newer.ObjectMeta, out *TypeMeta, s conversion.Scope) error {
|
2014-10-07 20:51:28 +00:00
|
|
|
out.Namespace = in.Namespace
|
2014-10-22 17:02:02 +00:00
|
|
|
out.ID = in.Name
|
2014-10-23 20:53:58 +00:00
|
|
|
out.UID = in.UID
|
2014-10-07 20:51:28 +00:00
|
|
|
out.CreationTimestamp = in.CreationTimestamp
|
|
|
|
out.SelfLink = in.SelfLink
|
|
|
|
if len(in.ResourceVersion) > 0 {
|
|
|
|
v, err := strconv.ParseUint(in.ResourceVersion, 10, 64)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
out.ResourceVersion = v
|
|
|
|
}
|
2014-10-23 20:53:58 +00:00
|
|
|
return s.Convert(&in.Annotations, &out.Annotations, 0)
|
2014-10-07 20:51:28 +00:00
|
|
|
},
|
2014-10-23 20:53:58 +00:00
|
|
|
func(in *TypeMeta, out *newer.ObjectMeta, s conversion.Scope) error {
|
2014-10-07 20:51:28 +00:00
|
|
|
out.Namespace = in.Namespace
|
2014-10-22 17:02:02 +00:00
|
|
|
out.Name = in.ID
|
2014-10-23 20:53:58 +00:00
|
|
|
out.UID = in.UID
|
2014-10-07 20:51:28 +00:00
|
|
|
out.CreationTimestamp = in.CreationTimestamp
|
|
|
|
out.SelfLink = in.SelfLink
|
|
|
|
if in.ResourceVersion != 0 {
|
|
|
|
out.ResourceVersion = strconv.FormatUint(in.ResourceVersion, 10)
|
2014-10-23 20:53:58 +00:00
|
|
|
} else {
|
|
|
|
out.ResourceVersion = ""
|
2014-10-07 20:51:28 +00:00
|
|
|
}
|
2014-10-23 20:53:58 +00:00
|
|
|
return s.Convert(&in.Annotations, &out.Annotations, 0)
|
2014-10-07 20:51:28 +00:00
|
|
|
},
|
|
|
|
|
2014-08-27 00:28:36 +00:00
|
|
|
// EnvVar's Key is deprecated in favor of Name.
|
2014-09-05 23:02:39 +00:00
|
|
|
func(in *newer.EnvVar, out *EnvVar, s conversion.Scope) error {
|
2014-08-27 00:28:36 +00:00
|
|
|
out.Value = in.Value
|
|
|
|
out.Key = in.Name
|
|
|
|
out.Name = in.Name
|
|
|
|
return nil
|
|
|
|
},
|
2014-09-05 23:02:39 +00:00
|
|
|
func(in *EnvVar, out *newer.EnvVar, s conversion.Scope) error {
|
2014-08-27 00:28:36 +00:00
|
|
|
out.Value = in.Value
|
|
|
|
if in.Name != "" {
|
|
|
|
out.Name = in.Name
|
|
|
|
} else {
|
|
|
|
out.Name = in.Key
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
// Path & MountType are deprecated.
|
2014-09-05 23:02:39 +00:00
|
|
|
func(in *newer.VolumeMount, out *VolumeMount, s conversion.Scope) error {
|
2014-08-27 00:28:36 +00:00
|
|
|
out.Name = in.Name
|
|
|
|
out.ReadOnly = in.ReadOnly
|
|
|
|
out.MountPath = in.MountPath
|
|
|
|
out.Path = in.MountPath
|
|
|
|
out.MountType = "" // MountType is ignored.
|
|
|
|
return nil
|
|
|
|
},
|
2014-09-05 23:02:39 +00:00
|
|
|
func(in *VolumeMount, out *newer.VolumeMount, s conversion.Scope) error {
|
2014-08-27 00:28:36 +00:00
|
|
|
out.Name = in.Name
|
|
|
|
out.ReadOnly = in.ReadOnly
|
|
|
|
if in.MountPath == "" {
|
|
|
|
out.MountPath = in.Path
|
|
|
|
} else {
|
|
|
|
out.MountPath = in.MountPath
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
2014-08-29 02:39:42 +00:00
|
|
|
|
|
|
|
// MinionList.Items had a wrong name in v1beta1
|
2014-09-05 23:02:39 +00:00
|
|
|
func(in *newer.MinionList, out *MinionList, s conversion.Scope) error {
|
2014-10-23 20:53:58 +00:00
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Items, &out.Items, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-08-29 02:39:42 +00:00
|
|
|
out.Minions = out.Items
|
|
|
|
return nil
|
|
|
|
},
|
2014-09-05 23:02:39 +00:00
|
|
|
func(in *MinionList, out *newer.MinionList, s conversion.Scope) error {
|
2014-10-23 20:53:58 +00:00
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-08-29 02:39:42 +00:00
|
|
|
if len(in.Items) == 0 {
|
2014-10-23 20:53:58 +00:00
|
|
|
if err := s.Convert(&in.Minions, &out.Items, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-08-29 02:39:42 +00:00
|
|
|
} else {
|
2014-10-23 20:53:58 +00:00
|
|
|
if err := s.Convert(&in.Items, &out.Items, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-08-29 02:39:42 +00:00
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
2014-08-27 00:28:36 +00:00
|
|
|
|
2014-11-13 15:52:13 +00:00
|
|
|
func(in *newer.PodStatus, out *PodState, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.Condition, &out.Status, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Info, &out.Info, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
out.Host = in.Host
|
|
|
|
out.HostIP = in.HostIP
|
|
|
|
out.PodIP = in.PodIP
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *PodState, out *newer.PodStatus, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.Status, &out.Condition, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Info, &out.Info, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
out.Host = in.Host
|
|
|
|
out.HostIP = in.HostIP
|
|
|
|
out.PodIP = in.PodIP
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
2014-11-05 15:22:54 +00:00
|
|
|
// Convert all to the new PodCondition constants
|
|
|
|
func(in *newer.PodCondition, out *PodStatus, s conversion.Scope) error {
|
|
|
|
switch *in {
|
|
|
|
case "":
|
|
|
|
*out = ""
|
|
|
|
case newer.PodPending:
|
|
|
|
*out = PodWaiting
|
|
|
|
case newer.PodRunning:
|
|
|
|
*out = PodRunning
|
|
|
|
case newer.PodSucceeded:
|
|
|
|
*out = PodTerminated
|
|
|
|
case newer.PodFailed:
|
|
|
|
*out = PodTerminated
|
|
|
|
default:
|
|
|
|
return errors.New("The string provided is not a valid PodCondition constant value")
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *PodStatus, out *newer.PodCondition, s conversion.Scope) error {
|
|
|
|
switch *in {
|
|
|
|
case "":
|
|
|
|
*out = ""
|
|
|
|
case PodWaiting:
|
|
|
|
*out = newer.PodPending
|
|
|
|
case PodRunning:
|
|
|
|
*out = newer.PodRunning
|
|
|
|
case PodTerminated:
|
2014-11-13 15:52:13 +00:00
|
|
|
// Older API versions did not contain enough info to map to PodSucceeded
|
2014-11-05 15:22:54 +00:00
|
|
|
*out = newer.PodFailed
|
|
|
|
default:
|
|
|
|
return errors.New("The string provided is not a valid PodCondition constant value")
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
2014-10-23 20:53:58 +00:00
|
|
|
// Convert all the standard objects
|
|
|
|
func(in *newer.Pod, out *Pod, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-11-13 15:52:13 +00:00
|
|
|
if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-11-13 15:52:13 +00:00
|
|
|
if err := s.Convert(&in.Status, &out.CurrentState, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-11-13 15:52:13 +00:00
|
|
|
if err := s.Convert(&in.Spec.NodeSelector, &out.NodeSelector, 0); err != nil {
|
2014-10-22 00:13:52 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-10-23 20:53:58 +00:00
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *Pod, out *newer.Pod, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-11-13 15:52:13 +00:00
|
|
|
if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-11-13 15:52:13 +00:00
|
|
|
if err := s.Convert(&in.CurrentState, &out.Status, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-11-13 15:52:13 +00:00
|
|
|
if err := s.Convert(&in.NodeSelector, &out.Spec.NodeSelector, 0); err != nil {
|
2014-10-22 00:13:52 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-10-23 20:53:58 +00:00
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.ReplicationController, out *ReplicationController, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2014-11-07 02:07:24 +00:00
|
|
|
if err := s.Convert(&in.Spec, &out.DesiredState, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-11-07 02:07:24 +00:00
|
|
|
out.CurrentState.Replicas = in.Status.Replicas
|
2014-10-23 20:53:58 +00:00
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *ReplicationController, out *newer.ReplicationController, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2014-11-07 02:07:24 +00:00
|
|
|
if err := s.Convert(&in.DesiredState, &out.Spec, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-11-07 02:07:24 +00:00
|
|
|
out.Status.Replicas = in.CurrentState.Replicas
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.ReplicationControllerSpec, out *ReplicationControllerState, s conversion.Scope) error {
|
|
|
|
out.Replicas = in.Replicas
|
|
|
|
if err := s.Convert(&in.Selector, &out.ReplicaSelector, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if in.TemplateRef != nil && in.Template == nil {
|
|
|
|
return errors.New("objects with a template ref cannot be converted to older objects, must populate template")
|
|
|
|
}
|
|
|
|
if in.Template != nil {
|
|
|
|
if err := s.Convert(in.Template, &out.PodTemplate, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *ReplicationControllerState, out *newer.ReplicationControllerSpec, s conversion.Scope) error {
|
|
|
|
out.Replicas = in.Replicas
|
|
|
|
if err := s.Convert(&in.ReplicaSelector, &out.Selector, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
out.Template = &newer.PodTemplateSpec{}
|
|
|
|
if err := s.Convert(&in.PodTemplate, out.Template, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.PodTemplateSpec, out *PodTemplate, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.Spec, &out.DesiredState.Manifest, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *PodTemplate, out *newer.PodTemplateSpec, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.DesiredState.Manifest, &out.Spec, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Labels, &out.ObjectMeta.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
2014-11-13 15:52:13 +00:00
|
|
|
func(in *newer.PodSpec, out *BoundPod, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in, &out.Spec, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *BoundPod, out *newer.PodSpec, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.Spec, &out, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
2014-11-07 02:07:24 +00:00
|
|
|
func(in *newer.PodSpec, out *ContainerManifest, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.Volumes, &out.Volumes, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Containers, &out.Containers, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.RestartPolicy, &out.RestartPolicy, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
out.Version = "v1beta2"
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *ContainerManifest, out *newer.PodSpec, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.Volumes, &out.Volumes, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Containers, &out.Containers, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.RestartPolicy, &out.RestartPolicy, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.Service, out *Service, s conversion.Scope) error {
|
2014-10-30 13:29:11 +00:00
|
|
|
|
2014-10-23 20:53:58 +00:00
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2014-10-30 13:29:11 +00:00
|
|
|
out.Port = in.Spec.Port
|
|
|
|
out.Protocol = Protocol(in.Spec.Protocol)
|
|
|
|
if err := s.Convert(&in.Spec.Selector, &out.Selector, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-10-30 13:29:11 +00:00
|
|
|
out.CreateExternalLoadBalancer = in.Spec.CreateExternalLoadBalancer
|
2014-11-12 04:08:33 +00:00
|
|
|
out.PublicIPs = in.Spec.PublicIPs
|
2014-10-30 13:29:11 +00:00
|
|
|
out.ContainerPort = in.Spec.ContainerPort
|
|
|
|
out.PortalIP = in.Spec.PortalIP
|
|
|
|
out.ProxyPort = in.Spec.ProxyPort
|
2014-10-23 20:53:58 +00:00
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *Service, out *newer.Service, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
2014-10-30 13:29:11 +00:00
|
|
|
out.Spec.Port = in.Port
|
|
|
|
out.Spec.Protocol = newer.Protocol(in.Protocol)
|
|
|
|
if err := s.Convert(&in.Selector, &out.Spec.Selector, 0); err != nil {
|
2014-10-23 20:53:58 +00:00
|
|
|
return err
|
|
|
|
}
|
2014-10-30 13:29:11 +00:00
|
|
|
out.Spec.CreateExternalLoadBalancer = in.CreateExternalLoadBalancer
|
2014-11-12 04:08:33 +00:00
|
|
|
out.Spec.PublicIPs = in.PublicIPs
|
2014-10-30 13:29:11 +00:00
|
|
|
out.Spec.ContainerPort = in.ContainerPort
|
|
|
|
out.Spec.PortalIP = in.PortalIP
|
|
|
|
out.Spec.ProxyPort = in.ProxyPort
|
2014-10-23 20:53:58 +00:00
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.Binding, out *Binding, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
out.PodID = in.PodID
|
|
|
|
out.Host = in.Host
|
|
|
|
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *Binding, out *newer.Binding, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
out.PodID = in.PodID
|
|
|
|
out.Host = in.Host
|
|
|
|
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.Status, out *Status, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
out.Code = in.Code
|
|
|
|
out.Message = in.Message
|
|
|
|
out.Reason = StatusReason(in.Reason)
|
|
|
|
out.Status = in.Status
|
|
|
|
return s.Convert(&in.Details, &out.Details, 0)
|
|
|
|
},
|
|
|
|
func(in *Status, out *newer.Status, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
out.Code = in.Code
|
|
|
|
out.Message = in.Message
|
|
|
|
out.Reason = newer.StatusReason(in.Reason)
|
|
|
|
out.Status = in.Status
|
|
|
|
return s.Convert(&in.Details, &out.Details, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.Minion, out *Minion, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-10-22 00:13:52 +00:00
|
|
|
if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-10-23 20:53:58 +00:00
|
|
|
|
|
|
|
out.HostIP = in.HostIP
|
|
|
|
return s.Convert(&in.NodeResources, &out.NodeResources, 0)
|
|
|
|
},
|
|
|
|
func(in *Minion, out *newer.Minion, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-10-22 00:13:52 +00:00
|
|
|
if err := s.Convert(&in.Labels, &out.Labels, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
2014-10-23 20:53:58 +00:00
|
|
|
|
|
|
|
out.HostIP = in.HostIP
|
|
|
|
return s.Convert(&in.NodeResources, &out.NodeResources, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.BoundPod, out *BoundPod, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return s.Convert(&in.Spec, &out.Spec, 0)
|
|
|
|
},
|
|
|
|
func(in *BoundPod, out *newer.BoundPod, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return s.Convert(&in.Spec, &out.Spec, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.BoundPods, out *BoundPods, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
out.Host = in.Host
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
func(in *BoundPods, out *newer.BoundPods, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
out.Host = in.Host
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.Endpoints, out *Endpoints, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return s.Convert(&in.Endpoints, &out.Endpoints, 0)
|
|
|
|
},
|
|
|
|
func(in *Endpoints, out *newer.Endpoints, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
return s.Convert(&in.Endpoints, &out.Endpoints, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.ServerOp, out *ServerOp, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *ServerOp, out *newer.ServerOp, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.Event, out *Event, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ObjectMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
out.Message = in.Message
|
|
|
|
out.Reason = in.Reason
|
|
|
|
out.Source = in.Source
|
|
|
|
out.Status = in.Status
|
|
|
|
out.Timestamp = in.Timestamp
|
|
|
|
return s.Convert(&in.InvolvedObject, &out.InvolvedObject, 0)
|
|
|
|
},
|
|
|
|
func(in *Event, out *newer.Event, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ObjectMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
out.Message = in.Message
|
|
|
|
out.Reason = in.Reason
|
|
|
|
out.Source = in.Source
|
|
|
|
out.Status = in.Status
|
|
|
|
out.Timestamp = in.Timestamp
|
|
|
|
return s.Convert(&in.InvolvedObject, &out.InvolvedObject, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
// Convert all the standard lists
|
|
|
|
func(in *newer.PodList, out *PodList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
func(in *PodList, out *newer.PodList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.ReplicationControllerList, out *ReplicationControllerList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
func(in *ReplicationControllerList, out *newer.ReplicationControllerList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.ServiceList, out *ServiceList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
func(in *ServiceList, out *newer.ServiceList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.EndpointsList, out *EndpointsList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
func(in *EndpointsList, out *newer.EndpointsList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.EventList, out *EventList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
func(in *EventList, out *newer.EventList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.ServerOpList, out *ServerOpList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
func(in *ServerOpList, out *newer.ServerOpList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
|
|
|
|
func(in *newer.ContainerManifestList, out *ContainerManifestList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.ListMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
|
|
|
func(in *ContainerManifestList, out *newer.ContainerManifestList, s conversion.Scope) error {
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if err := s.Convert(&in.TypeMeta, &out.ListMeta, 0); err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
return s.Convert(&in.Items, &out.Items, 0)
|
|
|
|
},
|
2014-10-29 22:13:44 +00:00
|
|
|
|
|
|
|
// Object ID <-> Name
|
|
|
|
// TODO: amend the conversion package to allow overriding specific fields.
|
|
|
|
func(in *ObjectReference, out *newer.ObjectReference, s conversion.Scope) error {
|
|
|
|
out.Kind = in.Kind
|
|
|
|
out.Namespace = in.Namespace
|
|
|
|
out.Name = in.ID
|
|
|
|
out.UID = in.UID
|
|
|
|
out.APIVersion = in.APIVersion
|
|
|
|
out.ResourceVersion = in.ResourceVersion
|
|
|
|
out.FieldPath = in.FieldPath
|
|
|
|
return nil
|
|
|
|
},
|
|
|
|
func(in *newer.ObjectReference, out *ObjectReference, s conversion.Scope) error {
|
|
|
|
out.ID = in.Name
|
|
|
|
out.Kind = in.Kind
|
|
|
|
out.Namespace = in.Namespace
|
|
|
|
out.ID = in.Name
|
|
|
|
out.UID = in.UID
|
|
|
|
out.APIVersion = in.APIVersion
|
|
|
|
out.ResourceVersion = in.ResourceVersion
|
|
|
|
out.FieldPath = in.FieldPath
|
|
|
|
return nil
|
|
|
|
},
|
2014-10-23 20:53:58 +00:00
|
|
|
)
|
2014-08-27 00:28:36 +00:00
|
|
|
}
|