Skip to content

Commit b11bb89

Browse files
committed
✨ DeleteOptions implements DeleteOption
1 parent 05495c3 commit b11bb89

File tree

3 files changed

+65
-1
lines changed

3 files changed

+65
-1
lines changed

Gopkg.lock

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/client/options.go

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,27 @@ func (o *DeleteOptions) ApplyOptions(opts []DeleteOption) *DeleteOptions {
226226
return o
227227
}
228228

229+
var _ DeleteOption = &DeleteOptions{}
230+
231+
// ApplyToDelete implements DeleteOption
232+
func (o *DeleteOptions) ApplyToDelete(do *DeleteOptions) {
233+
if o.GracePeriodSeconds != nil {
234+
do.GracePeriodSeconds = o.GracePeriodSeconds
235+
}
236+
if o.Preconditions != nil {
237+
do.Preconditions = o.Preconditions
238+
}
239+
if o.PropagationPolicy != nil {
240+
do.PropagationPolicy = o.PropagationPolicy
241+
}
242+
if o.Raw != nil {
243+
do.Raw = o.Raw
244+
}
245+
if o.DryRun != nil {
246+
do.DryRun = o.DryRun
247+
}
248+
}
249+
229250
// GracePeriodSeconds sets the grace period for the deletion
230251
// to the given number of seconds.
231252
type GracePeriodSeconds int64

pkg/client/options_test.go

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2424
"k8s.io/apimachinery/pkg/fields"
2525
"k8s.io/apimachinery/pkg/labels"
26+
utilpointer "k8s.io/utils/pointer"
2627
"sigs.k8s.io/controller-runtime/pkg/client"
2728
)
2829

@@ -87,3 +88,43 @@ var _ = Describe("CreateOptions", func() {
8788
Expect(newCreatOpts).To(Equal(o))
8889
})
8990
})
91+
92+
var _ = Describe("DeleteOptions", func() {
93+
It("Should set GracePeriodSeconds", func() {
94+
o := &client.DeleteOptions{GracePeriodSeconds: utilpointer.Int64Ptr(42)}
95+
newDeleteOpts := &client.DeleteOptions{}
96+
o.ApplyToDelete(newDeleteOpts)
97+
Expect(newDeleteOpts).To(Equal(o))
98+
})
99+
It("Should set Preconditions", func() {
100+
o := &client.DeleteOptions{Preconditions: &metav1.Preconditions{}}
101+
newDeleteOpts := &client.DeleteOptions{}
102+
o.ApplyToDelete(newDeleteOpts)
103+
Expect(newDeleteOpts).To(Equal(o))
104+
})
105+
It("Should set PropagationPolicy", func() {
106+
policy := metav1.DeletePropagationBackground
107+
o := &client.DeleteOptions{PropagationPolicy: &policy}
108+
newDeleteOpts := &client.DeleteOptions{}
109+
o.ApplyToDelete(newDeleteOpts)
110+
Expect(newDeleteOpts).To(Equal(o))
111+
})
112+
It("Should set Raw", func() {
113+
o := &client.DeleteOptions{Raw: &metav1.DeleteOptions{}}
114+
newDeleteOpts := &client.DeleteOptions{}
115+
o.ApplyToDelete(newDeleteOpts)
116+
Expect(newDeleteOpts).To(Equal(o))
117+
})
118+
It("Should set DryRun", func() {
119+
o := &client.DeleteOptions{DryRun: []string{"Hello", "Pippa"}}
120+
newDeleteOpts := &client.DeleteOptions{}
121+
o.ApplyToDelete(newDeleteOpts)
122+
Expect(newDeleteOpts).To(Equal(o))
123+
})
124+
It("Should not set anything", func() {
125+
o := &client.DeleteOptions{}
126+
newDeleteOpts := &client.DeleteOptions{}
127+
o.ApplyToDelete(newDeleteOpts)
128+
Expect(newDeleteOpts).To(Equal(o))
129+
})
130+
})

0 commit comments

Comments
 (0)