Skip to content

Commit d4a3641

Browse files
committed
More Matt (the revenge)
1 parent b1ac242 commit d4a3641

File tree

3 files changed

+75
-38
lines changed

3 files changed

+75
-38
lines changed

api/v1alpha7/conversion.go

Lines changed: 70 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,30 @@ var (
5050

5151
var _ ctrlconversion.Convertible = &OpenStackCluster{}
5252

53-
var v1alpha7OpenStackClusterRestorer = conversion.RestorerFor[*OpenStackCluster]{}
53+
func restorev1alpha7SecurityGroup(previous *SecurityGroup, dst *SecurityGroup) {
54+
if previous == nil || dst == nil {
55+
return
56+
}
57+
58+
for i, rule := range previous.Rules {
59+
dst.Rules[i].SecurityGroupID = rule.SecurityGroupID
60+
}
61+
}
62+
63+
func restorev1alpha7OpenStackClusterStatus(previous *OpenStackClusterStatus, dst *OpenStackClusterStatus) {
64+
restorev1alpha7SecurityGroup(previous.ControlPlaneSecurityGroup, dst.ControlPlaneSecurityGroup)
65+
restorev1alpha7SecurityGroup(previous.WorkerSecurityGroup, dst.WorkerSecurityGroup)
66+
restorev1alpha7SecurityGroup(previous.BastionSecurityGroup, dst.BastionSecurityGroup)
67+
}
68+
69+
var v1alpha7OpenStackClusterRestorer = conversion.RestorerFor[*OpenStackCluster]{
70+
"status": conversion.HashedFieldRestorer(
71+
func(c *OpenStackCluster) *OpenStackClusterStatus {
72+
return &c.Status
73+
},
74+
restorev1alpha7OpenStackClusterStatus,
75+
),
76+
}
5477

5578
var v1alpha8OpenStackClusterRestorer = conversion.RestorerFor[*infrav1.OpenStackCluster]{
5679
"bastion": conversion.HashedFieldRestorer(
@@ -456,11 +479,53 @@ func Convert_v1alpha8_OpenStackClusterSpec_To_v1alpha7_OpenStackClusterSpec(in *
456479
return nil
457480
}
458481

459-
func Convert_v1alpha8_SecurityGroupRule_To_v1alpha7_SecurityGroupRule(in *infrav1.SecurityGroupRuleSpec, out *SecurityGroupRule, s apiconversion.Scope) error {
460-
err := autoConvert_v1alpha8_SecurityGroupRule_To_v1alpha7_SecurityGroupRule(in, out, s)
461-
if err != nil {
462-
return err
482+
func Convert_v1alpha8_SecurityGroupStatus_To_v1alpha7_SecurityGroup(in *infrav1.SecurityGroupStatus, out *SecurityGroup, s apiconversion.Scope) error {
483+
out.ID = in.ID
484+
out.Name = in.Name
485+
out.Rules = make([]SecurityGroupRule, len(in.Rules))
486+
for i, rule := range in.Rules {
487+
out.Rules[i] = SecurityGroupRule{
488+
ID: rule.ID,
489+
Description: rule.Description,
490+
Direction: rule.Direction,
491+
EtherType: rule.EtherType,
492+
PortRangeMin: rule.PortRangeMin,
493+
PortRangeMax: rule.PortRangeMax,
494+
Protocol: rule.Protocol,
495+
RemoteGroupID: rule.RemoteGroupID,
496+
RemoteIPPrefix: rule.RemoteIPPrefix,
497+
}
498+
}
499+
return nil
500+
}
501+
502+
func Convert_v1alpha7_SecurityGroup_To_v1alpha8_SecurityGroupStatus(in *SecurityGroup, out *infrav1.SecurityGroupStatus, s apiconversion.Scope) error {
503+
out.ID = in.ID
504+
out.Name = in.Name
505+
out.Rules = make([]infrav1.SecurityGroupRuleStatus, len(in.Rules))
506+
for i, rule := range in.Rules {
507+
out.Rules[i] = infrav1.SecurityGroupRuleStatus{
508+
ID: rule.ID,
509+
Description: rule.Description,
510+
Direction: rule.Direction,
511+
EtherType: rule.EtherType,
512+
PortRangeMin: rule.PortRangeMin,
513+
PortRangeMax: rule.PortRangeMax,
514+
Protocol: rule.Protocol,
515+
RemoteGroupID: rule.RemoteGroupID,
516+
RemoteIPPrefix: rule.RemoteIPPrefix,
517+
}
463518
}
464519

465520
return nil
466521
}
522+
523+
// func Convert_v1alpha8_SecurityGroupRule_To_v1alpha7_SecurityGroupRule(in *infrav1.SecurityGroupRuleSpec, out *SecurityGroupRule, s apiconversion.Scope) error {
524+
// err := autoConvert_v1alpha8_SecurityGroupRule_To_v1alpha7_SecurityGroupRule(in, out, s)
525+
// if err != nil {
526+
// return err
527+
// }
528+
//
529+
// return nil
530+
// }
531+
//

api/v1alpha7/zz_generated.conversion.go

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/helpers/fuzz_mutate.go

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
apiequality "k8s.io/apimachinery/pkg/api/equality"
2626
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2727
"k8s.io/client-go/kubernetes/scheme"
28-
infrav1 "sigs.k8s.io/cluster-api-provider-openstack/api/v1alpha8"
2928
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
3029
"sigs.k8s.io/controller-runtime/pkg/conversion"
3130
)
@@ -71,38 +70,6 @@ func FuzzMutateTestFunc(input FuzzMutateTestFuncInput) func(*testing.T) {
7170
input.HubAfterMutation(hubAfter)
7271
}
7372

74-
if !apiequality.Semantic.DeepEqual(hubBefore, hubAfter) {
75-
var clusterBefore, clusterAfter *infrav1.OpenStackCluster
76-
clusterBefore, ok := hubBefore.(*infrav1.OpenStackCluster)
77-
if ok {
78-
clusterAfter = hubAfter.(*infrav1.OpenStackCluster)
79-
}
80-
81-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Spec.Bastion, clusterAfter.Spec.Bastion)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Spec.Bastion, clusterAfter.Spec.Bastion))
82-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Spec, clusterAfter.Spec)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Spec, clusterAfter.Spec))
83-
84-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.Ready, clusterAfter.Status.Ready)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.Ready, clusterAfter.Status.Ready))
85-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.Network, clusterAfter.Status.Network)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.Network, clusterAfter.Status.Network))
86-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.ExternalNetwork, clusterAfter.Status.ExternalNetwork)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.ExternalNetwork, clusterAfter.Status.ExternalNetwork))
87-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.Router, clusterAfter.Status.Router)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.Router, clusterAfter.Status.Router))
88-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.APIServerLoadBalancer, clusterAfter.Status.APIServerLoadBalancer)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.APIServerLoadBalancer, clusterAfter.Status.APIServerLoadBalancer))
89-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.FailureDomains, clusterAfter.Status.FailureDomains)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.FailureDomains, clusterAfter.Status.FailureDomains))
90-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.ControlPlaneSecurityGroup, clusterAfter.Status.ControlPlaneSecurityGroup)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.ControlPlaneSecurityGroup, clusterAfter.Status.ControlPlaneSecurityGroup))
91-
92-
if !apiequality.Semantic.DeepEqual(clusterBefore.Status.WorkerSecurityGroup, clusterAfter.Status.WorkerSecurityGroup) {
93-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.WorkerSecurityGroup, clusterAfter.Status.WorkerSecurityGroup)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.WorkerSecurityGroup, clusterAfter.Status.WorkerSecurityGroup))
94-
}
95-
96-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.WorkerSecurityGroup, clusterAfter.Status.WorkerSecurityGroup)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.WorkerSecurityGroup, clusterAfter.Status.WorkerSecurityGroup))
97-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.BastionSecurityGroup, clusterAfter.Status.BastionSecurityGroup)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.BastionSecurityGroup, clusterAfter.Status.BastionSecurityGroup))
98-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.Bastion, clusterAfter.Status.Bastion)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.Bastion, clusterAfter.Status.Bastion))
99-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.FailureReason, clusterAfter.Status.FailureReason)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.FailureReason, clusterAfter.Status.FailureReason))
100-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status.FailureMessage, clusterAfter.Status.FailureMessage)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status.FailureMessage, clusterAfter.Status.FailureMessage))
101-
102-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.Status, clusterAfter.Status)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.Status, clusterAfter.Status))
103-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.ObjectMeta, clusterAfter.ObjectMeta)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.ObjectMeta, clusterAfter.ObjectMeta))
104-
g.Expect(apiequality.Semantic.DeepEqual(clusterBefore.TypeMeta, clusterAfter.TypeMeta)).To(gomega.BeTrue(), cmp.Diff(clusterBefore.TypeMeta, clusterAfter.TypeMeta))
105-
}
10673
g.Expect(apiequality.Semantic.DeepEqual(hubBefore, hubAfter)).To(gomega.BeTrue(), cmp.Diff(hubBefore, hubAfter))
10774
}
10875
})

0 commit comments

Comments
 (0)