mirror of https://github.com/k3s-io/k3s
Pass addressable values to DeepCopy
parent
8f11cc78a8
commit
6819706adf
|
@ -28,7 +28,6 @@ go_library(
|
|||
"//pkg/client/clientset_generated/release_1_5:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/types:go_default_library",
|
||||
"//pkg/util/flowcontrol:go_default_library",
|
||||
|
|
|
@ -34,7 +34,6 @@ import (
|
|||
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
pkgruntime "k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||
|
@ -350,7 +349,7 @@ func (daemonsetcontroller *DaemonSetController) reconcileDaemonSet(namespace str
|
|||
// Not federated daemonset, ignoring.
|
||||
return
|
||||
}
|
||||
baseDaemonSetObj, err := conversion.NewCloner().DeepCopy(baseDaemonSetObjFromStore)
|
||||
baseDaemonSetObj, err := api.Scheme.DeepCopy(baseDaemonSetObjFromStore)
|
||||
baseDaemonSet, ok := baseDaemonSetObj.(*extensionsv1.DaemonSet)
|
||||
if err != nil || !ok {
|
||||
glog.Errorf("Error in retrieving obj %s from store: %v, %v", daemonsetName, ok, err)
|
||||
|
@ -400,7 +399,7 @@ func (daemonsetcontroller *DaemonSetController) reconcileDaemonSet(namespace str
|
|||
// Do not modify. Otherwise make a deep copy.
|
||||
desiredDaemonSet := &extensionsv1.DaemonSet{
|
||||
ObjectMeta: util.DeepCopyRelevantObjectMeta(baseDaemonSet.ObjectMeta),
|
||||
Spec: util.DeepCopyApiTypeOrPanic(baseDaemonSet.Spec).(extensionsv1.DaemonSetSpec),
|
||||
Spec: *(util.DeepCopyApiTypeOrPanic(&baseDaemonSet.Spec).(*extensionsv1.DaemonSetSpec)),
|
||||
}
|
||||
|
||||
if !found {
|
||||
|
|
|
@ -31,7 +31,6 @@ go_library(
|
|||
"//pkg/client/clientset_generated/release_1_5:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/util/flowcontrol:go_default_library",
|
||||
"//pkg/util/wait:go_default_library",
|
||||
|
|
|
@ -41,7 +41,6 @@ import (
|
|||
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||
"k8s.io/kubernetes/pkg/util/wait"
|
||||
|
@ -484,7 +483,7 @@ func (fdc *DeploymentController) reconcileDeployment(key string) (reconciliation
|
|||
// don't delete local deployments for now. Do not reconcile it anymore.
|
||||
return statusAllOk, nil
|
||||
}
|
||||
obj, err := conversion.NewCloner().DeepCopy(objFromStore)
|
||||
obj, err := api.Scheme.DeepCopy(objFromStore)
|
||||
fd, ok := obj.(*extensionsv1.Deployment)
|
||||
if err != nil || !ok {
|
||||
glog.Errorf("Error in retrieving obj from store: %v, %v", ok, err)
|
||||
|
|
|
@ -28,7 +28,6 @@ go_library(
|
|||
"//pkg/client/clientset_generated/release_1_5:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/runtime/schema:go_default_library",
|
||||
"//pkg/types:go_default_library",
|
||||
|
|
|
@ -34,7 +34,6 @@ import (
|
|||
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
pkgruntime "k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
|
@ -621,7 +620,7 @@ func (ic *IngressController) getMasterCluster() (master *federationapi.Cluster,
|
|||
*/
|
||||
func (ic *IngressController) updateClusterIngressUIDToMasters(cluster *federationapi.Cluster, fallbackUID string) {
|
||||
masterCluster, masterUID, err := ic.getMasterCluster()
|
||||
clusterObj, clusterErr := conversion.NewCloner().DeepCopy(cluster) // Make a clone so that we don't clobber our input param
|
||||
clusterObj, clusterErr := api.Scheme.DeepCopy(cluster) // Make a clone so that we don't clobber our input param
|
||||
cluster, ok := clusterObj.(*federationapi.Cluster)
|
||||
if clusterErr != nil || !ok {
|
||||
glog.Errorf("Internal error: Failed clone cluster resource while attempting to add master ingress UID annotation (%q = %q) from master cluster %q to cluster %q, will try again later: %v", uidAnnotationKey, masterUID, masterCluster.Name, cluster.Name, err)
|
||||
|
@ -704,7 +703,7 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) {
|
|||
glog.V(4).Infof("Ingress %q is not federated. Ignoring.", ingress)
|
||||
return
|
||||
}
|
||||
baseIngressObj, err := conversion.NewCloner().DeepCopy(baseIngressObjFromStore)
|
||||
baseIngressObj, err := api.Scheme.DeepCopy(baseIngressObjFromStore)
|
||||
baseIngress, ok := baseIngressObj.(*extensionsv1beta1.Ingress)
|
||||
if err != nil || !ok {
|
||||
glog.Errorf("Internal Error %v : Object retrieved from ingressInformerStore with key %q is not of correct type *extensionsv1beta1.Ingress: %v", err, key, baseIngressObj)
|
||||
|
@ -757,22 +756,24 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) {
|
|||
return
|
||||
}
|
||||
desiredIngress := &extensionsv1beta1.Ingress{}
|
||||
objMeta, err := conversion.NewCloner().DeepCopy(baseIngress.ObjectMeta)
|
||||
objMeta, err := api.Scheme.DeepCopy(&baseIngress.ObjectMeta)
|
||||
if err != nil {
|
||||
glog.Errorf("Error deep copying ObjectMeta: %v", err)
|
||||
}
|
||||
objSpec, err := conversion.NewCloner().DeepCopy(baseIngress.Spec)
|
||||
objSpec, err := api.Scheme.DeepCopy(&baseIngress.Spec)
|
||||
if err != nil {
|
||||
glog.Errorf("Error deep copying Spec: %v", err)
|
||||
}
|
||||
desiredIngress.ObjectMeta, ok = objMeta.(v1.ObjectMeta)
|
||||
objMetaCopy, ok := objMeta.(*v1.ObjectMeta)
|
||||
if !ok {
|
||||
glog.Errorf("Internal error: Failed to cast to v1.ObjectMeta: %v", objMeta)
|
||||
glog.Errorf("Internal error: Failed to cast to *v1.ObjectMeta: %v", objMeta)
|
||||
}
|
||||
desiredIngress.Spec = objSpec.(extensionsv1beta1.IngressSpec)
|
||||
desiredIngress.ObjectMeta = *objMetaCopy
|
||||
objSpecCopy, ok := objSpec.(*extensionsv1beta1.IngressSpec)
|
||||
if !ok {
|
||||
glog.Errorf("Internal error: Failed to cast to extensionsv1beta1.Ingressespec: %v", objSpec)
|
||||
}
|
||||
desiredIngress.Spec = *objSpecCopy
|
||||
glog.V(4).Infof("Desired Ingress: %v", desiredIngress)
|
||||
|
||||
if !clusterIngressFound {
|
||||
|
@ -824,7 +825,7 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) {
|
|||
return
|
||||
}
|
||||
if !baseLBStatusExists && clusterLBStatusExists {
|
||||
lbstatusObj, lbErr := conversion.NewCloner().DeepCopy(&clusterIngress.Status.LoadBalancer)
|
||||
lbstatusObj, lbErr := api.Scheme.DeepCopy(&clusterIngress.Status.LoadBalancer)
|
||||
lbstatus, ok := lbstatusObj.(*v1.LoadBalancerStatus)
|
||||
if lbErr != nil || !ok {
|
||||
glog.Errorf("Internal error: Failed to clone LoadBalancerStatus of %q in cluster %q while attempting to update master loadbalancer ingress status, will try again later. error: %v, Object to be cloned: %v", ingress, cluster.Name, lbErr, lbstatusObj)
|
||||
|
@ -851,17 +852,17 @@ func (ic *IngressController) reconcileIngress(ingress types.NamespacedName) {
|
|||
glog.V(4).Infof("Ingress %q in cluster %q does not need an update: cluster ingress is equivalent to federated ingress", ingress, cluster.Name)
|
||||
} else {
|
||||
glog.V(4).Infof("Ingress %s in cluster %s needs an update: cluster ingress %v is not equivalent to federated ingress %v", ingress, cluster.Name, clusterIngress, desiredIngress)
|
||||
objMeta, err := conversion.NewCloner().DeepCopy(clusterIngress.ObjectMeta)
|
||||
objMeta, err := api.Scheme.DeepCopy(&clusterIngress.ObjectMeta)
|
||||
if err != nil {
|
||||
glog.Errorf("Error deep copying ObjectMeta: %v", err)
|
||||
ic.deliverIngress(ingress, ic.ingressReviewDelay, true)
|
||||
|
||||
}
|
||||
desiredIngress.ObjectMeta, ok = objMeta.(v1.ObjectMeta)
|
||||
objMetaCopy, ok := objMeta.(*v1.ObjectMeta)
|
||||
if !ok {
|
||||
glog.Errorf("Internal error: Failed to cast to v1.ObjectMeta: %v", objMeta)
|
||||
ic.deliverIngress(ingress, ic.ingressReviewDelay, true)
|
||||
}
|
||||
desiredIngress.ObjectMeta = *objMetaCopy
|
||||
// Merge any annotations and labels on the federated ingress onto the underlying cluster ingress,
|
||||
// overwriting duplicates.
|
||||
if desiredIngress.ObjectMeta.Annotations == nil {
|
||||
|
|
|
@ -27,7 +27,6 @@ go_library(
|
|||
"//pkg/client/clientset_generated/release_1_5:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/util/flowcontrol:go_default_library",
|
||||
"//pkg/watch:go_default_library",
|
||||
|
|
|
@ -32,7 +32,6 @@ import (
|
|||
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||
"k8s.io/kubernetes/pkg/watch"
|
||||
|
@ -338,7 +337,7 @@ func (nc *NamespaceController) reconcileNamespace(namespace string) {
|
|||
}
|
||||
// Create a copy before modifying the namespace to prevent race condition with
|
||||
// other readers of namespace from store.
|
||||
namespaceObj, err := conversion.NewCloner().DeepCopy(namespaceObjFromStore)
|
||||
namespaceObj, err := api.Scheme.DeepCopy(namespaceObjFromStore)
|
||||
baseNamespace, ok := namespaceObj.(*apiv1.Namespace)
|
||||
if err != nil || !ok {
|
||||
glog.Errorf("Error in retrieving obj from store: %v, %v", ok, err)
|
||||
|
@ -390,7 +389,7 @@ func (nc *NamespaceController) reconcileNamespace(namespace string) {
|
|||
// The object should not be modified.
|
||||
desiredNamespace := &apiv1.Namespace{
|
||||
ObjectMeta: util.DeepCopyRelevantObjectMeta(baseNamespace.ObjectMeta),
|
||||
Spec: util.DeepCopyApiTypeOrPanic(baseNamespace.Spec).(apiv1.NamespaceSpec),
|
||||
Spec: *(util.DeepCopyApiTypeOrPanic(&baseNamespace.Spec).(*apiv1.NamespaceSpec)),
|
||||
}
|
||||
glog.V(5).Infof("Desired namespace in underlying clusters: %+v", desiredNamespace)
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@ go_library(
|
|||
"//pkg/client/clientset_generated/release_1_5:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/util/flowcontrol:go_default_library",
|
||||
"//pkg/util/wait:go_default_library",
|
||||
|
|
|
@ -41,7 +41,6 @@ import (
|
|||
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||
"k8s.io/kubernetes/pkg/util/wait"
|
||||
|
@ -483,7 +482,7 @@ func (frsc *ReplicaSetController) reconcileReplicaSet(key string) (reconciliatio
|
|||
// don't delete local replicasets for now. Do not reconcile it anymore.
|
||||
return statusAllOk, nil
|
||||
}
|
||||
obj, err := conversion.NewCloner().DeepCopy(objFromStore)
|
||||
obj, err := api.Scheme.DeepCopy(objFromStore)
|
||||
frs, ok := obj.(*extensionsv1.ReplicaSet)
|
||||
if err != nil || !ok {
|
||||
glog.Errorf("Error in retrieving obj from store: %v, %v", ok, err)
|
||||
|
@ -559,7 +558,7 @@ func (frsc *ReplicaSetController) reconcileReplicaSet(key string) (reconciliatio
|
|||
// The object can be modified.
|
||||
lrs := &extensionsv1.ReplicaSet{
|
||||
ObjectMeta: fedutil.DeepCopyRelevantObjectMeta(frs.ObjectMeta),
|
||||
Spec: fedutil.DeepCopyApiTypeOrPanic(frs.Spec).(extensionsv1.ReplicaSetSpec),
|
||||
Spec: *fedutil.DeepCopyApiTypeOrPanic(&frs.Spec).(*extensionsv1.ReplicaSetSpec),
|
||||
}
|
||||
specReplicas := int32(replicas)
|
||||
lrs.Spec.Replicas = &specReplicas
|
||||
|
|
|
@ -27,7 +27,6 @@ go_library(
|
|||
"//pkg/client/clientset_generated/release_1_5:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/types:go_default_library",
|
||||
"//pkg/util/flowcontrol:go_default_library",
|
||||
|
|
|
@ -32,7 +32,6 @@ import (
|
|||
kubeclientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/controller"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
pkgruntime "k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
"k8s.io/kubernetes/pkg/util/flowcontrol"
|
||||
|
@ -315,7 +314,7 @@ func (secretcontroller *SecretController) reconcileSecret(secret types.Namespace
|
|||
|
||||
// Create a copy before modifying the obj to prevent race condition with
|
||||
// other readers of obj from store.
|
||||
baseSecretObj, err := conversion.NewCloner().DeepCopy(baseSecretObjFromStore)
|
||||
baseSecretObj, err := api.Scheme.DeepCopy(baseSecretObjFromStore)
|
||||
baseSecret, ok := baseSecretObj.(*apiv1.Secret)
|
||||
if err != nil || !ok {
|
||||
glog.Errorf("Error in retrieving obj from store: %v, %v", ok, err)
|
||||
|
|
|
@ -28,6 +28,7 @@ go_library(
|
|||
"//federation/pkg/dnsprovider:go_default_library",
|
||||
"//federation/pkg/dnsprovider/rrstype:go_default_library",
|
||||
"//federation/pkg/federation-controller/util:go_default_library",
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/errors:go_default_library",
|
||||
"//pkg/api/v1:go_default_library",
|
||||
"//pkg/client/cache:go_default_library",
|
||||
|
@ -35,7 +36,6 @@ go_library(
|
|||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/controller:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/util/runtime:go_default_library",
|
||||
"//pkg/util/sets:go_default_library",
|
||||
|
|
|
@ -28,6 +28,7 @@ import (
|
|||
federationcache "k8s.io/kubernetes/federation/client/cache"
|
||||
fedclientset "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_5"
|
||||
"k8s.io/kubernetes/federation/pkg/dnsprovider"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/errors"
|
||||
v1 "k8s.io/kubernetes/pkg/api/v1"
|
||||
cache "k8s.io/kubernetes/pkg/client/cache"
|
||||
|
@ -40,8 +41,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/util/wait"
|
||||
"k8s.io/kubernetes/pkg/util/workqueue"
|
||||
"k8s.io/kubernetes/pkg/watch"
|
||||
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -361,7 +360,7 @@ func (s *ServiceController) processServiceForCluster(cachedService *cachedServic
|
|||
// should be retried.
|
||||
func (s *ServiceController) updateFederationService(key string, cachedService *cachedService) (error, bool) {
|
||||
// Clone federation service, and create them in underlying k8s cluster
|
||||
clone, err := conversion.NewCloner().DeepCopy(cachedService.lastState)
|
||||
clone, err := api.Scheme.DeepCopy(cachedService.lastState)
|
||||
if err != nil {
|
||||
return err, !retryable
|
||||
}
|
||||
|
|
|
@ -39,7 +39,6 @@ go_library(
|
|||
"//pkg/client/unversioned/clientcmd:go_default_library",
|
||||
"//pkg/client/unversioned/clientcmd/api:go_default_library",
|
||||
"//pkg/controller/deployment/util:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/util/flowcontrol:go_default_library",
|
||||
"//pkg/util/net:go_default_library",
|
||||
|
|
|
@ -70,6 +70,6 @@ func DeepCopyDeploymentObjectMeta(meta api_v1.ObjectMeta) api_v1.ObjectMeta {
|
|||
func DeepCopyDeployment(a *extensions_v1.Deployment) *extensions_v1.Deployment {
|
||||
return &extensions_v1.Deployment{
|
||||
ObjectMeta: DeepCopyDeploymentObjectMeta(a.ObjectMeta),
|
||||
Spec: DeepCopyApiTypeOrPanic(a.Spec).(extensions_v1.DeploymentSpec),
|
||||
Spec: *(DeepCopyApiTypeOrPanic(&a.Spec).(*extensions_v1.DeploymentSpec)),
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,8 +19,8 @@ package util
|
|||
import (
|
||||
"reflect"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
api_v1 "k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
)
|
||||
|
||||
|
@ -86,7 +86,7 @@ func ObjectMetaAndSpecEquivalent(a, b runtime.Object) bool {
|
|||
}
|
||||
|
||||
func DeepCopyApiTypeOrPanic(item interface{}) interface{} {
|
||||
result, err := conversion.NewCloner().DeepCopy(item)
|
||||
result, err := api.Scheme.DeepCopy(item)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
|
@ -33,7 +33,6 @@ go_library(
|
|||
"//pkg/client/clientset_generated/release_1_5/typed/core/v1:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/fields:go_default_library",
|
||||
"//pkg/labels:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
|
|
|
@ -32,7 +32,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/client/cache"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/runtime/schema"
|
||||
|
@ -486,7 +485,7 @@ func GetPodFromTemplate(template *v1.PodTemplateSpec, parentObject runtime.Objec
|
|||
if controllerRef != nil {
|
||||
pod.OwnerReferences = append(pod.OwnerReferences, *controllerRef)
|
||||
}
|
||||
clone, err := conversion.NewCloner().DeepCopy(&template.Spec)
|
||||
clone, err := api.Scheme.DeepCopy(&template.Spec)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -431,7 +431,7 @@ func TestEqualIgnoreHash(t *testing.T) {
|
|||
}
|
||||
|
||||
for _, test := range tests {
|
||||
runTest := func(t1, t2 v1.PodTemplateSpec, reversed bool) {
|
||||
runTest := func(t1, t2 *v1.PodTemplateSpec, reversed bool) {
|
||||
// Set up
|
||||
t1Copy, err := api.Scheme.DeepCopy(t1)
|
||||
if err != nil {
|
||||
|
@ -446,7 +446,7 @@ func TestEqualIgnoreHash(t *testing.T) {
|
|||
reverseString = " (reverse order)"
|
||||
}
|
||||
// Run
|
||||
equal, err := equalIgnoreHash(t1, t2)
|
||||
equal, err := equalIgnoreHash(*t1, *t2)
|
||||
// Check
|
||||
if err != nil {
|
||||
t.Errorf("In test case %q%s, expected no error, returned %v", test.test, reverseString, err)
|
||||
|
@ -461,9 +461,9 @@ func TestEqualIgnoreHash(t *testing.T) {
|
|||
t.Errorf("In test case %q%s, unexpected input template modified", test.test, reverseString)
|
||||
}
|
||||
}
|
||||
runTest(test.former, test.latter, false)
|
||||
runTest(&test.former, &test.latter, false)
|
||||
// Test the same case in reverse order
|
||||
runTest(test.latter, test.former, true)
|
||||
runTest(&test.latter, &test.former, true)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -644,14 +644,14 @@ func (dc *DisruptionController) buildDisruptedPodMap(pods []*v1.Pod, pdb *policy
|
|||
// this field correctly, we will prevent the /evict handler from approving an
|
||||
// eviction when it may be unsafe to do so.
|
||||
func (dc *DisruptionController) failSafe(pdb *policy.PodDisruptionBudget) error {
|
||||
obj, err := api.Scheme.DeepCopy(*pdb)
|
||||
obj, err := api.Scheme.DeepCopy(pdb)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
newPdb := obj.(policy.PodDisruptionBudget)
|
||||
newPdb := obj.(*policy.PodDisruptionBudget)
|
||||
newPdb.Status.PodDisruptionsAllowed = 0
|
||||
|
||||
return dc.getUpdater()(&newPdb)
|
||||
return dc.getUpdater()(newPdb)
|
||||
}
|
||||
|
||||
func (dc *DisruptionController) updatePdbStatus(pdb *policy.PodDisruptionBudget, currentHealthy, desiredHealthy, expectedCount int32,
|
||||
|
@ -675,11 +675,11 @@ func (dc *DisruptionController) updatePdbStatus(pdb *policy.PodDisruptionBudget,
|
|||
return nil
|
||||
}
|
||||
|
||||
obj, err := api.Scheme.DeepCopy(*pdb)
|
||||
obj, err := api.Scheme.DeepCopy(pdb)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
newPdb := obj.(policy.PodDisruptionBudget)
|
||||
newPdb := obj.(*policy.PodDisruptionBudget)
|
||||
|
||||
newPdb.Status = policy.PodDisruptionBudgetStatus{
|
||||
CurrentHealthy: currentHealthy,
|
||||
|
@ -690,7 +690,7 @@ func (dc *DisruptionController) updatePdbStatus(pdb *policy.PodDisruptionBudget,
|
|||
ObservedGeneration: pdb.Generation,
|
||||
}
|
||||
|
||||
return dc.getUpdater()(&newPdb)
|
||||
return dc.getUpdater()(newPdb)
|
||||
}
|
||||
|
||||
// refresh tries to re-GET the given PDB. If there are any errors, it just
|
||||
|
|
|
@ -44,11 +44,11 @@ func (ps *pdbStates) Set(pdb *policy.PodDisruptionBudget) error {
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
obj, err := api.Scheme.DeepCopy(*pdb)
|
||||
obj, err := api.Scheme.DeepCopy(pdb)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
(*ps)[key] = obj.(policy.PodDisruptionBudget)
|
||||
(*ps)[key] = *obj.(*policy.PodDisruptionBudget)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -48,11 +48,11 @@ func updateReplicaSetStatus(c unversionedextensions.ReplicaSetInterface, rs exte
|
|||
|
||||
// deep copy to avoid mutation now.
|
||||
// TODO this method need some work. Retry on conflict probably, though I suspect this is stomping status to something it probably shouldn't
|
||||
copyObj, err := api.Scheme.DeepCopy(rs)
|
||||
copyObj, err := api.Scheme.DeepCopy(&rs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
rs = copyObj.(extensions.ReplicaSet)
|
||||
rs = *copyObj.(*extensions.ReplicaSet)
|
||||
|
||||
// Save the generation number we acted on, otherwise we might wrongfully indicate
|
||||
// that we've seen a spec update when we retry.
|
||||
|
|
|
@ -434,18 +434,18 @@ func (adc *attachDetachController) createVolumeSpec(
|
|||
|
||||
// Do not return the original volume object, since it's from the shared
|
||||
// informer it may be mutated by another consumer.
|
||||
clonedPodVolumeObj, err := api.Scheme.DeepCopy(podVolume)
|
||||
clonedPodVolumeObj, err := api.Scheme.DeepCopy(&podVolume)
|
||||
if err != nil || clonedPodVolumeObj == nil {
|
||||
return nil, fmt.Errorf(
|
||||
"failed to deep copy %q volume object. err=%v", podVolume.Name, err)
|
||||
}
|
||||
|
||||
clonedPodVolume, ok := clonedPodVolumeObj.(v1.Volume)
|
||||
clonedPodVolume, ok := clonedPodVolumeObj.(*v1.Volume)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf("failed to cast clonedPodVolume %#v to v1.Volume", clonedPodVolumeObj)
|
||||
}
|
||||
|
||||
return volume.NewSpecFromVolume(&clonedPodVolume), nil
|
||||
return volume.NewSpecFromVolume(clonedPodVolume), nil
|
||||
}
|
||||
|
||||
// getPVCFromCacheExtractPV fetches the PVC object with the given namespace and
|
||||
|
@ -526,19 +526,19 @@ func (adc *attachDetachController) getPVSpecFromCache(
|
|||
|
||||
// Do not return the object from the informer, since the store is shared it
|
||||
// may be mutated by another consumer.
|
||||
clonedPVObj, err := api.Scheme.DeepCopy(*pv)
|
||||
clonedPVObj, err := api.Scheme.DeepCopy(pv)
|
||||
if err != nil || clonedPVObj == nil {
|
||||
return nil, fmt.Errorf(
|
||||
"failed to deep copy %q PV object. err=%v", name, err)
|
||||
}
|
||||
|
||||
clonedPV, ok := clonedPVObj.(v1.PersistentVolume)
|
||||
clonedPV, ok := clonedPVObj.(*v1.PersistentVolume)
|
||||
if !ok {
|
||||
return nil, fmt.Errorf(
|
||||
"failed to cast %q clonedPV %#v to PersistentVolume", name, pvObj)
|
||||
}
|
||||
|
||||
return volume.NewSpecFromPersistentVolume(&clonedPV, pvcReadOnly), nil
|
||||
return volume.NewSpecFromPersistentVolume(clonedPV, pvcReadOnly), nil
|
||||
}
|
||||
|
||||
// processVolumesInUse processes the list of volumes marked as "in-use"
|
||||
|
|
|
@ -18,11 +18,11 @@ go_library(
|
|||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/v1:go_default_library",
|
||||
"//pkg/client/cache:go_default_library",
|
||||
"//pkg/client/clientset_generated/release_1_5:go_default_library",
|
||||
"//pkg/controller/volume/attachdetach/cache:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/util/strategicpatch:go_default_library",
|
||||
"//vendor:github.com/golang/glog",
|
||||
],
|
||||
|
|
|
@ -24,11 +24,11 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
kcache "k8s.io/kubernetes/pkg/client/cache"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/controller/volume/attachdetach/cache"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/util/strategicpatch"
|
||||
)
|
||||
|
||||
|
@ -76,7 +76,7 @@ func (nsu *nodeStatusUpdater) UpdateNodeStatuses() error {
|
|||
continue
|
||||
}
|
||||
|
||||
clonedNode, err := conversion.NewCloner().DeepCopy(nodeObj)
|
||||
clonedNode, err := api.Scheme.DeepCopy(nodeObj)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error cloning node %q: %v",
|
||||
nodeName,
|
||||
|
|
|
@ -20,6 +20,7 @@ go_library(
|
|||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/errors:go_default_library",
|
||||
"//pkg/api/meta:go_default_library",
|
||||
"//pkg/api/v1:go_default_library",
|
||||
|
@ -31,7 +32,6 @@ go_library(
|
|||
"//pkg/client/clientset_generated/release_1_5/typed/core/v1:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/cloudprovider:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/labels:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/types:go_default_library",
|
||||
|
@ -58,6 +58,7 @@ go_test(
|
|||
library = "go_default_library",
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/resource:go_default_library",
|
||||
"//pkg/api/testapi:go_default_library",
|
||||
"//pkg/api/v1:go_default_library",
|
||||
|
@ -70,7 +71,6 @@ go_test(
|
|||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/client/testing/cache:go_default_library",
|
||||
"//pkg/client/testing/core:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/types:go_default_library",
|
||||
"//pkg/util/diff:go_default_library",
|
||||
|
|
|
@ -29,6 +29,7 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/resource"
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
|
@ -41,7 +42,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/client/record"
|
||||
fcache "k8s.io/kubernetes/pkg/client/testing/cache"
|
||||
"k8s.io/kubernetes/pkg/client/testing/core"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
"k8s.io/kubernetes/pkg/util/diff"
|
||||
|
@ -314,7 +314,7 @@ func (r *volumeReactor) checkVolumes(expectedVolumes []*v1.PersistentVolume) err
|
|||
for _, v := range r.volumes {
|
||||
// We must clone the volume because of golang race check - it was
|
||||
// written by the controller without any locks on it.
|
||||
clone, _ := conversion.NewCloner().DeepCopy(v)
|
||||
clone, _ := api.Scheme.DeepCopy(v)
|
||||
v = clone.(*v1.PersistentVolume)
|
||||
v.ResourceVersion = ""
|
||||
if v.Spec.ClaimRef != nil {
|
||||
|
@ -345,7 +345,7 @@ func (r *volumeReactor) checkClaims(expectedClaims []*v1.PersistentVolumeClaim)
|
|||
for _, c := range r.claims {
|
||||
// We must clone the claim because of golang race check - it was
|
||||
// written by the controller without any locks on it.
|
||||
clone, _ := conversion.NewCloner().DeepCopy(c)
|
||||
clone, _ := api.Scheme.DeepCopy(c)
|
||||
c = clone.(*v1.PersistentVolumeClaim)
|
||||
c.ResourceVersion = ""
|
||||
gotMap[c.Name] = c
|
||||
|
@ -513,7 +513,7 @@ func (r *volumeReactor) deleteVolumeEvent(volume *v1.PersistentVolume) {
|
|||
|
||||
// Generate deletion event. Cloned volume is needed to prevent races (and we
|
||||
// would get a clone from etcd too).
|
||||
clone, _ := conversion.NewCloner().DeepCopy(volume)
|
||||
clone, _ := api.Scheme.DeepCopy(volume)
|
||||
volumeClone := clone.(*v1.PersistentVolume)
|
||||
r.volumeSource.Delete(volumeClone)
|
||||
}
|
||||
|
@ -529,7 +529,7 @@ func (r *volumeReactor) deleteClaimEvent(claim *v1.PersistentVolumeClaim) {
|
|||
|
||||
// Generate deletion event. Cloned volume is needed to prevent races (and we
|
||||
// would get a clone from etcd too).
|
||||
clone, _ := conversion.NewCloner().DeepCopy(claim)
|
||||
clone, _ := api.Scheme.DeepCopy(claim)
|
||||
claimClone := clone.(*v1.PersistentVolumeClaim)
|
||||
r.claimSource.Delete(claimClone)
|
||||
}
|
||||
|
@ -555,7 +555,7 @@ func (r *volumeReactor) modifyVolumeEvent(volume *v1.PersistentVolume) {
|
|||
r.volumes[volume.Name] = volume
|
||||
// Generate deletion event. Cloned volume is needed to prevent races (and we
|
||||
// would get a clone from etcd too).
|
||||
clone, _ := conversion.NewCloner().DeepCopy(volume)
|
||||
clone, _ := api.Scheme.DeepCopy(volume)
|
||||
volumeClone := clone.(*v1.PersistentVolume)
|
||||
r.volumeSource.Modify(volumeClone)
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
storage "k8s.io/kubernetes/pkg/apis/storage/v1beta1"
|
||||
|
@ -30,7 +31,6 @@ import (
|
|||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/util/goroutinemap"
|
||||
vol "k8s.io/kubernetes/pkg/volume"
|
||||
|
||||
|
@ -467,7 +467,7 @@ func (ctrl *PersistentVolumeController) syncVolume(volume *v1.PersistentVolume)
|
|||
// This speeds up binding of provisioned volumes - provisioner saves
|
||||
// only the new PV and it expects that next syncClaim will bind the
|
||||
// claim to it.
|
||||
clone, err := conversion.NewCloner().DeepCopy(claim)
|
||||
clone, err := api.Scheme.DeepCopy(claim)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error cloning claim %q: %v", claimToClaimKey(claim), err)
|
||||
}
|
||||
|
@ -547,7 +547,7 @@ func (ctrl *PersistentVolumeController) updateClaimStatus(claim *v1.PersistentVo
|
|||
|
||||
dirty := false
|
||||
|
||||
clone, err := conversion.NewCloner().DeepCopy(claim)
|
||||
clone, err := api.Scheme.DeepCopy(claim)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error cloning claim: %v", err)
|
||||
}
|
||||
|
@ -647,7 +647,7 @@ func (ctrl *PersistentVolumeController) updateVolumePhase(volume *v1.PersistentV
|
|||
return volume, nil
|
||||
}
|
||||
|
||||
clone, err := conversion.NewCloner().DeepCopy(volume)
|
||||
clone, err := api.Scheme.DeepCopy(volume)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error cloning claim: %v", err)
|
||||
}
|
||||
|
@ -712,7 +712,7 @@ func (ctrl *PersistentVolumeController) bindVolumeToClaim(volume *v1.PersistentV
|
|||
|
||||
// The volume from method args can be pointing to watcher cache. We must not
|
||||
// modify these, therefore create a copy.
|
||||
clone, err := conversion.NewCloner().DeepCopy(volume)
|
||||
clone, err := api.Scheme.DeepCopy(volume)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error cloning pv: %v", err)
|
||||
}
|
||||
|
@ -777,7 +777,7 @@ func (ctrl *PersistentVolumeController) bindClaimToVolume(claim *v1.PersistentVo
|
|||
|
||||
// The claim from method args can be pointing to watcher cache. We must not
|
||||
// modify these, therefore create a copy.
|
||||
clone, err := conversion.NewCloner().DeepCopy(claim)
|
||||
clone, err := api.Scheme.DeepCopy(claim)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error cloning claim: %v", err)
|
||||
}
|
||||
|
@ -877,7 +877,7 @@ func (ctrl *PersistentVolumeController) unbindVolume(volume *v1.PersistentVolume
|
|||
glog.V(4).Infof("updating PersistentVolume[%s]: rolling back binding from %q", volume.Name, claimrefToClaimKey(volume.Spec.ClaimRef))
|
||||
|
||||
// Save the PV only when any modification is neccessary.
|
||||
clone, err := conversion.NewCloner().DeepCopy(volume)
|
||||
clone, err := api.Scheme.DeepCopy(volume)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Error cloning pv: %v", err)
|
||||
}
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/errors"
|
||||
"k8s.io/kubernetes/pkg/api/meta"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
|
@ -30,7 +31,6 @@ import (
|
|||
unversionedcore "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_5/typed/core/v1"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/cloudprovider"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util/goroutinemap"
|
||||
vol "k8s.io/kubernetes/pkg/volume"
|
||||
|
@ -178,7 +178,7 @@ func (ctrl *PersistentVolumeController) initializeCaches(volumeSource, claimSour
|
|||
// Ignore template volumes from kubernetes 1.2
|
||||
deleted := ctrl.upgradeVolumeFrom1_2(&volume)
|
||||
if !deleted {
|
||||
clone, err := conversion.NewCloner().DeepCopy(&volume)
|
||||
clone, err := api.Scheme.DeepCopy(&volume)
|
||||
if err != nil {
|
||||
glog.Errorf("error cloning volume %q: %v", volume.Name, err)
|
||||
continue
|
||||
|
@ -199,7 +199,7 @@ func (ctrl *PersistentVolumeController) initializeCaches(volumeSource, claimSour
|
|||
return
|
||||
}
|
||||
for _, claim := range claimList.Items {
|
||||
clone, err := conversion.NewCloner().DeepCopy(&claim)
|
||||
clone, err := api.Scheme.DeepCopy(&claim)
|
||||
if err != nil {
|
||||
glog.Errorf("error cloning claim %q: %v", claimToClaimKey(&claim), err)
|
||||
continue
|
||||
|
@ -504,7 +504,7 @@ func (ctrl *PersistentVolumeController) setClaimProvisioner(claim *v1.Persistent
|
|||
|
||||
// The volume from method args can be pointing to watcher cache. We must not
|
||||
// modify these, therefore create a copy.
|
||||
clone, err := conversion.NewCloner().DeepCopy(claim)
|
||||
clone, err := api.Scheme.DeepCopy(claim)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("Error cloning pv: %v", err)
|
||||
}
|
||||
|
|
|
@ -188,7 +188,6 @@ go_test(
|
|||
"//pkg/client/restclient:go_default_library",
|
||||
"//pkg/client/restclient/fake:go_default_library",
|
||||
"//pkg/client/typed/dynamic:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/kubectl:go_default_library",
|
||||
"//pkg/kubectl/cmd/testing:go_default_library",
|
||||
"//pkg/kubectl/cmd/util:go_default_library",
|
||||
|
|
|
@ -41,7 +41,6 @@ import (
|
|||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/policy"
|
||||
"k8s.io/kubernetes/pkg/client/restclient/fake"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
|
@ -70,7 +69,7 @@ func TestMain(m *testing.M) {
|
|||
},
|
||||
Status: api.NodeStatus{},
|
||||
}
|
||||
clone, _ := conversion.NewCloner().DeepCopy(node)
|
||||
clone, _ := api.Scheme.DeepCopy(node)
|
||||
|
||||
// A copy of the same node, but cordoned.
|
||||
cordoned_node = clone.(*api.Node)
|
||||
|
|
|
@ -28,7 +28,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/api"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/client/restclient/fake"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
cmdtesting "k8s.io/kubernetes/pkg/kubectl/cmd/testing"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
|
@ -52,7 +51,7 @@ func generateNodeAndTaintedNode(oldTaints []api.Taint, newTaints []api.Taint) (*
|
|||
},
|
||||
Status: api.NodeStatus{},
|
||||
}
|
||||
clone, _ := conversion.NewCloner().DeepCopy(node)
|
||||
clone, _ := api.Scheme.DeepCopy(node)
|
||||
|
||||
newTaintsData, _ := json.Marshal(newTaints)
|
||||
// A copy of the same node, but tainted.
|
||||
|
|
|
@ -70,7 +70,6 @@ go_test(
|
|||
"//pkg/apis/meta/v1:go_default_library",
|
||||
"//pkg/client/cache:go_default_library",
|
||||
"//pkg/client/record:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/kubelet/types:go_default_library",
|
||||
"//pkg/runtime:go_default_library",
|
||||
"//pkg/securitycontext:go_default_library",
|
||||
|
|
|
@ -28,7 +28,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/client/record"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
kubetypes "k8s.io/kubernetes/pkg/kubelet/types"
|
||||
"k8s.io/kubernetes/pkg/securitycontext"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
|
@ -369,7 +368,7 @@ func TestPodUpdateAnnotations(t *testing.T) {
|
|||
pod.Annotations = make(map[string]string, 0)
|
||||
pod.Annotations["kubernetes.io/blah"] = "blah"
|
||||
|
||||
clone, err := conversion.NewCloner().DeepCopy(pod)
|
||||
clone, err := api.Scheme.DeepCopy(pod)
|
||||
if err != nil {
|
||||
t.Fatalf("%v", err)
|
||||
}
|
||||
|
@ -401,7 +400,7 @@ func TestPodUpdateLabels(t *testing.T) {
|
|||
pod.Labels = make(map[string]string, 0)
|
||||
pod.Labels["key"] = "value"
|
||||
|
||||
clone, err := conversion.NewCloner().DeepCopy(pod)
|
||||
clone, err := api.Scheme.DeepCopy(pod)
|
||||
if err != nil {
|
||||
t.Fatalf("%v", err)
|
||||
}
|
||||
|
|
|
@ -344,20 +344,20 @@ func (dswp *desiredStateOfWorldPopulator) createVolumeSpec(
|
|||
}
|
||||
|
||||
// Do not return the original volume object, since the source could mutate it
|
||||
clonedPodVolumeObj, err := api.Scheme.DeepCopy(podVolume)
|
||||
clonedPodVolumeObj, err := api.Scheme.DeepCopy(&podVolume)
|
||||
if err != nil || clonedPodVolumeObj == nil {
|
||||
return nil, "", fmt.Errorf(
|
||||
"failed to deep copy %q volume object. err=%v", podVolume.Name, err)
|
||||
}
|
||||
|
||||
clonedPodVolume, ok := clonedPodVolumeObj.(v1.Volume)
|
||||
clonedPodVolume, ok := clonedPodVolumeObj.(*v1.Volume)
|
||||
if !ok {
|
||||
return nil, "", fmt.Errorf(
|
||||
"failed to cast clonedPodVolume %#v to v1.Volume",
|
||||
clonedPodVolumeObj)
|
||||
}
|
||||
|
||||
return volume.NewSpecFromVolume(&clonedPodVolume), "", nil
|
||||
return volume.NewSpecFromVolume(clonedPodVolume), "", nil
|
||||
}
|
||||
|
||||
// getPVCExtractPV fetches the PVC object with the given namespace and name from
|
||||
|
|
|
@ -18,8 +18,8 @@ go_library(
|
|||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/v1:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/types:go_default_library",
|
||||
"//pkg/util/uuid:go_default_library",
|
||||
"//pkg/volume:go_default_library",
|
||||
|
|
|
@ -21,8 +21,8 @@ import (
|
|||
"os"
|
||||
"regexp"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
"k8s.io/kubernetes/pkg/util/uuid"
|
||||
"k8s.io/kubernetes/pkg/volume"
|
||||
|
@ -245,7 +245,7 @@ func (r *hostPathRecycler) GetPath() string {
|
|||
// Recycle blocks until the pod has completed or any error occurs.
|
||||
// HostPath recycling only works in single node clusters and is meant for testing purposes only.
|
||||
func (r *hostPathRecycler) Recycle() error {
|
||||
templateClone, err := conversion.NewCloner().DeepCopy(r.config.RecyclerPodTemplate)
|
||||
templateClone, err := api.Scheme.DeepCopy(r.config.RecyclerPodTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -18,8 +18,8 @@ go_library(
|
|||
],
|
||||
tags = ["automanaged"],
|
||||
deps = [
|
||||
"//pkg/api:go_default_library",
|
||||
"//pkg/api/v1:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/types:go_default_library",
|
||||
"//pkg/util/exec:go_default_library",
|
||||
"//pkg/util/mount:go_default_library",
|
||||
|
|
|
@ -22,8 +22,8 @@ import (
|
|||
"runtime"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/types"
|
||||
"k8s.io/kubernetes/pkg/util/exec"
|
||||
"k8s.io/kubernetes/pkg/util/mount"
|
||||
|
@ -333,7 +333,7 @@ func (r *nfsRecycler) GetPath() string {
|
|||
// Recycle recycles/scrubs clean an NFS volume.
|
||||
// Recycle blocks until the pod has completed or any error occurs.
|
||||
func (r *nfsRecycler) Recycle() error {
|
||||
templateClone, err := conversion.NewCloner().DeepCopy(r.config.RecyclerPodTemplate)
|
||||
templateClone, err := api.Scheme.DeepCopy(r.config.RecyclerPodTemplate)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -40,7 +40,6 @@ go_test(
|
|||
"//pkg/apis/meta/v1:go_default_library",
|
||||
"//pkg/apis/storage:go_default_library",
|
||||
"//pkg/apis/storage/util:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//vendor:github.com/golang/glog",
|
||||
],
|
||||
)
|
||||
|
|
|
@ -26,7 +26,6 @@ import (
|
|||
metav1 "k8s.io/kubernetes/pkg/apis/meta/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/storage"
|
||||
storageutil "k8s.io/kubernetes/pkg/apis/storage/util"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
)
|
||||
|
||||
func TestAdmission(t *testing.T) {
|
||||
|
@ -187,7 +186,7 @@ func TestAdmission(t *testing.T) {
|
|||
glog.V(4).Infof("starting test %q", test.name)
|
||||
|
||||
// clone the claim, it's going to be modified
|
||||
clone, err := conversion.NewCloner().DeepCopy(test.claim)
|
||||
clone, err := api.Scheme.DeepCopy(test.claim)
|
||||
if err != nil {
|
||||
t.Fatalf("Cannot clone claim: %v", err)
|
||||
}
|
||||
|
|
|
@ -150,7 +150,6 @@ go_library(
|
|||
"//pkg/controller/petset:go_default_library",
|
||||
"//pkg/controller/replicaset:go_default_library",
|
||||
"//pkg/controller/replication:go_default_library",
|
||||
"//pkg/conversion:go_default_library",
|
||||
"//pkg/dns/federation:go_default_library",
|
||||
"//pkg/fields:go_default_library",
|
||||
"//pkg/kubectl:go_default_library",
|
||||
|
|
|
@ -23,8 +23,8 @@ import (
|
|||
"strconv"
|
||||
"time"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/test/e2e/framework"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
|
@ -172,7 +172,7 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() {
|
|||
createBackendPodsOrFail(clusters, nsName, FederatedServicePodName)
|
||||
|
||||
service = createServiceOrFail(f.FederationClientset_1_5, nsName, FederatedServiceName)
|
||||
obj, err := conversion.NewCloner().DeepCopy(service)
|
||||
obj, err := api.Scheme.DeepCopy(service)
|
||||
// Cloning shouldn't fail. On the off-chance it does, we
|
||||
// should shallow copy service to serviceShard before
|
||||
// failing. If we don't do this we will never really
|
||||
|
|
|
@ -27,6 +27,7 @@ import (
|
|||
"testing"
|
||||
"time"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/resource"
|
||||
"k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/apimachinery/registered"
|
||||
|
@ -37,7 +38,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/client/restclient"
|
||||
fakecloud "k8s.io/kubernetes/pkg/cloudprovider/providers/fake"
|
||||
persistentvolumecontroller "k8s.io/kubernetes/pkg/controller/volume/persistentvolume"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
"k8s.io/kubernetes/pkg/volume"
|
||||
volumetest "k8s.io/kubernetes/pkg/volume/testing"
|
||||
"k8s.io/kubernetes/pkg/watch"
|
||||
|
@ -243,7 +243,7 @@ func TestPersistentVolumeBindRace(t *testing.T) {
|
|||
claims := []*v1.PersistentVolumeClaim{}
|
||||
for counter <= maxClaims {
|
||||
counter += 1
|
||||
clone, _ := conversion.NewCloner().DeepCopy(pvc)
|
||||
clone, _ := api.Scheme.DeepCopy(pvc)
|
||||
newPvc, _ := clone.(*v1.PersistentVolumeClaim)
|
||||
newPvc.ObjectMeta = v1.ObjectMeta{Name: fmt.Sprintf("fake-pvc-race-%d", counter)}
|
||||
claim, err := testClient.PersistentVolumeClaims(ns.Name).Create(newPvc)
|
||||
|
|
|
@ -738,7 +738,7 @@ func (s *LabelNodePrepareStrategy) PreparePatch(*v1.Node) []byte {
|
|||
}
|
||||
|
||||
func (s *LabelNodePrepareStrategy) CleanupNode(node *v1.Node) *v1.Node {
|
||||
objCopy, err := api.Scheme.DeepCopy(*node)
|
||||
objCopy, err := api.Scheme.Copy(node)
|
||||
if err != nil {
|
||||
return &v1.Node{}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue