Skip to content

Commit 0a4630a

Browse files
committed
Refactor to use OpenAPI SDK
1 parent cbdfcae commit 0a4630a

28 files changed

+446
-391
lines changed

.github/workflows/e2e-tests.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ jobs:
2323
CORALOGIX_REGION: ${{ secrets.CORALOGIX_REGION }}
2424
CORALOGIX_API_KEY: ${{ secrets.CORALOGIX_API_KEY }}
2525
SCOPE_RECONCILE_INTERVAL_SECONDS: 30
26+
CONNECTOR_RECONCILE_INTERVAL_SECONDS: 30
2627
AWS_REGION: ${{ secrets.AWS_REGION }}
2728
LOGS_BUCKET: ${{ secrets.LOGS_BUCKET }}
2829
METRICS_BUCKET: ${{ secrets.METRICS_BUCKET }}

.github/workflows/helm-e2e-tests.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@ jobs:
5050
--set coralogixOperator.image.repository="${{ env.IMG_REPO }}" \
5151
--set coralogixOperator.image.tag="${{ env.IMG_TAG }}" \
5252
--set coralogixOperator.region="${{ secrets.CORALOGIX_REGION }}" \
53-
--set coralogixOperator.reconcileIntervalSeconds.scope=30
53+
--set coralogixOperator.reconcileIntervalSeconds.scope=30 \
54+
--set coralogixOperator.reconcileIntervalSeconds.connector=30
5455
- name: Run e2e Tests
5556
run: |
5657
make e2e-tests

.github/workflows/upgrade-test.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ jobs:
6666
--set coralogixOperator.image.repository="${{ env.IMG_REPO }}" \
6767
--set coralogixOperator.image.tag="${{ env.IMG_TAG }}" \
6868
--set coralogixOperator.region="${{ secrets.CORALOGIX_REGION }}" \
69-
--set coralogixOperator.reconcileIntervalSeconds.scope=30
69+
--set coralogixOperator.reconcileIntervalSeconds.scope=30 \
70+
--set coralogixOperator.reconcileIntervalSeconds.connector=30
7071
- name: Run e2e Tests
7172
run: |
7273
make e2e-tests

.golangci.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ linters:
1010
- asasalint
1111
- asciicheck
1212
- bidichk
13-
- bodyclose
1413
- copyloopvar
1514
- dogsled
1615
- errcheck

api/coralogix/v1alpha1/apikey_types.go

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,8 @@
1515
package v1alpha1
1616

1717
import (
18+
apikeys "github.com/coralogix/coralogix-management-sdk/go/openapi/gen/api_keys_service"
1819
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
19-
"k8s.io/utils/ptr"
20-
21-
cxsdk "github.com/coralogix/coralogix-management-sdk/go"
2220
)
2321

2422
// ApiKeySpec defines the desired state of a Coralogix ApiKey.
@@ -114,33 +112,31 @@ type ApiKeyList struct {
114112
Items []ApiKey `json:"items"`
115113
}
116114

