summaryrefslogtreecommitdiffstats
path: root/client
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-08-26 08:05:43 +0200
committerJon Bratseth <bratseth@gmail.com>2021-08-26 08:05:43 +0200
commitbec43302ea118ec2cc2b8832e27d08c6fc3cb37c (patch)
tree7a21fd654dba632b81edcbc699defd3e6a984189 /client
parent524dbdd224a39fb5537687a95ea16ab524db1338 (diff)
Look for pom when resolving application package
Diffstat (limited to 'client')
-rw-r--r--client/go/cmd/deploy_test.go2
-rw-r--r--client/go/cmd/testdata/applications/withEmptyTarget/pom.xml1
-rw-r--r--client/go/cmd/testdata/applications/withTarget/pom.xml1
-rw-r--r--client/go/vespa/deploy.go35
-rw-r--r--client/go/vespa/deploy_test.go1
5 files changed, 20 insertions, 20 deletions
diff --git a/client/go/cmd/deploy_test.go b/client/go/cmd/deploy_test.go
index 9042bc2c2a8..94936931dff 100644
--- a/client/go/cmd/deploy_test.go
+++ b/client/go/cmd/deploy_test.go
@@ -62,7 +62,7 @@ func TestDeployApplicationDirectoryWithTarget(t *testing.T) {
func TestDeployApplicationDirectoryWithEmptyTarget(t *testing.T) {
client := &mockHttpClient{}
assert.Equal(t,
- "\x1b[31mno application package found in testdata/applications/withEmptyTarget\x1b[0m\n",
+ "\x1b[31mpom.xml exists but no target/application.zip. Run mvn package first\x1b[0m\n",
executeCommand(t, client, []string{"deploy", "testdata/applications/withEmptyTarget"}, []string{}))
}
diff --git a/client/go/cmd/testdata/applications/withEmptyTarget/pom.xml b/client/go/cmd/testdata/applications/withEmptyTarget/pom.xml
new file mode 100644
index 00000000000..2b1875a5532
--- /dev/null
+++ b/client/go/cmd/testdata/applications/withEmptyTarget/pom.xml
@@ -0,0 +1 @@
+<services/> \ No newline at end of file
diff --git a/client/go/cmd/testdata/applications/withTarget/pom.xml b/client/go/cmd/testdata/applications/withTarget/pom.xml
new file mode 100644
index 00000000000..2b1875a5532
--- /dev/null
+++ b/client/go/cmd/testdata/applications/withTarget/pom.xml
@@ -0,0 +1 @@
+<services/> \ No newline at end of file
diff --git a/client/go/vespa/deploy.go b/client/go/vespa/deploy.go
index dec46a92b00..7be2455402b 100644
--- a/client/go/vespa/deploy.go
+++ b/client/go/vespa/deploy.go
@@ -7,7 +7,6 @@ package vespa
import (
"archive/zip"
"errors"
- "fmt"
"io"
"io/ioutil"
"net/http"
@@ -24,26 +23,26 @@ type ApplicationPackage struct {
Path string
}
-// Find application package relative given name, which is the path to a file or directory.
-func FindApplicationPackage(name string) (ApplicationPackage, error) {
- if isZip(name) {
- return ApplicationPackage{Path: name}, nil
+// Find an application package zip or directory below an application path
+func FindApplicationPackage(application string) (ApplicationPackage, error) {
+ if isZip(application) {
+ return ApplicationPackage{Path: application}, nil
+ }
+ if util.PathExists(filepath.Join(application, "pom.xml")) {
+ zip := filepath.Join(application, "target", "application.zip")
+ if !util.PathExists(zip) {
+ return ApplicationPackage{}, errors.New("pom.xml exists but no target/application.zip. Run mvn package first")
+ } else {
+ return ApplicationPackage{Path: zip}, nil
+ }
}
- candidates := []string{
- filepath.Join(name, "target", "application.zip"),
- filepath.Join(name, "src", "main", "application", "services.xml"),
- filepath.Join(name, "services.xml"),
+ if util.PathExists(filepath.Join(application, "src", "main", "application")) {
+ return ApplicationPackage{Path: filepath.Join(application, "src", "main", "application")}, nil
}
- for _, path := range candidates {
- if !util.PathExists(path) {
- continue
- }
- if !isZip(path) {
- path = filepath.Dir(path)
- }
- return ApplicationPackage{Path: path}, nil
+ if util.PathExists(filepath.Join(application, "services.xml")) {
+ return ApplicationPackage{Path: application}, nil
}
- return ApplicationPackage{}, fmt.Errorf("no application package found in %s", name)
+ return ApplicationPackage{}, errors.New("Could not find an application package source in '" + application + "'")
}
func (ap *ApplicationPackage) IsZip() bool { return isZip(ap.Path) }
diff --git a/client/go/vespa/deploy_test.go b/client/go/vespa/deploy_test.go
index cfc52cf92a9..c0995cbfe8c 100644
--- a/client/go/vespa/deploy_test.go
+++ b/client/go/vespa/deploy_test.go
@@ -18,7 +18,6 @@ func TestFindApplicationPackage(t *testing.T) {
{filepath.Join(dir, "foo"), "", true},
{filepath.Join(dir, "services.xml"), dir, false},
{filepath.Join(dir, "src", "main", "application", "services.xml"), filepath.Join(dir, "src", "main", "application"), false},
- {filepath.Join(dir, "target", "application.zip"), filepath.Join(dir, "target", "application.zip"), false},
}
zipFile := filepath.Join(dir, "application.zip")