Menu

Grafana Datasource

Create a Grafana Datasource using REST API

  • password (string) Ranger Administrator password.
  • url (string)
    Policy Manager External URL ("POLICY_MGR_URL").
  • username (string) Ranger Administrator username.
  • dashboard (object)
    The dashboard configuration.
  • name (string)
    The unique name of the datasource.Mandatory.
  • datasource (string)
    The datasource type. graphite, prometheus.
  • datasource_url (string)
    The data source url. Mandatory.
  • access (string)
    access type. proxy by default.

Exemple

nikita
.grafana_datasource({
  "username": 'ranger_username',
  "password": 'ranger_secret',
  "url": "http://ranger.policy.manager",
  "name":"test_datasource",
  "type":"graphite",
  "url":"http://mydatasource.com",
  "access":"proxy",
  "basicAuth":false
  }
}, function(err, status){
  console.log( err ? err.message : "Policy Created: " + status)
})
module.exports = ({options}) ->
  throw Error 'Required Options: username' unless options.username?
  throw Error 'Required Options: password' unless options.password?
  throw Error 'Required Options: url' unless options.url?
  throw Error 'Required Options: name' unless options.name?
  throw Error 'Required Options: datasource_url' unless options.datasource_url?
  throw Error 'Required Options: datasource' unless options.datasource?
  options.access ?= 'proxy'
  options.basicAuth ?= false
  obj =
    name: options.name
    type: options.datasource
    url: options.datasource_url
    Access: options.access
    basicAuth: options.basicAuth
  options.slug ?= options.name.toLowerCase().split(' ').join('-')
  # options.merge ?= (options.title? or options.dashboard?) and options.source?
  @system.execute
    cmd: """
    curl --fail -H "Content-Type: application/json" -k -X POST \
       -d '#{JSON.stringify obj}' \
      -u #{options.username}:#{options.password} \
      "#{options.url}/api/datasources"
    """
    unless_exec: """
      curl --fail -H "Content-Type: application/json" -k -X GET  \
        -u #{options.username}:#{options.password} \
        "#{options.url}/api/datasources/#{options.slug}"
      """