Generate deletion policy getters and setters for managed resources.
Signed-off-by: Nic Cope <negz@rk0n.org>
This commit is contained in:
parent
12a1a1fb07
commit
da38fc6e95
|
|
@ -116,6 +116,8 @@ func GenerateManaged(filename, header string, p *packages.Package) error {
|
||||||
"GetWriteConnectionSecretToReference": method.NewGetWriteConnectionSecretToReference(receiver, RuntimeImport),
|
"GetWriteConnectionSecretToReference": method.NewGetWriteConnectionSecretToReference(receiver, RuntimeImport),
|
||||||
"SetReclaimPolicy": method.NewSetReclaimPolicy(receiver, RuntimeImport, fields.NameSpec),
|
"SetReclaimPolicy": method.NewSetReclaimPolicy(receiver, RuntimeImport, fields.NameSpec),
|
||||||
"GetReclaimPolicy": method.NewGetReclaimPolicy(receiver, RuntimeImport, fields.NameSpec),
|
"GetReclaimPolicy": method.NewGetReclaimPolicy(receiver, RuntimeImport, fields.NameSpec),
|
||||||
|
"SetDeletionPolicy": method.NewSetDeletionPolicy(receiver, RuntimeImport),
|
||||||
|
"GetDeletionPolicy": method.NewGetDeletionPolicy(receiver, RuntimeImport),
|
||||||
}
|
}
|
||||||
|
|
||||||
err := generate.WriteMethods(p, methods, filepath.Join(filepath.Dir(p.GoFiles[0]), filename),
|
err := generate.WriteMethods(p, methods, filepath.Join(filepath.Dir(p.GoFiles[0]), filename),
|
||||||
|
|
|
||||||
|
|
@ -302,6 +302,28 @@ func NewGetReclaimPolicy(receiver, runtime, field string) New {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewSetDeletionPolicy returns a NewMethod that writes a SetDeletionPolicy
|
||||||
|
// method for the supplied Object to the supplied file.
|
||||||
|
func NewSetDeletionPolicy(receiver, runtime string) New {
|
||||||
|
return func(f *jen.File, o types.Object) {
|
||||||
|
f.Commentf("SetDeletionPolicy of this %s.", o.Name())
|
||||||
|
f.Func().Params(jen.Id(receiver).Op("*").Id(o.Name())).Id("SetDeletionPolicy").Params(jen.Id("r").Qual(runtime, "DeletionPolicy")).Block(
|
||||||
|
jen.Id(receiver).Dot(fields.NameSpec).Dot("DeletionPolicy").Op("=").Id("r"),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewGetDeletionPolicy returns a NewMethod that writes a GetDeletionPolicy
|
||||||
|
// method for the supplied Object to the supplied file.
|
||||||
|
func NewGetDeletionPolicy(receiver, runtime string) New {
|
||||||
|
return func(f *jen.File, o types.Object) {
|
||||||
|
f.Commentf("GetDeletionPolicy of this %s.", o.Name())
|
||||||
|
f.Func().Params(jen.Id(receiver).Op("*").Id(o.Name())).Id("GetDeletionPolicy").Params().Qual(runtime, "DeletionPolicy").Block(
|
||||||
|
jen.Return(jen.Id(receiver).Dot(fields.NameSpec).Dot("DeletionPolicy")),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// NewGetCredentialsSecretReference returns a NewMethod that writes a
|
// NewGetCredentialsSecretReference returns a NewMethod that writes a
|
||||||
// GetCredentialsSecretReference method for the supplied Object to the supplied
|
// GetCredentialsSecretReference method for the supplied Object to the supplied
|
||||||
// file.
|
// file.
|
||||||
|
|
|
||||||
|
|
@ -376,6 +376,40 @@ func (t *Type) GetReclaimPolicy() runtime.ReclaimPolicy {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestNewSetDeletionPolicy(t *testing.T) {
|
||||||
|
want := `package pkg
|
||||||
|
|
||||||
|
import runtime "example.org/runtime"
|
||||||
|
|
||||||
|
// SetDeletionPolicy of this Type.
|
||||||
|
func (t *Type) SetDeletionPolicy(r runtime.DeletionPolicy) {
|
||||||
|
t.Spec.DeletionPolicy = r
|
||||||
|
}
|
||||||
|
`
|
||||||
|
f := jen.NewFile("pkg")
|
||||||
|
NewSetDeletionPolicy("t", "example.org/runtime")(f, MockObject{Named: "Type"})
|
||||||
|
if diff := cmp.Diff(want, fmt.Sprintf("%#v", f)); diff != "" {
|
||||||
|
t.Errorf("NewSetDeletionPolicy(): -want, +got\n%s", diff)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewGetDeletionPolicy(t *testing.T) {
|
||||||
|
want := `package pkg
|
||||||
|
|
||||||
|
import runtime "example.org/runtime"
|
||||||
|
|
||||||
|
// GetDeletionPolicy of this Type.
|
||||||
|
func (t *Type) GetDeletionPolicy() runtime.DeletionPolicy {
|
||||||
|
return t.Spec.DeletionPolicy
|
||||||
|
}
|
||||||
|
`
|
||||||
|
f := jen.NewFile("pkg")
|
||||||
|
NewGetDeletionPolicy("t", "example.org/runtime")(f, MockObject{Named: "Type"})
|
||||||
|
if diff := cmp.Diff(want, fmt.Sprintf("%#v", f)); diff != "" {
|
||||||
|
t.Errorf("NewGetDeletionPolicy(): -want, +got\n%s", diff)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestNewManagedGetItems(t *testing.T) {
|
func TestNewManagedGetItems(t *testing.T) {
|
||||||
want := `package pkg
|
want := `package pkg
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue