fix linting and formatting

pull/526/head
Simon Aronsson 5 years ago
parent 00715e4633
commit 4672811983

@ -8,8 +8,8 @@ import (
"github.com/containrrr/watchtower/pkg/container" "github.com/containrrr/watchtower/pkg/container"
"github.com/containrrr/watchtower/pkg/container/mocks" "github.com/containrrr/watchtower/pkg/container/mocks"
cli "github.com/docker/docker/client"
"github.com/docker/docker/api/types" "github.com/docker/docker/api/types"
cli "github.com/docker/docker/client"
. "github.com/containrrr/watchtower/internal/actions/mocks" . "github.com/containrrr/watchtower/internal/actions/mocks"
. "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo"
@ -35,7 +35,7 @@ var _ = Describe("the actions package", func() {
removeVolumes := false removeVolumes := false
client = CreateMockClient( client = CreateMockClient(
&TestData {}, &TestData{},
dockerClient, dockerClient,
pullImages, pullImages,
removeVolumes, removeVolumes,
@ -143,4 +143,4 @@ func createMockContainer(id string, name string, image string, created time.Time
}, },
} }
return *container.NewContainer(&content, nil) return *container.NewContainer(&content, nil)
} }

@ -20,8 +20,8 @@ type MockClient struct {
// TestData is the data used to perform the test // TestData is the data used to perform the test
type TestData struct { type TestData struct {
TriedToRemoveImageCount int TriedToRemoveImageCount int
NameOfContainerToKeep string NameOfContainerToKeep string
Containers []container.Container Containers []container.Container
} }
// TriedToRemoveImage is a test helper function to check whether RemoveImageByID has been called // TriedToRemoveImage is a test helper function to check whether RemoveImageByID has been called
@ -31,7 +31,7 @@ func (testdata *TestData) TriedToRemoveImage() bool {
// CreateMockClient creates a mock watchtower Client for usage in tests // CreateMockClient creates a mock watchtower Client for usage in tests
func CreateMockClient(data *TestData, api cli.CommonAPIClient, pullImages bool, removeVolumes bool) MockClient { func CreateMockClient(data *TestData, api cli.CommonAPIClient, pullImages bool, removeVolumes bool) MockClient {
return MockClient { return MockClient{
data, data,
api, api,
pullImages, pullImages,
@ -56,6 +56,7 @@ func (client MockClient) StopContainer(c container.Container, d time.Duration) e
func (client MockClient) StartContainer(c container.Container) (string, error) { func (client MockClient) StartContainer(c container.Container) (string, error) {
return "", nil return "", nil
} }
// RenameContainer is a mock method // RenameContainer is a mock method
func (client MockClient) RenameContainer(c container.Container, s string) error { func (client MockClient) RenameContainer(c container.Container, s string) error {
return nil return nil
@ -81,4 +82,3 @@ func (client MockClient) ExecuteCommand(containerID string, command string, time
func (client MockClient) IsContainerStale(c container.Container) (bool, error) { func (client MockClient) IsContainerStale(c container.Container) (bool, error) {
return true, nil return true, nil
} }

@ -80,7 +80,7 @@ func stopStaleContainer(container container.Container, client container.Client,
return return
} }
} }
if err := client.StopContainer(container, params.Timeout); err != nil { if err := client.StopContainer(container, params.Timeout); err != nil {
log.Error(err) log.Error(err)
} }

@ -13,7 +13,6 @@ import (
. "github.com/onsi/gomega" . "github.com/onsi/gomega"
) )
var _ = Describe("the update action", func() { var _ = Describe("the update action", func() {
var dockerClient cli.CommonAPIClient var dockerClient cli.CommonAPIClient
var client MockClient var client MockClient
@ -25,7 +24,6 @@ var _ = Describe("the update action", func() {
cli.WithHTTPClient(server.Client())) cli.WithHTTPClient(server.Client()))
}) })
When("watchtower has been instructed to clean up", func() { When("watchtower has been instructed to clean up", func() {
BeforeEach(func() { BeforeEach(func() {
pullImages := false pullImages := false
@ -60,7 +58,7 @@ var _ = Describe("the update action", func() {
When("there are multiple containers using the same image", func() { When("there are multiple containers using the same image", func() {
It("should only try to remove the image once", func() { It("should only try to remove the image once", func() {
err := actions.Update(client, types.UpdateParams{ Cleanup: true }) err := actions.Update(client, types.UpdateParams{Cleanup: true})
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
Expect(client.TestData.TriedToRemoveImageCount).To(Equal(1)) Expect(client.TestData.TriedToRemoveImageCount).To(Equal(1))
}) })
@ -76,7 +74,7 @@ var _ = Describe("the update action", func() {
time.Now(), time.Now(),
), ),
) )
err := actions.Update(client, types.UpdateParams{ Cleanup: true }) err := actions.Update(client, types.UpdateParams{Cleanup: true})
Expect(err).NotTo(HaveOccurred()) Expect(err).NotTo(HaveOccurred())
Expect(client.TestData.TriedToRemoveImageCount).To(Equal(2)) Expect(client.TestData.TriedToRemoveImageCount).To(Equal(2))
}) })

@ -1,15 +1,16 @@
package api package api
import ( import (
"os"
"net/http"
"errors" "errors"
log "github.com/sirupsen/logrus"
"io" "io"
"net/http"
"os"
log "github.com/sirupsen/logrus"
) )
var ( var (
lock chan bool lock chan bool
) )
func init() { func init() {
@ -17,16 +18,17 @@ func init() {
lock <- true lock <- true
} }
// SetupHTTPUpdates configures the endopint needed for triggering updates via http
func SetupHTTPUpdates(apiToken string, updateFunction func()) error { func SetupHTTPUpdates(apiToken string, updateFunction func()) error {
if apiToken == "" { if apiToken == "" {
return errors.New("API token is empty or has not been set. Not starting API.") return errors.New("api token is empty or has not been set. not starting api")
} }
log.Println("Watchtower HTTP API started.") log.Println("Watchtower HTTP API started.")
http.HandleFunc("/v1/update", func(w http.ResponseWriter, r *http.Request){ http.HandleFunc("/v1/update", func(w http.ResponseWriter, r *http.Request) {
log.Info("Updates triggered by HTTP API request.") log.Info("Updates triggered by HTTP API request.")
_, err := io.Copy(os.Stdout, r.Body) _, err := io.Copy(os.Stdout, r.Body)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
@ -39,23 +41,23 @@ func SetupHTTPUpdates(apiToken string, updateFunction func()) error {
} }
log.Println("Valid token found. Attempting to update.") log.Println("Valid token found. Attempting to update.")
select { select {
case chanValue := <- lock: case chanValue := <-lock:
defer func() { lock <- chanValue }() defer func() { lock <- chanValue }()
updateFunction() updateFunction()
default: default:
log.Debug("Skipped. Another update already running.") log.Debug("Skipped. Another update already running.")
} }
}) })
return nil return nil
} }
// WaitForHTTPUpdates starts the http server and listens for requests.
func WaitForHTTPUpdates() error { func WaitForHTTPUpdates() error {
log.Fatal(http.ListenAndServe(":8080", nil)) log.Fatal(http.ListenAndServe(":8080", nil))
os.Exit(0) os.Exit(0)
return nil return nil
} }

@ -88,4 +88,3 @@ func ExecutePostUpdateCommand(client container.Client, newContainerID string) {
log.Error(err) log.Error(err)
} }
} }

@ -29,7 +29,7 @@ func NewNotifier(c *cobra.Command) *Notifier {
// Parse types and create notifiers. // Parse types and create notifiers.
types, err := f.GetStringSlice("notifications") types, err := f.GetStringSlice("notifications")
if err != nil { if err != nil {
log.WithField("could not read notifications argument", log.Fields{ "Error": err }).Fatal() log.WithField("could not read notifications argument", log.Fields{"Error": err}).Fatal()
} }
for _, t := range types { for _, t := range types {
var tn ty.Notifier var tn ty.Notifier

Loading…
Cancel
Save