| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package cmd
- import (
- "fmt"
- "github.com/codegangsta/cli"
- "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"
- )
- var ListDataSources = cli.Command{
- Name: "datasource",
- Usage: "list datasources",
- Description: "Lists the datasources in the system",
- Action: listDatasources,
- Flags: []cli.Flag{
- cli.StringFlag{
- Name: "config",
- Value: "grafana.ini",
- Usage: "path to config file",
- },
- },
- }
- func listDatasources(c *cli.Context) {
- setting.NewConfigContext()
- sqlstore.NewEngine()
- sqlstore.EnsureAdminUser()
- if !c.Args().Present() {
- log.ConsoleFatal("Account name arg is required")
- }
- name := c.Args().First()
- accountQuery := m.GetAccountByNameQuery{Name: name}
- if err := bus.Dispatch(&accountQuery); err != nil {
- log.ConsoleFatalf("Failed to find account: %s", err)
- }
- accountId := accountQuery.Result.Id
- query := m.GetDataSourcesQuery{AccountId: accountId}
- if err := bus.Dispatch(&query); err != nil {
- log.ConsoleFatalf("Failed to find datasources: %s", err)
- }
- w := tabwriter.NewWriter(os.Stdout, 20, 1, 4, ' ', 0)
- fmt.Fprintf(w, "ID\tNAME\tURL\tTYPE\tACCESS\tDEFAULT\n")
- for _, ds := range query.Result {
- fmt.Fprintf(w, "%d\t%s\t%s\t%s\t%s\t%t\n", ds.Id, ds.Name, ds.Url, ds.Type,
- ds.Access, ds.IsDefault)
- }
- w.Flush()
- }
|