Skip to content
This repository has been archived by the owner on Jun 1, 2023. It is now read-only.

Commit

Permalink
test: test graylog_index_set
Browse files Browse the repository at this point in the history
  • Loading branch information
suzuki-shunsuke committed Jan 13, 2020
1 parent f2da7c6 commit 8381f9c
Show file tree
Hide file tree
Showing 10 changed files with 219 additions and 109 deletions.
2 changes: 1 addition & 1 deletion client/index_set_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ func TestClient_UpdateIndexSet(t *testing.T) {

// success
is.ID = testdata.IndexSet().ID
if _, _, err := cl.UpdateIndexSet(ctx, is.NewUpdateParams()); err != nil {
if _, _, err := cl.UpdateIndexSet(ctx, testdata.IndexSetUpdateParams()); err != nil {
t.Fatal(err)
}
// id required
Expand Down
187 changes: 83 additions & 104 deletions terraform/graylog/resource_index_set_test.go
Original file line number Diff line number Diff line change
@@ -1,112 +1,91 @@
package graylog

import (
"encoding/json"
"io"
"testing"
)

// func testDeleteIndexSet(
// ctx context.Context, cl *client.Client, key string,
// ) resource.TestCheckFunc {
// return func(tfState *terraform.State) error {
// id, err := getIDFromTfState(tfState, key)
// if err != nil {
// return err
// }
// if _, _, err := cl.GetIndexSet(ctx, id); err == nil {
// return fmt.Errorf(`indexSet "%s" must be deleted`, id)
// }
// return nil
// }
// }
//
// func testCreateIndexSet(
// ctx context.Context,
// cl *client.Client, key string,
// ) resource.TestCheckFunc {
// return func(tfState *terraform.State) error {
// id, err := getIDFromTfState(tfState, key)
// if err != nil {
// return err
// }
//
// _, _, err = cl.GetIndexSet(ctx, id)
// return err
// }
// }
//
// func testUpdateIndexSet(
// ctx context.Context,
// cl *client.Client, key, title string,
// ) resource.TestCheckFunc {
// return func(tfState *terraform.State) error {
// id, err := getIDFromTfState(tfState, key)
// if err != nil {
// return err
// }
// indexSet, _, err := cl.GetIndexSet(ctx, id)
// if err != nil {
// return err
// }
// if indexSet.Title != title {
// return fmt.Errorf("indexSet.Title == %s, wanted %s", indexSet.Title, title)
// }
// return nil
// }
// }
"github.com/suzuki-shunsuke/go-graylog/v9/testdata"
)

func TestAccIndexSet(t *testing.T) {
// ctx := context.Background()
// cl, err := setEnv()
// if err != nil {
// t.Fatal(err)
// }
// testAccProvider := Provider()
// testAccProviders := map[string]terraform.ResourceProvider{
// "graylog": testAccProvider,
// }
//
// u, err := uuid.NewV4()
// if err != nil {
// t.Fatal(err)
// }
// prefix := u.String()
// roleTf := `
// resource "graylog_index_set" "test" {
// title = "%s"
// description = "terraform test index set description"
// index_prefix = "%s"
// shards = 4
// replicas = 0
// rotation_strategy_class = "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy"
// rotation_strategy {
// type = "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategyConfig"
// }
// retention_strategy_class = "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy"
// retention_strategy {
// type = "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategyConfig"
// }
// index_analyzer = "standard"
// index_optimization_max_num_segments = 1
// }`
//
// updateTitle := "terraform test index set title updated"
// key := "graylog_index_set.test"
// resource.Test(t, resource.TestCase{
// Providers: testAccProviders,
// CheckDestroy: testDeleteIndexSet(ctx, cl, key),
// Steps: []resource.TestStep{
// {
// Config: fmt.Sprintf(roleTf, "terraform test index set title", prefix),
// Check: resource.ComposeTestCheckFunc(
// testCreateIndexSet(ctx, cl, key),
// ),
// },
// {
// Config: fmt.Sprintf(roleTf, updateTitle, prefix),
// Check: resource.ComposeTestCheckFunc(
// testUpdateIndexSet(ctx, cl, key, updateTitle),
// ),
// },
// },
// })
setEnv()

indexSet := testdata.IndexSet()

creationDate := "2019-09-20T11:59:32.219Z"

tc := &testCase{
t: t,
Name: "index set",
CreatePath: "/api/system/indices/index_sets",
GetPath: "/api/system/indices/index_sets/" + indexSet.ID,

ConvertReqBody: func(body io.Reader) (map[string]interface{}, error) {
m := map[string]interface{}{}
if err := json.NewDecoder(body).Decode(&m); err != nil {
return nil, err
}
if _, ok := m["creation_date"]; ok {
m["creation_date"] = creationDate
}
return m, nil
},

CreateReqBodyMap: map[string]interface{}{
"title": "test",
"description": "The Graylog default index set",

"index_prefix": "1234-test",
"rotation_strategy_class": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy",
"rotation_strategy": map[string]interface{}{
"type": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategyConfig",
"max_docs_per_index": float64(20000000),
},
"retention_strategy_class": "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy",
"retention_strategy": map[string]interface{}{
"type": "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategyConfig",
"max_number_of_indices": float64(20),
},
"creation_date": creationDate,
"index_analyzer": "standard",
"shards": float64(4),
"index_optimization_max_num_segments": float64(1),
"field_type_refresh_interval": float64(5000),
"writable": true,
"index_optimization_disabled": false,
"default": false,
},
UpdateReqBodyMap: map[string]interface{}{
"title": "updated title",
"description": "updated description",

"index_prefix": "1234-test",
"rotation_strategy_class": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy",
"rotation_strategy": map[string]interface{}{
"type": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategyConfig",
"max_docs_per_index": float64(20000000),
},
"retention_strategy_class": "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy",
"retention_strategy": map[string]interface{}{
"type": "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategyConfig",
"max_number_of_indices": float64(20),
},
"index_analyzer": "standard",
"shards": float64(4),
"index_optimization_max_num_segments": float64(1),
"replicas": float64(0),
"field_type_refresh_interval": float64(5000),
"writable": true,
"index_optimization_disabled": false,
},
CreatedDataPath: "index_set/create_index_set_response.json",
UpdatedDataPath: "index_set/update_response.json",
CreateRespBodyPath: "index_set/create_index_set_response.json",
CreateTFPath: "index_set/create.tf",
UpdateTFPath: "index_set/update.tf",

UpdateRespBodyPath: "index_set/update_response.json",
}
tc.Test()
}
31 changes: 31 additions & 0 deletions testdata/index_set.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package testdata

import (
"github.com/suzuki-shunsuke/go-ptr"

"github.com/suzuki-shunsuke/go-graylog/v9"
)

Expand Down Expand Up @@ -34,3 +36,32 @@ func IndexSet() *graylog.IndexSet {
Stats: nil,
}
}

