/*
- * Copyright (C) 2017-2018 "IoT.bzh"
+ * Copyright (C) 2017-2019 "IoT.bzh"
* Author Sebastien Douheret <sebastien@iot.bzh>
*
* Licensed under the Apache License, Version 2.0 (the "License");
uuid "github.com/satori/go.uuid"
)
-// XdsSupervisor .
-type XdsSupervisor struct {
+// XdsMonitoring .
+type XdsMonitoring struct {
*Context
ID string
BaseURL string
cbOnConnect OnConnectedXdsSupervCB
}
-// XdsSuperVRequest Resquest field of a reply
-type XdsSuperVRequest struct {
- Status string `json:"status"`
- Info string `json:"info"`
-}
-
-// XdsSuperVReply Reply structure of XDS Supervision Daemon
-type XdsSuperVReply struct {
- JType string `json:"jtype"`
- Request XdsSuperVRequest `json:"request"`
- Response interface{} `json:"response"`
-}
-
// XdsSuperVTraceConfig
type XdsSuperVTraceConfig struct {
Pid int `json:"pid"`
}
// OnConnectedXdsSupervCB connect callback
-type OnConnectedXdsSupervCB func(svr *XdsSupervisor) error
+type OnConnectedXdsSupervCB func(svr *XdsMonitoring) error
-// NewXdsSupervisor creates an instance of XdsSupervisor
-func NewXdsSupervisor(ctx *Context) *XdsSupervisor {
- return &XdsSupervisor{
+// NewXdsMonitoring creates an instance of XdsMonitoring
+func NewXdsMonitoring(ctx *Context) *XdsMonitoring {
+ return &XdsMonitoring{
Context: ctx,
- ID: "XdsSupervisor-" + uuid.NewV1().String(),
- BaseURL: ctx.Config.FileConf.ProfileConf.XDSBinder.URL,
- ConnRetry: ctx.Config.FileConf.ProfileConf.XDSBinder.ConnRetry,
+ ID: "XdsMonitoring-" + uuid.NewV1().String(),
+ BaseURL: ctx.Config.FileConf.ProfileConf.XDSMonitoring.URL,
+ ConnRetry: ctx.Config.FileConf.ProfileConf.XDSMonitoring.ConnRetry,
Connected: false,
Disabled: false,
}
}
-// Connect Establish HTTP connection with XDS Supervisor Dameon
-func (xs *XdsSupervisor) Connect() error {
+// Connect Establish HTTP connection with XDS Monitoring Dameon
+func (xs *XdsMonitoring) Connect() error {
var err error
var retry int
// doing that avoid 2 notifs (conn false; conn true) on startup
xs._NotifyState()
}
- xs.Log.Infof("Establishing connection to XDS Supervisor daemon (retry %d/%d)", retry, xs.ConnRetry)
+ xs.Log.Infof("Establishing connection to XDS Monitoring daemon (retry %d/%d)", retry, xs.ConnRetry)
time.Sleep(time.Second)
}
if retry == 0 {
// FIXME: re-use _Reconnect to wait longer in background
- return fmt.Errorf("Connection to XDS Supervisor daemon failure")
+ return fmt.Errorf("Connection to XDS Monitoring daemon failure")
}
if err != nil {
return err
}
// ConnectOn Register a callback on events reception
-func (xs *XdsSupervisor) ConnectOn(f OnConnectedXdsSupervCB) error {
+func (xs *XdsMonitoring) ConnectOn(f OnConnectedXdsSupervCB) error {
xs.cbOnConnect = f
return nil
}
-// GetVersion Send Get request to retrieve XDS Supervision version
-func (xs *XdsSupervisor) GetVersion(res interface{}) error {
+// GetVersion Send Get request to retrieve XDS Monitoring version
+func (xs *XdsMonitoring) GetVersion(res interface{}) error {
// FIXME add suffix URLSuffix in common HTTP client lib instead of _BuildURL
return xs.client.Get(xs._BuildURL("/version"), &res)
}
// GetTopo Send Get request to retrieve Services/Daemons topology
-func (xs *XdsSupervisor) GetTopo(res interface{}) error {
+func (xs *XdsMonitoring) GetTopo(res interface{}) error {
return xs.client.Get(xs._BuildURL("/list"), &res)
}
-// StartTrace Send Supervisor config and start tracing
-func (xs *XdsSupervisor) StartTrace(cfg XdsSuperVTraceConfig, res interface{}) error {
+// StartTrace Send Monitoring config and start tracing
+func (xs *XdsMonitoring) StartTrace(cfg XdsSuperVTraceConfig, res interface{}) error {
return xs.client.Post(xs._BuildURL("/trace/start"), cfg, &res)
}
-// StopTrace Send Supervisor stop tracing
-func (xs *XdsSupervisor) StopTrace(res interface{}) error {
+// StopTrace Send Monitoring stop tracing
+func (xs *XdsMonitoring) StopTrace(res interface{}) error {
var cfg interface{}
return xs.client.Post(xs._BuildURL("/trace/stop"), cfg, res)
}
***/
// _BuildURL .
-func (xs *XdsSupervisor) _BuildURL(url string) string {
+func (xs *XdsMonitoring) _BuildURL(url string) string {
return url + "?token=HELLO&uuid=magic"
}
// Create HTTP client
-func (xs *XdsSupervisor) _CreateConnectHTTP() error {
+func (xs *XdsMonitoring) _CreateConnectHTTP() error {
var err error
// FIXME SEB - Client key not in header but in cookie
// temporary workaround: used _BuildURL to append uuid=magic in URL
if strings.Contains(err.Error(), "connection refused") {
msg = fmt.Sprintf("(url: %s)", xs.BaseURL)
}
- return fmt.Errorf("ERROR: cannot connect to XDS Supervisor %s", msg)
+ return fmt.Errorf("ERROR: cannot connect to XDS Monitoring %s", msg)
}
if xs.client == nil {
- return fmt.Errorf("ERROR: cannot connect to XDS Supervisor (null client)")
+ return fmt.Errorf("ERROR: cannot connect to XDS Monitoring (null client)")
}
return nil
}
// _Connect Established HTTP and WS connection
-func (xs *XdsSupervisor) _Connect(reConn bool) error {
+func (xs *XdsMonitoring) _Connect(reConn bool) error {
var res interface{}
if err := xs.client.Get(xs._BuildURL("/ping"), &res); err != nil {
}
// _NotifyState Send event to notify changes
-func (xs *XdsSupervisor) _NotifyState() {
+func (xs *XdsMonitoring) _NotifyState() {
/* TODO
evSts := xaapiv1.ServerCfg{