Skip to content

Commit 970ef58

Browse files
committed
fix errs, conversions
1 parent 77a32a0 commit 970ef58

File tree

3 files changed

+54
-6
lines changed

3 files changed

+54
-6
lines changed

apis/v1alpha3/vspherefailuredomain_conversion.go

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package v1alpha3
1818

1919
import (
20+
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
2021
"sigs.k8s.io/controller-runtime/pkg/conversion"
2122

2223
infrav1 "sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1"
@@ -25,13 +26,36 @@ import (
2526
// ConvertTo converts this VSphereFailureDomain to the Hub version (v1beta1).
2627
func (src *VSphereFailureDomain) ConvertTo(dstRaw conversion.Hub) error {
2728
dst := dstRaw.(*infrav1.VSphereFailureDomain)
28-
return Convert_v1alpha3_VSphereFailureDomain_To_v1beta1_VSphereFailureDomain(src, dst, nil)
29+
30+
if err := Convert_v1alpha3_VSphereFailureDomain_To_v1beta1_VSphereFailureDomain(src, dst, nil); err != nil {
31+
return err
32+
}
33+
34+
// Manually restore data.
35+
restored := &infrav1.VSphereFailureDomain{}
36+
if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok {
37+
return err
38+
}
39+
40+
dst.Spec.Topology.NetworkConfigurations = restored.Spec.Topology.NetworkConfigurations
41+
42+
return nil
2943
}
3044

3145
// ConvertFrom converts from the Hub version (v1beta1) to this VSphereFailureDomain.
3246
func (dst *VSphereFailureDomain) ConvertFrom(srcRaw conversion.Hub) error {
3347
src := srcRaw.(*infrav1.VSphereFailureDomain)
34-
return Convert_v1beta1_VSphereFailureDomain_To_v1alpha3_VSphereFailureDomain(src, dst, nil)
48+
49+
if err := Convert_v1beta1_VSphereFailureDomain_To_v1alpha3_VSphereFailureDomain(src, dst, nil); err != nil {
50+
return err
51+
}
52+
53+
// Preserve Hub data on down-conversion except for metadata
54+
if err := utilconversion.MarshalData(src, dst); err != nil {
55+
return err
56+
}
57+
58+
return nil
3559
}
3660

3761
// ConvertTo converts this VSphereFailureDomainList to the Hub version (v1beta1).

apis/v1alpha4/vspherefailuredomain_conversion.go

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package v1alpha4
1818

1919
import (
20+
utilconversion "sigs.k8s.io/cluster-api/util/conversion"
2021
"sigs.k8s.io/controller-runtime/pkg/conversion"
2122

2223
infrav1 "sigs.k8s.io/cluster-api-provider-vsphere/apis/v1beta1"
@@ -25,13 +26,36 @@ import (
2526
// ConvertTo converts this VSphereFailureDomain to the Hub version (v1beta1).
2627
func (src *VSphereFailureDomain) ConvertTo(dstRaw conversion.Hub) error {
2728
dst := dstRaw.(*infrav1.VSphereFailureDomain)
28-
return Convert_v1alpha4_VSphereFailureDomain_To_v1beta1_VSphereFailureDomain(src, dst, nil)
29+
30+
if err := Convert_v1alpha4_VSphereFailureDomain_To_v1beta1_VSphereFailureDomain(src, dst, nil); err != nil {
31+
return err
32+
}
33+
34+
// Manually restore data.
35+
restored := &infrav1.VSphereFailureDomain{}
36+
if ok, err := utilconversion.UnmarshalData(src, restored); err != nil || !ok {
37+
return err
38+
}
39+
40+
dst.Spec.Topology.NetworkConfigurations = restored.Spec.Topology.NetworkConfigurations
41+
42+
return nil
2943
}
3044

3145
// ConvertFrom converts from the Hub version (v1beta1) to this VSphereFailureDomain.
3246
func (dst *VSphereFailureDomain) ConvertFrom(srcRaw conversion.Hub) error {
3347
src := srcRaw.(*infrav1.VSphereFailureDomain)
34-
return Convert_v1beta1_VSphereFailureDomain_To_v1alpha4_VSphereFailureDomain(src, dst, nil)
48+
49+
if err := Convert_v1beta1_VSphereFailureDomain_To_v1alpha4_VSphereFailureDomain(src, dst, nil); err != nil {
50+
return err
51+
}
52+
53+
// Preserve Hub data on down-conversion except for metadata
54+
if err := utilconversion.MarshalData(src, dst); err != nil {
55+
return err
56+
}
57+
58+
return nil
3559
}
3660

3761
// ConvertTo converts this VSphereFailureDomainList to the Hub version (v1beta1).

internal/webhooks/vspherefailuredomain.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,12 +78,12 @@ func (webhook *VSphereFailureDomainWebhook) ValidateCreate(_ context.Context, ra
7878
}
7979

8080
if len(obj.Spec.Topology.NetworkConfigurations) != 0 && len(obj.Spec.Topology.Networks) != 0 {
81-
allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "Topology", "Networks"), "cannot be set if spec.Topology.NetworkConfigs is already set"))
81+
allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "topology", "networks"), "cannot be set if spec.topology.networkConfigs is already set"))
8282
}
8383

8484
for i, networkConfig := range obj.Spec.Topology.NetworkConfigurations {
8585
if networkConfig.NetworkName == "" {
86-
allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "Topology", "NetworkConfigurations", fmt.Sprint(i), "name"), "cannot be empty"))
86+
allErrs = append(allErrs, field.Forbidden(field.NewPath("spec", "topology", "networkConfigurations", fmt.Sprint(i), "name"), "cannot be empty"))
8787
}
8888
}
8989

0 commit comments

Comments
 (0)