fixed bugs
This commit is contained in:
@@ -4,12 +4,12 @@ import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"maps"
|
||||
"net"
|
||||
|
||||
instancemanager "git.acooldomain.co/server-manager/backend/instancemanager"
|
||||
"git.acooldomain.co/server-manager/backend/models"
|
||||
"github.com/buildkite/shellwords"
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/api/types/image"
|
||||
"github.com/docker/docker/api/types/mount"
|
||||
@@ -22,11 +22,11 @@ import (
|
||||
|
||||
type InstanceManager struct {
|
||||
instancemanager.InstanceManager
|
||||
client client.Client
|
||||
client *client.Client
|
||||
config models.DockerInstanceManagerConfig
|
||||
}
|
||||
|
||||
func (self *InstanceManager) containerList(ctx context.Context, labels ContainerLabels, all bool) ([]types.Container, error) {
|
||||
func (self *InstanceManager) containerList(ctx context.Context, labels ContainerLabels, all bool) ([]container.Summary, error) {
|
||||
filters, err := convertLabelsToFilter(labels)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -61,12 +61,17 @@ func (self *InstanceManager) getVolume(ctx context.Context, serverId string) (*v
|
||||
// General
|
||||
// Read Only
|
||||
func (self *InstanceManager) GetImage(ctx context.Context, imageId string) (*instancemanager.Image, error) {
|
||||
imageInspect, _, err := self.client.ImageInspectWithRaw(ctx, imageId)
|
||||
imageInspect, err := self.client.ImageInspect(ctx, imageId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if imageInspect.Config.Labels["type"] != "game" {
|
||||
imageLabels, err := convertImageLabelsToStruct(imageInspect.Config.Labels)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if imageLabels.Type != Game {
|
||||
return nil, fmt.Errorf("Image not found")
|
||||
}
|
||||
|
||||
@@ -89,7 +94,7 @@ func (self *InstanceManager) ListImages(ctx context.Context) ([]instancemanager.
|
||||
images := make([]instancemanager.Image, len(rawImages))
|
||||
|
||||
for i, rawImage := range rawImages {
|
||||
imageInspect, _, err := self.client.ImageInspectWithRaw(ctx, rawImage.ID)
|
||||
imageInspect, err := self.client.ImageInspect(ctx, rawImage.ID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -502,9 +507,7 @@ func (self *InstanceManager) StartFileBrowser(ctx context.Context, serverId stri
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for key, value := range *containerConfig {
|
||||
browserLabels[key] = value
|
||||
}
|
||||
maps.Copy(browserLabels, *containerConfig)
|
||||
|
||||
command := self.config.FileBrowser.Command
|
||||
|
||||
@@ -579,6 +582,6 @@ func NewInstanceManager(config models.DockerInstanceManagerConfig) (*InstanceMan
|
||||
|
||||
return &InstanceManager{
|
||||
config: config,
|
||||
client: *apiClient,
|
||||
client: apiClient,
|
||||
}, nil
|
||||
}
|
||||
|
@@ -8,8 +8,9 @@ import (
|
||||
|
||||
instancemanager "git.acooldomain.co/server-manager/backend/instancemanager"
|
||||
"git.acooldomain.co/server-manager/backend/models"
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/api/types/filters"
|
||||
"github.com/docker/docker/api/types/image"
|
||||
"github.com/docker/go-connections/nat"
|
||||
)
|
||||
|
||||
@@ -54,15 +55,15 @@ func stringifyMap(m map[string]any) map[string]string {
|
||||
return stringifiedMap
|
||||
}
|
||||
|
||||
func convertContainerPortsToPorts(ports []types.Port) []models.Port {
|
||||
func convertContainerPortsToPorts(ports []container.Port) []models.Port {
|
||||
containerPorts := make([]models.Port, len(ports))
|
||||
logger := log.Default()
|
||||
for i, port := range ports {
|
||||
var portProtocol models.PortProtocol
|
||||
switch port.Type {
|
||||
case "TCP":
|
||||
case "tcp":
|
||||
portProtocol = models.TCP
|
||||
case "UDP":
|
||||
case "udp":
|
||||
portProtocol = models.UDP
|
||||
default:
|
||||
logger.Println(fmt.Sprintf("Unkown Port Protocol %s assuming TCP", port.Type))
|
||||
@@ -90,10 +91,11 @@ func convertImageStringToModelsImage(image string) models.Image {
|
||||
}
|
||||
}
|
||||
|
||||
func convertImageInspectToInstanceImage(image types.ImageInspect) instancemanager.Image {
|
||||
func convertImageInspectToInstanceImage(image image.InspectResponse) instancemanager.Image {
|
||||
modelsImage := convertImageStringToModelsImage(image.RepoTags[0])
|
||||
|
||||
ports := convertImagePortsToPorts(image.Config.ExposedPorts)
|
||||
fmt.Printf("image: %#v\nconfig: %#v\nports: %#v\n", image, image.Config, ports)
|
||||
|
||||
return instancemanager.Image{
|
||||
Registry: modelsImage.Registry,
|
||||
@@ -112,7 +114,7 @@ func convertContainerLabelsToStruct(labels map[string]string) (*ContainerLabels,
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(rawLabels, &labels)
|
||||
err = json.Unmarshal(rawLabels, &containerLabels)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -129,7 +131,7 @@ func convertVolumeLabelsToStruct(labels map[string]string) (*VolumeLabels, error
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(rawLabels, &labels)
|
||||
err = json.Unmarshal(rawLabels, &volumeLabels)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -146,7 +148,7 @@ func convertImageLabelsToStruct(labels map[string]string) (*ImageLabels, error)
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = json.Unmarshal(rawLabels, &labels)
|
||||
err = json.Unmarshal(rawLabels, &imageLabels)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -161,9 +163,9 @@ func convertImagePortsToPorts(rawPorts nat.PortSet) []instancemanager.Port {
|
||||
portNumber := imagePort.Int()
|
||||
var protocol models.PortProtocol
|
||||
switch imagePort.Proto() {
|
||||
case "TCP":
|
||||
case "tcp":
|
||||
protocol = models.TCP
|
||||
case "UDP":
|
||||
case "udp":
|
||||
protocol = models.UDP
|
||||
default:
|
||||
log.Default().Println(fmt.Sprintf("Unknown port protocol %s using TCP", imagePort.Proto()))
|
||||
|
Reference in New Issue
Block a user