Skip to content

Commit 52652d3

Browse files
authored
Merge pull request kubernetes-sigs#1974 from shiftstack/securitygroupparam
⚠️SecurityGroupFilter to SecurityGroupParam
2 parents 4a5cd42 + 865933d commit 52652d3

24 files changed

+1015
-654
lines changed

api/v1alpha5/conversion.go

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -325,13 +325,8 @@ func Convert_v1beta1_PortOpts_To_v1alpha5_PortOpts(in *infrav1.PortOpts, out *Po
325325
if len(in.SecurityGroups) > 0 {
326326
out.SecurityGroupFilters = make([]SecurityGroupParam, len(in.SecurityGroups))
327327
for i := range in.SecurityGroups {
328-
securityGroupParam := &out.SecurityGroupFilters[i]
329-
if in.SecurityGroups[i].ID != "" {
330-
securityGroupParam.UUID = in.SecurityGroups[i].ID
331-
} else {
332-
if err := Convert_v1beta1_SecurityGroupFilter_To_v1alpha5_SecurityGroupFilter(&in.SecurityGroups[i], &securityGroupParam.Filter, s); err != nil {
333-
return err
334-
}
328+
if err := Convert_v1beta1_SecurityGroupParam_To_v1alpha5_SecurityGroupParam(&in.SecurityGroups[i], &out.SecurityGroupFilters[i], s); err != nil {
329+
return err
335330
}
336331
}
337332
}
@@ -395,46 +390,48 @@ func Convert_v1alpha5_PortOpts_To_v1beta1_PortOpts(in *PortOpts, out *infrav1.Po
395390
}
396391

397392
if len(in.SecurityGroups) > 0 || len(in.SecurityGroupFilters) > 0 {
398-
out.SecurityGroups = make([]infrav1.SecurityGroupFilter, 0, len(in.SecurityGroups)+len(in.SecurityGroupFilters))
393+
out.SecurityGroups = make([]infrav1.SecurityGroupParam, 0, len(in.SecurityGroups)+len(in.SecurityGroupFilters))
399394
for i := range in.SecurityGroupFilters {
400395
sgParam := &in.SecurityGroupFilters[i]
401396
switch {
402397
case sgParam.UUID != "":
403-
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupFilter{ID: sgParam.UUID})
398+
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupParam{ID: &sgParam.UUID})
404399
case sgParam.Name != "":
405-
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupFilter{Name: sgParam.Name})
400+
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupParam{Filter: &infrav1.SecurityGroupFilter{Name: sgParam.Name}})
406401
case sgParam.Filter != (SecurityGroupFilter{}):
407-
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupFilter{})
402+
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupParam{})
408403
outSG := &out.SecurityGroups[len(out.SecurityGroups)-1]
409-
if err := Convert_v1alpha5_SecurityGroupFilter_To_v1beta1_SecurityGroupFilter(&sgParam.Filter, outSG, s); err != nil {
404+
outSG.Filter = &infrav1.SecurityGroupFilter{}
405+
if err := Convert_v1alpha5_SecurityGroupFilter_To_v1beta1_SecurityGroupFilter(&sgParam.Filter, outSG.Filter, s); err != nil {
410406
return err
411407
}
412408
}
413409
}
414-
for _, id := range in.SecurityGroups {
415-
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupFilter{ID: id})
410+
for i := range in.SecurityGroups {
411+
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupParam{ID: &in.SecurityGroups[i]})
416412
}
417413
}
418414

419415
if len(in.SecurityGroups) > 0 || len(in.SecurityGroupFilters) > 0 {
420-
out.SecurityGroups = make([]infrav1.SecurityGroupFilter, 0, len(in.SecurityGroups)+len(in.SecurityGroupFilters))
416+
out.SecurityGroups = make([]infrav1.SecurityGroupParam, 0, len(in.SecurityGroups)+len(in.SecurityGroupFilters))
421417
for i := range in.SecurityGroupFilters {
422418
sgParam := &in.SecurityGroupFilters[i]
423419
switch {
424420
case sgParam.UUID != "":
425-
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupFilter{ID: sgParam.UUID})
421+
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupParam{ID: &sgParam.UUID})
426422
case sgParam.Name != "":
427-
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupFilter{Name: sgParam.Name})
423+
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupParam{Filter: &infrav1.SecurityGroupFilter{Name: sgParam.Name}})
428424
case sgParam.Filter != (SecurityGroupFilter{}):
429-
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupFilter{})
425+
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupParam{})
430426
outSG := &out.SecurityGroups[len(out.SecurityGroups)-1]
431-
if err := Convert_v1alpha5_SecurityGroupFilter_To_v1beta1_SecurityGroupFilter(&sgParam.Filter, outSG, s); err != nil {
427+
outSG.Filter = &infrav1.SecurityGroupFilter{}
428+
if err := Convert_v1alpha5_SecurityGroupFilter_To_v1beta1_SecurityGroupFilter(&sgParam.Filter, outSG.Filter, s); err != nil {
432429
return err
433430
}
434431
}
435432
}
436-
for _, id := range in.SecurityGroups {
437-
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupFilter{ID: id})
433+
for i := range in.SecurityGroups {
434+
out.SecurityGroups = append(out.SecurityGroups, infrav1.SecurityGroupParam{ID: &in.SecurityGroups[i]})
438435
}
439436
}
440437

