pb_resource_client.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. package service
  2. import (
  3. "context"
  4. "errors"
  5. "log/slog"
  6. "time"
  7. )
  8. import (
  9. "google.golang.org/grpc"
  10. "google.golang.org/grpc/credentials/insecure"
  11. )
  12. import (
  13. "auth-server/common"
  14. pb "auth-server/rpc_idl/dr_resource_pb"
  15. )
  16. var ResourceClient *Resource
  17. func init() {
  18. ResourceClient = new(Resource)
  19. }
  20. type Resource struct {
  21. basicClient pb.BasicClient
  22. configClient pb.ConfigClient
  23. }
  24. func (s *Resource) Setup() {
  25. conn, err := grpc.NewClient(common.ServerConfig.Resource, grpc.WithTransportCredentials(insecure.NewCredentials()))
  26. if err != nil {
  27. slog.Error("NewClient failed:", err)
  28. panic(err)
  29. }
  30. slog.Info("resource conn success", "conn", conn.GetState())
  31. s.basicClient = pb.NewBasicClient(conn)
  32. s.configClient = pb.NewConfigClient(conn)
  33. }
  34. func (s *Resource) GetSoftwareInfo() *pb.SoftwareInfoReply {
  35. slog.Info("[rpc]SoftwareInfo...")
  36. ctx, cancel := context.WithTimeout(context.Background(), 200*time.Millisecond)
  37. defer cancel()
  38. r, err := s.basicClient.SoftwareInfo(ctx, &pb.EmptyRequest{})
  39. if err != nil {
  40. slog.Error("[rpc]SoftwareInfo failed", "err", err)
  41. return &pb.SoftwareInfoReply{
  42. Module: "",
  43. Desc: "",
  44. Build: "",
  45. Version: "",
  46. }
  47. }
  48. return r
  49. }
  50. func (s *Resource) GetOptions(ctx context.Context, group, flag *string) (*pb.OptionReply, error) {
  51. if group == nil {
  52. return nil, errors.New("group is nil")
  53. }
  54. if flag == nil {
  55. return nil, errors.New("flag is nil")
  56. }
  57. r, err := s.configClient.GetOptions(ctx, &pb.OptionRequest{
  58. Group: *group,
  59. Flag: *flag,
  60. })
  61. if err != nil {
  62. slog.Error("[rpc]GetOptions failed", "err", err)
  63. }
  64. slog.Info("[rpc]GetOptions result", "rows", len(r.Option))
  65. return r, err
  66. }
  67. func (s *Resource) GetConfigOptionList(ctx context.Context, flag string, enable bool) ([]*pb.ConfigOption, error) {
  68. slog.Info("[rpc]GetConfigOptionList...")
  69. r, err := s.configClient.ConfigOptionList(ctx, &pb.ConfigOptionListRequest{
  70. Flag: flag,
  71. IsEnabled: enable,
  72. })
  73. if err != nil {
  74. slog.Error("[rpc]GetConfigOptionList failed", "err", err)
  75. }
  76. return r.GetConfigOption(), err
  77. }