117-
func (s *ApiKeySpec) ExtractCreateApiKeyRequest() *cxsdk.CreateAPIKeyRequest {
118-
owner := &cxsdk.Owner{}
115+
func (s *ApiKeySpec) ExtractCreateApiKeyRequest() *apikeys.CreateApiKeyRequest {
116+
owner := apikeys.Owner{}
119117
if s.Owner.UserId != nil {
120-
owner.Owner = &cxsdk.OwnerUserID{UserId: *s.Owner.UserId}
118+
owner.OwnerOneOf = &apikeys.OwnerOneOf{UserId: s.Owner.UserId}
121119
}
122120
if s.Owner.TeamId != nil {
123-
owner.Owner = &cxsdk.OwnerTeamID{TeamId: *s.Owner.TeamId}
121+
owner.OwnerOneOf1 = &apikeys.OwnerOneOf1{TeamId: apikeys.PtrInt64(int64(*s.Owner.TeamId))}
124122
}
125123

126-
return &cxsdk.CreateAPIKeyRequest{
124+
return &apikeys.CreateApiKeyRequest{
127125
Name: s.Name,
128126
Owner: owner,
129-
KeyPermissions: &cxsdk.APIKeyPermissions{
127+
KeyPermissions: apikeys.CreateApiKeyRequestKeyPermissions{
130128
Presets: s.Presets,
131129
Permissions: s.Permissions,
132130
},
133-
Hashed: false,
134131
}
135132
}
136133

137-
func (s *ApiKeySpec) ExtractUpdateApiKeyRequest(id string) *cxsdk.UpdateAPIKeyRequest {
138-
return &cxsdk.UpdateAPIKeyRequest{
139-
KeyId: id,
140-
NewName: ptr.To(s.Name),
141-
IsActive: ptr.To(s.Active),
142-
Presets: ptr.To(cxsdk.APIKeyPresetsUpdate{Presets: s.Presets}),
143-
Permissions: ptr.To(cxsdk.APIKeyPermissionsUpdate{Permissions: s.Permissions}),
134+
func (s *ApiKeySpec) ExtractUpdateApiKeyRequest() *apikeys.UpdateApiKeyRequest {
135+
return &apikeys.UpdateApiKeyRequest{
136+
NewName: apikeys.PtrString(s.Name),
137+
IsActive: apikeys.PtrBool(s.Active),
138+
Presets: &apikeys.Presets{Presets: s.Presets},
139+
Permissions: &apikeys.UpdateApiKeyRequestPermissions{Permissions: s.Permissions},
144140
}
145141
}
146142

api/coralogix/v1alpha1/connector_types.go

Lines changed: 26 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import (
1919

2020
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2121

22-
cxsdk "github.com/coralogix/coralogix-management-sdk/go"
22+
connectors "github.com/coralogix/coralogix-management-sdk/go/openapi/gen/connectors_service"
2323
)
2424

2525
// ConnectorSpec defines the desired state of Connector.
@@ -105,51 +105,29 @@ func (c *Connector) HasIDInStatus() bool {
105105
}
106106

107107
var (
108-
schemaToProtoConnectorType = map[string]cxsdk.ConnectorType{
109-
"slack": cxsdk.ConnectorTypeSlack,
110-
"genericHttps": cxsdk.ConnectorTypeGenericHTTPS,
111-
"pagerDuty": cxsdk.ConnectorTypePagerDuty,
108+
schemaToOpenApiConnectorType = map[string]connectors.ConnectorType{
109+
"slack": connectors.CONNECTORTYPE_SLACK,
110+
"genericHttps": connectors.CONNECTORTYPE_GENERIC_HTTPS,
111+
"pagerDuty": connectors.CONNECTORTYPE_PAGERDUTY,
112112
}
113-
schemaToProtoEntityType = map[string]cxsdk.NotificationsEntityType{
114-
"alerts": cxsdk.NotificationsEntityTypeAlerts,
113+
schemaToOpenApiEntityType = map[string]*connectors.NotificationCenterEntityType{
114+
"alerts": connectors.NOTIFICATIONCENTERENTITYTYPE_ALERTS.Ptr(),
115115
}
116116
)
117117

118-
func (c *Connector) ExtractCreateConnectorRequest() (*cxsdk.CreateConnectorRequest, error) {
119-
connector, err := c.ExtractConnector()
120-
if err != nil {
121-
return nil, fmt.Errorf("failed to extract connector: %w", err)
122-
}
123-
return &cxsdk.CreateConnectorRequest{
124-
Connector: connector,
125-
}, nil
126-
}
127-
128-
func (c *Connector) ExtractUpdateConnectorRequest() (*cxsdk.ReplaceConnectorRequest, error) {
129-
connector, err := c.ExtractConnector()
130-
if err != nil {
131-
return nil, fmt.Errorf("failed to extract connector: %w", err)
132-
}
133-
134-
connector.Id = c.Status.Id
135-
return &cxsdk.ReplaceConnectorRequest{
136-
Connector: connector,
137-
}, nil
138-
}
139-
140-
func (c *Connector) ExtractConnector() (*cxsdk.Connector, error) {
141-
connector := &cxsdk.Connector{
118+
func (c *Connector) ExtractConnector() (*connectors.Connector1, error) {
119+
connector := &connectors.Connector1{
142120
Name: c.Spec.Name,
143-
Description: c.Spec.Description,
121+
Description: connectors.PtrString(c.Spec.Description),
144122
}
145123

146-
connectorType, ok := schemaToProtoConnectorType[c.Spec.Type]
124+
connectorType, ok := schemaToOpenApiConnectorType[c.Spec.Type]
147125
if !ok {
148126
return nil, fmt.Errorf("unsupported connector type: %s", c.Spec.Type)
149127
}
150128
connector.Type = connectorType
151129

152-
connector.ConnectorConfig = &cxsdk.ConnectorConfig{
130+
connector.ConnectorConfig = &connectors.ConnectorConfig{
153131
Fields: ExtractConnectorConfigFields(c.Spec.ConnectorConfig.Fields),
154132
}
155133

@@ -162,27 +140,27 @@ func (c *Connector) ExtractConnector() (*cxsdk.Connector, error) {
162140
return connector, nil
163141
}
164142

165-
func ExtractConnectorConfigFields(fields []ConnectorConfigField) []*cxsdk.ConnectorConfigField {
166-
var result []*cxsdk.ConnectorConfigField
143+
func ExtractConnectorConfigFields(fields []ConnectorConfigField) []connectors.NotificationCenterConnectorConfigField {
144+
var result []connectors.NotificationCenterConnectorConfigField
167145
for _, field := range fields {
168-
result = append(result, &cxsdk.ConnectorConfigField{
169-
FieldName: field.FieldName,
170-
Value: field.Value,
146+
result = append(result, connectors.NotificationCenterConnectorConfigField{
147+
FieldName: connectors.PtrString(field.FieldName),
148+
Value: connectors.PtrString(field.Value),
171149
})
172150
}
173151

174152
return result
175153
}
176154

177-
func ExtractEntityTypeConfigOverrides(overrides []EntityTypeConfigOverrides) ([]*cxsdk.EntityTypeConfigOverrides, error) {
178-
var result []*cxsdk.EntityTypeConfigOverrides
155+
func ExtractEntityTypeConfigOverrides(overrides []EntityTypeConfigOverrides) ([]connectors.EntityTypeConfigOverrides, error) {
156+
var result []connectors.EntityTypeConfigOverrides
179157
for _, override := range overrides {
180-
entityType, ok := schemaToProtoEntityType[override.EntityType]
158+
entityType, ok := schemaToOpenApiEntityType[override.EntityType]
181159
if !ok {
182160
return nil, fmt.Errorf("invalid entity type %s", override.EntityType)
183161
}
184162

185-
entityTypeConfigOverrides := &cxsdk.EntityTypeConfigOverrides{
163+
entityTypeConfigOverrides := connectors.EntityTypeConfigOverrides{
186164
EntityType: entityType,
187165
}
188166

@@ -193,12 +171,12 @@ func ExtractEntityTypeConfigOverrides(overrides []EntityTypeConfigOverrides) ([]
193171
return result, nil
194172
}
195173

196-
func ExtractConfigOverridesFields(fields []TemplatedConnectorConfigField) []*cxsdk.TemplatedConnectorConfigField {
197-
var result []*cxsdk.TemplatedConnectorConfigField
174+
func ExtractConfigOverridesFields(fields []TemplatedConnectorConfigField) []connectors.TemplatedConnectorConfigField {
175+
var result []connectors.TemplatedConnectorConfigField
198176
for _, field := range fields {
199-
result = append(result, &cxsdk.TemplatedConnectorConfigField{
200-
FieldName: field.FieldName,
201-
Template: field.Template,
177+
result = append(result, connectors.TemplatedConnectorConfigField{
178+
FieldName: connectors.PtrString(field.FieldName),
179+
Template: connectors.PtrString(field.Template),
202180
})
203181
}
204182

api/coralogix/v1alpha1/globalrouter_types.go

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
"k8s.io/utils/ptr"
2424
"sigs.k8s.io/controller-runtime/pkg/client"
2525

26-
cxsdk "github.com/coralogix/coralogix-management-sdk/go"
26+
globalrouters "github.com/coralogix/coralogix-management-sdk/go/openapi/gen/global_routers_service"
2727

2828
"github.com/coralogix/coralogix-operator/internal/config"
2929
)
@@ -92,17 +92,13 @@ type NCRef struct {
9292
ResourceRef *ResourceRef `json:"resourceRef,omitempty"`
9393
}
9494

95-
func (g *GlobalRouter) ExtractCreateOrReplaceGlobalRouterRequest(ctx context.Context) (*cxsdk.CreateOrReplaceGlobalRouterRequest, error) {
96-
router, err := g.ExtractGlobalRouter(ctx)
97-
if err != nil {
98-
return nil, fmt.Errorf("failed to extract global-router: %w", err)
95+
var (
96+
schemaToOpenApiRoutersEntityType = map[string]globalrouters.NotificationCenterEntityType{
97+
"alerts": globalrouters.NOTIFICATIONCENTERENTITYTYPE_ALERTS,
9998
}
99+
)
100100

101-
router.Id = ptr.To("router_default")
102-
return &cxsdk.CreateOrReplaceGlobalRouterRequest{Router: router}, nil
103-
}
104-
105-
func (g *GlobalRouter) ExtractGlobalRouter(ctx context.Context) (*cxsdk.GlobalRouter, error) {
101+
func (g *GlobalRouter) ExtractGlobalRouter(ctx context.Context) (*globalrouters.GlobalRouter, error) {
106102
fallback, err := extractRoutingTargets(ctx, g.Namespace, g.Spec.Fallback)
107103
if err != nil {
108104
return nil, err
@@ -113,24 +109,26 @@ func (g *GlobalRouter) ExtractGlobalRouter(ctx context.Context) (*cxsdk.GlobalRo
113109
return nil, err
114110
}
115111

116-
return &cxsdk.GlobalRouter{
112+
return &globalrouters.GlobalRouter{
113+
Id: ptr.To("router_default"),
114+
EntityType: schemaToOpenApiRoutersEntityType[g.Spec.EntityType],
117115
Name: g.Spec.Name,
118-
Description: g.Spec.Description,
116+
Description: globalrouters.PtrString(g.Spec.Description),
119117
Fallback: fallback,
120118
Rules: rules,
121119
}, nil
122120
}
123121

124-
func extractRoutingRules(ctx context.Context, namespace string, rules []RoutingRule) ([]*cxsdk.RoutingRule, error) {
125-
var result []*cxsdk.RoutingRule
122+
func extractRoutingRules(ctx context.Context, namespace string, rules []RoutingRule) ([]globalrouters.RoutingRule, error) {
123+
var result []globalrouters.RoutingRule
126124
var errs error
127125
for _, rule := range rules {
128126
routingRule, err := extractRoutingRule(ctx, namespace, rule)
129127
if err != nil {
130128
errs = errors.Join(errs, err)
131129
continue
132130
}
133-
result = append(result, routingRule)
131+
result = append(result, *routingRule)
134132
}
135133

136134
if errs != nil {
@@ -140,29 +138,29 @@ func extractRoutingRules(ctx context.Context, namespace string, rules []RoutingR
140138
return result, nil
141139
}
142140

143-
func extractRoutingRule(ctx context.Context, namespace string, rule RoutingRule) (*cxsdk.RoutingRule, error) {
141+
func extractRoutingRule(ctx context.Context, namespace string, rule RoutingRule) (*globalrouters.RoutingRule, error) {
144142
targets, err := extractRoutingTargets(ctx, namespace, rule.Targets)
145143
if err != nil {
146144
return nil, err
147145
}
148146

149-
return &cxsdk.RoutingRule{
147+
return &globalrouters.RoutingRule{
150148
Name: ptr.To(rule.Name),
151149
Condition: rule.Condition,
152150
Targets: targets,
153151
}, nil
154152
}
155153

156-
func extractRoutingTargets(ctx context.Context, namespace string, targets []RoutingTarget) ([]*cxsdk.RoutingTarget, error) {
157-
var result []*cxsdk.RoutingTarget
154+
func extractRoutingTargets(ctx context.Context, namespace string, targets []RoutingTarget) ([]globalrouters.RoutingTarget, error) {
155+
var result []globalrouters.RoutingTarget
158156
var errs error
159157
for _, target := range targets {
160158
routingTarget, err := extractRoutingTarget(ctx, namespace, target)
161159
if err != nil {
162160
errs = errors.Join(errs, err)
163161
continue
164162
}
165-
result = append(result, routingTarget)
163+
result = append(result, *routingTarget)
166164
}
167165

168166
if errs != nil {
@@ -172,7 +170,7 @@ func extractRoutingTargets(ctx context.Context, namespace string, targets []Rout
172170
return result, nil
173171
}
174172

175-
func extractRoutingTarget(ctx context.Context, namespace string, target RoutingTarget) (*cxsdk.RoutingTarget, error) {
173+
func extractRoutingTarget(ctx context.Context, namespace string, target RoutingTarget) (*globalrouters.RoutingTarget, error) {
176174
connectorID, err := extractConnectorID(ctx, namespace, target.Connector)
177175
if err != nil {
178176
return nil, err
@@ -186,7 +184,7 @@ func extractRoutingTarget(ctx context.Context, namespace string, target RoutingT
186184
}
187185
}
188186

189-
return &cxsdk.RoutingTarget{
187+
return &globalrouters.RoutingTarget{
190188
ConnectorId: connectorID,
191189
PresetId: ptr.To(presetID),
192190
}, nil

0 commit comments

Comments
 (0)