mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-04 16:33:49 +08:00
add trial end date to server status api
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"golang.org/x/exp/slog"
|
"golang.org/x/exp/slog"
|
||||||
@@ -109,22 +110,24 @@ func getUsage(w http.ResponseWriter, _ *http.Request) {
|
|||||||
// 200: serverConfigResponse
|
// 200: serverConfigResponse
|
||||||
func getStatus(w http.ResponseWriter, r *http.Request) {
|
func getStatus(w http.ResponseWriter, r *http.Request) {
|
||||||
type status struct {
|
type status struct {
|
||||||
DB bool `json:"db_connected"`
|
DB bool `json:"db_connected"`
|
||||||
Broker bool `json:"broker_connected"`
|
Broker bool `json:"broker_connected"`
|
||||||
LicenseError string `json:"license_error"`
|
LicenseError string `json:"license_error"`
|
||||||
IsPro bool `json:"is_pro"`
|
IsPro bool `json:"is_pro"`
|
||||||
|
TrialEndDate time.Time `json:"trial_end_date"`
|
||||||
}
|
}
|
||||||
|
|
||||||
licenseErr := ""
|
licenseErr := ""
|
||||||
if servercfg.ErrLicenseValidation != nil {
|
if servercfg.ErrLicenseValidation != nil {
|
||||||
licenseErr = servercfg.ErrLicenseValidation.Error()
|
licenseErr = servercfg.ErrLicenseValidation.Error()
|
||||||
}
|
}
|
||||||
|
trialEndDate, _ := logic.GetTrialEndDate()
|
||||||
currentServerStatus := status{
|
currentServerStatus := status{
|
||||||
DB: database.IsConnected(),
|
DB: database.IsConnected(),
|
||||||
Broker: mq.IsConnected(),
|
Broker: mq.IsConnected(),
|
||||||
LicenseError: licenseErr,
|
LicenseError: licenseErr,
|
||||||
IsPro: servercfg.IsPro,
|
IsPro: servercfg.IsPro,
|
||||||
|
TrialEndDate: trialEndDate,
|
||||||
}
|
}
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json")
|
w.Header().Set("Content-Type", "application/json")
|
||||||
|
@@ -2,6 +2,8 @@ package logic
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/gravitl/netmaker/database"
|
"github.com/gravitl/netmaker/database"
|
||||||
"github.com/gravitl/netmaker/servercfg"
|
"github.com/gravitl/netmaker/servercfg"
|
||||||
)
|
)
|
||||||
@@ -19,46 +21,16 @@ var (
|
|||||||
EgressesLimit = 1000000000
|
EgressesLimit = 1000000000
|
||||||
// FreeTier - specifies if free tier
|
// FreeTier - specifies if free tier
|
||||||
FreeTier = false
|
FreeTier = false
|
||||||
|
|
||||||
|
GetTrialEndDate = func() (time.Time, error) {
|
||||||
|
return time.Time{}, nil
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
type serverData struct {
|
type serverData struct {
|
||||||
PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`
|
PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// StorePrivKey - stores server client WireGuard privatekey if needed
|
|
||||||
func StorePrivKey(serverID string, privateKey string) error {
|
|
||||||
var newData = serverData{}
|
|
||||||
var err error
|
|
||||||
var data []byte
|
|
||||||
newData.PrivateKey = privateKey
|
|
||||||
data, err = json.Marshal(&newData)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return database.Insert(serverID, string(data), database.SERVERCONF_TABLE_NAME)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FetchPrivKey - fetches private key
|
|
||||||
func FetchPrivKey(serverID string) (string, error) {
|
|
||||||
var dbData string
|
|
||||||
var err error
|
|
||||||
var fetchedData = serverData{}
|
|
||||||
dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, serverID)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
err = json.Unmarshal([]byte(dbData), &fetchedData)
|
|
||||||
if err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
return fetchedData.PrivateKey, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// RemovePrivKey - removes a private key
|
|
||||||
func RemovePrivKey(serverID string) error {
|
|
||||||
return database.DeleteRecord(database.SERVERCONF_TABLE_NAME, serverID)
|
|
||||||
}
|
|
||||||
|
|
||||||
// FetchJWTSecret - fetches jwt secret from db
|
// FetchJWTSecret - fetches jwt secret from db
|
||||||
func FetchJWTSecret() (string, error) {
|
func FetchJWTSecret() (string, error) {
|
||||||
var dbData string
|
var dbData string
|
||||||
|
@@ -96,6 +96,7 @@ func InitPro() {
|
|||||||
logic.RelayUpdates = proLogic.RelayUpdates
|
logic.RelayUpdates = proLogic.RelayUpdates
|
||||||
logic.IsInternetGw = proLogic.IsInternetGw
|
logic.IsInternetGw = proLogic.IsInternetGw
|
||||||
logic.SetInternetGw = proLogic.SetInternetGw
|
logic.SetInternetGw = proLogic.SetInternetGw
|
||||||
|
logic.GetTrialEndDate = getTrialEndDate
|
||||||
mq.UpdateMetrics = proLogic.MQUpdateMetrics
|
mq.UpdateMetrics = proLogic.MQUpdateMetrics
|
||||||
mq.UpdateMetricsFallBack = proLogic.MQUpdateMetricsFallBack
|
mq.UpdateMetricsFallBack = proLogic.MQUpdateMetricsFallBack
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user