github.com/siglens/siglens@v0.0.0-20240328180423-f7ce9ae441ed/pkg/es/reader/resolveIndexHandler_test.go (about) 1 /* 2 Copyright 2023. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package reader 18 19 import ( 20 "fmt" 21 "os" 22 "testing" 23 24 "github.com/siglens/siglens/pkg/config" 25 esutils "github.com/siglens/siglens/pkg/es/utils" 26 vtable "github.com/siglens/siglens/pkg/virtualtable" 27 "github.com/stretchr/testify/assert" 28 ) 29 30 func Test_ExpandAndReturnIndexNames(t *testing.T) { 31 config.InitializeDefaultConfig() 32 _ = vtable.InitVTable() 33 34 vTableBaseDir := "vtabbase/" 35 vTableMappingsDir := "vtabbase/mappings/" 36 vTableTemplatesDir := "vtabbase/templates/" 37 vTableAliasesDir := "vtabbase/aliases/" 38 // special test code only to override the default paths and have idempotent tests 39 _ = vtable.CreateVirtTableBaseDirs(vTableBaseDir, vTableMappingsDir, vTableTemplatesDir, vTableAliasesDir) 40 41 mapdata := "" 42 idx1 := "idx-blah1" 43 _ = vtable.AddVirtualTableAndMapping(&idx1, &mapdata, 0) 44 idx1 = "idx-blah2" 45 _ = vtable.AddVirtualTableAndMapping(&idx1, &mapdata, 0) 46 subStringIndex := "blah3-idx" 47 _ = vtable.AddVirtualTableAndMapping(&subStringIndex, &mapdata, 0) 48 idx1 = "traces" 49 _ = vtable.AddVirtualTableAndMapping(&idx1, &mapdata, 0) 50 idx1 = "red-traces" 51 _ = vtable.AddVirtualTableAndMapping(&idx1, &mapdata, 0) 52 idx1 = "service-dependency" 53 _ = vtable.AddVirtualTableAndMapping(&idx1, &mapdata, 0) 54 55 allVirtualTableNames, _ := vtable.GetVirtualTableNames(0) 56 expected := map[string]bool{ 57 "idx-blah1": true, 58 "idx-blah2": true, 59 "blah3-idx": true, 60 "traces": true, 61 "red-traces": true, 62 "service-dependency": true} 63 64 assert.EqualValues(t, expected, allVirtualTableNames, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", expected, allVirtualTableNames)) 65 66 indexPattern := "idx*" 67 68 indicesEntries, aliasesEntries, err := ExpandAndReturnIndexNames(indexPattern, allVirtualTableNames, 0) 69 assert.Nil(t, err) 70 71 indicesExpected := []esutils.ResolveIndexEntry{ 72 esutils.ResolveIndexEntry{ 73 Name: "idx-blah1", 74 Attributes: []string{"open"}, 75 Aliases: []string{}}, 76 esutils.ResolveIndexEntry{ 77 Name: "idx-blah2", 78 Attributes: []string{"open"}, 79 Aliases: []string{}}} 80 81 aliasesExpected := []esutils.ResolveAliasEntry{} 82 83 for i := range indicesExpected { 84 assert.Contains(t, indicesEntries, indicesExpected[i]) 85 } 86 assert.EqualValues(t, aliasesExpected, aliasesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", aliasesExpected, aliasesEntries)) 87 88 indexPattern = "a*" 89 90 indicesEntries, aliasesEntries, err = ExpandAndReturnIndexNames(indexPattern, allVirtualTableNames, 0) 91 assert.Nil(t, err) 92 93 indicesExpected = []esutils.ResolveIndexEntry{} 94 aliasesExpected = []esutils.ResolveAliasEntry{} 95 96 assert.EqualValues(t, indicesExpected, indicesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", indicesExpected, indicesEntries)) 97 assert.EqualValues(t, aliasesExpected, aliasesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", aliasesExpected, aliasesEntries)) 98 99 indexPattern = "idx-blah1" 100 101 indicesEntries, aliasesEntries, err = ExpandAndReturnIndexNames(indexPattern, allVirtualTableNames, 0) 102 assert.Nil(t, err) 103 104 indicesExpected = []esutils.ResolveIndexEntry{ 105 esutils.ResolveIndexEntry{ 106 Name: "idx-blah1", 107 Attributes: []string{"open"}, 108 Aliases: []string{}}} 109 110 aliasesExpected = []esutils.ResolveAliasEntry{} 111 112 assert.EqualValues(t, indicesExpected, indicesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", indicesExpected, indicesEntries)) 113 assert.EqualValues(t, aliasesExpected, aliasesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", aliasesExpected, aliasesEntries)) 114 115 indexPattern = "*idx*" 116 117 indicesEntries, aliasesEntries, err = ExpandAndReturnIndexNames(indexPattern, allVirtualTableNames, 0) 118 assert.Nil(t, err) 119 120 indicesExpected = []esutils.ResolveIndexEntry{ 121 { 122 Name: "idx-blah1", 123 Attributes: []string{"open"}, 124 Aliases: []string{}, 125 }, 126 { 127 Name: "idx-blah2", 128 Attributes: []string{"open"}, 129 Aliases: []string{}, 130 }, 131 { 132 Name: "blah3-idx", 133 Attributes: []string{"open"}, 134 Aliases: []string{}, 135 }, 136 } 137 for i := range indicesExpected { 138 assert.Contains(t, indicesEntries, indicesExpected[i]) 139 } 140 assert.Len(t, indicesEntries, len(indicesExpected)) 141 assert.EqualValues(t, aliasesExpected, aliasesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", aliasesExpected, aliasesEntries)) 142 143 indexPattern = "bl*" 144 145 indicesEntries, aliasesEntries, err = ExpandAndReturnIndexNames(indexPattern, allVirtualTableNames, 0) 146 assert.Nil(t, err) 147 148 indicesExpected = []esutils.ResolveIndexEntry{ 149 { 150 Name: "blah3-idx", 151 Attributes: []string{"open"}, 152 Aliases: []string{}, 153 }, 154 } 155 assert.EqualValues(t, indicesExpected, indicesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", indicesExpected, indicesEntries)) 156 assert.EqualValues(t, aliasesExpected, aliasesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", aliasesExpected, aliasesEntries)) 157 158 indexPattern = "*" 159 160 indicesEntries, aliasesEntries, err = ExpandAndReturnIndexNames(indexPattern, allVirtualTableNames, 0) 161 assert.Nil(t, err) 162 163 indicesExpected = []esutils.ResolveIndexEntry{ 164 { 165 Name: "idx-blah1", 166 Attributes: []string{"open"}, 167 Aliases: []string{}, 168 }, 169 { 170 Name: "idx-blah2", 171 Attributes: []string{"open"}, 172 Aliases: []string{}, 173 }, 174 { 175 Name: "blah3-idx", 176 Attributes: []string{"open"}, 177 Aliases: []string{}, 178 }, 179 } 180 assert.EqualValues(t, len(indicesExpected), len(indicesEntries), fmt.Sprintf("Comparison failed, expected=%v, actual=%v", indicesExpected, indicesEntries)) 181 assert.EqualValues(t, len(aliasesExpected), len(aliasesEntries), fmt.Sprintf("Comparison failed, expected=%v, actual=%v", aliasesExpected, aliasesEntries)) 182 183 indexPattern = "red-traces" 184 185 indicesEntries, aliasesEntries, err = ExpandAndReturnIndexNames(indexPattern, allVirtualTableNames, 0) 186 assert.Nil(t, err) 187 188 indicesExpected = []esutils.ResolveIndexEntry{ 189 { 190 Name: "red-traces", 191 Attributes: []string{"open"}, 192 Aliases: []string{}, 193 }, 194 } 195 assert.EqualValues(t, indicesExpected, indicesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", indicesExpected, indicesEntries)) 196 assert.EqualValues(t, aliasesExpected, aliasesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", aliasesExpected, aliasesEntries)) 197 198 indexPattern = "service-dependency" 199 200 indicesEntries, aliasesEntries, err = ExpandAndReturnIndexNames(indexPattern, allVirtualTableNames, 0) 201 assert.Nil(t, err) 202 203 indicesExpected = []esutils.ResolveIndexEntry{ 204 { 205 Name: "service-dependency", 206 Attributes: []string{"open"}, 207 Aliases: []string{}, 208 }, 209 } 210 assert.EqualValues(t, indicesExpected, indicesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", indicesExpected, indicesEntries)) 211 assert.EqualValues(t, aliasesExpected, aliasesEntries, fmt.Sprintf("Comparison failed, expected=%v, actual=%v", aliasesExpected, aliasesEntries)) 212 213 // special test code only to override the default paths and have idempotent tests 214 os.RemoveAll(config.GetRunningConfig().DataPath) 215 os.RemoveAll(vTableBaseDir) 216 }