break everything
- upgrade dependencies - run gofmt and goimports to organize code - fix typos - other small tweaks
This commit is contained in:
@@ -5,6 +5,7 @@ import (
|
||||
"strconv"
|
||||
|
||||
"github.com/docker/go-connections/nat"
|
||||
|
||||
"github.com/pterodactyl/wings/config"
|
||||
)
|
||||
|
||||
@@ -19,7 +20,7 @@ type Allocations struct {
|
||||
Port int `json:"port"`
|
||||
} `json:"default"`
|
||||
|
||||
// Mappings contains all of the ports that should be assigned to a given server
|
||||
// Mappings contains all the ports that should be assigned to a given server
|
||||
// attached to the IP they correspond to.
|
||||
Mappings map[string][]int `json:"mappings"`
|
||||
}
|
||||
@@ -62,7 +63,7 @@ func (a *Allocations) DockerBindings() nat.PortMap {
|
||||
iface := config.Get().Docker.Network.Interface
|
||||
|
||||
out := a.Bindings()
|
||||
// Loop over all of the bindings for this container, and convert any that reference 127.0.0.1
|
||||
// Loop over all the bindings for this container, and convert any that reference 127.0.0.1
|
||||
// to use the pterodactyl0 network interface IP, as that is the true local for what people are
|
||||
// trying to do when creating servers.
|
||||
for p, binds := range out {
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/network"
|
||||
"github.com/docker/docker/client"
|
||||
|
||||
"github.com/pterodactyl/wings/config"
|
||||
)
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ import (
|
||||
"github.com/docker/docker/api/types/mount"
|
||||
"github.com/docker/docker/client"
|
||||
"github.com/docker/docker/daemon/logger/jsonfilelog"
|
||||
|
||||
"github.com/pterodactyl/wings/config"
|
||||
"github.com/pterodactyl/wings/environment"
|
||||
"github.com/pterodactyl/wings/system"
|
||||
@@ -139,7 +140,7 @@ func (e *Environment) InSituUpdate() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Create creates a new container for the server using all of the data that is
|
||||
// Create creates a new container for the server using all the data that is
|
||||
// currently available for it. If the container already exists it will be
|
||||
// returned.
|
||||
func (e *Environment) Create() error {
|
||||
@@ -192,7 +193,7 @@ func (e *Environment) Create() error {
|
||||
PortBindings: a.DockerBindings(),
|
||||
|
||||
// Configure the mounts for this container. First mount the server data directory
|
||||
// into the container as a r/w bind.
|
||||
// into the container as an r/w bind.
|
||||
Mounts: e.convertMounts(),
|
||||
|
||||
// Configure the /tmp folder mapping in containers. This is necessary for some
|
||||
@@ -340,11 +341,9 @@ func (e *Environment) scanOutput(reader io.ReadCloser) {
|
||||
|
||||
events := e.Events()
|
||||
|
||||
err := system.ScanReader(reader, func(line string) {
|
||||
if err := system.ScanReader(reader, func(line string) {
|
||||
events.Publish(environment.ConsoleOutputEvent, line)
|
||||
})
|
||||
|
||||
if err != nil && err != io.EOF {
|
||||
}); err != nil && err != io.EOF {
|
||||
log.WithField("error", err).WithField("container_id", e.Id).Warn("error processing scanner line in console output")
|
||||
return
|
||||
}
|
||||
@@ -354,7 +353,7 @@ func (e *Environment) scanOutput(reader io.ReadCloser) {
|
||||
return
|
||||
}
|
||||
|
||||
// Close the current reader before starting a new one, the defer will still run
|
||||
// Close the current reader before starting a new one, the defer will still run,
|
||||
// but it will do nothing if we already closed the stream.
|
||||
_ = reader.Close()
|
||||
|
||||
@@ -372,7 +371,7 @@ type imagePullStatus struct {
|
||||
// error to the logger but continue with the process.
|
||||
//
|
||||
// The reasoning behind this is that Quay has had some serious outages as of
|
||||
// late, and we don't need to block all of the servers from booting just because
|
||||
// late, and we don't need to block all the servers from booting just because
|
||||
// of that. I'd imagine in a lot of cases an outage shouldn't affect users too
|
||||
// badly. It'll at least keep existing servers working correctly if anything.
|
||||
func (e *Environment) ensureImageExists(image string) error {
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"github.com/apex/log"
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/client"
|
||||
|
||||
"github.com/pterodactyl/wings/environment"
|
||||
"github.com/pterodactyl/wings/events"
|
||||
"github.com/pterodactyl/wings/remote"
|
||||
@@ -21,7 +22,7 @@ type Metadata struct {
|
||||
Stop remote.ProcessStopConfiguration
|
||||
}
|
||||
|
||||
// Ensure that the Docker environment is always implementing all of the methods
|
||||
// Ensure that the Docker environment is always implementing all the methods
|
||||
// from the base environment interface.
|
||||
var _ environment.ProcessEnvironment = (*Environment)(nil)
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/docker/docker/api/types/container"
|
||||
"github.com/docker/docker/client"
|
||||
|
||||
"github.com/pterodactyl/wings/environment"
|
||||
"github.com/pterodactyl/wings/remote"
|
||||
)
|
||||
@@ -81,7 +82,7 @@ func (e *Environment) Start() error {
|
||||
return e.Attach()
|
||||
}
|
||||
|
||||
// Truncate the log file so we don't end up outputting a bunch of useless log information
|
||||
// Truncate the log file, so we don't end up outputting a bunch of useless log information
|
||||
// to the websocket and whatnot. Check first that the path and file exist before trying
|
||||
// to truncate them.
|
||||
if _, err := os.Stat(c.LogPath); err == nil {
|
||||
@@ -242,7 +243,7 @@ func (e *Environment) Terminate(signal os.Signal) error {
|
||||
}
|
||||
|
||||
if !c.State.Running {
|
||||
// If the container is not running but we're not already in a stopped state go ahead
|
||||
// If the container is not running, but we're not already in a stopped state go ahead
|
||||
// and update things to indicate we should be completely stopped now. Set to stopping
|
||||
// first so crash detection is not triggered.
|
||||
if e.st.Load() != environment.ProcessOfflineState {
|
||||
|
||||
@@ -2,12 +2,14 @@ package docker
|
||||
|
||||
import (
|
||||
"context"
|
||||
"emperror.dev/errors"
|
||||
"encoding/json"
|
||||
"github.com/docker/docker/api/types"
|
||||
"github.com/pterodactyl/wings/environment"
|
||||
"io"
|
||||
"math"
|
||||
|
||||
"emperror.dev/errors"
|
||||
"github.com/docker/docker/api/types"
|
||||
|
||||
"github.com/pterodactyl/wings/environment"
|
||||
)
|
||||
|
||||
// Attach to the instance and then automatically emit an event whenever the resource usage for the
|
||||
@@ -73,9 +75,8 @@ func (e *Environment) pollResources(ctx context.Context) error {
|
||||
// value which can be rather confusing to people trying to compare panel usage to
|
||||
// their stats output.
|
||||
//
|
||||
// This math is straight up lifted from their CLI repository in order to show the same
|
||||
// values to avoid people bothering me about it. It should also reflect a slightly more
|
||||
// correct memory value anyways.
|
||||
// This math is from their CLI repository in order to show the same values to avoid people
|
||||
// bothering me about it. It should also reflect a slightly more correct memory value anyways.
|
||||
//
|
||||
// @see https://github.com/docker/cli/blob/96e1d1d6/cli/command/container/stats_helpers.go#L227-L249
|
||||
func calculateDockerMemory(stats types.MemoryStats) uint64 {
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
"github.com/apex/log"
|
||||
"github.com/docker/docker/api/types/container"
|
||||
|
||||
"github.com/pterodactyl/wings/config"
|
||||
)
|
||||
|
||||
@@ -25,7 +26,7 @@ type Mount struct {
|
||||
// that we're mounting into the container at the Target location.
|
||||
Source string `json:"source"`
|
||||
|
||||
// Whether or not the directory is being mounted as read-only. It is up to the environment to
|
||||
// Whether the directory is being mounted as read-only. It is up to the environment to
|
||||
// handle this value correctly and ensure security expectations are met with its usage.
|
||||
ReadOnly bool `json:"read_only"`
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ type Stats struct {
|
||||
|
||||
// The total amount of memory this container or resource can use. Inside Docker this is
|
||||
// going to be higher than you'd expect because we're automatically allocating overhead
|
||||
// abilities for the container, so its not going to be a perfect match.
|
||||
// abilities for the container, so it's not going to be a perfect match.
|
||||
MemoryLimit uint64 `json:"memory_limit_bytes"`
|
||||
|
||||
// The absolute CPU usage is the amount of CPU used in relation to the entire system and
|
||||
|
||||
Reference in New Issue
Block a user