mirror of
https://github.com/fosrl/olm.git
synced 2026-03-05 02:06:48 +00:00
Add terminated status
This commit is contained in:
10
api/api.go
10
api/api.go
@@ -50,6 +50,7 @@ type PeerStatus struct {
|
|||||||
type StatusResponse struct {
|
type StatusResponse struct {
|
||||||
Connected bool `json:"connected"`
|
Connected bool `json:"connected"`
|
||||||
Registered bool `json:"registered"`
|
Registered bool `json:"registered"`
|
||||||
|
Terminated bool `json:"terminated"`
|
||||||
Version string `json:"version,omitempty"`
|
Version string `json:"version,omitempty"`
|
||||||
OrgID string `json:"orgId,omitempty"`
|
OrgID string `json:"orgId,omitempty"`
|
||||||
PeerStatuses map[int]*PeerStatus `json:"peers,omitempty"`
|
PeerStatuses map[int]*PeerStatus `json:"peers,omitempty"`
|
||||||
@@ -71,6 +72,7 @@ type API struct {
|
|||||||
connectedAt time.Time
|
connectedAt time.Time
|
||||||
isConnected bool
|
isConnected bool
|
||||||
isRegistered bool
|
isRegistered bool
|
||||||
|
isTerminated bool
|
||||||
version string
|
version string
|
||||||
orgID string
|
orgID string
|
||||||
}
|
}
|
||||||
@@ -206,6 +208,12 @@ func (s *API) SetRegistered(registered bool) {
|
|||||||
s.isRegistered = registered
|
s.isRegistered = registered
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *API) SetTerminated(terminated bool) {
|
||||||
|
s.statusMu.Lock()
|
||||||
|
defer s.statusMu.Unlock()
|
||||||
|
s.isTerminated = terminated
|
||||||
|
}
|
||||||
|
|
||||||
// SetVersion sets the olm version
|
// SetVersion sets the olm version
|
||||||
func (s *API) SetVersion(version string) {
|
func (s *API) SetVersion(version string) {
|
||||||
s.statusMu.Lock()
|
s.statusMu.Lock()
|
||||||
@@ -295,6 +303,7 @@ func (s *API) handleStatus(w http.ResponseWriter, r *http.Request) {
|
|||||||
resp := StatusResponse{
|
resp := StatusResponse{
|
||||||
Connected: s.isConnected,
|
Connected: s.isConnected,
|
||||||
Registered: s.isRegistered,
|
Registered: s.isRegistered,
|
||||||
|
Terminated: s.isTerminated,
|
||||||
Version: s.version,
|
Version: s.version,
|
||||||
OrgID: s.orgID,
|
OrgID: s.orgID,
|
||||||
PeerStatuses: s.peerStatuses,
|
PeerStatuses: s.peerStatuses,
|
||||||
@@ -420,6 +429,7 @@ func (s *API) GetStatus() StatusResponse {
|
|||||||
return StatusResponse{
|
return StatusResponse{
|
||||||
Connected: s.isConnected,
|
Connected: s.isConnected,
|
||||||
Registered: s.isRegistered,
|
Registered: s.isRegistered,
|
||||||
|
Terminated: s.isTerminated,
|
||||||
Version: s.version,
|
Version: s.version,
|
||||||
OrgID: s.orgID,
|
OrgID: s.orgID,
|
||||||
PeerStatuses: s.peerStatuses,
|
PeerStatuses: s.peerStatuses,
|
||||||
|
|||||||
@@ -167,6 +167,9 @@ func StartTunnel(config TunnelConfig) {
|
|||||||
|
|
||||||
tunnelRunning = true // Also set it here in case it is called externally
|
tunnelRunning = true // Also set it here in case it is called externally
|
||||||
|
|
||||||
|
// Reset terminated status when tunnel starts
|
||||||
|
apiServer.SetTerminated(false)
|
||||||
|
|
||||||
// debug print out the whole config
|
// debug print out the whole config
|
||||||
logger.Debug("Starting tunnel with config: %+v", config)
|
logger.Debug("Starting tunnel with config: %+v", config)
|
||||||
|
|
||||||
@@ -744,6 +747,7 @@ func StartTunnel(config TunnelConfig) {
|
|||||||
|
|
||||||
olm.RegisterHandler("olm/terminate", func(msg websocket.WSMessage) {
|
olm.RegisterHandler("olm/terminate", func(msg websocket.WSMessage) {
|
||||||
logger.Info("Received terminate message")
|
logger.Info("Received terminate message")
|
||||||
|
apiServer.SetTerminated(true)
|
||||||
Close()
|
Close()
|
||||||
|
|
||||||
if globalConfig.OnTerminated != nil {
|
if globalConfig.OnTerminated != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user