@@ -25,6 +25,7 @@ import (
25
25
kclientcmd "k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
26
26
kclientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
27
27
"k8s.io/kubernetes/pkg/kubectl"
28
+ "k8s.io/kubernetes/pkg/kubectl/cmd/set"
28
29
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
29
30
"k8s.io/kubernetes/pkg/kubectl/resource"
30
31
"k8s.io/kubernetes/pkg/runtime"
@@ -269,15 +270,17 @@ func (f *ring0Factory) Printer(mapping *meta.RESTMapping, options kubectl.PrintO
269
270
func (f * ring0Factory ) Pauser (info * resource.Info ) (bool , error ) {
270
271
switch t := info .Object .(type ) {
271
272
case * deployapi.DeploymentConfig :
272
- if t .Spec .Paused {
273
+ patches := set .CalculatePatches ([]* resource.Info {info }, f .JSONEncoder (), func (* resource.Info ) (bool , error ) {
274
+ if t .Spec .Paused {
275
+ return false , nil
276
+ }
277
+ t .Spec .Paused = true
278
+ return true , nil
279
+ })
280
+ if len (patches ) == 0 {
273
281
return true , nil
274
282
}
275
- t .Spec .Paused = true
276
- oc , _ , err := f .Clients ()
277
- if err != nil {
278
- return false , err
279
- }
280
- _ , err = oc .DeploymentConfigs (t .Namespace ).Update (t )
283
+ _ , err := resource .NewHelper (info .Client , info .Mapping ).Patch (info .Namespace , info .Name , kapi .StrategicMergePatchType , patches [0 ].Patch )
281
284
// TODO: Pause the deployer containers.
282
285
return false , err
283
286
default :
@@ -328,15 +331,17 @@ func (f *ring0Factory) ResolveImage(image string) (string, error) {
328
331
func (f * ring0Factory ) Resumer (info * resource.Info ) (bool , error ) {
329
332
switch t := info .Object .(type ) {
330
333
case * deployapi.DeploymentConfig :
331
- if ! t .Spec .Paused {
334
+ patches := set .CalculatePatches ([]* resource.Info {info }, f .JSONEncoder (), func (* resource.Info ) (bool , error ) {
335
+ if ! t .Spec .Paused {
336
+ return false , nil
337
+ }
338
+ t .Spec .Paused = false
339
+ return true , nil
340
+ })
341
+ if len (patches ) == 0 {
332
342
return true , nil
333
343
}
334
- t .Spec .Paused = false
335
- oc , _ , err := f .Clients ()
336
- if err != nil {
337
- return false , err
338
- }
339
- _ , err = oc .DeploymentConfigs (t .Namespace ).Update (t )
344
+ _ , err := resource .NewHelper (info .Client , info .Mapping ).Patch (info .Namespace , info .Name , kapi .StrategicMergePatchType , patches [0 ].Patch )
340
345
// TODO: Resume the deployer containers.
341
346
return false , err
342
347
default :
0 commit comments