added kubernetes - NOT TESTED

This commit is contained in:
2025-04-06 23:52:48 +03:00
parent 658789cccb
commit caff230188
8 changed files with 209 additions and 31 deletions

View File

@@ -269,9 +269,9 @@ func (con ServersApi) RunCommand(ctx *gin.Context) {
}
console := *consolePointer
defer console.Close()
defer console.Conn.Close()
_, err = console.Write([]byte(request.Command + "\n"))
_, err = console.Conn.Write([]byte(request.Command + "\n"))
if err != nil {
ctx.AbortWithError(500, err)
return
@@ -289,6 +289,7 @@ func (con ServersApi) AttachServer(ctx *gin.Context) {
serverId := ctx.Param("server_id")
stop := false
var err error
var hijackedPointer *instancemanager.TerminalConnection
websocketRead := make(chan Commands)
containerRead := make(chan string)
@@ -301,13 +302,13 @@ func (con ServersApi) AttachServer(ctx *gin.Context) {
close(containerRead)
}()
hijackedPointer, err := con.InstanceManager.InteractiveTerminal(ctx, serverId)
hijackedPointer, err = con.InstanceManager.InteractiveTerminal(ctx, serverId)
if err != nil {
ctx.AbortWithError(500, err)
return
}
hijacked := *hijackedPointer
defer hijacked.Close()
defer hijacked.Conn.Close()
ws, err := upgrader.Upgrade(ctx.Writer, ctx.Request, nil)
if err != nil {
@@ -322,10 +323,10 @@ func (con ServersApi) AttachServer(ctx *gin.Context) {
if stop {
break
}
count, err := hijacked.Read(data)
count, err := hijacked.Conn.Read(data)
if err != nil {
time.Sleep(500)
hijackedPointer, err := con.InstanceManager.InteractiveTerminal(ctx, serverId)
hijackedPointer, err = con.InstanceManager.InteractiveTerminal(ctx, serverId)
if err != nil {
ctx.AbortWithError(500, err)
stop = true
@@ -367,7 +368,7 @@ func (con ServersApi) AttachServer(ctx *gin.Context) {
case Command := <-websocketRead:
switch Command.CommandType {
case "insert":
_, err = hijacked.Write([]byte(Command.Arguments))
_, err = hijacked.Conn.Write([]byte(Command.Arguments))
if err != nil {
log.Printf("Write to docker failed %s", errors.Unwrap(err))
@@ -392,7 +393,7 @@ func (con ServersApi) AttachServer(ctx *gin.Context) {
}
height := uint(i_height)
err2 = con.InstanceManager.ResizeTerminal(ctx, serverId, width, height)
err2 = hijacked.ResizerFunc(width, height)
if err2 != nil {
log.Printf("Failed to resize container to %dx%d: %s", width, height, err)
}