Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
K
koko
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ops
koko
Commits
a83ebf49
Commit
a83ebf49
authored
Apr 30, 2019
by
Eric
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] add terminal service
parent
7dde3450
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
63 additions
and
5 deletions
+63
-5
terminal.go
pkg/model/terminal.go
+13
-0
terminal.go
pkg/service/terminal.go
+48
-5
urls.go
pkg/service/urls.go
+2
-0
No files found.
pkg/model/terminal.go
View file @
a83ebf49
...
@@ -13,6 +13,19 @@ type Terminal struct {
...
@@ -13,6 +13,19 @@ type Terminal struct {
}
`json:"service_account"`
}
`json:"service_account"`
}
}
type
TerminalConf
struct
{
AssetListPageSize
string
`json:"TERMINAL_ASSET_LIST_PAGE_SIZE"`
AssetListSortBy
string
`json:"TERMINAL_ASSET_LIST_SORT_BY"`
HeaderTitle
string
`json:"TERMINAL_HEADER_TITLE"`
HostKey
string
`json:"TERMINAL_HOST_KEY" yaml:"HOST_KEY"`
PasswordAuth
bool
`json:"TERMINAL_PASSWORD_AUTH" yaml:"PASSWORD_AUTH"`
PublicKeyAuth
bool
`json:"TERMINAL_PUBLIC_KEY_AUTH" yaml:"PUBLIC_KEY_AUTH"`
CommandStorage
map
[
string
]
string
`json:"TERMINAL_COMMAND_STORAGE"`
ReplayStorage
map
[
string
]
string
`json:"TERMINAL_REPLAY_STORAGE" yaml:"REPLAY_STORAGE"`
SessionKeepDuration
int
`json:"TERMINAL_SESSION_KEEP_DURATION"`
TelnetRegex
string
`json:"TERMINAL_TELNET_REGEX"`
}
type
TerminalTask
struct
{
type
TerminalTask
struct
{
Id
string
`json:"id"`
Id
string
`json:"id"`
Name
string
`json:"name"`
Name
string
`json:"name"`
...
...
pkg/service/terminal.go
View file @
a83ebf49
...
@@ -33,18 +33,61 @@ func TerminalHeartBeat(sIds []string) (res []model.TerminalTask) {
...
@@ -33,18 +33,61 @@ func TerminalHeartBeat(sIds []string) (res []model.TerminalTask) {
return
return
}
}
func
CreateSession
()
{
func
CreateSession
(
data
map
[
string
]
interface
{})
bool
{
var
res
map
[
string
]
interface
{}
err
:=
authClient
.
Post
(
baseHost
+
SessionListURL
,
data
,
&
res
)
if
err
==
nil
{
return
true
}
logger
.
Error
(
err
)
return
false
}
}
func
FinishSession
()
{
func
FinishSession
(
sid
,
dataEnd
string
)
{
var
res
map
[
string
]
interface
{}
data
:=
map
[
string
]
interface
{}{
"is_finished"
:
true
,
"date_end"
:
dataEnd
,
}
Url
:=
fmt
.
Sprintf
(
baseHost
+
SessionDetailURL
,
sid
)
err
:=
authClient
.
Patch
(
Url
,
data
,
&
res
)
if
err
!=
nil
{
logger
.
Error
(
err
)
}
}
func
FinishReply
(
sid
string
)
bool
{
var
res
map
[
string
]
interface
{}
data
:=
map
[
string
]
bool
{
"has_replay"
:
true
}
Url
:=
fmt
.
Sprintf
(
baseHost
+
SessionDetailURL
,
sid
)
err
:=
authClient
.
Patch
(
Url
,
data
,
&
res
)
if
err
!=
nil
{
logger
.
Error
(
err
)
return
false
}
return
true
}
}
func
PushSessionReplay
(
sessionID
,
gZipFile
string
)
{
func
FinishTask
(
tid
string
)
bool
{
var
res
map
[
string
]
interface
{}
data
:=
map
[
string
]
bool
{
"is_finished"
:
true
}
Url
:=
fmt
.
Sprintf
(
baseHost
+
FinishTaskURL
,
tid
)
err
:=
authClient
.
Patch
(
Url
,
data
,
res
)
if
err
!=
nil
{
logger
.
Error
(
err
)
return
false
}
return
true
}
func
LoadConfigFromServer
()
(
res
model
.
TerminalConf
)
{
err
:=
authClient
.
Get
(
baseHost
+
TerminalConfigURL
,
&
res
)
if
err
!=
nil
{
logger
.
Error
(
err
)
}
return
}
}
func
FinishReply
(
)
{
func
PushSessionReplay
(
sessionID
,
gZipFile
string
)
{
}
}
pkg/service/urls.go
View file @
a83ebf49
...
@@ -16,6 +16,8 @@ const (
...
@@ -16,6 +16,8 @@ const (
SessionDetailURL
=
"/api/terminal/v1/sessions/%s/"
// finish session的时候发送
SessionDetailURL
=
"/api/terminal/v1/sessions/%s/"
// finish session的时候发送
SessionReplayURL
=
"/api/terminal/v1/sessions/%s/replay/"
//上传录像
SessionReplayURL
=
"/api/terminal/v1/sessions/%s/replay/"
//上传录像
FinishTaskURL
=
"/api/terminal/v1/tasks/%s/"
UserAssetsURL
=
"/api/perms/v1/user/%s/assets/"
//获取用户授权的所有资产
UserAssetsURL
=
"/api/perms/v1/user/%s/assets/"
//获取用户授权的所有资产
UserNodesAssetsURL
=
"/api/perms/v1/user/%s/nodes-assets/"
// 获取用户授权的所有节点信息 节点分组
UserNodesAssetsURL
=
"/api/perms/v1/user/%s/nodes-assets/"
// 获取用户授权的所有节点信息 节点分组
ValidateUserAssetPermissionURL
=
"/api/perms/v1/asset-permission/user/validate/"
//0不使用缓存 1 使用缓存 2 刷新缓存
ValidateUserAssetPermissionURL
=
"/api/perms/v1/asset-permission/user/validate/"
//0不使用缓存 1 使用缓存 2 刷新缓存
...
...
Write
Preview
Markdown
is supported
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