Commit Diff


commit - 56353a840d3c0193dfb3b0f4b433668156a44b45
commit + 081c49d08e5da0bd73829b0278c754037cc034e6
blob - 27a3846d04bd7f1ecbc20b96792e43336afde4c2
blob + 642a800b6eaba03c8c9461394017e7a6e09938db
--- kopsd/src/handler.rs
+++ kopsd/src/handler.rs
@@ -67,18 +67,39 @@ impl Handler {
             expires_at,
         };
 
-        match self.state.aws_sessions.lock() {
-            Ok(mut map) => {
-                map.insert(req.name.clone(), session);
-                info!("stored AWS session for profile '{}'", req.name);
-                Response::LoginOk
-            }
-            Err(_) => Response::Error {
-                message: "failed to lock aws_sessions map".into(),
-            },
+        {
+            let mut map = match self.state.aws_sessions.lock() {
+                Ok(m) => m,
+                Err(_) => {
+                    return Response::Error {
+                        message: "failed to lock aws_sessions map".into(),
+                    };
+                }
+            };
+
+            map.insert(req.name.clone(), session);
+            info!("stored AWS session for profile '{}'", req.name);
         }
+
+        if let Err(err) = self.start_clusters_for_profile(&req.name).await {
+            return Response::Error {
+                message: format!(
+                    "stored session but failed to start clusters for profile {}: {err}",
+                    req.name
+                ),
+            };
+        }
+
+        Response::LoginOk
     }
 
+    async fn start_clusters_for_profile(
+        &self,
+        _profile: &str,
+    ) -> anyhow::Result<()> {
+        Ok(())
+    }
+
     async fn handle_env(&self, req: EnvRequest) -> Response {
         let cluster = req
             .cluster