private void MenuItemCallbackK8sDeploy(object sender, EventArgs e) { try { var project = Utils.GetCurrentProject(this.ServiceProvider); var projectDir = System.IO.Path.GetDirectoryName(project.FullName); var bar = GetStatusBar(); int frozen; bar.IsFrozen(out frozen); if (frozen != 0) { bar.FreezeOutput(0); } //object icon = (short)Microsoft.VisualStudio.Shell.Interop.Constants.SBAI_Deploy; //bar.Animation(1, ref icon); bar.SetText("Deploying Kubernetes Helm Chart..."); bar.FreezeOutput(1); draftCreateRunning = true; Kubernetes.DraftUp(projectDir, Process_OutputDataReceived, Process_ErrorDataReceived, (s, e2) => { ThreadHelper.JoinableTaskFactory.Run(async delegate { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { draftCreateRunning = false; bar.FreezeOutput(0); bar.Clear(); //bar.Animation(0, ref icon); var p = (System.Diagnostics.Process)s; if (p.ExitCode != 0) { var message = "draft up failed"; Utils.WriteToOutputWindow(this.ServiceProvider, message); throw new Exception(message); } } catch (Exception ex) { Utils.ShowWarningMessageBox(this.ServiceProvider, ex.Message); } }); }); } catch (Exception ex) { Utils.ShowWarningMessageBox(this.ServiceProvider, ex.Message); } }
private void MenuItemCallbackK8sAddSupport(object sender, EventArgs e) { try { var project = Utils.GetCurrentProject(this.ServiceProvider); var projectDir = System.IO.Path.GetDirectoryName(project.FullName); var projectKindGuid = new Guid(project.Kind); string packName = null; if (!vsProjectTypeToPackNameMap.TryGetValue(new Guid(project.Kind), out packName)) { throw new Exception("Unsupported project type. Only ASP.NET Core and Node.js projects are currently supported for now, more will be added soon!"); } draftUpRunning = true; Kubernetes.DraftCreate(projectDir, packName, Process_OutputDataReceived, Process_ErrorDataReceived, (s, e2) => { ThreadHelper.JoinableTaskFactory.Run(async delegate { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { draftUpRunning = false; var p = (System.Diagnostics.Process)s; if (p.ExitCode != 0) { var message = "draft create failed"; Utils.WriteToOutputWindow(this.ServiceProvider, message); throw new Exception(message); } else { Kubernetes.DisableDraftWatch(projectDir); var paths = new List <string>(); foreach (var name in new[] { "Dockerfile", "draft.toml", ".draftignore", "chart" }) { paths.Add(System.IO.Path.Combine(projectDir, name)); } Utils.AddItemsToProject(project.ProjectItems, paths); } } catch (Exception ex) { Utils.ShowWarningMessageBox(this.ServiceProvider, ex.Message); } }); }); } catch (Exception ex) { Utils.ShowWarningMessageBox(this.ServiceProvider, ex.Message); } }
private void MenuItemCallbackK8sMinikubeDeploy(object sender, EventArgs e) { var bar = GetStatusBar(); int frozen; bar.IsFrozen(out frozen); if (frozen != 0) { bar.FreezeOutput(0); } bar.SetText("Deploying Minikube..."); bar.FreezeOutput(1); minikubeDeploymentRunning = true; Kubernetes.DeployMinikube(Process_OutputDataReceived, Process_ErrorDataReceived, (s, e2) => { ThreadHelper.JoinableTaskFactory.Run(async delegate { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); try { minikubeDeploymentRunning = false; bar.FreezeOutput(0); bar.Clear(); var p = (System.Diagnostics.Process)s; if (p.ExitCode != 0) { throw new Exception("Minikube deployment failed"); } } catch (Exception ex) { Utils.ShowWarningMessageBox(this.ServiceProvider, ex.Message); } }); }); }