Просмотр исходного кода

No need for docker dependency for CopyDir, and yaml parser.
No need for multiport compose file with volumes

Signed-off-by: Guillaume Tardif <[email protected]>

Guillaume Tardif 5 лет назад
Родитель
Сommit
9cc914ef07

+ 0 - 1
go.mod

@@ -63,7 +63,6 @@ require (
 	google.golang.org/protobuf v1.25.0
 	gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 // indirect
 	gopkg.in/ini.v1 v1.61.0
-	gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c
 	gotest.tools v2.2.0+incompatible
 	gotest.tools/v3 v3.0.2
 )

+ 4 - 0
go.sum

@@ -188,11 +188,14 @@ github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9
 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
 github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8=
+github.com/go-kit/kit v0.8.0 h1:Wz+5lgoB0kkuqLEc6NVmwRknTKP6dTGbSqvhZtBI/j0=
 github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
 github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
+github.com/go-logfmt/logfmt v0.4.0 h1:MP4Eh7ZCb31lleYCFuwm0oe4/YGak+5l1vA2NOE80nA=
 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
 github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
 github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
+github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
 github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
 github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0=
 github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo=
@@ -312,6 +315,7 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
 github.com/konsorten/go-windows-terminal-sequences v1.0.3 h1:CE8S1cTafDpPvMhIxNJKvHsGVBgn1xWYf1NbHQhywc8=
 github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
+github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515 h1:T+h1c/A9Gawja4Y9mFVWj2vyii2bbUNDw3kt9VxK2EY=
 github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
 github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=

+ 7 - 17
tests/aci-e2e/e2e-aci_test.go

@@ -20,7 +20,6 @@ import (
 	"context"
 	"errors"
 	"fmt"
-	"github.com/prometheus/tsdb/fileutil"
 	"io/ioutil"
 	"math/rand"
 	"net/http"
@@ -34,9 +33,6 @@ import (
 	"testing"
 	"time"
 
-	"github.com/compose-spec/compose-go/loader"
-	"github.com/compose-spec/compose-go/types"
-	"gopkg.in/yaml.v3"
 	"gotest.tools/v3/assert"
 	is "gotest.tools/v3/assert/cmp"
 	"gotest.tools/v3/icmd"
@@ -45,6 +41,7 @@ import (
 	"github.com/Azure/azure-sdk-for-go/profiles/2019-03-01/resources/mgmt/resources"
 	"github.com/Azure/azure-storage-file-go/azfile"
 	"github.com/Azure/go-autorest/autorest/to"
+	"github.com/prometheus/tsdb/fileutil"
 
 	"github.com/docker/compose-cli/aci"
 	"github.com/docker/compose-cli/aci/convert"
@@ -477,15 +474,9 @@ func TestContainerRunAttached(t *testing.T) {
 
 func overwriteFileStorageAccount(t *testing.T, absComposefileName string, storageAccount string) {
 	data, err := ioutil.ReadFile(absComposefileName)
-	m, err := loader.ParseYAML(data)
 	assert.NilError(t, err)
-	p, err := loader.Load(types.ConfigDetails{ConfigFiles: []types.ConfigFile{{Config: m}}})
-	p.Volumes["mydata"].DriverOpts["storage_account_name"] = storageAccount
-	out, err := yaml.Marshal(p)
-	assert.NilError(t, err)
-	// FIXME(ulyssessouza): Change `compose-go` to omit `WorkingDir` and `Name` on YAML serialization
-	outBytes := []byte(strings.Join(strings.Split(string(out), "\n")[2:], "\n")) // Removes the first 2 lines
-	err = ioutil.WriteFile(absComposefileName, outBytes, 0644)
+	override := strings.Replace(string(data), "dockertestvolumeaccount", storageAccount, 1)
+	err = ioutil.WriteFile(absComposefileName, []byte(override), 0644)
 	assert.NilError(t, err)
 }
 
@@ -498,7 +489,7 @@ func TestUpUpdate(t *testing.T) {
 	)
 	var (
 		singlePortVolumesComposefile = "aci_demo_port_volumes.yaml"
-		multiPortVolumesComposefile  = "aci_demo_multiport_volumes.yaml"
+		multiPortComposefile         = "aci_demo_multi_port.yaml"
 	)
 	c := NewParallelE2eCLI(t, binDir)
 	sID, groupID, location := setupTestResourceGroup(t, c)
@@ -515,8 +506,7 @@ func TestUpUpdate(t *testing.T) {
 
 	singlePortVolumesComposefile = filepath.Join(dstDir, singlePortVolumesComposefile)
 	overwriteFileStorageAccount(t, singlePortVolumesComposefile, composeAccountName)
-	multiPortVolumesComposefile = filepath.Join(dstDir, multiPortVolumesComposefile)
-
+	multiPortComposefile = filepath.Join(dstDir, multiPortComposefile)
 
 	t.Run("compose up", func(t *testing.T) {
 		const (
@@ -554,7 +544,7 @@ func TestUpUpdate(t *testing.T) {
 				strings.Contains(l, ":80->80/tcp")
 			}
 		}
-		assert.Assert(t, webRunning, "web container not running ; ps:\n" + res.Stdout())
+		assert.Assert(t, webRunning, "web container not running ; ps:\n"+res.Stdout())
 
 		res = c.RunDockerCmd("inspect", serverContainer)
 
@@ -615,7 +605,7 @@ func TestUpUpdate(t *testing.T) {
 	})
 
 	t.Run("update", func(t *testing.T) {
-		c.RunDockerCmd("compose", "up", "-f", multiPortVolumesComposefile, "--project-name", composeProjectName)
+		c.RunDockerCmd("compose", "up", "-f", multiPortComposefile, "--project-name", composeProjectName)
 		res := c.RunDockerCmd("ps")
 		out := lines(res.Stdout())
 		// Check three containers are running

+ 0 - 16
tests/composefiles/aci-demo/aci_demo_multiport_volumes.yaml

@@ -1,16 +0,0 @@
-services:
-  db:
-    build: db
-    image: gtardif/sentences-db
-
-  words:
-    build: words
-    image: gtardif/sentences-api
-    ports:
-      - "8080:8080"
-
-  web:
-    build: web
-    image: gtardif/sentences-web
-    ports:
-      - "80:80"

+ 2 - 2
tests/framework/e2e.go

@@ -142,7 +142,7 @@ func CopyFile(sourceFile string, destinationFile string) error {
 	return nil
 }
 
-// NewCmd creates a cmd object configured with the Test environment set
+// NewCmd creates a cmd object configured with the test environment set
 func (c *E2eCLI) NewCmd(command string, args ...string) icmd.Cmd {
 	env := append(os.Environ(),
 		"DOCKER_CONFIG="+c.ConfigDir,
@@ -173,7 +173,7 @@ func (c *E2eCLI) RunDockerCmd(args ...string) *icmd.Result {
 	return res
 }
 
-// PathEnvVar returns path (os sensitive) for running Test
+// PathEnvVar returns path (os sensitive) for running test
 func (c *E2eCLI) PathEnvVar() string {
 	path := c.BinDir + ":" + os.Getenv("PATH")
 	if runtime.GOOS == "windows" {