mirror of
https://github.com/gravitl/netmaker.git
synced 2026-04-22 16:07:11 +08:00
Allow updating auto-assign-gw on enrollment keys (#3768)
* feat(go): allow updating auto-assign-gw on enrollment keys; * feat: prevent auto assign gateway if relay is set;
This commit is contained in:
@@ -242,9 +242,8 @@ func updateEnrollmentKey(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
relayId := uuid.Nil
|
||||
if enrollmentKeyBody.Relay != "" {
|
||||
relayId, err = uuid.Parse(enrollmentKeyBody.Relay)
|
||||
_, err = uuid.Parse(enrollmentKeyBody.Relay)
|
||||
if err != nil {
|
||||
slog.Error("error parsing relay id", "error", err)
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "badrequest"))
|
||||
@@ -253,7 +252,7 @@ func updateEnrollmentKey(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
currKey, _ := logic.GetEnrollmentKey(keyId)
|
||||
|
||||
newEnrollmentKey, err := logic.UpdateEnrollmentKey(keyId, relayId, enrollmentKeyBody.Groups)
|
||||
newEnrollmentKey, err := logic.UpdateEnrollmentKey(keyId, &enrollmentKeyBody)
|
||||
if err != nil {
|
||||
slog.Error("failed to update enrollment key", "error", err)
|
||||
logic.ReturnErrorResponse(w, r, logic.FormatError(err, "internal"))
|
||||
|
||||
+15
-5
@@ -96,14 +96,19 @@ func CreateEnrollmentKey(uses int, expiration time.Time, networks,
|
||||
}
|
||||
|
||||
// UpdateEnrollmentKey - updates an existing enrollment key's associated relay
|
||||
func UpdateEnrollmentKey(keyId string, relayId uuid.UUID, groups []models.TagID) (*models.EnrollmentKey, error) {
|
||||
func UpdateEnrollmentKey(keyId string, updates *models.APIEnrollmentKey) (*models.EnrollmentKey, error) {
|
||||
key, err := GetEnrollmentKey(keyId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if relayId != uuid.Nil {
|
||||
relayNode, err := GetNodeByID(relayId.String())
|
||||
relayID := uuid.Nil
|
||||
if updates.Relay != "" {
|
||||
relayID = uuid.MustParse(updates.Relay)
|
||||
}
|
||||
|
||||
if relayID != uuid.Nil {
|
||||
relayNode, err := GetNodeByID(relayID.String())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -115,8 +120,13 @@ func UpdateEnrollmentKey(keyId string, relayId uuid.UUID, groups []models.TagID)
|
||||
}
|
||||
}
|
||||
|
||||
key.Relay = relayId
|
||||
key.Groups = groups
|
||||
if relayID != uuid.Nil {
|
||||
updates.AutoAssignGateway = false
|
||||
}
|
||||
|
||||
key.Relay = relayID
|
||||
key.Groups = updates.Groups
|
||||
key.AutoAssignGateway = updates.AutoAssignGateway
|
||||
if err = upsertEnrollmentKey(&key); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user