|
@@ -0,0 +1,51 @@
|
|
|
+package migrate
|
|
|
+
|
|
|
+import (
|
|
|
+ "encoding/json"
|
|
|
+
|
|
|
+ "github.com/gravitl/netmaker/database"
|
|
|
+ "github.com/gravitl/netmaker/logger"
|
|
|
+ "github.com/gravitl/netmaker/models"
|
|
|
+)
|
|
|
+
|
|
|
+func Run() {
|
|
|
+ updateEnrollmentKeys()
|
|
|
+}
|
|
|
+
|
|
|
+func updateEnrollmentKeys() {
|
|
|
+ rows, err := database.FetchRecords(database.ENROLLMENT_KEYS_TABLE_NAME)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, row := range rows {
|
|
|
+ var key models.EnrollmentKey
|
|
|
+ if err = json.Unmarshal([]byte(row), &key); err != nil {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if key.Type != models.Undefined {
|
|
|
+ logger.Log(2, "migration: enrollment key type already set")
|
|
|
+ continue
|
|
|
+ } else {
|
|
|
+ logger.Log(2, "migration: updating enrollment key type")
|
|
|
+ if key.Unlimited {
|
|
|
+ key.Type = models.Unlimited
|
|
|
+ }
|
|
|
+ if key.UsesRemaining > 0 {
|
|
|
+ key.Type = models.Uses
|
|
|
+ }
|
|
|
+ if !key.Expiration.IsZero() {
|
|
|
+ key.Type = models.TimeExpiration
|
|
|
+ }
|
|
|
+ }
|
|
|
+ data, err := json.Marshal(key)
|
|
|
+ if err != nil {
|
|
|
+ logger.Log(0, "migration: marshalling enrollment key: "+err.Error())
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if err = database.Insert(key.Value, string(data), database.ENROLLMENT_KEYS_TABLE_NAME); err != nil {
|
|
|
+ logger.Log(0, "migration: inserting enrollment key: "+err.Error())
|
|
|
+ continue
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+}
|