Skip to content

Commit 709f28a

Browse files
Merge pull request #20594 from juanvallejo/jvallejo/fix-rollout-retry
switch to using external clientset in oc rollout retry
2 parents 32de4f6 + 9e19d54 commit 709f28a

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

pkg/oc/cli/rollout/retry.go

+13-11
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import (
1313
"k8s.io/apimachinery/pkg/runtime"
1414
"k8s.io/apimachinery/pkg/types"
1515
utilerrors "k8s.io/apimachinery/pkg/util/errors"
16+
kexternalclientset "k8s.io/client-go/kubernetes"
1617
kapi "k8s.io/kubernetes/pkg/apis/core"
17-
kclientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
1818
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
1919
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
2020
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
@@ -35,11 +35,11 @@ type RetryOptions struct {
3535
Builder func() *resource.Builder
3636
Mapper meta.RESTMapper
3737
Encoder runtime.Encoder
38-
Clientset kclientset.Interface
38+
Clientset kexternalclientset.Interface
3939
Namespace string
4040
ExplicitNamespace bool
4141

42-
Printer func(string) (printers.ResourcePrinter, error)
42+
ToPrinter func(string) (printers.ResourcePrinter, error)
4343

4444
resource.FilenameOptions
4545
genericclioptions.IOStreams
@@ -108,16 +108,18 @@ func (o *RetryOptions) Complete(f kcmdutil.Factory, cmd *cobra.Command, args []s
108108
return err
109109
}
110110

111-
o.Clientset, err = f.ClientSet()
111+
config, err := f.ToRESTConfig()
112112
if err != nil {
113113
return err
114114
}
115115

116-
o.Printer = func(msg string) (printers.ResourcePrinter, error) {
117-
if err := o.PrintFlags.Complete(msg); err != nil {
118-
return nil, err
119-
}
116+
o.Clientset, err = kexternalclientset.NewForConfig(config)
117+
if err != nil {
118+
return err
119+
}
120120

121+
o.ToPrinter = func(operation string) (printers.ResourcePrinter, error) {
122+
o.PrintFlags.NamePrintFlags.Operation = operation
121123
return o.PrintFlags.ToPrinter()
122124
}
123125

@@ -217,7 +219,7 @@ func (o RetryOptions) Run() error {
217219
})
218220

219221
if len(patches) == 0 {
220-
printer, err := o.Printer("already retried")
222+
printer, err := o.ToPrinter("already retried")
221223
if err != nil {
222224
allErrs = append(allErrs, kcmdutil.AddSourceToErr("retrying", info.Source, err))
223225
continue
@@ -228,11 +230,11 @@ func (o RetryOptions) Run() error {
228230
continue
229231
}
230232

231-
if _, err := o.Clientset.Core().ReplicationControllers(rc.Namespace).Patch(rc.Name, types.StrategicMergePatchType, patches[0].Patch); err != nil {
233+
if _, err := o.Clientset.CoreV1().ReplicationControllers(rc.Namespace).Patch(rc.Name, types.StrategicMergePatchType, patches[0].Patch); err != nil {
232234
allErrs = append(allErrs, kcmdutil.AddSourceToErr("retrying", info.Source, err))
233235
continue
234236
}
235-
printer, err := o.Printer(fmt.Sprintf("retried rollout #%d", config.Status.LatestVersion))
237+
printer, err := o.ToPrinter(fmt.Sprintf("retried rollout #%d", config.Status.LatestVersion))
236238
if err != nil {
237239
allErrs = append(allErrs, kcmdutil.AddSourceToErr("retrying", info.Source, err))
238240
continue

test/cmd/deployments.sh

+3
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,9 @@ os::test::junit::declare_suite_end
6969
os::test::junit::declare_suite_start "cmd/deployments/config"
7070
os::cmd::expect_failure_and_text 'oc rollout latest test-deployment-config' 'already in progress'
7171
os::cmd::expect_failure_and_text 'oc rollout latest dc/test-deployment-config' 'already in progress'
72+
# ensure that a cancelled deployment can be retried successfully
73+
os::cmd::expect_success 'oc rollout cancel dc/test-deployment-config'
74+
os::cmd::expect_success_and_text 'oc rollout retry dc/test-deployment-config' 'deploymentconfig.apps.openshift.io/test-deployment-config retried rollout'
7275
os::cmd::expect_success 'oc delete deploymentConfigs test-deployment-config'
7376
echo "deploymentConfigs: ok"
7477
os::test::junit::declare_suite_end

0 commit comments

Comments
 (0)