diff --git a/.ci/jenkins-go-agent/Dockerfile b/.ci/jenkins-go-agent/Dockerfile index e8e53e3a1..781ba6b96 100644 --- a/.ci/jenkins-go-agent/Dockerfile +++ b/.ci/jenkins-go-agent/Dockerfile @@ -1,9 +1,9 @@ -FROM golang:1.12 +FROM golang:1.13 RUN \ apt-get update \ && apt-get install -y --no-install-recommends \ - zip \ + zip rsync\ && rm -rf /var/lib/apt/lists/* RUN go get -u github.com/magefile/mage \ diff --git a/CHANGELOG.md b/CHANGELOG.md index 43dea43de..a019def64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Breaking changes +* Change package path from /package/{packagename}-{version} to /package/{packagename}/{version} [#](https://github.com/elastic/integrations-registry/pull/) ### Bugfixes diff --git a/Dockerfile b/Dockerfile index a040d769f..ba90ba47f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM golang:${GO_VERSION:-1.13.4} RUN \ apt-get update \ && apt-get install -y --no-install-recommends \ - zip \ + zip rsync \ && rm -rf /var/lib/apt/lists/* COPY ./ /go/src/github.com/elastic/package-registry diff --git a/Jenkinsfile b/Jenkinsfile index d9b3ac963..341d364d6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,7 +3,7 @@ @Library('apm@current') _ pipeline { - agent { label 'docker && linux && immutable' } + agent { label 'ubuntu && immutable' } environment { BASE_DIR="src/github.com/elastic/package-registry" JOB_GIT_CREDENTIALS = "f6c7695a-671e-4f4f-a331-acdce44ff9ba" @@ -27,8 +27,8 @@ pipeline { } stages { /** - Checkout the code and stash it, to use it on other stages. - */ + Checkout the code and stash it, to use it on other stages. + */ stage('Checkout') { steps { deleteDir() @@ -37,8 +37,8 @@ pipeline { } } /** - Checks formatting / linting. - */ + Checks formatting / linting. + */ stage('Lint') { steps { deleteDir() @@ -51,8 +51,8 @@ pipeline { } } /** - Build the project from code.. - */ + Build the project from code.. + */ stage('Build') { steps { deleteDir() @@ -65,8 +65,8 @@ pipeline { } } /** - Execute unit tests. - */ + Execute unit tests. + */ stage('Test') { steps { deleteDir() @@ -86,8 +86,8 @@ pipeline { } } /** - Publish Docker images. - */ + Publish Docker images. + */ stage('Publish Docker image'){ environment { DOCKER_IMG_TAG = "${env.DOCKER_IMG}:${env.GIT_BASE_COMMIT}" @@ -105,8 +105,8 @@ pipeline { script: "docker push ${env.DOCKER_IMG_TAG}") sh(label: 'Re-tag Docker image', script: "docker tag ${env.DOCKER_IMG_TAG} ${env.DOCKER_IMG_TAG_BRANCH}") - sh(label: 'Push Docker image name', - script: "docker push ${env.DOCKER_IMG_TAG_BRANCH}") + sh(label: 'Push Docker image name', + script: "docker push ${env.DOCKER_IMG_TAG_BRANCH}") } } } diff --git a/README.md b/README.md index 8070fbe40..63aa83ee3 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,8 @@ Endpoints: * `/`: Info about the registry * `/search`: Search for packages. By default returns all the most recent packages available. * `/categories`: List of the existing package categories and how many packages are in each category. -* `/package/{name}-{version}`: Info about a package -* `/package/{name}-{version}.tar.gz`: Download a package +* `/package/{name}/{version}`: Info about a package +* `/epr/{name}/{name}-{version}.tar.gz`: Download a package Examples for each API endpoint can be found here: https://github.com/elastic/package-registry/tree/master/docs/api diff --git a/dev/generator/main.go b/dev/generator/main.go index dcc81f1a1..22936db9a 100644 --- a/dev/generator/main.go +++ b/dev/generator/main.go @@ -12,6 +12,7 @@ import ( "log" "os" "path/filepath" + "strings" "github.com/magefile/mage/sh" @@ -75,9 +76,9 @@ func Build(sourceDir, publicDir string) error { // CopyPackage copies the files of a package to the public directory func CopyPackage(src, dst string) error { - fmt.Println(">> Copy package: " + src) + log.Println(">> Copy package: " + src) os.MkdirAll(dst, 0755) - err := sh.RunV("cp", "-a", src, dst) + err := sh.RunV("rsync", "-a", src, dst) if err != nil { return err } @@ -100,14 +101,19 @@ func BuildPackages(sourceDir, packagesPath string) error { continue } + // Finds the last occurence of "-" and then below splits it up in 2 parts. + dashIndex := strings.LastIndex(packageName, "-") + dstDir := filepath.Join(packagesPath, packageName[0:dashIndex], packageName[dashIndex+1:]) + if copy { - err := CopyPackage(filepath.Join(sourceDir, packageName), packagesPath) + // Trailing slash is to make sure content of package is copied + err := CopyPackage(filepath.Join(sourceDir, packageName)+"/", dstDir) if err != nil { return err } } - p, err := util.NewPackage(filepath.Join(packagesPath, packageName)) + p, err := util.NewPackage(dstDir) if err != nil { return err } @@ -200,15 +206,35 @@ func buildPackage(packagesBasePath string, p util.Package) error { } if tarGz { - err = os.MkdirAll(filepath.Join(packagesBasePath, "..", "epr", p.Name), 0755) + tarGzDirPath := filepath.Join(packagesBasePath, "..", "epr", p.Name) + err = os.MkdirAll(tarGzDirPath, 0755) + if err != nil { + return err + } + + tarGzName := p.Name + "-" + p.Version + copiedPackagePath := filepath.Join(tarGzDirPath, tarGzName) + + // As the package directories are now {packagename}/{version} when just running tar, the dir inside + // the package had the wrong name. Using `-s` or `--transform` for some reason worked on the command line + // but not when run through Golang. So the hack for now is to just copy over all files with the correct name + // and then run tar on it. + // This could become even useful in the future as things like images or videos should potentially not be part of + // a tar.gz to keep it small. + err := CopyPackage(packagesBasePath+"/"+p.Name+"/"+p.Version+"/", copiedPackagePath) if err != nil { return err } - err = sh.RunV("tar", "czf", filepath.Join(packagesBasePath, "..", "epr", p.Name, p.GetPath()+".tar.gz"), "-C", packagesBasePath+"/", filepath.Base(p.GetPath())+"/") + err = sh.RunV("tar", "czf", filepath.Join(packagesBasePath, "..", "epr", p.Name, tarGzName+".tar.gz"), "-C", tarGzDirPath, tarGzName+"/") if err != nil { return fmt.Errorf("Error creating package: %s: %s", p.GetPath(), err) } + + err = os.RemoveAll(copiedPackagePath) + if err != nil { + return err + } } return nil diff --git a/dev/import-beats/datasources.go b/dev/import-beats/datasources.go index be444d597..0b426bdc6 100644 --- a/dev/import-beats/datasources.go +++ b/dev/import-beats/datasources.go @@ -6,6 +6,7 @@ package main import ( "fmt" + "github.com/elastic/package-registry/util" ) diff --git a/docs/api/package.json b/docs/api/package.json index 3373137d3..5784def8b 100644 --- a/docs/api/package.json +++ b/docs/api/package.json @@ -33,25 +33,25 @@ } ], "assets": [ - "/package/example-1.0.0/manifest.yml", - "/package/example-1.0.0/docs/README.md", - "/package/example-1.0.0/img/icon.png", - "/package/example-1.0.0/img/kibana-envoyproxy.jpg", - "/package/example-1.0.0/dataset/foo/manifest.yml", - "/package/example-1.0.0/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/index-pattern/filebeat-*.json", - "/package/example-1.0.0/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json", - "/package/example-1.0.0/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/dataset/foo/fields/stream.yml", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-entry.json", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-http.json", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-json.json", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-plaintext.json", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-tcp.json" + "/package/example/1.0.0/manifest.yml", + "/package/example/1.0.0/docs/README.md", + "/package/example/1.0.0/img/icon.png", + "/package/example/1.0.0/img/kibana-envoyproxy.jpg", + "/package/example/1.0.0/dataset/foo/manifest.yml", + "/package/example/1.0.0/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/index-pattern/filebeat-*.json", + "/package/example/1.0.0/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json", + "/package/example/1.0.0/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/dataset/foo/fields/stream.yml", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-entry.json", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-http.json", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-json.json", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-plaintext.json", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-tcp.json" ], "datasets": [ { @@ -106,5 +106,5 @@ } ], "download": "/epr/example/example-1.0.0.tar.gz", - "path": "/package/example-1.0.0" -} + "path": "/package/example/1.0.0" +} \ No newline at end of file diff --git a/docs/api/search-category-logs.json b/docs/api/search-category-logs.json index c131d66fa..8c71fdd7a 100644 --- a/docs/api/search-category-logs.json +++ b/docs/api/search-category-logs.json @@ -3,7 +3,7 @@ "description": "Package with data sources", "download": "/epr/datasources/datasources-1.0.0.tar.gz", "name": "datasources", - "path": "/package/datasources-1.0.0", + "path": "/package/datasources/1.0.0", "title": "Default datasource Integration", "type": "integration", "version": "1.0.0" @@ -12,7 +12,7 @@ "description": "Tests if no pipeline is set, it defaults to the default one", "download": "/epr/default-pipeline/default-pipeline-0.0.2.tar.gz", "name": "default-pipeline", - "path": "/package/default-pipeline-0.0.2", + "path": "/package/default-pipeline/0.0.2", "title": "Default pipeline Integration", "type": "integration", "version": "0.0.2" @@ -21,7 +21,7 @@ "description": "This is the example integration", "download": "/epr/example/example-1.0.0.tar.gz", "name": "example", - "path": "/package/example-1.0.0", + "path": "/package/example/1.0.0", "title": "Example Integration", "type": "integration", "version": "1.0.0" diff --git a/docs/api/search-category-metrics.json b/docs/api/search-category-metrics.json index 98ecad18a..51f3c586b 100644 --- a/docs/api/search-category-metrics.json +++ b/docs/api/search-category-metrics.json @@ -3,7 +3,7 @@ "description": "This is the example integration", "download": "/epr/example/example-1.0.0.tar.gz", "name": "example", - "path": "/package/example-1.0.0", + "path": "/package/example/1.0.0", "title": "Example Integration", "type": "integration", "version": "1.0.0" @@ -12,7 +12,7 @@ "description": "This is the foo integration", "download": "/epr/foo/foo-1.0.0.tar.gz", "name": "foo", - "path": "/package/foo-1.0.0", + "path": "/package/foo/1.0.0", "title": "Foo", "type": "solution", "version": "1.0.0" diff --git a/docs/api/search-kibana652.json b/docs/api/search-kibana652.json index dc596e3e9..3d9ee8619 100644 --- a/docs/api/search-kibana652.json +++ b/docs/api/search-kibana652.json @@ -3,7 +3,7 @@ "description": "Package with data sources", "download": "/epr/datasources/datasources-1.0.0.tar.gz", "name": "datasources", - "path": "/package/datasources-1.0.0", + "path": "/package/datasources/1.0.0", "title": "Default datasource Integration", "type": "integration", "version": "1.0.0" @@ -12,7 +12,7 @@ "description": "Tests if no pipeline is set, it defaults to the default one", "download": "/epr/default-pipeline/default-pipeline-0.0.2.tar.gz", "name": "default-pipeline", - "path": "/package/default-pipeline-0.0.2", + "path": "/package/default-pipeline/0.0.2", "title": "Default pipeline Integration", "type": "integration", "version": "0.0.2" @@ -21,7 +21,7 @@ "description": "This is the example integration.", "download": "/epr/example/example-0.0.2.tar.gz", "name": "example", - "path": "/package/example-0.0.2", + "path": "/package/example/0.0.2", "title": "Example", "type": "integration", "version": "0.0.2" diff --git a/docs/api/search-kibana721.json b/docs/api/search-kibana721.json index 6cbc4a36c..3c61b55c9 100644 --- a/docs/api/search-kibana721.json +++ b/docs/api/search-kibana721.json @@ -3,7 +3,7 @@ "description": "Package with data sources", "download": "/epr/datasources/datasources-1.0.0.tar.gz", "name": "datasources", - "path": "/package/datasources-1.0.0", + "path": "/package/datasources/1.0.0", "title": "Default datasource Integration", "type": "integration", "version": "1.0.0" @@ -12,7 +12,7 @@ "description": "Tests if no pipeline is set, it defaults to the default one", "download": "/epr/default-pipeline/default-pipeline-0.0.2.tar.gz", "name": "default-pipeline", - "path": "/package/default-pipeline-0.0.2", + "path": "/package/default-pipeline/0.0.2", "title": "Default pipeline Integration", "type": "integration", "version": "0.0.2" @@ -21,7 +21,7 @@ "description": "This is the example integration", "download": "/epr/example/example-1.0.0.tar.gz", "name": "example", - "path": "/package/example-1.0.0", + "path": "/package/example/1.0.0", "title": "Example Integration", "type": "integration", "version": "1.0.0" @@ -30,7 +30,7 @@ "description": "This is the foo integration", "download": "/epr/foo/foo-1.0.0.tar.gz", "name": "foo", - "path": "/package/foo-1.0.0", + "path": "/package/foo/1.0.0", "title": "Foo", "type": "solution", "version": "1.0.0" diff --git a/docs/api/search-package-example.json b/docs/api/search-package-example.json index 140272d60..55fd1f20d 100644 --- a/docs/api/search-package-example.json +++ b/docs/api/search-package-example.json @@ -3,7 +3,7 @@ "description": "This is the example integration.", "download": "/epr/example/example-0.0.2.tar.gz", "name": "example", - "path": "/package/example-0.0.2", + "path": "/package/example/0.0.2", "title": "Example", "type": "integration", "version": "0.0.2" @@ -12,7 +12,7 @@ "description": "This is the example integration", "download": "/epr/example/example-1.0.0.tar.gz", "name": "example", - "path": "/package/example-1.0.0", + "path": "/package/example/1.0.0", "title": "Example Integration", "type": "integration", "version": "1.0.0" diff --git a/docs/api/search-package-internal.json b/docs/api/search-package-internal.json index f1222ed06..73fcb16f9 100644 --- a/docs/api/search-package-internal.json +++ b/docs/api/search-package-internal.json @@ -3,7 +3,7 @@ "description": "Package with data sources", "download": "/epr/datasources/datasources-1.0.0.tar.gz", "name": "datasources", - "path": "/package/datasources-1.0.0", + "path": "/package/datasources/1.0.0", "title": "Default datasource Integration", "type": "integration", "version": "1.0.0" @@ -12,7 +12,7 @@ "description": "Tests if no pipeline is set, it defaults to the default one", "download": "/epr/default-pipeline/default-pipeline-0.0.2.tar.gz", "name": "default-pipeline", - "path": "/package/default-pipeline-0.0.2", + "path": "/package/default-pipeline/0.0.2", "title": "Default pipeline Integration", "type": "integration", "version": "0.0.2" @@ -21,7 +21,7 @@ "description": "This is the example integration", "download": "/epr/example/example-1.0.0.tar.gz", "name": "example", - "path": "/package/example-1.0.0", + "path": "/package/example/1.0.0", "title": "Example Integration", "type": "integration", "version": "1.0.0" @@ -30,7 +30,7 @@ "description": "This is the foo integration", "download": "/epr/foo/foo-1.0.0.tar.gz", "name": "foo", - "path": "/package/foo-1.0.0", + "path": "/package/foo/1.0.0", "title": "Foo", "type": "solution", "version": "1.0.0" @@ -40,7 +40,7 @@ "download": "/epr/internal/internal-1.2.0.tar.gz", "internal": true, "name": "internal", - "path": "/package/internal-1.2.0", + "path": "/package/internal/1.2.0", "title": "Internal", "type": "integration", "version": "1.2.0" diff --git a/docs/api/search.json b/docs/api/search.json index 6cbc4a36c..3c61b55c9 100644 --- a/docs/api/search.json +++ b/docs/api/search.json @@ -3,7 +3,7 @@ "description": "Package with data sources", "download": "/epr/datasources/datasources-1.0.0.tar.gz", "name": "datasources", - "path": "/package/datasources-1.0.0", + "path": "/package/datasources/1.0.0", "title": "Default datasource Integration", "type": "integration", "version": "1.0.0" @@ -12,7 +12,7 @@ "description": "Tests if no pipeline is set, it defaults to the default one", "download": "/epr/default-pipeline/default-pipeline-0.0.2.tar.gz", "name": "default-pipeline", - "path": "/package/default-pipeline-0.0.2", + "path": "/package/default-pipeline/0.0.2", "title": "Default pipeline Integration", "type": "integration", "version": "0.0.2" @@ -21,7 +21,7 @@ "description": "This is the example integration", "download": "/epr/example/example-1.0.0.tar.gz", "name": "example", - "path": "/package/example-1.0.0", + "path": "/package/example/1.0.0", "title": "Example Integration", "type": "integration", "version": "1.0.0" @@ -30,7 +30,7 @@ "description": "This is the foo integration", "download": "/epr/foo/foo-1.0.0.tar.gz", "name": "foo", - "path": "/package/foo-1.0.0", + "path": "/package/foo/1.0.0", "title": "Foo", "type": "solution", "version": "1.0.0" diff --git a/main_test.go b/main_test.go index ccaa426d1..cfa4ca268 100644 --- a/main_test.go +++ b/main_test.go @@ -44,7 +44,7 @@ func TestEndpoints(t *testing.T) { {"/search?category=logs", "/search", "search-category-logs.json", searchHandler(packagesBasePath, testCacheTime)}, {"/search?package=example", "/search", "search-package-example.json", searchHandler(packagesBasePath, testCacheTime)}, {"/search?internal=true", "/search", "search-package-internal.json", searchHandler(packagesBasePath, testCacheTime)}, - {"/package/example-1.0.0", "", "package.json", catchAll(publicPath, testCacheTime)}, + {"/package/example/1.0.0", "", "package.json", catchAll(publicPath, testCacheTime)}, } for _, test := range tests { diff --git a/testdata/public/package/datasources-1.0.0/dataset/examplelog1/fields/stream.yml b/testdata/public/package/datasources/1.0.0/dataset/examplelog1/fields/stream.yml similarity index 100% rename from testdata/public/package/datasources-1.0.0/dataset/examplelog1/fields/stream.yml rename to testdata/public/package/datasources/1.0.0/dataset/examplelog1/fields/stream.yml diff --git a/testdata/public/package/datasources-1.0.0/dataset/examplelog1/manifest.yml b/testdata/public/package/datasources/1.0.0/dataset/examplelog1/manifest.yml similarity index 100% rename from testdata/public/package/datasources-1.0.0/dataset/examplelog1/manifest.yml rename to testdata/public/package/datasources/1.0.0/dataset/examplelog1/manifest.yml diff --git a/testdata/public/package/datasources-1.0.0/dataset/examplelog2/fields/stream.yml b/testdata/public/package/datasources/1.0.0/dataset/examplelog2/fields/stream.yml similarity index 100% rename from testdata/public/package/datasources-1.0.0/dataset/examplelog2/fields/stream.yml rename to testdata/public/package/datasources/1.0.0/dataset/examplelog2/fields/stream.yml diff --git a/testdata/public/package/datasources-1.0.0/dataset/examplelog2/manifest.yml b/testdata/public/package/datasources/1.0.0/dataset/examplelog2/manifest.yml similarity index 100% rename from testdata/public/package/datasources-1.0.0/dataset/examplelog2/manifest.yml rename to testdata/public/package/datasources/1.0.0/dataset/examplelog2/manifest.yml diff --git a/testdata/public/package/datasources-1.0.0/dataset/examplemetric/fields/stream.yml b/testdata/public/package/datasources/1.0.0/dataset/examplemetric/fields/stream.yml similarity index 100% rename from testdata/public/package/datasources-1.0.0/dataset/examplemetric/fields/stream.yml rename to testdata/public/package/datasources/1.0.0/dataset/examplemetric/fields/stream.yml diff --git a/testdata/public/package/datasources-1.0.0/dataset/examplemetric/manifest.yml b/testdata/public/package/datasources/1.0.0/dataset/examplemetric/manifest.yml similarity index 100% rename from testdata/public/package/datasources-1.0.0/dataset/examplemetric/manifest.yml rename to testdata/public/package/datasources/1.0.0/dataset/examplemetric/manifest.yml diff --git a/testdata/public/package/datasources-1.0.0/docs/README.md b/testdata/public/package/datasources/1.0.0/docs/README.md similarity index 100% rename from testdata/public/package/datasources-1.0.0/docs/README.md rename to testdata/public/package/datasources/1.0.0/docs/README.md diff --git a/testdata/public/package/datasources-1.0.0/index.json b/testdata/public/package/datasources/1.0.0/index.json similarity index 93% rename from testdata/public/package/datasources-1.0.0/index.json rename to testdata/public/package/datasources/1.0.0/index.json index 8f38ed8c7..d8d94aac9 100644 --- a/testdata/public/package/datasources-1.0.0/index.json +++ b/testdata/public/package/datasources/1.0.0/index.json @@ -15,14 +15,14 @@ "elasticsearch": {} }, "assets": [ - "/package/datasources-1.0.0/manifest.yml", - "/package/datasources-1.0.0/docs/README.md", - "/package/datasources-1.0.0/dataset/examplelog1/manifest.yml", - "/package/datasources-1.0.0/dataset/examplelog2/manifest.yml", - "/package/datasources-1.0.0/dataset/examplemetric/manifest.yml", - "/package/datasources-1.0.0/dataset/examplelog1/fields/stream.yml", - "/package/datasources-1.0.0/dataset/examplelog2/fields/stream.yml", - "/package/datasources-1.0.0/dataset/examplemetric/fields/stream.yml" + "/package/datasources/1.0.0/manifest.yml", + "/package/datasources/1.0.0/docs/README.md", + "/package/datasources/1.0.0/dataset/examplelog1/manifest.yml", + "/package/datasources/1.0.0/dataset/examplelog2/manifest.yml", + "/package/datasources/1.0.0/dataset/examplemetric/manifest.yml", + "/package/datasources/1.0.0/dataset/examplelog1/fields/stream.yml", + "/package/datasources/1.0.0/dataset/examplelog2/fields/stream.yml", + "/package/datasources/1.0.0/dataset/examplemetric/fields/stream.yml" ], "datasets": [ { @@ -254,5 +254,5 @@ } ], "download": "/epr/datasources/datasources-1.0.0.tar.gz", - "path": "/package/datasources-1.0.0" + "path": "/package/datasources/1.0.0" } \ No newline at end of file diff --git a/testdata/public/package/datasources-1.0.0/manifest.yml b/testdata/public/package/datasources/1.0.0/manifest.yml similarity index 100% rename from testdata/public/package/datasources-1.0.0/manifest.yml rename to testdata/public/package/datasources/1.0.0/manifest.yml diff --git a/testdata/public/package/default-pipeline-0.0.2/dataset/foo/elasticsearch/ingest-pipeline/default.json b/testdata/public/package/default-pipeline/0.0.2/dataset/foo/elasticsearch/ingest-pipeline/default.json similarity index 100% rename from testdata/public/package/default-pipeline-0.0.2/dataset/foo/elasticsearch/ingest-pipeline/default.json rename to testdata/public/package/default-pipeline/0.0.2/dataset/foo/elasticsearch/ingest-pipeline/default.json diff --git a/testdata/public/package/default-pipeline-0.0.2/dataset/foo/fields/stream.yml b/testdata/public/package/default-pipeline/0.0.2/dataset/foo/fields/stream.yml similarity index 100% rename from testdata/public/package/default-pipeline-0.0.2/dataset/foo/fields/stream.yml rename to testdata/public/package/default-pipeline/0.0.2/dataset/foo/fields/stream.yml diff --git a/testdata/public/package/default-pipeline-0.0.2/dataset/foo/manifest.yml b/testdata/public/package/default-pipeline/0.0.2/dataset/foo/manifest.yml similarity index 100% rename from testdata/public/package/default-pipeline-0.0.2/dataset/foo/manifest.yml rename to testdata/public/package/default-pipeline/0.0.2/dataset/foo/manifest.yml diff --git a/testdata/public/package/default-pipeline-0.0.2/docs/README.md b/testdata/public/package/default-pipeline/0.0.2/docs/README.md similarity index 100% rename from testdata/public/package/default-pipeline-0.0.2/docs/README.md rename to testdata/public/package/default-pipeline/0.0.2/docs/README.md diff --git a/testdata/public/package/default-pipeline-0.0.2/index.json b/testdata/public/package/default-pipeline/0.0.2/index.json similarity index 83% rename from testdata/public/package/default-pipeline-0.0.2/index.json rename to testdata/public/package/default-pipeline/0.0.2/index.json index d1ea20651..38fc055a8 100644 --- a/testdata/public/package/default-pipeline-0.0.2/index.json +++ b/testdata/public/package/default-pipeline/0.0.2/index.json @@ -15,11 +15,11 @@ "elasticsearch": {} }, "assets": [ - "/package/default-pipeline-0.0.2/manifest.yml", - "/package/default-pipeline-0.0.2/docs/README.md", - "/package/default-pipeline-0.0.2/dataset/foo/manifest.yml", - "/package/default-pipeline-0.0.2/dataset/foo/fields/stream.yml", - "/package/default-pipeline-0.0.2/dataset/foo/elasticsearch/ingest-pipeline/default.json" + "/package/default-pipeline/0.0.2/manifest.yml", + "/package/default-pipeline/0.0.2/docs/README.md", + "/package/default-pipeline/0.0.2/dataset/foo/manifest.yml", + "/package/default-pipeline/0.0.2/dataset/foo/fields/stream.yml", + "/package/default-pipeline/0.0.2/dataset/foo/elasticsearch/ingest-pipeline/default.json" ], "datasets": [ { @@ -74,5 +74,5 @@ } ], "download": "/epr/default-pipeline/default-pipeline-0.0.2.tar.gz", - "path": "/package/default-pipeline-0.0.2" + "path": "/package/default-pipeline/0.0.2" } \ No newline at end of file diff --git a/testdata/public/package/default-pipeline-0.0.2/manifest.yml b/testdata/public/package/default-pipeline/0.0.2/manifest.yml similarity index 100% rename from testdata/public/package/default-pipeline-0.0.2/manifest.yml rename to testdata/public/package/default-pipeline/0.0.2/manifest.yml diff --git a/testdata/public/package/example-0.0.2/index.json b/testdata/public/package/example-0.0.2/index.json deleted file mode 100644 index 99480b3d2..000000000 --- a/testdata/public/package/example-0.0.2/index.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "format_version": "1.0.0", - "name": "example", - "title": "Example", - "version": "0.0.2", - "readme": "/package/example-0.0.2/docs/README.md", - "license": "basic", - "description": "This is the example integration.", - "type": "integration", - "categories": [ - "logs" - ], - "requirement": { - "kibana": { - "versions": "\u003e=6.0.0" - }, - "elasticsearch": { - "versions": "\u003e=6.0.0 \u003c=6.8.0" - } - }, - "assets": [ - "/package/example-0.0.2/manifest.yml", - "/package/example-0.0.2/docs/README.md", - "/package/example-0.0.2/img/kibana-envoyproxy.jpg", - "/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-entry.json", - "/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-http.json", - "/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-json.json", - "/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-plaintext.json", - "/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-tcp.json", - "/package/example-0.0.2/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json", - "/package/example-0.0.2/kibana/index-pattern/filebeat-*.json", - "/package/example-0.0.2/kibana/infrastructure-ui-source/default.json", - "/package/example-0.0.2/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json", - "/package/example-0.0.2/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json", - "/package/example-0.0.2/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json", - "/package/example-0.0.2/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json", - "/package/example-0.0.2/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json", - "/package/example-0.0.2/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json" - ], - "download": "/epr/example/example-0.0.2.tar.gz", - "path": "/package/example-0.0.2" -} \ No newline at end of file diff --git a/testdata/public/package/example-0.0.2/docs/README.md b/testdata/public/package/example/0.0.2/docs/README.md similarity index 100% rename from testdata/public/package/example-0.0.2/docs/README.md rename to testdata/public/package/example/0.0.2/docs/README.md diff --git a/testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-entry.json b/testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-entry.json similarity index 100% rename from testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-entry.json rename to testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-entry.json diff --git a/testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-http.json b/testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-http.json similarity index 100% rename from testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-http.json rename to testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-http.json diff --git a/testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-json.json b/testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-json.json similarity index 100% rename from testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-json.json rename to testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-json.json diff --git a/testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-plaintext.json b/testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-plaintext.json similarity index 100% rename from testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-plaintext.json rename to testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-plaintext.json diff --git a/testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-tcp.json b/testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-tcp.json similarity index 100% rename from testdata/public/package/example-0.0.2/elasticsearch/ingest-pipeline/pipeline-tcp.json rename to testdata/public/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-tcp.json diff --git a/testdata/public/package/example-0.0.2/img/kibana-envoyproxy.jpg b/testdata/public/package/example/0.0.2/img/kibana-envoyproxy.jpg similarity index 100% rename from testdata/public/package/example-0.0.2/img/kibana-envoyproxy.jpg rename to testdata/public/package/example/0.0.2/img/kibana-envoyproxy.jpg diff --git a/testdata/public/package/example/0.0.2/index.json b/testdata/public/package/example/0.0.2/index.json new file mode 100644 index 000000000..f073f9fa6 --- /dev/null +++ b/testdata/public/package/example/0.0.2/index.json @@ -0,0 +1,42 @@ +{ + "format_version": "1.0.0", + "name": "example", + "title": "Example", + "version": "0.0.2", + "readme": "/package/example-0.0.2/docs/README.md", + "license": "basic", + "description": "This is the example integration.", + "type": "integration", + "categories": [ + "logs" + ], + "requirement": { + "kibana": { + "versions": "\u003e=6.0.0" + }, + "elasticsearch": { + "versions": "\u003e=6.0.0 \u003c=6.8.0" + } + }, + "assets": [ + "/package/example/0.0.2/manifest.yml", + "/package/example/0.0.2/docs/README.md", + "/package/example/0.0.2/img/kibana-envoyproxy.jpg", + "/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-entry.json", + "/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-http.json", + "/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-json.json", + "/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-plaintext.json", + "/package/example/0.0.2/elasticsearch/ingest-pipeline/pipeline-tcp.json", + "/package/example/0.0.2/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json", + "/package/example/0.0.2/kibana/index-pattern/filebeat-*.json", + "/package/example/0.0.2/kibana/infrastructure-ui-source/default.json", + "/package/example/0.0.2/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json", + "/package/example/0.0.2/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json", + "/package/example/0.0.2/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json", + "/package/example/0.0.2/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json", + "/package/example/0.0.2/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json", + "/package/example/0.0.2/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json" + ], + "download": "/epr/example/example-0.0.2.tar.gz", + "path": "/package/example/0.0.2" +} \ No newline at end of file diff --git a/testdata/public/package/example-0.0.2/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/0.0.2/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/0.0.2/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-0.0.2/kibana/index-pattern/filebeat-*.json b/testdata/public/package/example/0.0.2/kibana/index-pattern/filebeat-*.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/index-pattern/filebeat-*.json rename to testdata/public/package/example/0.0.2/kibana/index-pattern/filebeat-*.json diff --git a/testdata/public/package/example-0.0.2/kibana/infrastructure-ui-source/default.json b/testdata/public/package/example/0.0.2/kibana/infrastructure-ui-source/default.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/infrastructure-ui-source/default.json rename to testdata/public/package/example/0.0.2/kibana/infrastructure-ui-source/default.json diff --git a/testdata/public/package/example-0.0.2/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/0.0.2/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/0.0.2/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-0.0.2/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json b/testdata/public/package/example/0.0.2/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json rename to testdata/public/package/example/0.0.2/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json diff --git a/testdata/public/package/example-0.0.2/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/0.0.2/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/0.0.2/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-0.0.2/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/0.0.2/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/0.0.2/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-0.0.2/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/0.0.2/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/0.0.2/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-0.0.2/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/0.0.2/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-0.0.2/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/0.0.2/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-0.0.2/manifest.yml b/testdata/public/package/example/0.0.2/manifest.yml similarity index 100% rename from testdata/public/package/example-0.0.2/manifest.yml rename to testdata/public/package/example/0.0.2/manifest.yml diff --git a/testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-entry.json b/testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-entry.json similarity index 100% rename from testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-entry.json rename to testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-entry.json diff --git a/testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-http.json b/testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-http.json similarity index 100% rename from testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-http.json rename to testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-http.json diff --git a/testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-json.json b/testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-json.json similarity index 100% rename from testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-json.json rename to testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-json.json diff --git a/testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-plaintext.json b/testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-plaintext.json similarity index 100% rename from testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-plaintext.json rename to testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-plaintext.json diff --git a/testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-tcp.json b/testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-tcp.json similarity index 100% rename from testdata/public/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-tcp.json rename to testdata/public/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-tcp.json diff --git a/testdata/public/package/example-1.0.0/dataset/foo/fields/stream.yml b/testdata/public/package/example/1.0.0/dataset/foo/fields/stream.yml similarity index 100% rename from testdata/public/package/example-1.0.0/dataset/foo/fields/stream.yml rename to testdata/public/package/example/1.0.0/dataset/foo/fields/stream.yml diff --git a/testdata/public/package/example-1.0.0/dataset/foo/manifest.yml b/testdata/public/package/example/1.0.0/dataset/foo/manifest.yml similarity index 100% rename from testdata/public/package/example-1.0.0/dataset/foo/manifest.yml rename to testdata/public/package/example/1.0.0/dataset/foo/manifest.yml diff --git a/testdata/public/package/example-1.0.0/docs/README.md b/testdata/public/package/example/1.0.0/docs/README.md similarity index 100% rename from testdata/public/package/example-1.0.0/docs/README.md rename to testdata/public/package/example/1.0.0/docs/README.md diff --git a/testdata/public/package/example-1.0.0/img/icon.png b/testdata/public/package/example/1.0.0/img/icon.png similarity index 100% rename from testdata/public/package/example-1.0.0/img/icon.png rename to testdata/public/package/example/1.0.0/img/icon.png diff --git a/testdata/public/package/example-1.0.0/img/kibana-envoyproxy.jpg b/testdata/public/package/example/1.0.0/img/kibana-envoyproxy.jpg similarity index 100% rename from testdata/public/package/example-1.0.0/img/kibana-envoyproxy.jpg rename to testdata/public/package/example/1.0.0/img/kibana-envoyproxy.jpg diff --git a/testdata/public/package/example-1.0.0/index.json b/testdata/public/package/example/1.0.0/index.json similarity index 67% rename from testdata/public/package/example-1.0.0/index.json rename to testdata/public/package/example/1.0.0/index.json index 5a1094e3e..5784def8b 100644 --- a/testdata/public/package/example-1.0.0/index.json +++ b/testdata/public/package/example/1.0.0/index.json @@ -33,25 +33,25 @@ } ], "assets": [ - "/package/example-1.0.0/manifest.yml", - "/package/example-1.0.0/docs/README.md", - "/package/example-1.0.0/img/icon.png", - "/package/example-1.0.0/img/kibana-envoyproxy.jpg", - "/package/example-1.0.0/dataset/foo/manifest.yml", - "/package/example-1.0.0/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/index-pattern/filebeat-*.json", - "/package/example-1.0.0/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json", - "/package/example-1.0.0/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json", - "/package/example-1.0.0/dataset/foo/fields/stream.yml", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-entry.json", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-http.json", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-json.json", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-plaintext.json", - "/package/example-1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-tcp.json" + "/package/example/1.0.0/manifest.yml", + "/package/example/1.0.0/docs/README.md", + "/package/example/1.0.0/img/icon.png", + "/package/example/1.0.0/img/kibana-envoyproxy.jpg", + "/package/example/1.0.0/dataset/foo/manifest.yml", + "/package/example/1.0.0/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/index-pattern/filebeat-*.json", + "/package/example/1.0.0/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json", + "/package/example/1.0.0/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json", + "/package/example/1.0.0/dataset/foo/fields/stream.yml", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-entry.json", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-http.json", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-json.json", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-plaintext.json", + "/package/example/1.0.0/dataset/foo/elasticsearch/ingest-pipeline/pipeline-tcp.json" ], "datasets": [ { @@ -106,5 +106,5 @@ } ], "download": "/epr/example/example-1.0.0.tar.gz", - "path": "/package/example-1.0.0" + "path": "/package/example/1.0.0" } \ No newline at end of file diff --git a/testdata/public/package/example-1.0.0/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/1.0.0/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-1.0.0/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/1.0.0/kibana/dashboard/0c610510-5cbd-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-1.0.0/kibana/index-pattern/filebeat-*.json b/testdata/public/package/example/1.0.0/kibana/index-pattern/filebeat-*.json similarity index 100% rename from testdata/public/package/example-1.0.0/kibana/index-pattern/filebeat-*.json rename to testdata/public/package/example/1.0.0/kibana/index-pattern/filebeat-*.json diff --git a/testdata/public/package/example-1.0.0/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/1.0.0/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-1.0.0/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/1.0.0/kibana/visualization/0a994af0-5c9d-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-1.0.0/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json b/testdata/public/package/example/1.0.0/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json similarity index 100% rename from testdata/public/package/example-1.0.0/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json rename to testdata/public/package/example/1.0.0/kibana/visualization/36f872a0-5c03-11e9-85b4-19d0072eb4f2.json diff --git a/testdata/public/package/example-1.0.0/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/1.0.0/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-1.0.0/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/1.0.0/kibana/visualization/38f96190-5c99-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-1.0.0/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/1.0.0/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-1.0.0/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/1.0.0/kibana/visualization/7e4084e0-5c99-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-1.0.0/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/1.0.0/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-1.0.0/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/1.0.0/kibana/visualization/80844540-5c97-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-1.0.0/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json b/testdata/public/package/example/1.0.0/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json similarity index 100% rename from testdata/public/package/example-1.0.0/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json rename to testdata/public/package/example/1.0.0/kibana/visualization/ab48c3f0-5ca6-11e9-8477-077ec9664dbd.json diff --git a/testdata/public/package/example-1.0.0/manifest.yml b/testdata/public/package/example/1.0.0/manifest.yml similarity index 100% rename from testdata/public/package/example-1.0.0/manifest.yml rename to testdata/public/package/example/1.0.0/manifest.yml diff --git a/testdata/public/package/foo-1.0.0/docs/README.md b/testdata/public/package/foo/1.0.0/docs/README.md similarity index 100% rename from testdata/public/package/foo-1.0.0/docs/README.md rename to testdata/public/package/foo/1.0.0/docs/README.md diff --git a/testdata/public/package/foo-1.0.0/index.json b/testdata/public/package/foo/1.0.0/index.json similarity index 81% rename from testdata/public/package/foo-1.0.0/index.json rename to testdata/public/package/foo/1.0.0/index.json index 6a56c904f..73fcd226a 100644 --- a/testdata/public/package/foo-1.0.0/index.json +++ b/testdata/public/package/foo/1.0.0/index.json @@ -19,9 +19,9 @@ } }, "assets": [ - "/package/foo-1.0.0/manifest.yml", - "/package/foo-1.0.0/docs/README.md" + "/package/foo/1.0.0/manifest.yml", + "/package/foo/1.0.0/docs/README.md" ], "download": "/epr/foo/foo-1.0.0.tar.gz", - "path": "/package/foo-1.0.0" + "path": "/package/foo/1.0.0" } \ No newline at end of file diff --git a/testdata/public/package/foo-1.0.0/manifest.yml b/testdata/public/package/foo/1.0.0/manifest.yml similarity index 100% rename from testdata/public/package/foo-1.0.0/manifest.yml rename to testdata/public/package/foo/1.0.0/manifest.yml diff --git a/testdata/public/package/internal-1.2.0/docs/README.md b/testdata/public/package/internal/1.2.0/docs/README.md similarity index 100% rename from testdata/public/package/internal-1.2.0/docs/README.md rename to testdata/public/package/internal/1.2.0/docs/README.md diff --git a/testdata/public/package/internal-1.2.0/index.json b/testdata/public/package/internal/1.2.0/index.json similarity index 76% rename from testdata/public/package/internal-1.2.0/index.json rename to testdata/public/package/internal/1.2.0/index.json index 9d95cd643..affe77530 100644 --- a/testdata/public/package/internal-1.2.0/index.json +++ b/testdata/public/package/internal/1.2.0/index.json @@ -13,10 +13,10 @@ "elasticsearch": {} }, "assets": [ - "/package/internal-1.2.0/manifest.yml", - "/package/internal-1.2.0/docs/README.md" + "/package/internal/1.2.0/manifest.yml", + "/package/internal/1.2.0/docs/README.md" ], "internal": true, "download": "/epr/internal/internal-1.2.0.tar.gz", - "path": "/package/internal-1.2.0" + "path": "/package/internal/1.2.0" } \ No newline at end of file diff --git a/testdata/public/package/internal-1.2.0/manifest.yml b/testdata/public/package/internal/1.2.0/manifest.yml similarity index 100% rename from testdata/public/package/internal-1.2.0/manifest.yml rename to testdata/public/package/internal/1.2.0/manifest.yml diff --git a/util/package.go b/util/package.go index ebfb48e03..bfdfe831d 100644 --- a/util/package.go +++ b/util/package.go @@ -370,7 +370,7 @@ func (p *Package) LoadDataSets(packagePath string) error { } func (p *Package) GetPath() string { - return p.Name + "-" + p.Version + return p.Name + "/" + p.Version } func (p *Package) GetDownloadPath() string { @@ -378,5 +378,5 @@ func (p *Package) GetDownloadPath() string { } func (p *Package) GetUrlPath() string { - return path.Join("/package", p.Name+"-"+p.Version) + return path.Join("/package", p.Name, p.Version) } diff --git a/util/packages.go b/util/packages.go index ed592aa7a..19e45b4b7 100644 --- a/util/packages.go +++ b/util/packages.go @@ -5,7 +5,7 @@ package util import ( - "io/ioutil" + "os" "path/filepath" ) @@ -25,32 +25,37 @@ func GetPackages(packagesBasePath string) ([]Package, error) { return nil, err } - for _, i := range packagePaths { - p, err := NewPackage(filepath.Join(packagesBasePath, i)) + for _, path := range packagePaths { + p, err := NewPackage(path) if err != nil { return nil, err } packageList = append(packageList, *p) } + return packageList, nil } // getPackagePaths returns list of available packages, one for each version. func getPackagePaths(packagesPath string) ([]string, error) { - files, err := ioutil.ReadDir(packagesPath) + allPaths, err := filepath.Glob(packagesPath + "/*/*") if err != nil { return nil, err } - var packages []string - for _, f := range files { - if !f.IsDir() { + var packagePaths []string + for _, path := range allPaths { + p, err := os.Stat(path) + if err != nil { + return nil, err + } + if !p.IsDir() { continue } - packages = append(packages, f.Name()) + packagePaths = append(packagePaths, path) } - return packages, nil + return packagePaths, nil }