rpc_utils.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package servicelib
  2. import (
  3. "context"
  4. "encoding/json"
  5. "net"
  6. "hnyfkj.com.cn/rtu/linux/baseapp"
  7. "hnyfkj.com.cn/rtu/linux/utils/jsonrpc2"
  8. )
  9. func MakeGetBuildVer(version, buildTime string) jsonrpc2.MethodHandler {
  10. return func(ctx context.Context, req *jsonrpc2.Request) *jsonrpc2.Response {
  11. result := map[string]string{
  12. "version": version,
  13. "build_time": buildTime,
  14. }
  15. return jsonrpc2.BuildResponse(req, result, nil)
  16. }
  17. }
  18. func GetLogLevel(ctx context.Context, req *jsonrpc2.Request) *jsonrpc2.Response {
  19. level, _ := baseapp.GetLogLevel()
  20. result := map[string]string{
  21. "log_level": level,
  22. }
  23. return jsonrpc2.BuildResponse(req, result, nil)
  24. }
  25. func SetLogLevel(ctx context.Context, req *jsonrpc2.Request) *jsonrpc2.Response {
  26. var params map[string]string
  27. if err := json.Unmarshal(req.Params, &params); err != nil {
  28. return jsonrpc2.BuildError(req, jsonrpc2.ErrInvalidParams, err.Error())
  29. }
  30. level, ok := params["log_level"]
  31. if !ok || level == "" {
  32. return jsonrpc2.BuildError(req, jsonrpc2.ErrInvalidParams, "missing or empty 'log_level' parameter")
  33. }
  34. err := baseapp.UpdateLogLevel(level)
  35. if err != nil {
  36. return jsonrpc2.BuildError(req, jsonrpc2.ErrInternal, err.Error())
  37. }
  38. return jsonrpc2.BuildResponse(req, "success", nil)
  39. }
  40. func SaveLogConf(ctx context.Context, req *jsonrpc2.Request) *jsonrpc2.Response {
  41. err := baseapp.SaveLogConfig()
  42. if err != nil {
  43. return jsonrpc2.BuildError(req, jsonrpc2.ErrInternal, err.Error())
  44. }
  45. return jsonrpc2.BuildResponse(req, "success", nil)
  46. }
  47. func IsAddrInUse(network, addr string) bool {
  48. ln, err := net.Listen(network, addr)
  49. if err != nil {
  50. return true
  51. }
  52. _ = ln.Close()
  53. return false
  54. }