mirror of
https://github.com/Chipazawra/v8-1c-cluster-pde.git
synced 2025-03-29 21:47:13 +02:00
fix cluster auth
This commit is contained in:
parent
67b12641b4
commit
fcbba2e36b
@ -30,6 +30,10 @@ var (
|
|||||||
PUSH_INTERVAL int
|
PUSH_INTERVAL int
|
||||||
PUSH_HOST string
|
PUSH_HOST string
|
||||||
PUSH_PORT string
|
PUSH_PORT string
|
||||||
|
AGNT_PASS string
|
||||||
|
AGNT_USER string
|
||||||
|
CLS_USER string
|
||||||
|
CLS_PASS string
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -47,6 +51,10 @@ func init() {
|
|||||||
flag.IntVar(&PUSH_INTERVAL, "push-interval", 0, "mode push or pull")
|
flag.IntVar(&PUSH_INTERVAL, "push-interval", 0, "mode push or pull")
|
||||||
flag.StringVar(&PUSH_HOST, "push-host", "", "pushgateway host")
|
flag.StringVar(&PUSH_HOST, "push-host", "", "pushgateway host")
|
||||||
flag.StringVar(&PUSH_PORT, "push-port", "", "pushgateway port")
|
flag.StringVar(&PUSH_PORT, "push-port", "", "pushgateway port")
|
||||||
|
flag.StringVar(&AGNT_USER, "agnt-user", "", "agent user")
|
||||||
|
flag.StringVar(&AGNT_PASS, "agnt-pass", "", "agent password")
|
||||||
|
flag.StringVar(&CLS_USER, "cls-user", "", "cluster user")
|
||||||
|
flag.StringVar(&CLS_PASS, "cls-pass", "", "cluster password")
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
if RAS_HOST != "" {
|
if RAS_HOST != "" {
|
||||||
@ -77,20 +85,39 @@ func init() {
|
|||||||
conf.PUSH_PORT = PUSH_PORT
|
conf.PUSH_PORT = PUSH_PORT
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if AGNT_USER != "" {
|
||||||
|
conf.AGNT_USER = AGNT_USER
|
||||||
|
}
|
||||||
|
|
||||||
|
if AGNT_PASS != "" {
|
||||||
|
conf.AGNT_PASS = AGNT_PASS
|
||||||
|
}
|
||||||
|
|
||||||
|
if CLS_USER != "" {
|
||||||
|
conf.CLS_USER = CLS_USER
|
||||||
|
}
|
||||||
|
|
||||||
|
if CLS_PASS != "" {
|
||||||
|
conf.CLS_PASS = CLS_PASS
|
||||||
|
}
|
||||||
|
|
||||||
log.Printf("v8-1c-cluster-pde: overrided config from stdin:\n%#v", conf)
|
log.Printf("v8-1c-cluster-pde: overrided config from stdin:\n%#v", conf)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Run() error {
|
func Run() error {
|
||||||
|
|
||||||
rcli := rascli.NewClient(fmt.Sprintf("%s:%s", conf.RAS_HOST, conf.RAS_PORT))
|
rcli := rascli.NewClient(fmt.Sprintf("%s:%s", conf.RAS_HOST, conf.RAS_PORT))
|
||||||
rcli.AuthenticateAgent(conf.CLS_USER, conf.CLS_PASS)
|
rcli.AuthenticateAgent(conf.AGNT_USER, conf.AGNT_USER)
|
||||||
|
|
||||||
defer rcli.Close()
|
defer rcli.Close()
|
||||||
|
|
||||||
log.Printf("v8-1c-cluster-pde: connected to RAS %v",
|
log.Printf("v8-1c-cluster-pde: connected to RAS %v",
|
||||||
fmt.Sprintf("%s:%s", conf.RAS_HOST, conf.RAS_PORT),
|
fmt.Sprintf("%s:%s", conf.RAS_HOST, conf.RAS_PORT),
|
||||||
)
|
)
|
||||||
|
|
||||||
rhc := rpHostsCollector.New(rcli)
|
rhc := rpHostsCollector.New(rcli,
|
||||||
|
rpHostsCollector.WithCredentionals(conf.CLS_USER, conf.CLS_PASS),
|
||||||
|
)
|
||||||
|
|
||||||
ctx, cancel := context.WithCancel(context.Background())
|
ctx, cancel := context.WithCancel(context.Background())
|
||||||
|
|
||||||
|
@ -5,6 +5,8 @@ type AppConfig struct {
|
|||||||
RAS_PORT string `env:"RAS_PORT" envDefault:"1545"`
|
RAS_PORT string `env:"RAS_PORT" envDefault:"1545"`
|
||||||
CLS_USER string `env:"CLS_USER"`
|
CLS_USER string `env:"CLS_USER"`
|
||||||
CLS_PASS string `env:"CLS_PASS"`
|
CLS_PASS string `env:"CLS_PASS"`
|
||||||
|
AGNT_USER string `env:"AGNT_USER"`
|
||||||
|
AGNT_PASS string `env:"AGNT_PASS"`
|
||||||
MODE string `env:"MODE" envDefault:"pull"`
|
MODE string `env:"MODE" envDefault:"pull"`
|
||||||
PUSH_INTERVAL int `env:"PUSH_INTERVAL" envDefault:"500"`
|
PUSH_INTERVAL int `env:"PUSH_INTERVAL" envDefault:"500"`
|
||||||
PUSH_HOST string `env:"PUSH_HOST" envDefault:"localhost"`
|
PUSH_HOST string `env:"PUSH_HOST" envDefault:"localhost"`
|
||||||
|
@ -14,6 +14,8 @@ import (
|
|||||||
|
|
||||||
type rpHostsCollector struct {
|
type rpHostsCollector struct {
|
||||||
ctx context.Context
|
ctx context.Context
|
||||||
|
clsuser string
|
||||||
|
clspass string
|
||||||
wg sync.WaitGroup
|
wg sync.WaitGroup
|
||||||
rasapi rascli.Api
|
rasapi rascli.Api
|
||||||
rpHosts *prometheus.Desc
|
rpHosts *prometheus.Desc
|
||||||
@ -34,11 +36,20 @@ type rpHostsCollector struct {
|
|||||||
Enable *prometheus.Desc
|
Enable *prometheus.Desc
|
||||||
}
|
}
|
||||||
|
|
||||||
func New(rasapi rascli.Api) prometheus.Collector {
|
type opt func(*rpHostsCollector)
|
||||||
|
|
||||||
|
func WithCredentionals(clsuser, clspass string) opt {
|
||||||
|
return func(c *rpHostsCollector) {
|
||||||
|
c.clsuser = clsuser
|
||||||
|
c.clspass = clspass
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(rasapi rascli.Api, opts ...opt) prometheus.Collector {
|
||||||
|
|
||||||
proccesLabels := []string{"cluster", "pid", "host", "port", "startedAt"}
|
proccesLabels := []string{"cluster", "pid", "host", "port", "startedAt"}
|
||||||
|
|
||||||
return &rpHostsCollector{
|
rpc := rpHostsCollector{
|
||||||
ctx: context.Background(),
|
ctx: context.Background(),
|
||||||
rasapi: rasapi,
|
rasapi: rasapi,
|
||||||
rpHosts: prometheus.NewDesc(
|
rpHosts: prometheus.NewDesc(
|
||||||
@ -106,6 +117,12 @@ func New(rasapi rascli.Api) prometheus.Collector {
|
|||||||
"host enable",
|
"host enable",
|
||||||
proccesLabels, nil),
|
proccesLabels, nil),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, opt := range opts {
|
||||||
|
opt(&rpc)
|
||||||
|
}
|
||||||
|
|
||||||
|
return &rpc
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *rpHostsCollector) Describe(ch chan<- *prometheus.Desc) {
|
func (c *rpHostsCollector) Describe(ch chan<- *prometheus.Desc) {
|
||||||
@ -123,6 +140,7 @@ func (c *rpHostsCollector) Collect(ch chan<- prometheus.Metric) {
|
|||||||
|
|
||||||
for _, сluster := range сlusters {
|
for _, сluster := range сlusters {
|
||||||
c.wg.Add(1)
|
c.wg.Add(1)
|
||||||
|
c.rasapi.AuthenticateCluster(сluster.UUID, c.clsuser, c.clspass)
|
||||||
go c.funInCollect(ch, *сluster)
|
go c.funInCollect(ch, *сluster)
|
||||||
}
|
}
|
||||||
c.wg.Wait()
|
c.wg.Wait()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user