func IndexSetUpdateParams() *graylog.IndexSetUpdateParams {
return &graylog.IndexSetUpdateParams{
Title: "updated title",
Description: ptr.PStr("updated description"),

IndexPrefix: "1234-test",
RotationStrategyClass: "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy",
RotationStrategy: &graylog.RotationStrategy{
Type: "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategyConfig",
MaxDocsPerIndex: 20000000,
RotationPeriod: "",
MaxSize: 0,
},
RetentionStrategyClass: "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy",
RetentionStrategy: &graylog.RetentionStrategy{
Type: "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategyConfig",
MaxNumberOfIndices: 20,
},
IndexAnalyzer: "standard",
Shards: 4,
IndexOptimizationMaxNumSegments: 1,
FieldTypeRefreshInterval: 5000,
ID: "5d84bf242ab79c000d691b7f",
Replicas: ptr.PInt(0),
IndexOptimizationDisabled: ptr.PBool(false),
Writable: ptr.PBool(true),
}
}
25 changes: 25 additions & 0 deletions testdata/index_set/create.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
resource "graylog_index_set" "test" {
title = "test"
index_prefix = "1234-test"
rotation_strategy_class = "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy"
retention_strategy_class = "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy"
description = "The Graylog default index set"
index_analyzer = "standard"
index_optimization_disabled = false
writable = true
shards = 4
replicas = 0
index_optimization_max_num_segments = 1
field_type_refresh_interval = 5000

retention_strategy {
max_number_of_indices = 20
type = "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategyConfig"
}

rotation_strategy {
max_docs_per_index = 20000000
max_size = 0
type = "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategyConfig"
}
}
24 changes: 24 additions & 0 deletions testdata/index_set/create_index_set_response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"id": "5d84bf242ab79c000d691b7f",
"title": "test",
"index_prefix": "1234-test",
"rotation_strategy_class": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy",
"rotation_strategy": {
"type": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategyConfig",
"max_docs_per_index": 20000000
},
"retention_strategy_class": "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy",
"retention_strategy": {
"type": "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategyConfig",
"max_number_of_indices": 20
},
"creation_date": "2019-09-20T11:59:32.219Z",
"index_analyzer": "standard",
"shards": 4,
"index_optimization_max_num_segments": 1,
"field_type_refresh_interval": 5000,
"description": "The Graylog default index set",
"writable": true,
"index_optimization_disabled": false,
"default": false
}
2 changes: 1 addition & 1 deletion testdata/index_set/index_sets.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@
"creation_date": "2019-09-20T21:10:17.409Z",
"index_analyzer": "standard",
"index_optimization_max_num_segments": 1,
"index_optimization_disabled": true,
"index_optimization_disabled": false,
"field_type_refresh_interval": 5000,
"writable": true,
"default": false
Expand Down
26 changes: 26 additions & 0 deletions testdata/index_set/update.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
resource "graylog_index_set" "test" {
title = "updated title"
description = "updated description"

index_prefix = "1234-test"
rotation_strategy_class = "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy"
retention_strategy_class = "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy"
index_analyzer = "standard"
index_optimization_disabled = false
writable = true
shards = 4
replicas = 0
index_optimization_max_num_segments = 1
field_type_refresh_interval = 5000

retention_strategy {
max_number_of_indices = 20
type = "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategyConfig"
}

rotation_strategy {
max_docs_per_index = 20000000
max_size = 0
type = "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategyConfig"
}
}
4 changes: 2 additions & 2 deletions testdata/index_set/update_index_set.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"title": "test",
"title": "updated title",
"index_prefix": "1234-test",
"rotation_strategy_class": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy",
"rotation_strategy": {
Expand All @@ -15,7 +15,7 @@
"shards": 4,
"index_optimization_max_num_segments": 1,
"field_type_refresh_interval": 5000,
"description": "The Graylog default index set",
"description": "updated description",
"writable": true,
"index_optimization_disabled": false,
"replicas": 0
Expand Down
25 changes: 25 additions & 0 deletions testdata/index_set/update_response.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"id": "5d84bf242ab79c000d691b7f",
"title": "updated title",
"index_prefix": "1234-test",
"rotation_strategy_class": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategy",
"rotation_strategy": {
"type": "org.graylog2.indexer.rotation.strategies.MessageCountRotationStrategyConfig",
"max_docs_per_index": 20000000
},
"retention_strategy_class": "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategy",
"retention_strategy": {
"type": "org.graylog2.indexer.retention.strategies.DeletionRetentionStrategyConfig",
"max_number_of_indices": 20
},
"creation_date": "2019-09-20T11:59:32.219Z",
"index_analyzer": "standard",
"shards": 4,
"replicas": 0,
"index_optimization_max_num_segments": 1,
"field_type_refresh_interval": 5000,
"description": "updated description",
"writable": true,
"index_optimization_disabled": false,
"default": false
}
2 changes: 1 addition & 1 deletion testdata/index_sets.go
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ func IndexSets() *graylog.IndexSetsBody {
ID: "5d84c1a92ab79c000d35d6d0",
Description: "test 2",
Replicas: 0,
IndexOptimizationDisabled: true,
IndexOptimizationDisabled: false,
Writable: true,
Default: false,
Stats: nil,
Expand Down

0 comments on commit 8381f9c

Please sign in to comment.