emqx.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package mq
  2. import "github.com/gravitl/netmaker/servercfg"
  3. var emqx Emqx
  4. type Emqx interface {
  5. GetType() servercfg.Emqxdeploy
  6. CreateEmqxUser(username, password string) error
  7. CreateEmqxUserforServer() error
  8. CreateEmqxDefaultAuthenticator() error
  9. CreateEmqxDefaultAuthorizer() error
  10. CreateDefaultDenyRule() error
  11. CreateHostACL(hostID, serverName string) error
  12. AppendNodeUpdateACL(hostID, nodeNetwork, nodeID, serverName string) error
  13. GetUserACL(username string) (*aclObject, error)
  14. DeleteEmqxUser(username string) error
  15. }
  16. func init() {
  17. if servercfg.GetBrokerType() != servercfg.EmqxBrokerType {
  18. return
  19. }
  20. if servercfg.GetEmqxDeployType() == servercfg.EmqxCloudDeploy {
  21. emqx = &EmqxCloud{
  22. URL: servercfg.GetEmqxRestEndpoint(),
  23. AppID: servercfg.GetEmqxAppID(),
  24. AppSecret: servercfg.GetEmqxAppSecret(),
  25. }
  26. } else {
  27. emqx = &EmqxOnPrem{
  28. URL: servercfg.GetEmqxRestEndpoint(),
  29. UserName: servercfg.GetMqUserName(),
  30. Password: servercfg.GetMqPassword(),
  31. }
  32. }
  33. }
  34. // GetEmqxHandler - gets emqx handler
  35. func GetEmqxHandler() Emqx {
  36. return emqx
  37. }