mirror of
https://github.com/grafana/grafana.git
synced 2025-09-22 20:19:05 +08:00
Grafana CLI Wire Runner (#41012)
* Set up Wire build graph * Remove enterprise Wire set * Move runner package outside commands * Update Makefile (gen-go path) * Minor prettier fix * Include new Wire enterprise file into .gitignore * Update Wire deps * Update the grabpl version Co-authored-by: Dan Cech <dcech@grafana.com>
This commit is contained in:

committed by
GitHub

parent
1b99d88337
commit
d49230d291
54
.drone.yml
54
.drone.yml
@ -11,7 +11,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -106,7 +106,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -279,7 +279,7 @@ services:
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -343,7 +343,7 @@ services:
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -681,7 +681,7 @@ steps:
|
|||||||
name: identify-runner
|
name: identify-runner
|
||||||
- commands:
|
- commands:
|
||||||
- $$ProgressPreference = "SilentlyContinue"
|
- $$ProgressPreference = "SilentlyContinue"
|
||||||
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/windows/grabpl.exe
|
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/windows/grabpl.exe
|
||||||
-OutFile grabpl.exe
|
-OutFile grabpl.exe
|
||||||
image: grafana/ci-wix:0.1.1
|
image: grafana/ci-wix:0.1.1
|
||||||
name: initialize
|
name: initialize
|
||||||
@ -724,7 +724,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -814,7 +814,7 @@ services:
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -1113,7 +1113,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -1123,7 +1123,7 @@ steps:
|
|||||||
name: identify-runner
|
name: identify-runner
|
||||||
- commands:
|
- commands:
|
||||||
- $$ProgressPreference = "SilentlyContinue"
|
- $$ProgressPreference = "SilentlyContinue"
|
||||||
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/windows/grabpl.exe
|
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/windows/grabpl.exe
|
||||||
-OutFile grabpl.exe
|
-OutFile grabpl.exe
|
||||||
image: grafana/ci-wix:0.1.1
|
image: grafana/ci-wix:0.1.1
|
||||||
name: initialize
|
name: initialize
|
||||||
@ -1186,7 +1186,7 @@ services:
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -1591,7 +1591,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -1601,7 +1601,7 @@ steps:
|
|||||||
name: identify-runner
|
name: identify-runner
|
||||||
- commands:
|
- commands:
|
||||||
- $$ProgressPreference = "SilentlyContinue"
|
- $$ProgressPreference = "SilentlyContinue"
|
||||||
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/windows/grabpl.exe
|
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/windows/grabpl.exe
|
||||||
-OutFile grabpl.exe
|
-OutFile grabpl.exe
|
||||||
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
|
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
|
||||||
- cd grafana-enterprise
|
- cd grafana-enterprise
|
||||||
@ -1662,7 +1662,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -1771,7 +1771,7 @@ services:
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -2058,7 +2058,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -2068,7 +2068,7 @@ steps:
|
|||||||
name: identify-runner
|
name: identify-runner
|
||||||
- commands:
|
- commands:
|
||||||
- $$ProgressPreference = "SilentlyContinue"
|
- $$ProgressPreference = "SilentlyContinue"
|
||||||
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/windows/grabpl.exe
|
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/windows/grabpl.exe
|
||||||
-OutFile grabpl.exe
|
-OutFile grabpl.exe
|
||||||
image: grafana/ci-wix:0.1.1
|
image: grafana/ci-wix:0.1.1
|
||||||
name: initialize
|
name: initialize
|
||||||
@ -2132,7 +2132,7 @@ services:
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -2529,7 +2529,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -2539,7 +2539,7 @@ steps:
|
|||||||
name: identify-runner
|
name: identify-runner
|
||||||
- commands:
|
- commands:
|
||||||
- $$ProgressPreference = "SilentlyContinue"
|
- $$ProgressPreference = "SilentlyContinue"
|
||||||
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/windows/grabpl.exe
|
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/windows/grabpl.exe
|
||||||
-OutFile grabpl.exe
|
-OutFile grabpl.exe
|
||||||
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
|
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
|
||||||
- cd grafana-enterprise
|
- cd grafana-enterprise
|
||||||
@ -2601,7 +2601,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -2715,7 +2715,7 @@ services:
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -2979,7 +2979,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -2989,7 +2989,7 @@ steps:
|
|||||||
name: identify-runner
|
name: identify-runner
|
||||||
- commands:
|
- commands:
|
||||||
- $$ProgressPreference = "SilentlyContinue"
|
- $$ProgressPreference = "SilentlyContinue"
|
||||||
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/windows/grabpl.exe
|
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/windows/grabpl.exe
|
||||||
-OutFile grabpl.exe
|
-OutFile grabpl.exe
|
||||||
image: grafana/ci-wix:0.1.1
|
image: grafana/ci-wix:0.1.1
|
||||||
name: initialize
|
name: initialize
|
||||||
@ -3048,7 +3048,7 @@ services:
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -3449,7 +3449,7 @@ services: []
|
|||||||
steps:
|
steps:
|
||||||
- commands:
|
- commands:
|
||||||
- mkdir -p bin
|
- mkdir -p bin
|
||||||
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/grabpl
|
- curl -fL -o bin/grabpl https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/grabpl
|
||||||
- chmod +x bin/grabpl
|
- chmod +x bin/grabpl
|
||||||
image: byrnedo/alpine-curl:0.1.8
|
image: byrnedo/alpine-curl:0.1.8
|
||||||
name: grabpl
|
name: grabpl
|
||||||
@ -3459,7 +3459,7 @@ steps:
|
|||||||
name: identify-runner
|
name: identify-runner
|
||||||
- commands:
|
- commands:
|
||||||
- $$ProgressPreference = "SilentlyContinue"
|
- $$ProgressPreference = "SilentlyContinue"
|
||||||
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.5.5/windows/grabpl.exe
|
- Invoke-WebRequest https://grafana-downloads.storage.googleapis.com/grafana-build-pipeline/v2.6.0/windows/grabpl.exe
|
||||||
-OutFile grabpl.exe
|
-OutFile grabpl.exe
|
||||||
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
|
- git clone "https://$$env:GITHUB_TOKEN@github.com/grafana/grafana-enterprise.git"
|
||||||
- cd grafana-enterprise
|
- cd grafana-enterprise
|
||||||
@ -3582,6 +3582,6 @@ kind: secret
|
|||||||
name: drone_token
|
name: drone_token
|
||||||
---
|
---
|
||||||
kind: signature
|
kind: signature
|
||||||
hmac: e731dba815e5a79a90813e0c99dde194ca444a3d254df15a6189f59a8263f5de
|
hmac: 98b4a289aefb0f9aaa664b34ed6d9b36707ec384e93b08eebc45bacecc0a0698
|
||||||
|
|
||||||
...
|
...
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -88,6 +88,7 @@ profile.cov
|
|||||||
/pkg/cmd/grafana-server/debug
|
/pkg/cmd/grafana-server/debug
|
||||||
/pkg/extensions/*
|
/pkg/extensions/*
|
||||||
/pkg/server/wireexts_enterprise.go
|
/pkg/server/wireexts_enterprise.go
|
||||||
|
/pkg/cmd/grafana-cli/runner/wireexts_enterprise.go
|
||||||
!/pkg/extensions/main.go
|
!/pkg/extensions/main.go
|
||||||
/public/app/extensions
|
/public/app/extensions
|
||||||
debug.test
|
debug.test
|
||||||
|
2
Makefile
2
Makefile
@ -32,7 +32,7 @@ node_modules: package.json yarn.lock ## Install node modules.
|
|||||||
|
|
||||||
gen-go: $(WIRE)
|
gen-go: $(WIRE)
|
||||||
@echo "generate go files"
|
@echo "generate go files"
|
||||||
$(WIRE) gen -tags $(WIRE_TAGS) ./pkg/server
|
$(WIRE) gen -tags $(WIRE_TAGS) ./pkg/server ./pkg/cmd/grafana-cli/runner
|
||||||
|
|
||||||
build-go: gen-go ## Build all Go binaries.
|
build-go: gen-go ## Build all Go binaries.
|
||||||
@echo "build go files"
|
@echo "build go files"
|
||||||
|
@ -121,7 +121,7 @@ You can see an example implementation above of the IsDisabled method and custom
|
|||||||
|
|
||||||
## Run Wire / generate code
|
## Run Wire / generate code
|
||||||
|
|
||||||
When running `make run` it will call `make gen-go` on the first run. `gen-go` in turn will call the wire binary and generate the code in [wire_gen.go](/pkg/server/wire_gen.go). The wire binary is installed using [bingo](https://github.com/bwplotka/bingo) which will make sure to download and install all the tools needed, including the Wire binary at using a specific version.
|
When running `make run` it will call `make gen-go` on the first run. `gen-go` in turn will call the wire binary and generate the code in [wire_gen.go](/pkg/server/wire_gen.go) and [wire_gen.go](/pkg/cmd/grafana-cli/runner/wire_gen.go). The wire binary is installed using [bingo](https://github.com/bwplotka/bingo) which will make sure to download and install all the tools needed, including the Wire binary at using a specific version.
|
||||||
|
|
||||||
## OSS vs Enterprise
|
## OSS vs Enterprise
|
||||||
|
|
||||||
|
@ -7,6 +7,7 @@ import (
|
|||||||
"github.com/grafana/grafana/pkg/bus"
|
"github.com/grafana/grafana/pkg/bus"
|
||||||
"github.com/grafana/grafana/pkg/cmd/grafana-cli/commands/datamigrations"
|
"github.com/grafana/grafana/pkg/cmd/grafana-cli/commands/datamigrations"
|
||||||
"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
|
"github.com/grafana/grafana/pkg/cmd/grafana-cli/logger"
|
||||||
|
"github.com/grafana/grafana/pkg/cmd/grafana-cli/runner"
|
||||||
"github.com/grafana/grafana/pkg/cmd/grafana-cli/services"
|
"github.com/grafana/grafana/pkg/cmd/grafana-cli/services"
|
||||||
"github.com/grafana/grafana/pkg/cmd/grafana-cli/utils"
|
"github.com/grafana/grafana/pkg/cmd/grafana-cli/utils"
|
||||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||||
@ -16,23 +17,37 @@ import (
|
|||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
func runDbCommand(command func(commandLine utils.CommandLine, sqlStore *sqlstore.SQLStore) error) func(context *cli.Context) error {
|
// nolint: unused,deadcode
|
||||||
|
func runRunnerCommand(command func(commandLine utils.CommandLine, runner runner.Runner) error) func(context *cli.Context) error {
|
||||||
return func(context *cli.Context) error {
|
return func(context *cli.Context) error {
|
||||||
cmd := &utils.ContextCommandLine{Context: context}
|
cmd := &utils.ContextCommandLine{Context: context}
|
||||||
debug := cmd.Bool("debug")
|
|
||||||
|
|
||||||
configOptions := strings.Split(cmd.String("configOverrides"), " ")
|
cfg, err := initCfg(cmd)
|
||||||
cfg, err := setting.NewCfgFromArgs(setting.CommandLineArgs{
|
|
||||||
Config: cmd.ConfigFile(),
|
|
||||||
HomePath: cmd.HomePath(),
|
|
||||||
Args: append(configOptions, cmd.Args().Slice()...), // tailing arguments have precedence over the options string
|
|
||||||
})
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errutil.Wrap("failed to load configuration", err)
|
return errutil.Wrap("failed to load configuration", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if debug {
|
r, err := runner.Initialize(cfg)
|
||||||
cfg.LogConfigSources()
|
if err != nil {
|
||||||
|
return errutil.Wrap("failed to initialize runner", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := command(cmd, r); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
logger.Info("\n\n")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func runDbCommand(command func(commandLine utils.CommandLine, sqlStore *sqlstore.SQLStore) error) func(context *cli.Context) error {
|
||||||
|
return func(context *cli.Context) error {
|
||||||
|
cmd := &utils.ContextCommandLine{Context: context}
|
||||||
|
|
||||||
|
cfg, err := initCfg(cmd)
|
||||||
|
if err != nil {
|
||||||
|
return errutil.Wrap("failed to load configuration", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
sqlStore, err := sqlstore.ProvideService(cfg, nil, bus.GetBus(), &migrations.OSSMigrations{})
|
sqlStore, err := sqlstore.ProvideService(cfg, nil, bus.GetBus(), &migrations.OSSMigrations{})
|
||||||
@ -49,6 +64,25 @@ func runDbCommand(command func(commandLine utils.CommandLine, sqlStore *sqlstore
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initCfg(cmd *utils.ContextCommandLine) (*setting.Cfg, error) {
|
||||||
|
configOptions := strings.Split(cmd.String("configOverrides"), " ")
|
||||||
|
cfg, err := setting.NewCfgFromArgs(setting.CommandLineArgs{
|
||||||
|
Config: cmd.ConfigFile(),
|
||||||
|
HomePath: cmd.HomePath(),
|
||||||
|
Args: append(configOptions, cmd.Args().Slice()...), // tailing arguments have precedence over the options string
|
||||||
|
})
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if cmd.Bool("debug") {
|
||||||
|
cfg.LogConfigSources()
|
||||||
|
}
|
||||||
|
|
||||||
|
return cfg, nil
|
||||||
|
}
|
||||||
|
|
||||||
func runPluginCommand(command func(commandLine utils.CommandLine) error) func(context *cli.Context) error {
|
func runPluginCommand(command func(commandLine utils.CommandLine) error) func(context *cli.Context) error {
|
||||||
return func(context *cli.Context) error {
|
return func(context *cli.Context) error {
|
||||||
cmd := &utils.ContextCommandLine{Context: context}
|
cmd := &utils.ContextCommandLine{Context: context}
|
||||||
|
27
pkg/cmd/grafana-cli/runner/runner.go
Normal file
27
pkg/cmd/grafana-cli/runner/runner.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package runner
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/grafana/grafana/pkg/services/encryption"
|
||||||
|
"github.com/grafana/grafana/pkg/services/secrets"
|
||||||
|
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||||
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Runner struct {
|
||||||
|
Cfg *setting.Cfg
|
||||||
|
SQLStore *sqlstore.SQLStore
|
||||||
|
SettingsProvider setting.Provider
|
||||||
|
EncryptionService encryption.Internal
|
||||||
|
SecretsService secrets.Service
|
||||||
|
}
|
||||||
|
|
||||||
|
func New(cfg *setting.Cfg, sqlStore *sqlstore.SQLStore, settingsProvider setting.Provider,
|
||||||
|
encryptionService encryption.Internal, secretsService secrets.Service) Runner {
|
||||||
|
return Runner{
|
||||||
|
Cfg: cfg,
|
||||||
|
SQLStore: sqlStore,
|
||||||
|
SettingsProvider: settingsProvider,
|
||||||
|
EncryptionService: encryptionService,
|
||||||
|
SecretsService: secretsService,
|
||||||
|
}
|
||||||
|
}
|
76
pkg/cmd/grafana-cli/runner/wire.go
Normal file
76
pkg/cmd/grafana-cli/runner/wire.go
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
//go:build wireinject
|
||||||
|
// +build wireinject
|
||||||
|
|
||||||
|
package runner
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
|
"github.com/google/wire"
|
||||||
|
"github.com/grafana/grafana/pkg/api/routing"
|
||||||
|
"github.com/grafana/grafana/pkg/bus"
|
||||||
|
"github.com/grafana/grafana/pkg/infra/localcache"
|
||||||
|
"github.com/grafana/grafana/pkg/infra/usagestats"
|
||||||
|
"github.com/grafana/grafana/pkg/services/secrets"
|
||||||
|
secretsDatabase "github.com/grafana/grafana/pkg/services/secrets/database"
|
||||||
|
secretsManager "github.com/grafana/grafana/pkg/services/secrets/manager"
|
||||||
|
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||||
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
|
"github.com/grafana/grafana/pkg/web"
|
||||||
|
)
|
||||||
|
|
||||||
|
var wireSet = wire.NewSet(
|
||||||
|
New,
|
||||||
|
localcache.ProvideService,
|
||||||
|
bus.ProvideBus,
|
||||||
|
wire.Bind(new(bus.Bus), new(*bus.InProcBus)),
|
||||||
|
sqlstore.ProvideService,
|
||||||
|
wire.InterfaceValue(new(usagestats.Service), noOpUsageStats{}),
|
||||||
|
wire.InterfaceValue(new(routing.RouteRegister), noOpRouteRegister{}),
|
||||||
|
secretsDatabase.ProvideSecretsStore,
|
||||||
|
wire.Bind(new(secrets.Store), new(*secretsDatabase.SecretsStoreImpl)),
|
||||||
|
secretsManager.ProvideSecretsService,
|
||||||
|
wire.Bind(new(secrets.Service), new(*secretsManager.SecretsService)),
|
||||||
|
)
|
||||||
|
|
||||||
|
func Initialize(cfg *setting.Cfg) (Runner, error) {
|
||||||
|
wire.Build(wireExtsSet)
|
||||||
|
return Runner{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NoOp implementations of those dependencies that makes no sense to
|
||||||
|
// inject on CLI command executions (like the route registerer, for instance).
|
||||||
|
|
||||||
|
type noOpUsageStats struct{}
|
||||||
|
|
||||||
|
func (noOpUsageStats) GetUsageReport(context.Context) (usagestats.Report, error) {
|
||||||
|
return usagestats.Report{}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (noOpUsageStats) RegisterMetricsFunc(_ usagestats.MetricsFunc) {}
|
||||||
|
|
||||||
|
func (noOpUsageStats) RegisterSendReportCallback(_ usagestats.SendReportCallbackFunc) {}
|
||||||
|
|
||||||
|
func (noOpUsageStats) ShouldBeReported(string) bool { return false }
|
||||||
|
|
||||||
|
type noOpRouteRegister struct{}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Get(string, ...web.Handler) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Post(string, ...web.Handler) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Delete(string, ...web.Handler) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Put(string, ...web.Handler) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Patch(string, ...web.Handler) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Any(string, ...web.Handler) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Group(string, func(routing.RouteRegister), ...web.Handler) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Insert(string, func(routing.RouteRegister), ...web.Handler) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Register(routing.Router) {}
|
||||||
|
|
||||||
|
func (noOpRouteRegister) Reset() {}
|
27
pkg/cmd/grafana-cli/runner/wireexts_oss.go
Normal file
27
pkg/cmd/grafana-cli/runner/wireexts_oss.go
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
//go:build wireinject && oss
|
||||||
|
// +build wireinject,oss
|
||||||
|
|
||||||
|
package runner
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/google/wire"
|
||||||
|
"github.com/grafana/grafana/pkg/registry"
|
||||||
|
"github.com/grafana/grafana/pkg/services/encryption"
|
||||||
|
"github.com/grafana/grafana/pkg/services/encryption/ossencryption"
|
||||||
|
"github.com/grafana/grafana/pkg/services/kmsproviders"
|
||||||
|
"github.com/grafana/grafana/pkg/services/kmsproviders/osskmsproviders"
|
||||||
|
"github.com/grafana/grafana/pkg/services/sqlstore/migrations"
|
||||||
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
|
)
|
||||||
|
|
||||||
|
var wireExtsSet = wire.NewSet(
|
||||||
|
wireSet,
|
||||||
|
migrations.ProvideOSSMigrations,
|
||||||
|
wire.Bind(new(registry.DatabaseMigrator), new(*migrations.OSSMigrations)),
|
||||||
|
setting.ProvideProvider,
|
||||||
|
wire.Bind(new(setting.Provider), new(*setting.OSSImpl)),
|
||||||
|
osskmsproviders.ProvideService,
|
||||||
|
wire.Bind(new(kmsproviders.Service), new(osskmsproviders.Service)),
|
||||||
|
ossencryption.ProvideService,
|
||||||
|
wire.Bind(new(encryption.Internal), new(*ossencryption.Service)),
|
||||||
|
)
|
@ -3,14 +3,12 @@ package manager
|
|||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/services/kmsproviders/osskmsproviders"
|
|
||||||
|
|
||||||
"github.com/grafana/grafana/pkg/services/encryption/ossencryption"
|
"github.com/grafana/grafana/pkg/services/encryption/ossencryption"
|
||||||
|
"github.com/grafana/grafana/pkg/services/kmsproviders/osskmsproviders"
|
||||||
"github.com/grafana/grafana/pkg/services/secrets"
|
"github.com/grafana/grafana/pkg/services/secrets"
|
||||||
"github.com/grafana/grafana/pkg/setting"
|
"github.com/grafana/grafana/pkg/setting"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
"gopkg.in/ini.v1"
|
"gopkg.in/ini.v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
load('scripts/drone/vault.star', 'from_secret', 'github_token', 'pull_secret', 'drone_token')
|
load('scripts/drone/vault.star', 'from_secret', 'github_token', 'pull_secret', 'drone_token')
|
||||||
|
|
||||||
grabpl_version = '2.5.5'
|
grabpl_version = '2.6.0'
|
||||||
build_image = 'grafana/build-container:1.4.5'
|
build_image = 'grafana/build-container:1.4.5'
|
||||||
publish_image = 'grafana/grafana-ci-deploy:1.3.1'
|
publish_image = 'grafana/grafana-ci-deploy:1.3.1'
|
||||||
grafana_docker_image = 'grafana/drone-grafana-docker:0.3.2'
|
grafana_docker_image = 'grafana/drone-grafana-docker:0.3.2'
|
||||||
|
Reference in New Issue
Block a user