| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- 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,
- }
- 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()
- }
|