Skip to content

Commit

Permalink
Merge pull request #9 from TNK-Studio/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
elfgzp committed Nov 16, 2020
2 parents de8ab07 + ec1ba69 commit eb16763
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 18 deletions.
6 changes: 3 additions & 3 deletions pkg/app/action.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ var (

func switchNamespace(gui *guilib.Gui, selectedNamespaceLine string) {
kubecli.Cli.SetNamespace(selectedNamespaceLine)
for _, viewName := range functionViews {
for _, viewName := range []string{serviceViewName, deploymentViewName, podViewName} {
view, err := gui.GetView(viewName)
if err != nil {
return
Expand Down Expand Up @@ -337,10 +337,10 @@ func viewLineClickHandler(gui *guilib.Gui, view *guilib.View, cy int, lineString

if cy == 0 {
selected := formatSelectedName(lineString, 0)
if selected == "NAME" || selected == "NAMESPACE" {
if notResourceSelected(selected) {
log.Logger.Debugf("viewLineClickHandler - view: '%s' cy == 0, view.State.Set(selectedViewLine, nil)", view.Name)
if view.Name == namespaceViewName {
kubecli.Cli.SetNamespace("")
switchNamespace(gui, "")
}
return view.State.Set(selectedViewLine, nil)
}
Expand Down
44 changes: 29 additions & 15 deletions pkg/app/render.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,27 @@ var (
navigationPath(namespaceViewName, "Config"): renderAfterClear(configRender),
navigationPath(serviceViewName, "Config"): renderAfterClear(configRender),
navigationPath(serviceViewName, "Pods"): renderAfterClear(labelsPodsRender),
navigationPath(serviceViewName, "Pods Log"): renderAfterClear(podsLogsRender),
navigationPath(serviceViewName, "Pods Log"): podsLogsRender,
navigationPath(serviceViewName, "Top Pods"): renderAfterClear(topPodsRender),
navigationPath(deploymentViewName, "Config"): renderAfterClear(configRender),
navigationPath(deploymentViewName, "Pods"): renderAfterClear(labelsPodsRender),
navigationPath(deploymentViewName, "Describe"): renderAfterClear(describeRender),
navigationPath(deploymentViewName, "Pods Log"): renderAfterClear(podsLogsRender),
navigationPath(deploymentViewName, "Pods Log"): podsLogsRender,
navigationPath(deploymentViewName, "Top Pods"): renderAfterClear(topPodsRender),
navigationPath(podViewName, "Config"): renderAfterClear(configRender),
navigationPath(podViewName, "Log"): renderAfterClear(podLogsRender),
navigationPath(podViewName, "Log"): podLogsRender,
navigationPath(podViewName, "Describe"): renderAfterClear(describeRender),
navigationPath(podViewName, "Top"): podMetricsPlotRender,
}
)

func notResourceSelected(selectedName string) bool {
if selectedName == "" || selectedName == "NAME" || selectedName == "NAMESPACE" {
return true
}
return false
}

func renderAfterClear(render func(gui *guilib.Gui, view *guilib.View) error) func(gui *guilib.Gui, view *guilib.View) error {
return func(gui *guilib.Gui, view *guilib.View) error {
view.Clear()
Expand Down Expand Up @@ -364,7 +371,7 @@ func configRender(gui *guilib.Gui, view *guilib.View) error {

if selectedNamespace != nil {
selectedName := formatSelectedName(selected.(string), 0)
if selectedName == "" {
if notResourceSelected(selectedName) {
showPleaseSelected(view, resource)
return nil
}
Expand All @@ -374,7 +381,7 @@ func configRender(gui *guilib.Gui, view *guilib.View) error {

namespace := formatSelectedName(selected.(string), 0)
selectedName := formatSelectedName(selected.(string), 1)
if selectedName == "" {
if notResourceSelected(selectedName) {
showPleaseSelected(view, resource)
return nil
}
Expand Down Expand Up @@ -419,7 +426,7 @@ func describeRender(gui *guilib.Gui, view *guilib.View) error {

if selectedNamespace != nil {
selectedName := formatSelectedName(selected.(string), 0)
if selectedName == "" {
if notResourceSelected(selectedName) {
showPleaseSelected(view, resource)
return nil
}
Expand All @@ -429,7 +436,7 @@ func describeRender(gui *guilib.Gui, view *guilib.View) error {

namespace := formatSelectedName(selected.(string), 0)
selectedName := formatSelectedName(selected.(string), 1)
if selectedName == "" {
if notResourceSelected(selectedName) {
showPleaseSelected(view, resource)
return nil
}
Expand Down Expand Up @@ -465,33 +472,40 @@ func podLogsRender(gui *guilib.Gui, view *guilib.View) error {

if selectedNamespace != nil {
selectedName := formatSelectedName(selected.(string), 0)
if selectedName == "" {
if notResourceSelected(selectedName) {
showPleaseSelected(view, resource)
return nil
}
kubecli.Cli.Logs(viewStreams(view), selectedName).SetFlag("all-containers", "true").SetFlag("tail", logsTail).SetFlag("prefix", "true").Run()
streams := newStream()
kubecli.Cli.Logs(streams, selectedName).SetFlag("all-containers", "true").SetFlag("tail", logsTail).SetFlag("prefix", "true").Run()
view.Clear()
streamCopyTo(streams, view)
view.ReRender()
return nil
}

namespace := formatSelectedName(selected.(string), 0)
selectedName := formatSelectedName(selected.(string), 1)
if selectedName == "" {
if notResourceSelected(selectedName) {
showPleaseSelected(view, resource)
return nil
}

kubecli.Cli.WithNamespace(namespace).Logs(viewStreams(view), selectedName).SetFlag("all-containers", "true").SetFlag("tail", logsTail).SetFlag("prefix", "true").Run()
streams := newStream()
kubecli.Cli.WithNamespace(namespace).Logs(streams, selectedName).SetFlag("all-containers", "true").SetFlag("tail", logsTail).SetFlag("prefix", "true").Run()
streamCopyTo(streams, view)
view.ReRender()
return nil
}

func podsLogsRender(gui *guilib.Gui, view *guilib.View) error {
view.Clear()
if err := podsSelectorRenderHelper(func(namespace string, labelsArr []string) error {
cmd := kubecli.Cli.WithNamespace(namespace).Logs(viewStreams(view))
streams := newStream()
cmd := kubecli.Cli.WithNamespace(namespace).Logs(streams)
cmd.SetFlag("selector", strings.Join(labelsArr, ","))
cmd.SetFlag("all-containers", "true").SetFlag("tail", logsTail).SetFlag("prefix", "true").Run()
view.Clear()
streamCopyTo(streams, view)
view.ReRender()
return nil
})(gui, view); err != nil {
Expand Down Expand Up @@ -570,15 +584,15 @@ func podsSelectorRenderHelper(cmdFunc func(namespace string, labelsArr []string)
var namespace string
if selectedNamespace != nil {
selectedName := formatSelectedName(selected.(string), 0)
if selectedName == "" {
if notResourceSelected(selectedName) {
showPleaseSelected(view, resource)
return nil
}
kubecli.Cli.Get(output, resource, selectedName).SetFlag("output", jsonPath).Run()
} else {
namespace = formatSelectedName(selected.(string), 0)
selectedName := formatSelectedName(selected.(string), 1)
if selectedName == "" {
if notResourceSelected(selectedName) {
showPleaseSelected(view, resource)
return nil
}
Expand Down

0 comments on commit eb16763

Please sign in to comment.