Skip to content

Commit

Permalink
fix: default resource pod logs error
Browse files Browse the repository at this point in the history
  • Loading branch information
fatjyc committed Mar 25, 2021
1 parent 5b534f7 commit a23ce7e
Show file tree
Hide file tree
Showing 8 changed files with 41 additions and 54 deletions.
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
package dev.nocalhost.plugin.intellij.commands.data;

public enum KubeResourceType {
Deployment,
Daemonset,
Statefulset,
Job,
CronJobs,
Pod;
Deployment("Deployment"),
Daemonset("Daemonset"),
Statefulset("Statefulset"),
Job("Job"),
CronJobs("CronJobs"),
Pod("Pod");

private final String val;

KubeResourceType(String val) {
this.val = val;
}

public String getVal() {
return val;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,12 @@

import com.intellij.util.messages.Topic;

import dev.nocalhost.plugin.intellij.commands.data.KubeResourceType;
import dev.nocalhost.plugin.intellij.ui.console.Action;
import dev.nocalhost.plugin.intellij.ui.tree.node.ResourceNode;

public interface NocalhostConsoleExecuteNotifier {
Topic<NocalhostConsoleExecuteNotifier> NOCALHOST_CONSOLE_EXECUTE_NOTIFIER_TOPIC =
Topic.create("Nocalchost Console Execute", NocalhostConsoleExecuteNotifier.class);

void action(ResourceNode workloadNode, KubeResourceType type, Action action);
void action(ResourceNode workloadNode, Action action);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@

import dev.nocalhost.plugin.intellij.api.data.Application;
import dev.nocalhost.plugin.intellij.api.data.DevSpace;
import dev.nocalhost.plugin.intellij.commands.data.KubeResourceType;
import dev.nocalhost.plugin.intellij.topic.NocalhostConsoleExecuteNotifier;
import dev.nocalhost.plugin.intellij.topic.NocalhostConsoleTerminalNotifier;
import dev.nocalhost.plugin.intellij.topic.NocalhostExceptionPrintNotifier;
Expand Down Expand Up @@ -74,25 +73,26 @@ private void createOutputWindow() {
}

private void newTerminal(DevSpace devSpace, Application app, String deploymentName) {
NocalhostConsoleWindow nocalhostConsoleWindow = new NocalhostTerminalWindow(project, toolWindow, devSpace, app, deploymentName);
NocalhostConsoleWindow nocalhostConsoleWindow = new NocalhostTerminalWindow(project, devSpace, app, deploymentName);
addContent(nocalhostConsoleWindow);
toolWindow.show();
}

private void updateTab(ResourceNode node, KubeResourceType type, Action action) {
private void updateTab(ResourceNode node, Action action) {
toolWindow.show();
NocalhostConsoleWindow nocalhostConsoleWindow;
switch (action) {
case LOGS:
nocalhostConsoleWindow = new NocalhostLogWindow(project, toolWindow, type, node);
nocalhostConsoleWindow = new NocalhostLogWindow(project, node);
break;
case TERMINAL:
nocalhostConsoleWindow = new NocalhostTerminalWindow(project, toolWindow, type, node);
nocalhostConsoleWindow = new NocalhostTerminalWindow(project, node);
break;
default:
throw new IllegalStateException("Unexpected value: " + action);
}
addContent(nocalhostConsoleWindow);
toolWindow.show();
}

private void addContent(final NocalhostConsoleWindow nocalhostConsoleWindow) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import org.jetbrains.annotations.NotNull;

import dev.nocalhost.plugin.intellij.commands.data.KubeResourceType;
import dev.nocalhost.plugin.intellij.topic.NocalhostConsoleExecuteNotifier;
import dev.nocalhost.plugin.intellij.ui.console.Action;
import dev.nocalhost.plugin.intellij.ui.tree.node.ResourceNode;
Expand All @@ -15,19 +14,17 @@ public class LogsAction extends AnAction {

private final Project project;
private final ResourceNode node;
private final KubeResourceType type;

public LogsAction(Project project, ResourceNode node, KubeResourceType type) {
public LogsAction(Project project, ResourceNode node) {
super("Logs");
this.project = project;
this.node = node;
this.type = type;
}

@Override
public void actionPerformed(@NotNull AnActionEvent event) {
project.getMessageBus()
.syncPublisher(NocalhostConsoleExecuteNotifier.NOCALHOST_CONSOLE_EXECUTE_NOTIFIER_TOPIC)
.action(node, type, Action.LOGS);
.action(node, Action.LOGS);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

import org.jetbrains.annotations.NotNull;

import dev.nocalhost.plugin.intellij.commands.data.KubeResourceType;
import dev.nocalhost.plugin.intellij.topic.NocalhostConsoleExecuteNotifier;
import dev.nocalhost.plugin.intellij.ui.console.Action;
import dev.nocalhost.plugin.intellij.ui.tree.node.ResourceNode;
Expand All @@ -18,19 +17,17 @@ public class TerminalAction extends AnAction {

private final Project project;
private final ResourceNode node;
private final KubeResourceType type;

public TerminalAction(Project project, ResourceNode node, KubeResourceType type) {
public TerminalAction(Project project, ResourceNode node) {
super("Terminal", "", TerminalIcons.OpenTerminal_13x13);
this.project = project;
this.node = node;
this.type = type;
}

@Override
public void actionPerformed(@NotNull AnActionEvent event) {
project.getMessageBus()
.syncPublisher(NocalhostConsoleExecuteNotifier.NOCALHOST_CONSOLE_EXECUTE_NOTIFIER_TOPIC)
.action(node, type, Action.TERMINAL);
.action(node, Action.TERMINAL);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.DumbAwareAction;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.ToolWindow;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.EnumUtils;
import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;

Expand All @@ -44,8 +44,6 @@ public class NocalhostLogWindow extends NocalhostConsoleWindow {
private static final Logger LOG = Logger.getInstance(NocalhostLogWindow.class);

private final Project project;
private final ToolWindow toolWindow;
private final ResourceNode node;

private String title;
private ConsoleView consoleView;
Expand All @@ -59,28 +57,25 @@ public class NocalhostLogWindow extends NocalhostConsoleWindow {
private final DevSpace devSpace;
private final KubectlCommand kubectlCommand;

public NocalhostLogWindow(Project project, ToolWindow toolWindow, KubeResourceType type, ResourceNode node) {
public NocalhostLogWindow(Project project, ResourceNode node) {
this.project = project;
this.toolWindow = toolWindow;
this.node = node;


kubectlCommand = ServiceManager.getService(KubectlCommand.class);
final String workloadName = node.getKubeResource().getSpec().getSelector().getMatchLabels().get("app");
devSpace = node.devSpace();
stop = false;
pause = false;
toolWindow.show();

switch (type) {
String type = node.getKubeResource().getKind();

switch (EnumUtils.getEnumIgnoreCase(KubeResourceType.class, type)) {
case Deployment:
containerName = workloadName;
containerName = node.getKubeResource().getSpec().getSelector().getMatchLabels().get("app");;
KubeResourceList pods = null;
try {
pods = kubectlCommand.getResourceList("pods", node.getKubeResource().getSpec().getSelector().getMatchLabels(), devSpace);
} catch (IOException | InterruptedException | NocalhostExecuteCmdException e) {
LOG.error("error occurred while getting workload pods", e);
NocalhostNotifier.getInstance(project).notifyError("Nocalhost log error", String.format("error occurred while getting workload pods workloadName:[%s] devSpace:[%s]", workloadName, devSpace), e.getMessage());
NocalhostNotifier.getInstance(project).notifyError("Nocalhost log error", String.format("error occurred while getting workload pods containerName:[%s] devSpace:[%s]", containerName, devSpace), e.getMessage());
return;
}
if (pods != null && CollectionUtils.isNotEmpty(pods.getItems())) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.wm.ToolWindow;
import com.jediterm.pty.PtyProcessTtyConnector;
import com.jediterm.terminal.TtyConnector;
import com.pty4j.PtyProcess;
Expand All @@ -31,7 +30,6 @@
import dev.nocalhost.plugin.intellij.commands.NhctlCommand;
import dev.nocalhost.plugin.intellij.commands.data.KubeResource;
import dev.nocalhost.plugin.intellij.commands.data.KubeResourceList;
import dev.nocalhost.plugin.intellij.commands.data.KubeResourceType;
import dev.nocalhost.plugin.intellij.commands.data.NhctlDescribeOptions;
import dev.nocalhost.plugin.intellij.commands.data.NhctlTerminalOptions;
import dev.nocalhost.plugin.intellij.exception.NocalhostExecuteCmdException;
Expand All @@ -45,19 +43,15 @@ public class NocalhostTerminalWindow extends NocalhostConsoleWindow {
private static final Logger LOG = Logger.getInstance(NocalhostTerminalWindow.class);

private final Project project;
private final ToolWindow toolWindow;
private final ResourceNode node;
private final DevSpace devSpace;

private JComponent panel;

private String title;

public NocalhostTerminalWindow(Project project, ToolWindow toolWindow, DevSpace devSpace, Application application, String deploymentName) {
public NocalhostTerminalWindow(Project project, DevSpace devSpace, Application application, String deploymentName) {
this.project = project;
this.toolWindow = toolWindow;
this.devSpace = devSpace;
this.node = null;

final String kubeconfigPath = KubeConfigUtil.kubeConfigPath(devSpace).toString();

Expand All @@ -74,10 +68,8 @@ public NocalhostTerminalWindow(Project project, ToolWindow toolWindow, DevSpace
toTerminal(cmd);
}

public NocalhostTerminalWindow(Project project, ToolWindow toolWindow, KubeResourceType type, ResourceNode node) {
public NocalhostTerminalWindow(Project project, ResourceNode node) {
this.project = project;
this.toolWindow = toolWindow;
this.node = node;
this.devSpace = node.devSpace();

final String kubeconfigPath = KubeConfigUtil.kubeConfigPath(node.devSpace()).toString();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,25 +195,22 @@ private void renderWorkloadAction(MouseEvent event, ResourceNode resourceNode) {
actionGroup.add(new Separator());
actionGroup.add(new ClearPersistentDataAction(project, resourceNode));
actionGroup.add(new Separator());
actionGroup.add(new LogsAction(project, resourceNode, Deployment));
actionGroup.add(new LogsAction(project, resourceNode));
actionGroup.add(new PortForwardAction(project, resourceNode));
actionGroup.add(new ResetAction(project, resourceNode));
actionGroup.add(new TerminalAction(project, resourceNode, Deployment));
actionGroup.add(new TerminalAction(project, resourceNode));
break;
case Daemonset:
case Job:
case CronJobs:
break;
case Statefulset:
actionGroup.add(new PortForwardAction(project, resourceNode));
break;
case Job:
actionGroup.add(new PortForwardAction(project, resourceNode));
break;
case CronJobs:
break;
case Pod:
actionGroup.add(new LogsAction(project, resourceNode, Pod));
actionGroup.add(new LogsAction(project, resourceNode));
actionGroup.add(new PortForwardAction(project, resourceNode));
actionGroup.add(new TerminalAction(project, resourceNode, Pod));
actionGroup.add(new TerminalAction(project, resourceNode));
break;
default:
return;
Expand Down

0 comments on commit a23ce7e

Please sign in to comment.