mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
CLI: Fix config flag being ignored
Passing --config had no effect when passed. It will now be applied as the last config file and before any env var overrrides.
This commit is contained in:
parent
9223c95481
commit
b6428b08d0
3
main.go
3
main.go
@ -39,8 +39,7 @@ func main() {
|
||||
app.Flags = append(app.Flags, []cli.Flag{
|
||||
cli.StringFlag{
|
||||
Name: "config",
|
||||
Value: "grafana.ini",
|
||||
Usage: "path to config file",
|
||||
Usage: "path to grafana.ini config file",
|
||||
},
|
||||
}...)
|
||||
app.Run(os.Args)
|
||||
|
@ -6,7 +6,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"os"
|
||||
"text/tabwriter"
|
||||
@ -34,9 +33,7 @@ var DeleteAccount = cli.Command{
|
||||
}
|
||||
|
||||
func listAccounts(c *cli.Context) {
|
||||
setting.NewConfigContext()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
initRuntime(c)
|
||||
|
||||
accountsQuery := m.GetAccountsQuery{}
|
||||
if err := bus.Dispatch(&accountsQuery); err != nil {
|
||||
@ -53,9 +50,7 @@ func listAccounts(c *cli.Context) {
|
||||
}
|
||||
|
||||
func createAccount(c *cli.Context) {
|
||||
setting.NewConfigContext()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
initRuntime(c)
|
||||
|
||||
if !c.Args().Present() {
|
||||
log.ConsoleFatal("Account name arg is required")
|
||||
@ -80,9 +75,7 @@ func createAccount(c *cli.Context) {
|
||||
}
|
||||
|
||||
func deleteAccount(c *cli.Context) {
|
||||
setting.NewConfigContext()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
initRuntime(c)
|
||||
|
||||
if !c.Args().Present() {
|
||||
log.ConsoleFatal("Account name arg is required")
|
||||
|
13
pkg/cmd/common.go
Normal file
13
pkg/cmd/common.go
Normal file
@ -0,0 +1,13 @@
|
||||
package cmd
|
||||
|
||||
import (
|
||||
"github.com/codegangsta/cli"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
func initRuntime(c *cli.Context) {
|
||||
setting.NewConfigContext(c.GlobalString("config"))
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
}
|
@ -10,8 +10,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
)
|
||||
|
||||
var ImportDashboard = cli.Command{
|
||||
@ -48,9 +46,7 @@ func runImport(c *cli.Context) {
|
||||
|
||||
accountName := c.Args().First()
|
||||
|
||||
setting.NewConfigContext()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
initRuntime(c)
|
||||
|
||||
accountQuery := m.GetAccountByNameQuery{Name: accountName}
|
||||
if err := bus.Dispatch(&accountQuery); err != nil {
|
||||
|
@ -6,8 +6,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/bus"
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
m "github.com/grafana/grafana/pkg/models"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"os"
|
||||
"text/tabwriter"
|
||||
)
|
||||
@ -69,9 +67,7 @@ var (
|
||||
)
|
||||
|
||||
func createDataSource(c *cli.Context) {
|
||||
setting.NewConfigContext()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
initRuntime(c)
|
||||
|
||||
if len(c.Args()) != 3 {
|
||||
log.ConsoleFatal("Missing required arguments")
|
||||
@ -131,9 +127,7 @@ func createDataSource(c *cli.Context) {
|
||||
}
|
||||
|
||||
func listDatasources(c *cli.Context) {
|
||||
setting.NewConfigContext()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
initRuntime(c)
|
||||
|
||||
if !c.Args().Present() {
|
||||
log.ConsoleFatal("Account name arg is required")
|
||||
@ -163,9 +157,7 @@ func listDatasources(c *cli.Context) {
|
||||
}
|
||||
|
||||
func describeDataSource(c *cli.Context) {
|
||||
setting.NewConfigContext()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
initRuntime(c)
|
||||
|
||||
if len(c.Args()) != 2 {
|
||||
log.ConsoleFatal("Account and datasource name args are required")
|
||||
@ -206,9 +198,7 @@ func describeDataSource(c *cli.Context) {
|
||||
}
|
||||
|
||||
func deleteDataSource(c *cli.Context) {
|
||||
setting.NewConfigContext()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
initRuntime(c)
|
||||
|
||||
if len(c.Args()) != 2 {
|
||||
log.ConsoleFatal("Account and datasource name args are required")
|
||||
|
@ -17,7 +17,6 @@ import (
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
"github.com/grafana/grafana/pkg/middleware"
|
||||
"github.com/grafana/grafana/pkg/services/eventpublisher"
|
||||
"github.com/grafana/grafana/pkg/services/sqlstore"
|
||||
"github.com/grafana/grafana/pkg/setting"
|
||||
"github.com/grafana/grafana/pkg/social"
|
||||
)
|
||||
@ -71,10 +70,9 @@ func runWeb(c *cli.Context) {
|
||||
log.Info("Starting Grafana")
|
||||
log.Info("Version: %v, Commit: %v, Build date: %v", setting.BuildVersion, setting.BuildCommit, time.Unix(setting.BuildStamp, 0))
|
||||
|
||||
setting.NewConfigContext()
|
||||
initRuntime(c)
|
||||
|
||||
social.NewOAuthService()
|
||||
sqlstore.NewEngine()
|
||||
sqlstore.EnsureAdminUser()
|
||||
eventpublisher.Init()
|
||||
|
||||
var err error
|
||||
|
@ -164,9 +164,13 @@ func loadEnvVariableOverrides() {
|
||||
}
|
||||
}
|
||||
|
||||
func NewConfigContext() {
|
||||
func NewConfigContext(config string) {
|
||||
configFiles := findConfigFiles()
|
||||
|
||||
if config != "" {
|
||||
configFiles = append(configFiles, config)
|
||||
}
|
||||
|
||||
//log.Info("Loading config files: %v", configFiles)
|
||||
var err error
|
||||
|
||||
|
@ -15,7 +15,7 @@ func TestLoadingSettings(t *testing.T) {
|
||||
Convey("Testing loading settings from ini file", t, func() {
|
||||
|
||||
Convey("Given the default ini files", func() {
|
||||
NewConfigContext()
|
||||
NewConfigContext("")
|
||||
|
||||
So(AppName, ShouldEqual, "Grafana")
|
||||
So(AdminUser, ShouldEqual, "admin")
|
||||
@ -23,7 +23,7 @@ func TestLoadingSettings(t *testing.T) {
|
||||
|
||||
Convey("Should be able to override via environment variables", func() {
|
||||
os.Setenv("GF_SECURITY_ADMIN_USER", "superduper")
|
||||
NewConfigContext()
|
||||
NewConfigContext("")
|
||||
|
||||
So(AdminUser, ShouldEqual, "superduper")
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user