@@ -521,34 +518,40 @@ func Convert_v1beta1_NetworkStatus_To_v1alpha5_Network(in *infrav1.NetworkStatus
521518
return nil
522519
}
523520

524-
func Convert_v1alpha5_SecurityGroupParam_To_v1beta1_SecurityGroupFilter(in *SecurityGroupParam, out *infrav1.SecurityGroupFilter, s conversion.Scope) error {
525-
// SecurityGroupParam is replaced by its contained SecurityGroupFilter in v1beta1
526-
err := Convert_v1alpha5_SecurityGroupFilter_To_v1beta1_SecurityGroupFilter(&in.Filter, out, s)
527-
if err != nil {
528-
return err
529-
}
530-
521+
func Convert_v1alpha5_SecurityGroupParam_To_v1beta1_SecurityGroupParam(in *SecurityGroupParam, out *infrav1.SecurityGroupParam, s conversion.Scope) error {
531522
if in.UUID != "" {
532-
out.ID = in.UUID
523+
out.ID = &in.UUID
524+
return nil
533525
}
526+
527+
outFilter := &infrav1.SecurityGroupFilter{}
534528
if in.Name != "" {
535-
out.Name = in.Name
529+
outFilter.Name = in.Name
530+
} else {
531+
// SecurityGroupParam is replaced by its contained SecurityGroupFilter in v1beta1
532+
err := Convert_v1alpha5_SecurityGroupFilter_To_v1beta1_SecurityGroupFilter(&in.Filter, outFilter, s)
533+
if err != nil {
534+
return err
535+
}
536+
}
537+
538+
if !outFilter.IsZero() {
539+
out.Filter = outFilter
536540
}
537541
return nil
538542
}
539543

540-
func Convert_v1beta1_SecurityGroupFilter_To_v1alpha5_SecurityGroupParam(in *infrav1.SecurityGroupFilter, out *SecurityGroupParam, s conversion.Scope) error {
541-
// SecurityGroupParam is replaced by its contained SecurityGroupFilter in v1beta1
542-
err := Convert_v1beta1_SecurityGroupFilter_To_v1alpha5_SecurityGroupFilter(in, &out.Filter, s)
543-
if err != nil {
544-
return err
544+
func Convert_v1beta1_SecurityGroupParam_To_v1alpha5_SecurityGroupParam(in *infrav1.SecurityGroupParam, out *SecurityGroupParam, s conversion.Scope) error {
545+
if in.ID != nil {
546+
out.UUID = *in.ID
547+
return nil
545548
}
546549

547-
if in.ID != "" {
548-
out.UUID = in.ID
549-
}
550-
if in.Name != "" {
551-
out.Name = in.Name
550+
if in.Filter != nil {
551+
err := Convert_v1beta1_SecurityGroupFilter_To_v1alpha5_SecurityGroupFilter(in.Filter, &out.Filter, s)
552+
if err != nil {
553+
return err
554+
}
552555
}
553556
return nil
554557
}

api/v1alpha5/zz_generated.conversion.go

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

api/v1alpha6/conversion_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -455,19 +455,19 @@ func TestPortOptsConvertTo(t *testing.T) {
455455

456456
// Variables used in the tests
457457
uuids := []string{"abc123", "123abc"}
458-
securityGroupsUuids := []infrav1.SecurityGroupFilter{
459-
{ID: uuids[0]},
460-
{ID: uuids[1]},
458+
securityGroupsUuids := []infrav1.SecurityGroupParam{
459+
{ID: &uuids[0]},
460+
{ID: &uuids[1]},
461461
}
462462
securityGroupFilter := []SecurityGroupParam{
463463
{Name: "one"},
464464
{UUID: "654cba"},
465465
}
466-
securityGroupFilterMerged := []infrav1.SecurityGroupFilter{
467-
{Name: "one"},
468-
{ID: "654cba"},
469-
{ID: uuids[0]},
470-
{ID: uuids[1]},
466+
securityGroupFilterMerged := []infrav1.SecurityGroupParam{
467+
{Filter: &infrav1.SecurityGroupFilter{Name: "one"}},
468+
{ID: pointer.String("654cba")},
469+
{ID: &uuids[0]},
470+
{ID: &uuids[1]},
471471
}
472472
legacyPortProfile := map[string]string{
473473
"capabilities": "[\"switchdev\"]",

api/v1alpha6/openstackmachine_conversion.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,12 @@ func restorev1beta1MachineSpec(previous *infrav1.OpenStackMachineSpec, dst *infr
170170
dst.ServerGroup = previous.ServerGroup
171171
dst.Image = previous.Image
172172
dst.FloatingIPPoolRef = previous.FloatingIPPoolRef
173+
174+
if len(dst.SecurityGroups) == len(previous.SecurityGroups) {
175+
for i := range dst.SecurityGroups {
176+
restorev1beta1SecurityGroupParam(&previous.SecurityGroups[i], &dst.SecurityGroups[i])
177+
}
178+
}
173179
}
174180

175181
func convertNetworksToPorts(networks []NetworkParam, s apiconversion.Scope) ([]infrav1.PortOpts, error) {

0 commit comments

Comments
 (0)