Просмотр исходного кода

set cluster automatically on login

Alexander Belanger 4 лет назад
Родитель
Сommit
455a4edd8e
2 измененных файлов с 43 добавлено и 1 удалено
  1. 29 1
      cli/cmd/auth.go
  2. 14 0
      cli/cmd/project.go

+ 29 - 1
cli/cmd/auth.go

@@ -91,7 +91,17 @@ func login() error {
 				return err
 			}
 
-			config.SetProject(projID)
+			err = config.SetProject(projID)
+
+			if err != nil {
+				return err
+			}
+
+			err = setProjectCluster(client, projID)
+
+			if err != nil {
+				return err
+			}
 		} else {
 			color.Yellow("You are already logged in. If you'd like to log out, run \"porter auth logout\".")
 		}
@@ -141,6 +151,12 @@ func login() error {
 
 		if len(projects) > 0 {
 			config.SetProject(projects[0].ID)
+
+			err = setProjectCluster(client, projects[0].ID)
+
+			if err != nil {
+				return err
+			}
 		}
 	} else {
 		// set the token in config
@@ -168,6 +184,12 @@ func login() error {
 		}
 
 		config.SetProject(projID)
+
+		err = setProjectCluster(client, projID)
+
+		if err != nil {
+			return err
+		}
 	}
 
 	return nil
@@ -215,6 +237,12 @@ func loginManual() error {
 
 	if len(projects) > 0 {
 		config.SetProject(projects[0].ID)
+
+		err = setProjectCluster(client, projects[0].ID)
+
+		if err != nil {
+			return err
+		}
 	}
 
 	return nil

+ 14 - 0
cli/cmd/project.go

@@ -140,3 +140,17 @@ func deleteProject(_ *api.AuthCheckResponse, client *api.Client, args []string)
 
 	return nil
 }
+
+func setProjectCluster(client *api.Client, projectID uint) error {
+	clusters, err := client.ListProjectClusters(context.Background(), projectID)
+
+	if err != nil {
+		return err
+	}
+
+	if len(clusters) > 0 {
+		config.SetCluster(clusters[0].ID)
+	}
+
+	return nil
+}