mirror of
https://github.com/gravitl/netmaker.git
synced 2024-09-20 15:26:04 +08:00
Merge pull request #2899 from gravitl/NET-1146
NET-1146: add user id check on RAG config creation, track failover usage
This commit is contained in:
commit
23359ae5ad
|
@ -394,9 +394,9 @@ func createExtClient(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
for _, extclient := range extclients {
|
||||
if extclient.RemoteAccessClientID != "" &&
|
||||
extclient.RemoteAccessClientID == customExtClient.RemoteAccessClientID && nodeid == extclient.IngressGatewayID {
|
||||
extclient.RemoteAccessClientID == customExtClient.RemoteAccessClientID && extclient.OwnerID == caller.UserName && nodeid == extclient.IngressGatewayID {
|
||||
// extclient on the gw already exists for the remote access client
|
||||
err = errors.New("remote client config already exists on the gateway. it may have been created by another user with this same remote client machine")
|
||||
err = errors.New("remote client config already exists on the gateway")
|
||||
slog.Error("failed to create extclient", "user", userName, "error", err)
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
||||
return
|
||||
|
|
|
@ -55,6 +55,7 @@ func getUsage(w http.ResponseWriter, _ *http.Request) {
|
|||
Egresses int `json:"egresses"`
|
||||
Relays int `json:"relays"`
|
||||
InternetGateways int `json:"internet_gateways"`
|
||||
FailOvers int `json:"fail_overs"`
|
||||
}
|
||||
var serverUsage usage
|
||||
hosts, err := logic.GetAllHosts()
|
||||
|
@ -90,6 +91,10 @@ func getUsage(w http.ResponseWriter, _ *http.Request) {
|
|||
if err == nil {
|
||||
serverUsage.InternetGateways = len(gateways)
|
||||
}
|
||||
failOvers, err := logic.GetAllFailOvers()
|
||||
if err == nil {
|
||||
serverUsage.FailOvers = len(failOvers)
|
||||
}
|
||||
w.Header().Set("Content-Type", "application/json")
|
||||
json.NewEncoder(w).Encode(models.SuccessResponse{
|
||||
Code: http.StatusOK,
|
||||
|
|
|
@ -625,3 +625,18 @@ func ValidateParams(nodeid, netid string) (models.Node, error) {
|
|||
}
|
||||
return node, nil
|
||||
}
|
||||
|
||||
// GetAllFailOvers - gets all the nodes that are failovers
|
||||
func GetAllFailOvers() ([]models.Node, error) {
|
||||
nodes, err := GetAllNodes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
igs := make([]models.Node, 0)
|
||||
for _, node := range nodes {
|
||||
if node.IsFailOver {
|
||||
igs = append(igs, node)
|
||||
}
|
||||
}
|
||||
return igs, nil
|
||||
}
|
||||
|
|
|
@ -63,6 +63,7 @@ type Usage struct {
|
|||
Egresses int `json:"egresses"`
|
||||
Relays int `json:"relays"`
|
||||
InternetGateways int `json:"internet_gateways"`
|
||||
FailOvers int `json:"fail_overs"`
|
||||
}
|
||||
|
||||
// Usage.SetDefaults - sets the default values for usage
|
||||
|
|
|
@ -59,5 +59,9 @@ func getCurrentServerUsage() (limits Usage) {
|
|||
if err == nil {
|
||||
limits.InternetGateways = len(gateways)
|
||||
}
|
||||
failovers, err := logic.GetAllFailOvers()
|
||||
if err == nil {
|
||||
limits.FailOvers = len(failovers)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue