Skip to content

Commit 8ea3ccf

Browse files
committed
ServerGroupFilter to ServerGroupParam
1 parent a6732bc commit 8ea3ccf

19 files changed

+243
-68
lines changed

api/v1alpha5/conversion.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -351,9 +351,7 @@ func Convert_v1alpha5_OpenStackMachineSpec_To_v1beta1_OpenStackMachineSpec(in *O
351351
}
352352

353353
if in.ServerGroupID != "" {
354-
out.ServerGroup = &infrav1.ServerGroupFilter{ID: in.ServerGroupID}
355-
} else {
356-
out.ServerGroup = &infrav1.ServerGroupFilter{}
354+
out.ServerGroup = &infrav1.ServerGroupParam{ID: &in.ServerGroupID}
357355
}
358356

359357
imageParam := infrav1.ImageParam{}
@@ -682,8 +680,8 @@ func Convert_v1beta1_OpenStackMachineSpec_To_v1alpha5_OpenStackMachineSpec(in *i
682680
return err
683681
}
684682

685-
if in.ServerGroup != nil {
686-
out.ServerGroupID = in.ServerGroup.ID
683+
if in.ServerGroup != nil && in.ServerGroup.ID != nil {
684+
out.ServerGroupID = *in.ServerGroup.ID
687685
}
688686

689687
if in.Image.ID != nil {

api/v1alpha6/openstackcluster_conversion.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -434,7 +434,7 @@ func Convert_v1alpha6_Bastion_To_v1beta1_Bastion(in *Bastion, out *infrav1.Basti
434434
}
435435

436436
if in.Instance.ServerGroupID != "" {
437-
out.Spec.ServerGroup = &infrav1.ServerGroupFilter{ID: in.Instance.ServerGroupID}
437+
out.Spec.ServerGroup = &infrav1.ServerGroupParam{ID: &in.Instance.ServerGroupID}
438438
} else {
439439
out.Spec.ServerGroup = nil
440440
}
@@ -464,8 +464,8 @@ func Convert_v1beta1_Bastion_To_v1alpha6_Bastion(in *infrav1.Bastion, out *Basti
464464
return err
465465
}
466466

467-
if in.Spec.ServerGroup != nil && in.Spec.ServerGroup.ID != "" {
468-
out.Instance.ServerGroupID = in.Spec.ServerGroup.ID
467+
if in.Spec.ServerGroup != nil && in.Spec.ServerGroup.ID != nil {
468+
out.Instance.ServerGroupID = *in.Spec.ServerGroup.ID
469469
}
470470
}
471471

api/v1alpha6/openstackmachine_conversion.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ func Convert_v1alpha6_OpenStackMachineSpec_To_v1beta1_OpenStackMachineSpec(in *O
267267
}
268268

269269
if in.ServerGroupID != "" {
270-
out.ServerGroup = &infrav1.ServerGroupFilter{ID: in.ServerGroupID}
270+
out.ServerGroup = &infrav1.ServerGroupParam{ID: &in.ServerGroupID}
271271
} else {
272272
out.ServerGroup = nil
273273
}
@@ -316,8 +316,8 @@ func Convert_v1beta1_OpenStackMachineSpec_To_v1alpha6_OpenStackMachineSpec(in *i
316316
return err
317317
}
318318

319-
if in.ServerGroup != nil {
320-
out.ServerGroupID = in.ServerGroup.ID
319+
if in.ServerGroup != nil && in.ServerGroup.ID != nil {
320+
out.ServerGroupID = *in.ServerGroup.ID
321321
}
322322

323323
if in.Image.ID != nil {

api/v1alpha7/openstackcluster_conversion.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,7 @@ func Convert_v1alpha7_Bastion_To_v1beta1_Bastion(in *Bastion, out *infrav1.Basti
403403
}
404404

405405
if in.Instance.ServerGroupID != "" {
406-
out.Spec.ServerGroup = &infrav1.ServerGroupFilter{ID: in.Instance.ServerGroupID}
406+
out.Spec.ServerGroup = &infrav1.ServerGroupParam{ID: &in.Instance.ServerGroupID}
407407
} else {
408408
out.Spec.ServerGroup = nil
409409
}
@@ -433,8 +433,8 @@ func Convert_v1beta1_Bastion_To_v1alpha7_Bastion(in *infrav1.Bastion, out *Basti
433433
return err
434434
}
435435

436-
if in.Spec.ServerGroup != nil && in.Spec.ServerGroup.ID != "" {
437-
out.Instance.ServerGroupID = in.Spec.ServerGroup.ID
436+
if in.Spec.ServerGroup != nil && in.Spec.ServerGroup.ID != nil {
437+
out.Instance.ServerGroupID = *in.Spec.ServerGroup.ID
438438
}
439439
}
440440

api/v1alpha7/openstackmachine_conversion.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ func Convert_v1alpha7_OpenStackMachineSpec_To_v1beta1_OpenStackMachineSpec(in *O
178178
}
179179

180180
if in.ServerGroupID != "" {
181-
out.ServerGroup = &infrav1.ServerGroupFilter{ID: in.ServerGroupID}
181+
out.ServerGroup = &infrav1.ServerGroupParam{ID: &in.ServerGroupID}
182182
} else {
183183
out.ServerGroup = nil
184184
}
@@ -224,8 +224,8 @@ func Convert_v1beta1_OpenStackMachineSpec_To_v1alpha7_OpenStackMachineSpec(in *i
224224
return err
225225
}
226226

227-
if in.ServerGroup != nil {
228-
out.ServerGroupID = in.ServerGroup.ID
227+
if in.ServerGroup != nil && in.ServerGroup.ID != nil {
228+
out.ServerGroupID = *in.ServerGroup.ID
229229
}
230230

231231
if in.Image.ID != nil {

api/v1beta1/openstackmachine_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ type OpenStackMachineSpec struct {
8686

8787
// The server group to assign the machine to.
8888
// +optional
89-
ServerGroup *ServerGroupFilter `json:"serverGroup,omitempty"`
89+
ServerGroup *ServerGroupParam `json:"serverGroup,omitempty"`
9090

9191
// IdentityRef is a reference to a secret holding OpenStack credentials
9292
// to be used when reconciling this machine. If not specified, the

api/v1beta1/types.go

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -547,9 +547,30 @@ type AdditionalBlockDevice struct {
547547
Storage BlockDeviceStorage `json:"storage"`
548548
}
549549

550+
// ServerGroupParam specifies an OpenStack server group. It may be specified by ID or filter, but not both.
551+
// +kubebuilder:validation:MaxProperties:=1
552+
// +kubebuilder:validation:MinProperties:=1
553+
type ServerGroupParam struct {
554+
// ID is the ID of the server group to use.
555+
// +kubebuilder:validation:Format:=uuid
556+
ID optional.String `json:"id,omitempty"`
557+
558+
// Filter specifies a query to select an OpenStack server group. If provided, it cannot be empty.
559+
Filter *ServerGroupFilter `json:"filter,omitempty"`
560+
}
561+
562+
// ServerGroupFilter specifies a query to select an OpenStack server group. At least one property must be set.
563+
// +kubebuilder:validation:MinProperties:=1
550564
type ServerGroupFilter struct {
551-
ID string `json:"id,omitempty"`
552-
Name string `json:"name,omitempty"`
565+
// Name is the name of a server group to look for.
566+
Name optional.String `json:"name,omitempty"`
567+
}
568+
569+
func (f *ServerGroupFilter) IsZero() bool {
570+
if f == nil {
571+
return true
572+
}
573+
return f.Name == nil
553574
}
554575

555576
// BlockDeviceType defines the type of block device to create.

api/v1beta1/zz_generated.deepcopy.go

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

config/crd/bases/infrastructure.cluster.x-k8s.io_openstackclusters.yaml

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

config/crd/bases/infrastructure.cluster.x-k8s.io_openstackclustertemplates.yaml

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

0 commit comments

Comments
 (0)