Skip to content

Commit f05b655

Browse files
committed
RegisteredLimit Adapt to BatchCreate API
On-behalf-of: SAP nils.gondermann@sap.com
1 parent 32e5039 commit f05b655

6 files changed

Lines changed: 16 additions & 60 deletions

File tree

internal/controllers/registeredlimit/actuator.go

Lines changed: 7 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,7 @@ func (actuator registeredlimitActuator) ListOSResourcesForAdoption(ctx context.C
7575
// Check osclients.ResourceFilter
7676

7777
listOpts := registeredlimits.ListOpts{
78-
Name: getResourceName(orcObject),
79-
Description: ptr.Deref(resourceSpec.Description, ""),
78+
// TODO(scaffolding): Add import filters
8079
}
8180

8281
return actuator.osClient.ListRegisteredLimits(ctx, listOpts), true
@@ -88,9 +87,7 @@ func (actuator registeredlimitActuator) ListOSResourcesForImport(ctx context.Con
8887
// Check osclients.ResourceFilter
8988

9089
listOpts := registeredlimits.ListOpts{
91-
Name: string(ptr.Deref(filter.Name, "")),
92-
Description: string(ptr.Deref(filter.Description, "")),
93-
// TODO(scaffolding): Add more import filters
90+
// TODO(scaffolding): Add import filters
9491
}
9592

9693
return actuator.osClient.ListRegisteredLimits(ctx, listOpts), nil
@@ -118,13 +115,15 @@ func (actuator registeredlimitActuator) CreateResource(ctx context.Context, obj
118115
return nil, reconcileStatus
119116
}
120117
createOpts := registeredlimits.CreateOpts{
121-
Name: getResourceName(obj),
122118
Description: ptr.Deref(resource.Description, ""),
123-
ServiceID: serviceID,
119+
ServiceID: serviceID,
124120
// TODO(scaffolding): Add more fields
125121
}
122+
batchCreateOpts := registeredlimits.BatchCreateOpts{
123+
createOpts,
124+
}
126125

127-
osResource, err := actuator.osClient.CreateRegisteredLimit(ctx, createOpts)
126+
osResource, err := actuator.osClient.CreateRegisteredLimit(ctx, batchCreateOpts)
128127
if err != nil {
129128
if !orcerrors.IsRetryable(err) {
130129
err = orcerrors.Terminal(orcv1alpha1.ConditionReasonInvalidConfiguration, "invalid configuration creating resource: "+err.Error(), err)
@@ -150,7 +149,6 @@ func (actuator registeredlimitActuator) updateResource(ctx context.Context, obj
150149

151150
updateOpts := registeredlimits.UpdateOpts{}
152151

153-
handleNameUpdate(&updateOpts, obj, osResource)
154152
handleDescriptionUpdate(&updateOpts, resource, osResource)
155153

156154
// TODO(scaffolding): add handler for all fields supporting mutability
@@ -191,13 +189,6 @@ func needsUpdate(updateOpts registeredlimits.UpdateOpts) (bool, error) {
191189
return len(updateMap) > 0, nil
192190
}
193191

194-
func handleNameUpdate(updateOpts *registeredlimits.UpdateOpts, obj orcObjectPT, osResource *osResourceT) {
195-
name := getResourceName(obj)
196-
if osResource.Name != name {
197-
updateOpts.Name = &name
198-
}
199-
}
200-
201192
func handleDescriptionUpdate(updateOpts *registeredlimits.UpdateOpts, resource *resourceSpecT, osResource *osResourceT) {
202193
description := ptr.Deref(resource.Description, "")
203194
if osResource.Description != description {

internal/controllers/registeredlimit/actuator_test.go

Lines changed: 1 addition & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ func TestNeedsUpdate(t *testing.T) {
3737
},
3838
{
3939
name: "Updated opts",
40-
updateOpts: registeredlimits.UpdateOpts{Name: ptr.To("updated")},
40+
updateOpts: registeredlimits.UpdateOpts{Description: ptr.To("updated")},
4141
expectChange: true,
4242
},
4343
}
@@ -52,41 +52,6 @@ func TestNeedsUpdate(t *testing.T) {
5252
}
5353
}
5454

55-
func TestHandleNameUpdate(t *testing.T) {
56-
ptrToName := ptr.To[orcv1alpha1.OpenStackName]
57-
testCases := []struct {
58-
name string
59-
newValue *orcv1alpha1.OpenStackName
60-
existingValue string
61-
expectChange bool
62-
}{
63-
{name: "Identical", newValue: ptrToName("name"), existingValue: "name", expectChange: false},
64-
{name: "Different", newValue: ptrToName("new-name"), existingValue: "name", expectChange: true},
65-
{name: "No value provided, existing is identical to object name", newValue: nil, existingValue: "object-name", expectChange: false},
66-
{name: "No value provided, existing is different from object name", newValue: nil, existingValue: "different-from-object-name", expectChange: true},
67-
}
68-
69-
for _, tt := range testCases {
70-
t.Run(tt.name, func(t *testing.T) {
71-
resource := &orcv1alpha1.RegisteredLimit{}
72-
resource.Name = "object-name"
73-
resource.Spec = orcv1alpha1.RegisteredLimitSpec{
74-
Resource: &orcv1alpha1.RegisteredLimitResourceSpec{Name: tt.newValue},
75-
}
76-
osResource := &osResourceT{Name: tt.existingValue}
77-
78-
updateOpts := registeredlimits.UpdateOpts{}
79-
handleNameUpdate(&updateOpts, resource, osResource)
80-
81-
got, _ := needsUpdate(updateOpts)
82-
if got != tt.expectChange {
83-
t.Errorf("Expected change: %v, got: %v", tt.expectChange, got)
84-
}
85-
})
86-
87-
}
88-
}
89-
9055
func TestHandleDescriptionUpdate(t *testing.T) {
9156
ptrToDescription := ptr.To[string]
9257
testCases := []struct {

internal/controllers/registeredlimit/status.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ func (registeredlimitStatusWriter) ResourceAvailableStatus(orcObject *orcv1alpha
5050

5151
func (registeredlimitStatusWriter) ApplyResourceStatus(log logr.Logger, osResource *osResourceT, statusApply *statusApplyT) {
5252
resourceStatus := orcapplyconfigv1alpha1.RegisteredLimitResourceStatus().
53-
WithServiceID(osResource.ServiceID).
54-
WithName(osResource.Name)
53+
WithServiceID(osResource.ServiceID)
5554

5655
// TODO(scaffolding): add all of the fields supported in the RegisteredLimitResourceStatus struct
5756
// If a zero-value isn't expected in the response, place it behind a conditional

internal/osclients/mock/registeredlimit.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/osclients/registeredlimit.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ import (
2929

3030
type RegisteredLimitClient interface {
3131
ListRegisteredLimits(ctx context.Context, listOpts registeredlimits.ListOptsBuilder) iter.Seq2[*registeredlimits.RegisteredLimit, error]
32-
CreateRegisteredLimit(ctx context.Context, opts registeredlimits.CreateOptsBuilder) (*registeredlimits.RegisteredLimit, error)
32+
CreateRegisteredLimit(ctx context.Context, opts registeredlimits.BatchCreateOptsBuilder) (*registeredlimits.RegisteredLimit, error)
3333
DeleteRegisteredLimit(ctx context.Context, resourceID string) error
3434
GetRegisteredLimit(ctx context.Context, resourceID string) (*registeredlimits.RegisteredLimit, error)
3535
UpdateRegisteredLimit(ctx context.Context, id string, opts registeredlimits.UpdateOptsBuilder) (*registeredlimits.RegisteredLimit, error)
@@ -58,8 +58,9 @@ func (c registeredlimitClient) ListRegisteredLimits(ctx context.Context, listOpt
5858
}
5959
}
6060

61-
func (c registeredlimitClient) CreateRegisteredLimit(ctx context.Context, opts registeredlimits.CreateOptsBuilder) (*registeredlimits.RegisteredLimit, error) {
62-
return registeredlimits.Create(ctx, c.client, opts).Extract()
61+
func (c registeredlimitClient) CreateRegisteredLimit(ctx context.Context, opts registeredlimits.BatchCreateOptsBuilder) (*registeredlimits.RegisteredLimit, error) {
62+
batch, err := registeredlimits.BatchCreate(ctx, c.client, opts).Extract()
63+
return &batch[0], err
6364
}
6465

6566
func (c registeredlimitClient) DeleteRegisteredLimit(ctx context.Context, resourceID string) error {
@@ -87,7 +88,7 @@ func (e registeredlimitErrorClient) ListRegisteredLimits(_ context.Context, _ re
8788
}
8889
}
8990

90-
func (e registeredlimitErrorClient) CreateRegisteredLimit(_ context.Context, _ registeredlimits.CreateOptsBuilder) (*registeredlimits.RegisteredLimit, error) {
91+
func (e registeredlimitErrorClient) CreateRegisteredLimit(_ context.Context, _ registeredlimits.BatchCreateOptsBuilder) (*registeredlimits.RegisteredLimit, error) {
9192
return nil, e.error
9293
}
9394

test/apivalidations/registeredlimit_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ var _ = Describe("ORC RegisteredLimit API validations", func() {
7979
p.Spec.WithImport(applyconfigv1alpha1.RegisteredLimitImport().WithFilter(applyconfigv1alpha1.RegisteredLimitFilter()))
8080
},
8181
applyValidFilter: func(p *applyconfigv1alpha1.RegisteredLimitApplyConfiguration) {
82-
p.Spec.WithImport(applyconfigv1alpha1.RegisteredLimitImport().WithFilter(applyconfigv1alpha1.RegisteredLimitFilter().WithName("foo")))
82+
p.Spec.WithImport(applyconfigv1alpha1.RegisteredLimitImport().WithFilter(applyconfigv1alpha1.RegisteredLimitFilter().WithDescription("foo")))
8383
},
8484
applyManaged: func(p *applyconfigv1alpha1.RegisteredLimitApplyConfiguration) {
8585
p.Spec.WithManagementPolicy(orcv1alpha1.ManagementPolicyManaged)

0 commit comments

Comments
 (0)