Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
小 白蛋
Lazykube
Commits
1fea1367
Unverified
Commit
1fea1367
authored
4 years ago
by
Elf
Committed by
GitHub
4 years ago
Browse files
Options
Download
Email Patches
Plain Diff
feat: add tail logs (#57)
parent
0b4048c4
main
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.0
No related merge requests found
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
pkg/app/action.go
+36
-0
pkg/app/action.go
pkg/app/handler.go
+20
-0
pkg/app/handler.go
pkg/app/keymap.go
+4
-0
pkg/app/keymap.go
pkg/app/panel.go
+13
-0
pkg/app/panel.go
pkg/app/render.go
+13
-0
pkg/app/render.go
pkg/app/statekey.go
+1
-0
pkg/app/statekey.go
with
87 additions
and
0 deletions
+87
-0
pkg/app/action.go
+
36
-
0
View file @
1fea1367
...
...
@@ -169,6 +169,20 @@ var (
Mod
:
gocui
.
ModNone
,
}
tailLogsAction
=
&
guilib
.
Action
{
Keys
:
keyMap
[
tailLogsActionName
],
Name
:
tailLogsActionName
,
Handler
:
tailLogsHandler
,
Mod
:
gocui
.
ModNone
,
}
scrollLogsAction
=
&
guilib
.
Action
{
Keys
:
keyMap
[
scrollLogsActionName
],
Name
:
scrollLogsActionName
,
Handler
:
scrollLogsHandler
,
Mod
:
gocui
.
ModNone
,
}
runPodAction
=
&
guilib
.
Action
{
Keys
:
keyMap
[
runPodActionName
],
Name
:
runPodActionName
,
...
...
@@ -255,6 +269,28 @@ var (
},
Action
:
*
changePodLogsContainerAction
,
},
&
moreAction
{
NeedSelectResource
:
false
,
ShowAction
:
func
(
gui
*
guilib
.
Gui
,
view
*
guilib
.
View
)
bool
{
resourceName
:=
resourceViewName
(
getViewResourceName
(
activeView
.
Name
))
if
resourceName
==
""
{
return
false
}
return
resourceLogAble
(
resourceName
)
},
Action
:
*
tailLogsAction
,
},
&
moreAction
{
NeedSelectResource
:
false
,
ShowAction
:
func
(
gui
*
guilib
.
Gui
,
view
*
guilib
.
View
)
bool
{
resourceName
:=
resourceViewName
(
getViewResourceName
(
activeView
.
Name
))
if
resourceName
==
""
{
return
false
}
return
resourceLogAble
(
resourceName
)
},
Action
:
*
scrollLogsAction
,
},
&
moreAction
{
NeedSelectResource
:
false
,
ShowAction
:
func
(
gui
*
guilib
.
Gui
,
view
*
guilib
.
View
)
bool
{
...
...
This diff is collapsed.
Click to expand it.
pkg/app/handler.go
+
20
-
0
View file @
1fea1367
...
...
@@ -517,6 +517,26 @@ func changePodLogsContainerHandler(gui *guilib.Gui, view *guilib.View) error {
return
nil
}
func
tailLogsHandler
(
gui
*
guilib
.
Gui
,
view
*
guilib
.
View
)
error
{
if
err
:=
view
.
SetState
(
ScrollingLogsStateKey
,
false
,
false
);
err
!=
nil
{
return
err
}
if
err
:=
gui
.
FocusView
(
detailViewName
,
false
);
err
!=
nil
{
return
err
}
return
nil
}
func
scrollLogsHandler
(
gui
*
guilib
.
Gui
,
view
*
guilib
.
View
)
error
{
if
err
:=
view
.
SetState
(
ScrollingLogsStateKey
,
true
,
false
);
err
!=
nil
{
return
err
}
if
err
:=
gui
.
FocusView
(
detailViewName
,
false
);
err
!=
nil
{
return
err
}
return
nil
}
func
runPodHandler
(
gui
*
guilib
.
Gui
,
_
*
guilib
.
View
)
error
{
if
err
:=
showFilterDialog
(
gui
,
...
...
This diff is collapsed.
Click to expand it.
pkg/app/keymap.go
+
4
-
0
View file @
1fea1367
...
...
@@ -47,6 +47,8 @@ const (
deleteCustomResourcePanelActionName
=
"Delete custom resource panel"
containerExecCommandActionName
=
"Execute the command"
changePodLogsContainerActionName
=
"Change pod logs container"
tailLogsActionName
=
"Tail logs"
scrollLogsActionName
=
"Scroll logs"
runPodActionName
=
"Run a pod with an image"
changeContextActionName
=
"Change context"
)
...
...
@@ -89,6 +91,8 @@ var (
optionsDialogEnter
:
{
gocui
.
KeyEnter
},
inputDialogEnter
:
{
gocui
.
KeyEnter
},
changePodLogsContainerActionName
:
{
'c'
},
tailLogsActionName
:
{
't'
},
scrollLogsActionName
:
{
's'
},
runPodActionName
:
{
'r'
},
changeContextActionName
:
{
'~'
},
}
...
...
This diff is collapsed.
Click to expand it.
pkg/app/panel.go
+
13
-
0
View file @
1fea1367
...
...
@@ -161,6 +161,8 @@ var (
Mod
:
gocui
.
ModNone
,
},
changePodLogsContainerAction
,
tailLogsAction
,
scrollLogsAction
,
newMoreActions
(
moreActionsMap
[
detailViewName
]),
}),
}
...
...
@@ -317,6 +319,8 @@ var (
}
restartableResource
=
[]
string
{
"deployments"
,
"statefulsets"
,
"daemonsets"
}
logAbleResource
=
[]
string
{
"deployment"
,
"statefulset"
,
"daemonset"
,
"service"
,
"pod"
}
)
func
getViewResourceName
(
viewName
string
)
string
{
...
...
@@ -517,3 +521,12 @@ func resourceRestartable(resource string) bool {
}
return
false
}
func
resourceLogAble
(
resource
string
)
bool
{
for
_
,
logAble
:=
range
logAbleResource
{
if
resource
==
logAble
{
return
true
}
}
return
false
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
pkg/app/render.go
+
13
-
0
View file @
1fea1367
...
...
@@ -435,6 +435,19 @@ func onFocusClearSelected(gui *guilib.Gui, view *guilib.View) error {
func
podLogsRender
(
gui
*
guilib
.
Gui
,
view
*
guilib
.
View
)
error
{
// Todo: Fix chinese character of logs.
scrollLogs
:=
true
if
val
,
_
:=
view
.
GetState
(
ScrollingLogsStateKey
);
val
!=
nil
{
var
ok
bool
scrollLogs
,
ok
=
val
.
(
bool
)
if
!
ok
{
scrollLogs
=
true
}
}
if
!
scrollLogs
{
return
nil
}
podView
,
err
:=
gui
.
GetView
(
podViewName
)
if
err
!=
nil
{
return
err
...
...
This diff is collapsed.
Click to expand it.
pkg/app/statekey.go
+
1
-
0
View file @
1fea1367
...
...
@@ -8,6 +8,7 @@ const (
filterInputValueStateKey
=
"filterInputValue"
// value type: string
confirmValueStateKey
=
"confirmValue"
// value type: string
logSinceTimeStateKey
=
"logSinceTime"
// value type: time.Time
ScrollingLogsStateKey
=
"scrollingLogs"
// value type: boolean
podContainersStateKey
=
"podContainers"
// value type: []string
logContainerStateKey
=
"logContainer"
// value type: string
)
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help