• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / cadence / 0187fdd2-f4a4-4c9a-97b4-6604937bf7be

09 May 2023 12:23AM UTC coverage: 57.253% (-0.002%) from 57.255%
0187fdd2-f4a4-4c9a-97b4-6604937bf7be

Pull #5252

buildkite

David Porter
Merge branch 'master' into feature/zonal-partitioning
Pull Request #5252: Feature/zonal partitioning

1460 of 1460 new or added lines in 51 files covered. (100.0%)

86909 of 151799 relevant lines covered (57.25%)

2482.17 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

68.75
/common/isolationgroup/isolationgroupapi/mappers.go
1
// The MIT License (MIT)
2

3
// Copyright (c) 2017-2020 Uber Technologies Inc.
4

5
// Permission is hereby granted, free of charge, to any person obtaining a copy
6
// of this software and associated documentation files (the "Software"), to deal
7
// in the Software without restriction, including without limitation the rights
8
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
// copies of the Software, and to permit persons to whom the Software is
10
// furnished to do so, subject to the following conditions:
11
//
12
// The above copyright notice and this permission notice shall be included in all
13
// copies or substantial portions of the Software.
14
//
15
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
// SOFTWARE.
22

23
package isolationgroupapi
24

25
import (
26
        "encoding/json"
27
        "fmt"
28

29
        "github.com/uber/cadence/common/types"
30
)
31

32
func MapAllIsolationGroupsResponse(in []interface{}) ([]string, error) {
13✔
33
        var allIsolationGroups []string
13✔
34
        for k := range in {
13✔
35
                v, ok := in[k].(string)
×
36
                if !ok {
×
37
                        return nil, fmt.Errorf("failed to get all-isolation-groups response from dynamic config: got %v (%T)", in[k], in[k])
×
38
                }
×
39
                allIsolationGroups = append(allIsolationGroups, v)
×
40
        }
41
        return allIsolationGroups, nil
13✔
42
}
43

44
func MapDynamicConfigResponse(in []interface{}) (out types.IsolationGroupConfiguration, err error) {
1✔
45
        if in == nil {
1✔
46
                return nil, nil
×
47
        }
×
48

49
        out = make(types.IsolationGroupConfiguration, len(in))
1✔
50
        for _, v := range in {
3✔
51
                v1, ok := v.(map[string]interface{})
2✔
52
                if !ok {
2✔
53
                        return nil, fmt.Errorf("failed parse a dynamic config entry, %v, (got %v)", v1, v)
×
54
                }
×
55
                n, okName := v1["Name"]
2✔
56
                s, okState := v1["State"]
2✔
57
                if !okState || !okName {
2✔
58
                        return nil, fmt.Errorf("failed parse a dynamic config entry, %v, (got %v)", v1, v)
×
59
                }
×
60
                nS, okStr := n.(string)
2✔
61
                sI, okI := s.(float64)
2✔
62
                if !okStr || !okI {
2✔
63
                        return nil, fmt.Errorf("failed parse a dynamic config entry, %v, (got %v)", v1, v)
×
64
                }
×
65
                out[nS] = types.IsolationGroupPartition{
2✔
66
                        Name:  nS,
2✔
67
                        State: types.IsolationGroupState(sI),
2✔
68
                }
2✔
69
        }
70
        return out, nil
1✔
71
}
72

73
func MapUpdateGlobalIsolationGroupsRequest(in types.IsolationGroupConfiguration) ([]*types.DynamicConfigValue, error) {
2✔
74
        jsonData, err := json.Marshal(in.ToPartitionList())
2✔
75
        if err != nil {
2✔
76
                return nil, fmt.Errorf("failed to marshal input for dynamic config: %w", err)
×
77
        }
×
78
        out := []*types.DynamicConfigValue{
2✔
79
                &types.DynamicConfigValue{
2✔
80
                        Value: &types.DataBlob{
2✔
81
                                EncodingType: types.EncodingTypeJSON.Ptr(),
2✔
82
                                Data:         jsonData,
2✔
83
                        },
2✔
84
                },
2✔
85
        }
2✔
86
        return out, nil
2✔
87
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc