fix: ignore existing target status when adding new targets (#17250)

This commit is contained in:
jiuker
2023-05-25 13:57:37 +08:00
committed by GitHub
parent 62df731006
commit d749aaab69
5 changed files with 61 additions and 17 deletions

View File

@@ -426,6 +426,34 @@ func (c Config) DelFrom(r io.Reader) error {
return scanner.Err()
}
// ContextKeyString is type(string) for contextKey
type ContextKeyString string
// ContextKeyForTargetFromConfig - key for context for target from config
const ContextKeyForTargetFromConfig = ContextKeyString("ContextKeyForTargetFromConfig")
// ParseConfigTargetID - read all targetIDs from reader
func ParseConfigTargetID(r io.Reader) (ids map[string]bool, err error) {
ids = make(map[string]bool)
scanner := bufio.NewScanner(r)
for scanner.Scan() {
// Skip any empty lines, or comment like characters
text := scanner.Text()
if text == "" || strings.HasPrefix(text, KvComment) {
continue
}
_, _, tgt, err := GetSubSys(text)
if err != nil {
return nil, err
}
ids[tgt] = true
}
if err := scanner.Err(); err != nil {
return nil, err
}
return
}
// ReadConfig - read content from input and write into c.
// Returns whether all parameters were dynamic.
func (c Config) ReadConfig(r io.Reader) (dynOnly bool, err error) {