rpc_service.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. // Copyright 2022 EMQ Technologies Co., Ltd.
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. //go:build !core || (rpc && service)
  15. // +build !core rpc,service
  16. package server
  17. import (
  18. "encoding/json"
  19. "fmt"
  20. "github.com/lf-edge/ekuiper/internal/pkg/model"
  21. "github.com/lf-edge/ekuiper/internal/service"
  22. "github.com/lf-edge/ekuiper/pkg/cast"
  23. )
  24. func (t *Server) CreateService(arg *model.RPCArgDesc, reply *string) error {
  25. sd := &service.ServiceCreationRequest{}
  26. if arg.Json != "" {
  27. if err := json.Unmarshal(cast.StringToBytes(arg.Json), sd); err != nil {
  28. return fmt.Errorf("Parse service %s error : %s.", arg.Json, err)
  29. }
  30. }
  31. if sd.Name != arg.Name {
  32. return fmt.Errorf("Create service error: name mismatch.")
  33. }
  34. if sd.File == "" {
  35. return fmt.Errorf("Create service error: Missing service file url.")
  36. }
  37. err := serviceManager.Create(sd)
  38. if err != nil {
  39. return fmt.Errorf("Create service error: %s", err)
  40. } else {
  41. *reply = fmt.Sprintf("Service %s is created.", arg.Name)
  42. }
  43. return nil
  44. }
  45. func (t *Server) DescService(name string, reply *string) error {
  46. s, err := serviceManager.Get(name)
  47. if err != nil {
  48. return fmt.Errorf("Desc service error : %s.", err)
  49. } else {
  50. r, err := marshalDesc(s)
  51. if err != nil {
  52. return fmt.Errorf("Describe service error: %v", err)
  53. }
  54. *reply = r
  55. }
  56. return nil
  57. }
  58. func (t *Server) DescServiceFunc(name string, reply *string) error {
  59. s, err := serviceManager.GetFunction(name)
  60. if err != nil {
  61. return fmt.Errorf("Desc service func error : %s.", err)
  62. } else {
  63. r, err := marshalDesc(s)
  64. if err != nil {
  65. return fmt.Errorf("Describe service func error: %v", err)
  66. }
  67. *reply = r
  68. }
  69. return nil
  70. }
  71. func (t *Server) DropService(name string, reply *string) error {
  72. err := serviceManager.Delete(name)
  73. if err != nil {
  74. return fmt.Errorf("Drop service error : %s.", err)
  75. }
  76. *reply = fmt.Sprintf("Service %s is dropped", name)
  77. return nil
  78. }
  79. func (t *Server) ShowServices(_ int, reply *string) error {
  80. s, err := serviceManager.List()
  81. if err != nil {
  82. return fmt.Errorf("Show service error: %s.", err)
  83. }
  84. if len(s) == 0 {
  85. *reply = "No service definitions are found."
  86. } else {
  87. r, err := marshalDesc(s)
  88. if err != nil {
  89. return fmt.Errorf("Show service error: %v", err)
  90. }
  91. *reply = r
  92. }
  93. return nil
  94. }
  95. func (t *Server) ShowServiceFuncs(_ int, reply *string) error {
  96. s, err := serviceManager.ListFunctions()
  97. if err != nil {
  98. return fmt.Errorf("Show service funcs error: %s.", err)
  99. }
  100. if len(s) == 0 {
  101. *reply = "No service definitions are found."
  102. } else {
  103. r, err := marshalDesc(s)
  104. if err != nil {
  105. return fmt.Errorf("Show service funcs error: %v", err)
  106. }
  107. *reply = r
  108. }
  109. return nil
  110. }