netmaker/mq/emqx.go
2024-01-26 10:24:29 +05:30

43 lines
1.1 KiB
Go

package mq
import "github.com/gravitl/netmaker/servercfg"
var emqx Emqx
type Emqx interface {
GetType() servercfg.Emqxdeploy
CreateEmqxUser(username, password string) error
CreateEmqxUserforServer() error
CreateEmqxDefaultAuthenticator() error
CreateEmqxDefaultAuthorizer() error
CreateDefaultDenyRule() error
CreateHostACL(hostID, serverName string) error
AppendNodeUpdateACL(hostID, nodeNetwork, nodeID, serverName string) error
GetUserACL(username string) (*aclObject, error)
DeleteEmqxUser(username string) error
}
func init() {
if servercfg.GetBrokerType() != servercfg.EmqxBrokerType {
return
}
if servercfg.GetEmqxDeployType() == servercfg.EmqxCloudDeploy {
emqx = &EmqxCloud{
URL: servercfg.GetEmqxRestEndpoint(),
AppID: servercfg.GetEmqxAppID(),
AppSecret: servercfg.GetEmqxAppSecret(),
}
} else {
emqx = &EmqxOnPrem{
URL: servercfg.GetEmqxRestEndpoint(),
UserName: servercfg.GetMqUserName(),
Password: servercfg.GetMqPassword(),
}
}
}
// GetEmqxHandler - gets emqx handler
func GetEmqxHandler() Emqx {
return emqx
}