NewLoadMap parses a `--*-load` flag (e.g. `--max-load`), which is in multiple key-value format, such as: 'Threads_running=100,Threads_connected=500'
(loadList string)
| 26 | // |
| 27 | // 'Threads_running=100,Threads_connected=500' |
| 28 | func ParseLoadMap(loadList string) (LoadMap, error) { |
| 29 | result := NewLoadMap() |
| 30 | if loadList == "" { |
| 31 | return result, nil |
| 32 | } |
| 33 | |
| 34 | loadConditions := strings.Split(loadList, ",") |
| 35 | for _, loadCondition := range loadConditions { |
| 36 | loadTokens := strings.Split(loadCondition, "=") |
| 37 | if len(loadTokens) != 2 { |
| 38 | return result, fmt.Errorf("Error parsing load condition: %s", loadCondition) |
| 39 | } |
| 40 | if loadTokens[0] == "" { |
| 41 | return result, fmt.Errorf("Error parsing status variable in load condition: %s", loadCondition) |
| 42 | } |
| 43 | if n, err := strconv.ParseInt(loadTokens[1], 10, 0); err != nil { |
| 44 | return result, fmt.Errorf("Error parsing numeric value in load condition: %s", loadCondition) |
| 45 | } else { |
| 46 | result[loadTokens[0]] = n |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | return result, nil |
| 51 | } |
| 52 | |
| 53 | // Duplicate creates a clone of this map |
| 54 | func (lm *LoadMap) Duplicate() LoadMap { |
searching dependent graphs…