@@ -37,33 +37,43 @@ const (
37
37
38
38
// DependencyStore handles all queries and insertions to ElasticSearch dependencies
39
39
type DependencyStore struct {
40
- ctx context.Context
41
- client es.Client
42
- logger * zap.Logger
43
- indexPrefix string
40
+ ctx context.Context
41
+ client es.Client
42
+ logger * zap.Logger
43
+ indexPrefix string
44
+ useReadWriteAliases bool
44
45
}
45
46
46
47
// NewDependencyStore returns a DependencyStore
47
- func NewDependencyStore (client es.Client , logger * zap.Logger , indexPrefix string ) * DependencyStore {
48
+ func NewDependencyStore (client es.Client , logger * zap.Logger , indexPrefix string , useReadWriteAliases bool ) * DependencyStore {
48
49
var prefix string
49
50
if indexPrefix != "" {
50
51
prefix = indexPrefix + "-"
51
52
}
52
53
return & DependencyStore {
53
- ctx : context .Background (),
54
- client : client ,
55
- logger : logger ,
56
- indexPrefix : prefix + dependencyIndex ,
54
+ ctx : context .Background (),
55
+ client : client ,
56
+ logger : logger ,
57
+ indexPrefix : prefix + dependencyIndex ,
58
+ useReadWriteAliases : useReadWriteAliases ,
57
59
}
58
60
}
59
61
60
62
// WriteDependencies implements dependencystore.Writer#WriteDependencies.
61
63
func (s * DependencyStore ) WriteDependencies (ts time.Time , dependencies []model.DependencyLink ) error {
62
- indexName := indexWithDate (s .indexPrefix , ts )
63
- if err := s .createIndex (indexName ); err != nil {
64
- return err
64
+
65
+ var indexName string
66
+
67
+ if useReadWriteAliases {
68
+ indexName = s .indexPrefix + "write"
69
+ } else {
70
+ indexName := indexWithDate (s .indexPrefix , ts )
71
+ if err := s .createIndex (indexName ); err != nil {
72
+ return err
73
+ }
65
74
}
66
75
s .writeDependencies (indexName , ts , dependencies )
76
+
67
77
return nil
68
78
}
69
79
@@ -113,6 +123,11 @@ func buildTSQuery(endTs time.Time, lookback time.Duration) elastic.Query {
113
123
114
124
func getIndices (prefix string , ts time.Time , lookback time.Duration ) []string {
115
125
var indices []string
126
+
127
+ if useReadWriteAliases {
128
+ return append (indices , prefix + "read" )
129
+ }
130
+
116
131
firstIndex := indexWithDate (prefix , ts .Add (- lookback ))
117
132
currentIndex := indexWithDate (prefix , ts )
118
133
for currentIndex != firstIndex {
0 commit comments