Skip to content

Commit 532ca28

Browse files
committed
CSPL-4360 Addressing comments
1 parent 47d1a35 commit 532ca28

16 files changed

+213
-553
lines changed

api/v4/indexercluster_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,12 @@ type IndexerClusterSpec struct {
4040
CommonSplunkSpec `json:",inline"`
4141

4242
// +optional
43+
// +kubebuilder:validation:Immutable
4344
// Queue reference
4445
QueueRef corev1.ObjectReference `json:"queueRef"`
4546

4647
// +optional
48+
// +kubebuilder:validation:Immutable
4749
// Object Storage reference
4850
ObjectStorageRef corev1.ObjectReference `json:"objectStorageRef"`
4951

api/v4/ingestorcluster_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,12 @@ type IngestorClusterSpec struct {
4040
AppFrameworkConfig AppFrameworkSpec `json:"appRepo,omitempty"`
4141

4242
// +kubebuilder:validation:Required
43+
// +kubebuilder:validation:Immutable
4344
// Queue reference
4445
QueueRef corev1.ObjectReference `json:"queueRef"`
4546

4647
// +kubebuilder:validation:Required
48+
// +kubebuilder:validation:Immutable
4749
// Object Storage reference
4850
ObjectStorageRef corev1.ObjectReference `json:"objectStorageRef"`
4951
}

api/v4/objectstorage_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ const (
2828
ObjectStoragePausedAnnotation = "objectstorage.enterprise.splunk.com/paused"
2929
)
3030

31+
// +kubebuilder:validation:XValidation:rule="self.provider == oldSelf.provider",message="provider is immutable once created"
32+
// +kubebuilder:validation:XValidation:rule="self.s3 == oldSelf.s3",message="s3 is immutable once created"
3133
// +kubebuilder:validation:XValidation:rule="self.provider != 's3' || has(self.s3)",message="s3 must be provided when provider is s3"
3234
// ObjectStorageSpec defines the desired state of ObjectStorage
3335
type ObjectStorageSpec struct {

api/v4/queue_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ const (
2828
QueuePausedAnnotation = "queue.enterprise.splunk.com/paused"
2929
)
3030

31+
// +kubebuilder:validation:XValidation:rule="self.provider == oldSelf.provider",message="provider is immutable once created"
32+
// +kubebuilder:validation:XValidation:rule="self.sqs == oldSelf.sqs",message="sqs is immutable once created"
3133
// +kubebuilder:validation:XValidation:rule="self.provider != 'sqs' || has(self.sqs)",message="sqs must be provided when provider is sqs"
3234
// QueueSpec defines the desired state of Queue
3335
type QueueSpec struct {

config/crd/bases/enterprise.splunk.com_indexerclusters.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8410,6 +8410,10 @@ spec:
84108410
- s3
84118411
type: object
84128412
x-kubernetes-validations:
8413+
- message: provider is immutable once created
8414+
rule: self.provider == oldSelf.provider
8415+
- message: s3 is immutable once created
8416+
rule: self.s3 == oldSelf.s3
84138417
- message: s3 must be provided when provider is s3
84148418
rule: self.provider != 's3' || has(self.s3)
84158419
peers:
@@ -8523,6 +8527,10 @@ spec:
85238527
- sqs
85248528
type: object
85258529
x-kubernetes-validations:
8530+
- message: provider is immutable once created
8531+
rule: self.provider == oldSelf.provider
8532+
- message: sqs is immutable once created
8533+
rule: self.sqs == oldSelf.sqs
85268534
- message: sqs must be provided when provider is sqs
85278535
rule: self.provider != 'sqs' || has(self.sqs)
85288536
readyReplicas:

config/crd/bases/enterprise.splunk.com_ingestorclusters.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4621,6 +4621,10 @@ spec:
46214621
- s3
46224622
type: object
46234623
x-kubernetes-validations:
4624+
- message: provider is immutable once created
4625+
rule: self.provider == oldSelf.provider
4626+
- message: s3 is immutable once created
4627+
rule: self.s3 == oldSelf.s3
46244628
- message: s3 must be provided when provider is s3
46254629
rule: self.provider != 's3' || has(self.s3)
46264630
phase:
@@ -4704,6 +4708,10 @@ spec:
47044708
- sqs
47054709
type: object
47064710
x-kubernetes-validations:
4711+
- message: provider is immutable once created
4712+
rule: self.provider == oldSelf.provider
4713+
- message: sqs is immutable once created
4714+
rule: self.sqs == oldSelf.sqs
47074715
- message: sqs must be provided when provider is sqs
47084716
rule: self.provider != 'sqs' || has(self.sqs)
47094717
readyReplicas:

config/crd/bases/enterprise.splunk.com_objectstorages.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ spec:
7878
- s3
7979
type: object
8080
x-kubernetes-validations:
81+
- message: provider is immutable once created
82+
rule: self.provider == oldSelf.provider
83+
- message: s3 is immutable once created
84+
rule: self.s3 == oldSelf.s3
8185
- message: s3 must be provided when provider is s3
8286
rule: self.provider != 's3' || has(self.s3)
8387
status:

config/crd/bases/enterprise.splunk.com_queues.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,10 @@ spec:
120120
- sqs
121121
type: object
122122
x-kubernetes-validations:
123+
- message: provider is immutable once created
124+
rule: self.provider == oldSelf.provider
125+
- message: sqs is immutable once created
126+
rule: self.sqs == oldSelf.sqs
123127
- message: sqs must be provided when provider is sqs
124128
rule: self.provider != 'sqs' || has(self.sqs)
125129
status:

pkg/splunk/client/enterprise.go

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,22 +1015,3 @@ func (c *SplunkClient) UpdateConfFile(scopedLog logr.Logger, fileName, property
10151015
}
10161016
return err
10171017
}
1018-
1019-
// Deletes conf files properties
1020-
func (c *SplunkClient) DeleteConfFileProperty(scopedLog logr.Logger, fileName, property string) error {
1021-
endpoint := fmt.Sprintf("%s/servicesNS/nobody/system/configs/conf-%s/%s", c.ManagementURI, fileName, property)
1022-
1023-
scopedLog.Info("Deleting conf file object", "fileName", fileName, "property", property)
1024-
request, err := http.NewRequest("DELETE", endpoint, nil)
1025-
if err != nil {
1026-
scopedLog.Error(err, "Failed to delete conf file object", "fileName", fileName, "property", property)
1027-
return err
1028-
}
1029-
1030-
expectedStatus := []int{200, 201, 404}
1031-
err = c.Do(request, expectedStatus, nil)
1032-
if err != nil {
1033-
scopedLog.Error(err, fmt.Sprintf("Status not in %v for conf file object deletion", expectedStatus), "fileName", fileName, "property", property)
1034-
}
1035-
return err
1036-
}

pkg/splunk/client/enterprise_test.go

Lines changed: 0 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -705,35 +705,3 @@ func TestUpdateConfFile(t *testing.T) {
705705
t.Errorf("UpdateConfFile expected error on update, got nil")
706706
}
707707
}
708-
709-
func TestDeleteConfFileProperty(t *testing.T) {
710-
// Test successful deletion of conf property
711-
property := "myproperty"
712-
fileName := "outputs"
713-
714-
reqLogger := log.FromContext(context.TODO())
715-
scopedLog := reqLogger.WithName("TestDeleteConfFileProperty")
716-
717-
wantDeleteRequest, _ := http.NewRequest("DELETE", fmt.Sprintf("https://localhost:8089/servicesNS/nobody/system/configs/conf-outputs/%s", property), nil)
718-
719-
mockSplunkClient := &spltest.MockHTTPClient{}
720-
mockSplunkClient.AddHandler(wantDeleteRequest, 200, "", nil)
721-
722-
c := NewSplunkClient("https://localhost:8089", "admin", "p@ssw0rd")
723-
c.Client = mockSplunkClient
724-
725-
err := c.DeleteConfFileProperty(scopedLog, fileName, property)
726-
if err != nil {
727-
t.Errorf("DeleteConfFileProperty err = %v", err)
728-
}
729-
mockSplunkClient.CheckRequests(t, "TestDeleteConfFileProperty")
730-
731-
// Negative test: error on delete
732-
mockSplunkClient = &spltest.MockHTTPClient{}
733-
mockSplunkClient.AddHandler(wantDeleteRequest, 500, "", nil)
734-
c.Client = mockSplunkClient
735-
err = c.DeleteConfFileProperty(scopedLog, fileName, property)
736-
if err == nil {
737-
t.Errorf("DeleteConfFileProperty expected error on delete, got nil")
738-
}
739-
}

0 commit comments

Comments
 (0)