forked from sonic-net/sonic-mgmt-framework
/
xfmr_sonic_tests.go
59 lines (52 loc) · 2.15 KB
/
xfmr_sonic_tests.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
////////////////////////////////////////////////////////////////////////////////
// //
// Copyright 2019 Dell, Inc. //
// //
// Licensed under the Apache License, Version 2.0 (the "License"); //
// you may not use this file except in compliance with the License. //
// You may obtain a copy of the License at //
// //
// http://www.apache.org/licenses/LICENSE-2.0 //
// //
// Unless required by applicable law or agreed to in writing, software //
// distributed under the License is distributed on an "AS IS" BASIS, //
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. //
// See the License for the specific language governing permissions and //
// limitations under the License. //
// //
////////////////////////////////////////////////////////////////////////////////
package transformer
import (
// "bytes"
// "errors"
// "fmt"
"encoding/json"
"translib/tlerr"
"translib/db"
"github.com/golang/glog"
)
func init() {
XlateFuncBind("rpc_sum_cb", rpc_sum_cb)
}
var rpc_sum_cb RpcCallpoint = func(body []byte, dbs [db.MaxDB]*db.DB) ([]byte, error) {
var err error
var operand struct {
Input struct {
Left int32 `json:"left"`
Right int32 `json:"right"`
} `json:"sonic-tests:input"`
}
err = json.Unmarshal(body, &operand)
if err != nil {
glog.Errorf("Failed to parse rpc input; err=%v", err)
return nil,tlerr.InvalidArgs("Invalid rpc input")
}
var sum struct {
Output struct {
Result int32 `json:"result"`
} `json:"sonic-tests:output"`
}
sum.Output.Result = operand.Input.Left + operand.Input.Right
result, err := json.Marshal(&sum)
return result, err
}