Commit a83ebf49 authored by Eric's avatar Eric

[update] add terminal service

parent 7dde3450
...@@ -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"`
......
...@@ -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) {
} }
...@@ -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 刷新缓存
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment