refactored
This commit is contained in:
@@ -1,16 +1,13 @@
|
||||
package servers
|
||||
|
||||
import (
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/auth"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/db_handler/mongo"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/dbhandler"
|
||||
instancemanager "git.acooldomain.co/server-manager/backend-kubernetes-go/instance_manager"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/instance_manager/docker"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/models"
|
||||
"git.acooldomain.co/server-manager/backend/auth"
|
||||
"git.acooldomain.co/server-manager/backend/factories"
|
||||
"git.acooldomain.co/server-manager/backend/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func (con Connection) GetBrowsers(ctx *gin.Context) {
|
||||
func (con ServersApi) GetBrowsers(ctx *gin.Context) {
|
||||
fileBrowsers, err := con.InstanceManager.ListFileBrowsers(ctx)
|
||||
|
||||
if err != nil {
|
||||
@@ -20,7 +17,7 @@ func (con Connection) GetBrowsers(ctx *gin.Context) {
|
||||
ctx.JSON(200, fileBrowsers)
|
||||
}
|
||||
|
||||
func (con Connection) StopBrowser(ctx *gin.Context) {
|
||||
func (con ServersApi) StopBrowser(ctx *gin.Context) {
|
||||
serverId := ctx.Param("server_id")
|
||||
err := con.InstanceManager.StopFileBrowser(ctx, serverId)
|
||||
if err != nil {
|
||||
@@ -32,35 +29,22 @@ func (con Connection) StopBrowser(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
func LoadBrowsersGroup(group *gin.RouterGroup, config models.GlobalConfig) {
|
||||
var instanceManager instancemanager.InstanceManager
|
||||
var serversDbHandler dbhandler.ServersDbHandler
|
||||
var serversAuthorizationHandler dbhandler.ServersAuthorizationDbHandler
|
||||
|
||||
var err error
|
||||
|
||||
if config.InstanceManager.Type == models.DOCKER {
|
||||
instanceManager, err = docker.NewInstanceManager(config.InstanceManager.Docker)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
serversDbHandler, err := factories.GetServersDbHandler(config.ServersDatabase)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if config.ServersDatabase.Type == models.MONGO {
|
||||
serversDbHandler, err = mongo.NewServersDbHandler(*config.ServersDatabase.Mongo)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
serversAuthorizationHandler, err := factories.GetServersAuthorizationDbHandler(config.ServersAuthorizationDatabase)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if config.ServersAuthorizationDatabase.Type == models.MONGO {
|
||||
serversAuthorizationHandler, err = mongo.NewAuthorizationHandler(*config.ServersAuthorizationDatabase.Mongo)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
instanceManager, err := factories.GetInstanceManager(config.InstanceManager)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
connection := Connection{
|
||||
connection := ServersApi{
|
||||
ServersDbHandler: serversDbHandler,
|
||||
ServerAuthorization: serversAuthorizationHandler,
|
||||
InstanceManager: instanceManager,
|
||||
|
@@ -1,4 +1,4 @@
|
||||
module git.acooldomain.co/server-manager/backend-kubernetes-go/servers
|
||||
module git.acooldomain.co/server-manager/backend/servers
|
||||
|
||||
go 1.22.0
|
||||
|
||||
|
@@ -3,12 +3,10 @@ package servers
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/auth"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/db_handler/mongo"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/dbhandler"
|
||||
instancemanager "git.acooldomain.co/server-manager/backend-kubernetes-go/instance_manager"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/instance_manager/docker"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/models"
|
||||
"git.acooldomain.co/server-manager/backend/auth"
|
||||
"git.acooldomain.co/server-manager/backend/factories"
|
||||
instancemanager "git.acooldomain.co/server-manager/backend/instancemanager"
|
||||
"git.acooldomain.co/server-manager/backend/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
@@ -29,7 +27,7 @@ func convertImageToImageData(instanceImage instancemanager.Image) *ImageData {
|
||||
DisplayName: fmt.Sprintf("%s %s", instanceImage.Registry, instanceImage.Tag),
|
||||
}
|
||||
}
|
||||
func (con Connection) GetImages(ctx *gin.Context) {
|
||||
func (con ServersApi) GetImages(ctx *gin.Context) {
|
||||
images, err := con.InstanceManager.ListImages(ctx)
|
||||
if err != nil {
|
||||
ctx.AbortWithError(500, err)
|
||||
@@ -51,35 +49,22 @@ func (con Connection) GetImages(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
func LoadeImagesGroup(group *gin.RouterGroup, config models.GlobalConfig) {
|
||||
var instanceManager instancemanager.InstanceManager
|
||||
var serversDbHandler dbhandler.ServersDbHandler
|
||||
var serversAuthorizationHandler dbhandler.ServersAuthorizationDbHandler
|
||||
|
||||
var err error
|
||||
|
||||
if config.InstanceManager.Type == models.DOCKER {
|
||||
instanceManager, err = docker.NewInstanceManager(config.InstanceManager.Docker)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
instanceManager, err := factories.GetInstanceManager(config.InstanceManager)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if config.ServersDatabase.Type == models.MONGO {
|
||||
serversDbHandler, err = mongo.NewServersDbHandler(*config.ServersDatabase.Mongo)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
serversDbHandler, err := factories.GetServersDbHandler(config.ServersDatabase)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if config.ServersAuthorizationDatabase.Type == models.MONGO {
|
||||
serversAuthorizationHandler, err = mongo.NewAuthorizationHandler(*config.ServersAuthorizationDatabase.Mongo)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
serversAuthorizationHandler, err := factories.GetServersAuthorizationDbHandler(config.ServersAuthorizationDatabase)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
connection := Connection{
|
||||
connection := ServersApi{
|
||||
ServersDbHandler: serversDbHandler,
|
||||
ServerAuthorization: serversAuthorizationHandler,
|
||||
InstanceManager: instanceManager,
|
||||
|
@@ -10,12 +10,11 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/auth"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/db_handler/mongo"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/dbhandler"
|
||||
instancemanager "git.acooldomain.co/server-manager/backend-kubernetes-go/instance_manager"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/instance_manager/docker"
|
||||
"git.acooldomain.co/server-manager/backend-kubernetes-go/models"
|
||||
"git.acooldomain.co/server-manager/backend/auth"
|
||||
"git.acooldomain.co/server-manager/backend/dbhandler"
|
||||
"git.acooldomain.co/server-manager/backend/factories"
|
||||
instancemanager "git.acooldomain.co/server-manager/backend/instancemanager"
|
||||
"git.acooldomain.co/server-manager/backend/models"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
@@ -28,7 +27,7 @@ var upgrader = websocket.Upgrader{
|
||||
},
|
||||
}
|
||||
|
||||
type Connection struct {
|
||||
type ServersApi struct {
|
||||
ServersDbHandler dbhandler.ServersDbHandler
|
||||
InstanceManager instancemanager.InstanceManager
|
||||
ServerAuthorization dbhandler.ServersAuthorizationDbHandler
|
||||
@@ -65,7 +64,7 @@ type CreateServerRequest struct {
|
||||
Nickname string `json:"Nickname"`
|
||||
}
|
||||
|
||||
func (con Connection) ServerAuthorized(permissions models.Permission) func(*gin.Context) {
|
||||
func (con ServersApi) ServerAuthorized(permissions models.Permission) func(*gin.Context) {
|
||||
return func(ctx *gin.Context) {
|
||||
claimsPointer, exists := ctx.Get("claims")
|
||||
if !exists {
|
||||
@@ -96,7 +95,7 @@ func (con Connection) ServerAuthorized(permissions models.Permission) func(*gin.
|
||||
}
|
||||
}
|
||||
|
||||
func (con Connection) CreateServer(ctx *gin.Context) {
|
||||
func (con ServersApi) CreateServer(ctx *gin.Context) {
|
||||
claims, exists := ctx.Get("claims")
|
||||
if !exists {
|
||||
ctx.AbortWithStatus(500)
|
||||
@@ -157,7 +156,7 @@ type StartServerRequest struct {
|
||||
Ports []PortMappingRequest `json:"Ports"`
|
||||
}
|
||||
|
||||
func (con Connection) StartServer(ctx *gin.Context) {
|
||||
func (con ServersApi) StartServer(ctx *gin.Context) {
|
||||
serverId := ctx.Param("server_id")
|
||||
|
||||
var request StartServerRequest
|
||||
@@ -194,7 +193,7 @@ func (con Connection) StartServer(ctx *gin.Context) {
|
||||
ctx.JSON(200, instanceServer.Id)
|
||||
}
|
||||
|
||||
func (con Connection) GetServers(ctx *gin.Context) {
|
||||
func (con ServersApi) GetServers(ctx *gin.Context) {
|
||||
instanceServers, err := con.InstanceManager.ListServers(ctx)
|
||||
if err != nil {
|
||||
ctx.AbortWithError(500, err)
|
||||
@@ -246,7 +245,7 @@ func (con Connection) GetServers(ctx *gin.Context) {
|
||||
ctx.JSON(200, servers)
|
||||
}
|
||||
|
||||
func (con Connection) StopServer(ctx *gin.Context) {
|
||||
func (con ServersApi) StopServer(ctx *gin.Context) {
|
||||
serverId := ctx.Param("server_id")
|
||||
err := con.InstanceManager.StopServer(ctx, serverId)
|
||||
if err != nil {
|
||||
@@ -257,7 +256,7 @@ func (con Connection) StopServer(ctx *gin.Context) {
|
||||
ctx.Status(200)
|
||||
}
|
||||
|
||||
func (con Connection) DeleteServer(ctx *gin.Context) {
|
||||
func (con ServersApi) DeleteServer(ctx *gin.Context) {
|
||||
serverId := ctx.Param("server_id")
|
||||
|
||||
err := con.InstanceManager.DeleteServer(ctx, serverId)
|
||||
@@ -279,7 +278,7 @@ type RunCommandRequest struct {
|
||||
Command string `json:"Command"`
|
||||
}
|
||||
|
||||
func (con Connection) RunCommand(ctx *gin.Context) {
|
||||
func (con ServersApi) RunCommand(ctx *gin.Context) {
|
||||
var request RunCommandRequest
|
||||
err := json.NewDecoder(ctx.Request.Body).Decode(&request)
|
||||
if err != nil {
|
||||
@@ -312,7 +311,7 @@ type Commands struct {
|
||||
Arguments string `json:"Arguments"`
|
||||
}
|
||||
|
||||
func (con Connection) AttachServer(ctx *gin.Context) {
|
||||
func (con ServersApi) AttachServer(ctx *gin.Context) {
|
||||
serverId := ctx.Param("server_id")
|
||||
stop := false
|
||||
var err error
|
||||
@@ -355,13 +354,10 @@ func (con Connection) AttachServer(ctx *gin.Context) {
|
||||
hijackedPointer, err := con.InstanceManager.InteractiveTerminal(ctx, serverId)
|
||||
if err != nil {
|
||||
ctx.AbortWithError(500, err)
|
||||
stop = true
|
||||
return
|
||||
}
|
||||
hijacked = *hijackedPointer
|
||||
if err != nil {
|
||||
stop = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if count > 0 {
|
||||
containerRead <- string(data[:count])
|
||||
@@ -444,7 +440,7 @@ type UpdateServerRequest struct {
|
||||
UserPermissions map[string]models.Permission `json:"UserPermissions"`
|
||||
}
|
||||
|
||||
func (con Connection) UpdateServer(ctx *gin.Context) {
|
||||
func (con ServersApi) UpdateServer(ctx *gin.Context) {
|
||||
serverId := ctx.Param("server_id")
|
||||
var request UpdateServerRequest
|
||||
err := json.NewDecoder(ctx.Request.Body).Decode(&request)
|
||||
@@ -478,7 +474,7 @@ func (con Connection) UpdateServer(ctx *gin.Context) {
|
||||
|
||||
}
|
||||
|
||||
func (con Connection) BrowseServer(ctx *gin.Context) {
|
||||
func (con ServersApi) BrowseServer(ctx *gin.Context) {
|
||||
serverId := ctx.Param("server_id")
|
||||
browserInfo, err := con.InstanceManager.StartFileBrowser(ctx, serverId)
|
||||
|
||||
@@ -489,7 +485,7 @@ func (con Connection) BrowseServer(ctx *gin.Context) {
|
||||
ctx.JSON(200, browserInfo.Url)
|
||||
}
|
||||
|
||||
func (con Connection) GetServerUserPermissions(ctx *gin.Context) {
|
||||
func (con ServersApi) GetServerUserPermissions(ctx *gin.Context) {
|
||||
claims, exists := ctx.Get("claims")
|
||||
if !exists {
|
||||
ctx.AbortWithStatus(500)
|
||||
@@ -516,7 +512,7 @@ type SetServerUserPermissionsRequest struct {
|
||||
Permissions models.Permission
|
||||
}
|
||||
|
||||
func (con Connection) SetServerUserPermissions(ctx *gin.Context) {
|
||||
func (con ServersApi) SetServerUserPermissions(ctx *gin.Context) {
|
||||
serverId := ctx.Param("server_id")
|
||||
if serverId == "" {
|
||||
ctx.AbortWithStatus(500)
|
||||
@@ -541,36 +537,22 @@ func (con Connection) SetServerUserPermissions(ctx *gin.Context) {
|
||||
}
|
||||
|
||||
func LoadGroup(group *gin.RouterGroup, config models.GlobalConfig) {
|
||||
|
||||
var instanceManager instancemanager.InstanceManager
|
||||
var serversDbHandler dbhandler.ServersDbHandler
|
||||
var serversAuthorizationHandler dbhandler.ServersAuthorizationDbHandler
|
||||
|
||||
var err error
|
||||
|
||||
if config.InstanceManager.Type == models.DOCKER {
|
||||
instanceManager, err = docker.NewInstanceManager(config.InstanceManager.Docker)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
instanceManager, err := factories.GetInstanceManager(config.InstanceManager)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if config.ServersDatabase.Type == models.MONGO {
|
||||
serversDbHandler, err = mongo.NewServersDbHandler(*config.ServersDatabase.Mongo)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
serversDbHandler, err := factories.GetServersDbHandler(config.ServersDatabase)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if config.ServersAuthorizationDatabase.Type == models.MONGO {
|
||||
serversAuthorizationHandler, err = mongo.NewAuthorizationHandler(*config.ServersAuthorizationDatabase.Mongo)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
serversAuthorizationHandler, err := factories.GetServersAuthorizationDbHandler(config.ServersAuthorizationDatabase)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
connection := Connection{
|
||||
connection := ServersApi{
|
||||
ServersDbHandler: serversDbHandler,
|
||||
ServerAuthorization: serversAuthorizationHandler,
|
||||
InstanceManager: instanceManager,
|
||||
|
Reference in New Issue
Block a user