grafana 0.9.0 → 0.10.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,12 +2,36 @@
2
2
  module Grafana
3
3
 
4
4
  # http://docs.grafana.org/http_api/dashboard/
5
+
6
+ # The identifier (id) of a dashboard is an auto-incrementing numeric value and is only unique per Grafana install.
7
+ #
8
+ # The unique identifier (uid) of a dashboard can be used for uniquely identify a dashboard between multiple Grafana installs.
9
+ # It's automatically generated if not provided when creating a dashboard. The uid allows having consistent URL's for
10
+ # accessing dashboards and when syncing dashboards between multiple Grafana installs, see dashboard provisioning for
11
+ # more information. This means that changing the title of a dashboard will not break any bookmarked links to that dashboard.
12
+ #
13
+ # The uid can have a maximum length of 40 characters.
14
+ #
15
+ # Deprecated resources
16
+ # Please note that these resource have been deprecated and will be removed in a future release.
17
+ #
18
+ # - Get dashboard by slug
19
+ # - Delete dashboard by slug
20
+ #
21
+ #
5
22
  #
6
23
  module Dashboard
7
24
 
8
-
25
+ # http://docs.grafana.org/http_api/dashboard/#get-dashboard-by-slug
26
+ # - Deprecated starting from Grafana v5.0.
27
+ # Please update to use the new Get dashboard by uid resource instead
28
+ #
9
29
  # Get dashboard
10
30
  #
31
+ # Will return the dashboard given the dashboard slug.
32
+ # Slug is the url friendly version of the dashboard title.
33
+ # If there exists multiple dashboards with the same slug, one of them will be returned in the response.
34
+ #
11
35
  # @example
12
36
  # dashboard('dashboard for many foo')
13
37
  #
@@ -18,23 +42,71 @@ module Grafana
18
42
  raise ArgumentError.new(format('wrong type. \'name\' must be an String, given \'%s\'', name.class.to_s)) unless( name.is_a?(String) )
19
43
  raise ArgumentError.new('missing name') if( name.size.zero? )
20
44
 
45
+ # v, mv = version.values
46
+ #
47
+ # if( mv == 5)
48
+ # puts 'DEPRICATION WARNING'
49
+ # puts 'Grafana v5.0 use a new interal id/uid handling'
50
+ # puts 'This function works well with Grafana v4.x'
51
+ # end
52
+
21
53
  endpoint = format( '/api/dashboards/db/%s', slug(name) )
54
+ @logger.debug( "Attempting to get dashboard (GET #{endpoint})" ) if @debug
55
+
56
+ get( endpoint )
57
+ end
58
+
59
+ # http://docs.grafana.org/http_api/dashboard/#get-dashboard-by-uid
60
+ #
61
+ # GET /api/dashboards/uid/:uid
62
+ # Will return the dashboard given the dashboard unique identifier (uid).
63
+ #
64
+ # Get dashboard
65
+ #
66
+ # Will return the dashboard given the dashboard unique identifier (uid).
67
+ #
68
+ # @example
69
+ # dashboard('L42r6NWiz')
70
+ #
71
+ # @return [String]
72
+ #
73
+ def dashboard_by_uid( uid )
74
+
75
+ if( uid.is_a?(String) && uid.is_a?(Integer) )
76
+ raise ArgumentError.new(format('wrong type. dashboard \'uid\' must be an String (for an title name) or an Integer (for an Datasource Id), given \'%s\'', uid.class.to_s))
77
+ end
78
+ raise ArgumentError.new('missing \'uid\'') if( uid.size.zero? )
22
79
 
23
- @logger.debug( "Attempting to get dashboard (GET /api/dashboards/db/#{name})" ) if @debug
80
+ v, mv = version.values
81
+ return { 'status' => 404, 'message' => format( 'only Grafana 5 has uid support. you use version %s', v) } if(mv != 5)
82
+
83
+ return { 'status' => 404, 'message' => format( 'The uid can have a maximum length of 40 characters. \'%s\' given', uid.length) } if( uid.length > 40 )
84
+
85
+ endpoint = format( '/api/dashboards/uid/%s', uid )
86
+ @logger.debug( "Attempting to get dashboard (GET #{endpoint})" ) if @debug
24
87
 
25
88
  get( endpoint )
26
89
  end
27
90
 
91
+
28
92
  # Create / Update dashboard
29
93
  #
94
+ # Creates a new dashboard or updates an existing dashboard.
95
+ #
30
96
  # @param [Hash] params
31
- # @option params [Hash] dashboard
97
+ # @option params [Hash] dashboard The complete dashboard model
98
+ # - dashboard.id - id = null to create a new dashboard.
99
+ # - dashboard.uid - Optional unique identifier when creating a dashboard. uid = null will generate a new uid.
100
+ # - folderId - The id of the folder to save the dashboard in.
101
+ # - overwrite - Set to true if you want to overwrite existing dashboard with newer version, same dashboard title in folder or same dashboard uid.
102
+ # - message - Set a commit message for the version history.
32
103
  # @option params [Boolean] overwrite (true)
33
104
  #
34
105
  # @example
35
106
  # params = {
36
107
  # dashboard: {
37
108
  # id: null,
109
+ # uid: null,
38
110
  # title: 'Production Overview',
39
111
  # tags: [ 'templated' ],
40
112
  # timezone": 'browser',
@@ -45,7 +117,9 @@ module Grafana
45
117
  # 'schemaVersion': 6,
46
118
  # 'version': 0
47
119
  # },
48
- # overwrite: false
120
+ # folderId: 0,
121
+ # overwrite: false,
122
+ # message: 'created by foo'
49
123
  # }
50
124
  # create_dashboard( params )
51
125
  #
@@ -57,11 +131,20 @@ module Grafana
57
131
  raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
58
132
  raise ArgumentError.new('missing \'params\'') if( params.size.zero? )
59
133
 
60
- dashboard = validate( params, required: true, var: 'dashboard', type: Hash )
134
+ dashboard = validate( params, required: true , var: 'dashboard', type: Hash )
61
135
  overwrite = validate( params, required: false, var: 'overwrite', type: Boolean ) || true
136
+ folder_id = validate( params, required: false, var: 'folderId' )
137
+ message = validate( params, required: false, var: 'message', type: String )
62
138
 
63
139
  dashboard = regenerate_template_ids( dashboard )
64
140
 
141
+ unless(folder_id.nil?)
142
+ f_folder = folder(folder_id)
143
+ return { 'status' => 404, 'message' => format( 'No Folder \'%s\' found', folder_id) } if( f_folder.dig('status') != 200 )
144
+
145
+ folder_id = f_folder.dig('id')
146
+ end
147
+
65
148
  db = JSON.parse( dashboard ) if( dashboard.is_a?(String) )
66
149
  title = db.dig('dashboard','title')
67
150
 
@@ -69,7 +152,9 @@ module Grafana
69
152
 
70
153
  payload = {
71
154
  dashboard: db.dig('dashboard'),
72
- overwrite: overwrite
155
+ overwrite: overwrite,
156
+ folderId: folder_id,
157
+ message: message
73
158
  }
74
159
  payload.reject!{ |_k, v| v.nil? }
75
160
 
@@ -78,7 +163,12 @@ module Grafana
78
163
  post( endpoint, payload.to_json )
79
164
  end
80
165
 
166
+ # http://docs.grafana.org/http_api/dashboard/#delete-dashboard-by-slug
167
+ # - Deprecated starting from Grafana v5.0.
168
+ # Please update to use the new Get dashboard by uid resource instead
169
+ #
81
170
  # Delete dashboard
171
+ # Will delete the dashboard given the specified slug. Slug is the url friendly version of the dashboard title.
82
172
  #
83
173
  # @example
84
174
  # delete_dashboard('dashboard for many foo')
@@ -0,0 +1,132 @@
1
+
2
+ module Grafana
3
+
4
+ # http://docs.grafana.org/http_api/dashboard_permissions/#dashboard-permissions-api
5
+ #
6
+ # This API can be used to update/get the permissions for a dashboard.
7
+ # Permissions with dashboardId=-1 are the default permissions for users with the Viewer and Editor roles.
8
+ # Permissions can be set for a user, a team or a role (Viewer or Editor).
9
+ # Permissions cannot be set for Admins - they always have access to everything.
10
+ #
11
+ # The permission levels for the permission field:
12
+ #
13
+ # 1 = View
14
+ # 2 = Edit
15
+ # 4 = Admin
16
+ #
17
+ module DashboardPermissions
18
+
19
+ # http://docs.grafana.org/http_api/dashboard_permissions/#get-permissions-for-a-dashboard
20
+ #
21
+ # GET /api/dashboards/id/:dashboardId/permissions
22
+ #
23
+ # Gets all existing permissions for the dashboard with the given dashboardId.
24
+ #
25
+ def dashboard_permissions(uid)
26
+
27
+ if( uid.is_a?(String) && uid.is_a?(Integer) )
28
+ raise ArgumentError.new(format('wrong type. dashboard \'uid\' must be an String (for an title name) or an Integer (for an Datasource Id), given \'%s\'', uid.class.to_s))
29
+ end
30
+ raise ArgumentError.new('missing \'uid\'') if( uid.size.zero? )
31
+
32
+ endpoint = format( '/api/dashboards/id/%s/permissions', uid )
33
+ @logger.debug( "Attempting to get dashboard permissions (GET #{endpoint})" ) if @debug
34
+
35
+ r = get( endpoint )
36
+ r['message'] = format('dashboard \'%s\' not found', uid) if(r.dig('status') == 404)
37
+ r
38
+ end
39
+
40
+ # http://docs.grafana.org/http_api/dashboard_permissions/#update-permissions-for-a-dashboard
41
+ #
42
+ # POST /api/dashboards/id/:dashboardId/permissions
43
+ #
44
+ # Updates permissions for a dashboard.
45
+ # This operation will remove existing permissions if they're not included in the request.
46
+ #
47
+ #
48
+ def update_dashboad_permissions(params)
49
+
50
+ raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
51
+ raise ArgumentError.new('missing \'params\'') if( params.size.zero? )
52
+
53
+ v, mv = version.values
54
+ return { 'status' => 404, 'message' => format( 'only Grafana 5 has folder support. you use version %s', v) } if(mv != 5)
55
+
56
+ dashboard_id = validate( params, required: true, var: 'dashboard_id', type: Integer )
57
+ permissions = validate( params, required: true, var: 'permissions' , type: Hash )
58
+
59
+ return { 'status' => 404, 'message' => 'no permissions given' } if( permissions.size.zero? )
60
+
61
+ valid_roles = %w[View Edit Admin]
62
+
63
+ c_team = permissions.dig('team')
64
+ c_user = permissions.dig('user')
65
+ team = []
66
+ user = []
67
+
68
+ unless(c_team.nil?)
69
+ check_keys = []
70
+
71
+ c_team.uniq.each do |x|
72
+ k = x.keys.first
73
+ v = x.values.first
74
+ r = validate_hash( v, valid_roles )
75
+
76
+ f_team = team(k)
77
+ team_id = f_team.dig('id')
78
+
79
+ next unless(( f_team.dig('status') == 200) && !check_keys.include?(team_id) && r == true )
80
+
81
+ check_keys << team_id
82
+
83
+ role_id = valid_roles.index(v)
84
+ role_id += 1
85
+ role_id += 1 if(v == 'Admin')
86
+
87
+ team << {
88
+ teamId: team_id,
89
+ permission: role_id
90
+ }
91
+ end
92
+ end
93
+
94
+ unless(c_user.nil?)
95
+ check_keys = []
96
+
97
+ c_user.uniq.each do |x|
98
+ k = x.keys.first
99
+ v = x.values.first
100
+ r = validate_hash( v, valid_roles )
101
+
102
+ f_user = user(k)
103
+ user_id = f_user.dig('id')
104
+
105
+ next unless(( f_user.dig('status') == 200) && !check_keys.include?(user_id) && r == true )
106
+
107
+ check_keys << user_id
108
+
109
+ role_id = valid_roles.index(v)
110
+ role_id += 1
111
+ role_id += 1 if(v == 'Admin')
112
+
113
+ user << {
114
+ userId: user_id,
115
+ permission: role_id
116
+ }
117
+ end
118
+ end
119
+
120
+ payload = {
121
+ items: team + user
122
+ }
123
+ payload.reject!{ |_, y| y.nil? }
124
+
125
+
126
+ endpoint = format('/api/dashboards/id/%s/permissions', dashboard_id)
127
+ post(endpoint, payload.to_json)
128
+ end
129
+
130
+ end
131
+
132
+ end
@@ -1,29 +1,125 @@
1
1
 
2
2
  module Grafana
3
3
 
4
- # http://docs.grafana.org/http_api/annotations/
4
+ # http://docs.grafana.org/http_api/dashboard_versions
5
5
  #
6
6
  module DashboardVersions
7
7
 
8
8
  # Get all dashboard versions
9
9
  # http://docs.grafana.org/http_api/dashboard_versions/#get-all-dashboard-versions
10
10
  # GET /api/dashboards/id/:dashboardId/versions
11
- def dashboard_all_versions( params ); end
11
+ #
12
+ #
13
+ #
14
+ #
15
+ #
16
+ #
17
+ def dashboard_all_versions( params )
18
+
19
+ raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
20
+ raise ArgumentError.new('missing \'params\'') if( params.size.zero? )
21
+
22
+ # v, mv = version.values
23
+ # return { 'status' => 404, 'message' => format( 'only Grafana 5 has dashboard version support. you use version %s', v) } if(mv != 5)
24
+
25
+ dashboard_id = validate( params, required: true , var: 'dashboard_id', type: Integer )
26
+ start = validate( params, required: false, var: 'start' , type: Integer )
27
+ limit = validate( params, required: false, var: 'limit' , type: Integer )
28
+
29
+ api = []
30
+ api << format( 'start=%s', start ) unless( start.nil? )
31
+ api << format( 'limit=%s', limit ) unless( limit.nil? )
32
+ api = api.join( '&' )
33
+
34
+ endpoint = format('/api/dashboards/id/%s/versions?%s', dashboard_id, api)
35
+ get(endpoint)
36
+ end
12
37
 
13
38
  # Get dashboard version
14
39
  # http://docs.grafana.org/http_api/dashboard_versions/#get-dashboard-version
15
40
  # GET /api/dashboards/id/:dashboardId/versions/:id
16
- def dashboard_version( params ); end
41
+ def dashboard_version( params )
42
+
43
+ raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
44
+ raise ArgumentError.new('missing \'params\'') if( params.size.zero? )
45
+
46
+ v, mv = version.values
47
+ return { 'status' => 404, 'message' => format( 'only Grafana 5 has folder support. you use version %s', v) } if(mv != 5)
48
+
49
+ dashboard_id = validate( params, required: true, var: 'dashboard_id', type: Integer )
50
+ version = validate( params, required: true, var: 'version' , type: Integer )
51
+
52
+ endpoint = format('/api/dashboards/id/%s/versions/%s', dashboard_id, version)
53
+
54
+ r = get(endpoint)
55
+
56
+ r['message'] = format('no dashboard version \'%s\' for dashboard \'%s\' found', version, dashboard_id) if(r.dig('status') == 404)
57
+ r['message'] = format('no dashboard version \'%s\' for dashboard \'%s\' found', version, dashboard_id) if(r.dig('status') == 500)
58
+ r
59
+ end
17
60
 
18
61
  # Restore dashboard
19
62
  # http://docs.grafana.org/http_api/dashboard_versions/#restore-dashboard
20
63
  # POST /api/dashboards/id/:dashboardId/restore
21
- def restore_dashboard( params ); end
64
+ def restore_dashboard( params )
65
+
66
+ raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
67
+ raise ArgumentError.new('missing \'params\'') if( params.size.zero? )
68
+
69
+ # v, mv = version.values
70
+ # return { 'status' => 404, 'message' => format( 'only Grafana 5 has folder support. you use version %s', v) } if(mv != 5)
71
+
72
+ dashboard_id = validate( params, required: true, var: 'dashboard_id', type: Integer )
73
+ version = validate( params, required: true, var: 'version' , type: Integer )
74
+
75
+ endpoint = format('/api/dashboards/id/%s/restore', dashboard_id)
76
+
77
+ payload = {
78
+ version: version
79
+ }
80
+
81
+ post(endpoint, payload.to_json)
82
+ end
22
83
 
23
84
  # Compare dashboard versions
24
85
  # http://docs.grafana.org/http_api/dashboard_versions/#compare-dashboard-versions
25
86
  # POST /api/dashboards/calculate-diff
26
- def compare_dashboard_version( params ); end
87
+ def compare_dashboard_version( params )
88
+
89
+ raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
90
+ raise ArgumentError.new('missing \'params\'') if( params.size.zero? )
91
+
92
+ base = validate( params, required: true , var: 'base' , type: Hash )
93
+ new = validate( params, required: true , var: 'new' , type: Hash )
94
+ diff_type = validate( params, required: false, var: 'diff_type', type: String ) || 'json'
95
+
96
+ base_dashboard_id = validate( base, required: true , var: 'dashboard_id', type: Integer )
97
+ base_dashboard_version = validate( base, required: true , var: 'version' , type: Integer )
98
+ new_dashboard_id = validate( new , required: true , var: 'dashboard_id', type: Integer )
99
+ new_dashboard_version = validate( new , required: true , var: 'version' , type: Integer )
100
+
101
+ valid_diff_type = %w[json basic]
102
+
103
+ r = validate_hash(diff_type, valid_diff_type)
104
+
105
+ return r unless(r == true)
106
+
107
+ payload = {
108
+ base: {
109
+ dashboardId: base_dashboard_id,
110
+ version: base_dashboard_version
111
+ },
112
+ new: {
113
+ dashboardId: new_dashboard_id,
114
+ version: new_dashboard_version
115
+ },
116
+ diffType: diff_type
117
+ }
118
+
119
+ endpoint = '/api/dashboards/calculate-diff'
120
+
121
+ post(endpoint, payload.to_json)
122
+ end
27
123
 
28
124
  end
29
125
 
@@ -44,7 +44,9 @@ module Grafana
44
44
  #
45
45
  def datasource( datasource_id )
46
46
 
47
- raise ArgumentError.new(format('wrong type. user \'datasource_id\' must be an String (for an Datasource name) or an Integer (for an Datasource Id), given \'%s\'', datasource_id.class.to_s)) if( datasource_id.is_a?(String) && datasource_id.is_a?(Integer) )
47
+ if( datasource_id.is_a?(String) && datasource_id.is_a?(Integer) )
48
+ raise ArgumentError.new(format('wrong type. \'datasource_id\' must be an String (for an Datasource name) or an Integer (for an Datasource Id), given \'%s\'', datasource_id.class.to_s))
49
+ end
48
50
  raise ArgumentError.new('missing \'datasource_id\'') if( datasource_id.size.zero? )
49
51
 
50
52
  if(datasource_id.is_a?(String))
@@ -105,27 +107,31 @@ module Grafana
105
107
  raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
106
108
  raise ArgumentError.new('missing \'params\'') if( params.size.zero? )
107
109
 
108
- name = validate( params, required: true, var: 'name' )
109
- organisation = validate( params, required: false, var: 'organisation' )
110
- type = validate( params, required: false, var: 'type', type: String )
111
- new_name = validate( params, required: false, var: 'new_name', type: String )
112
- database = validate( params, required: false, var: 'database', type: String )
113
- access = validate( params, required: false, var: 'access', type: String ) || 'proxy'
114
- default = validate( params, required: false, var: 'default', type: Boolean ) || false
115
- user = validate( params, required: false, var: 'user', type: String )
116
- password = validate( params, required: false, var: 'password', type: String )
117
- url = validate( params, required: false, var: 'url', type: String )
118
- json_data = validate( params, required: false, var: 'json_data', type: Hash )
119
- ba_user = validate( params, required: false, var: 'basic_user', type: String )
120
- ba_password = validate( params, required: false, var: 'basic_password', type: String )
121
- basic_auth = false
122
- basic_auth = true unless( ba_user.nil? && ba_password.nil? )
123
- org_id = nil
124
-
125
- raise ArgumentError.new(format('wrong type. user \'name\' must be an String (for an Datasource name) or an Integer (for an Datasource Id), given \'%s\'', name.class.to_s)) if( name.is_a?(String) && name.is_a?(Integer) )
126
-
110
+ name = validate( params, required: true , var: 'name' )
111
+ organisation = validate( params, required: false, var: 'organisation' )
112
+ type = validate( params, required: false, var: 'type', type: String )
113
+ new_name = validate( params, required: false, var: 'new_name', type: String )
114
+ database = validate( params, required: false, var: 'database', type: String )
115
+ access = validate( params, required: false, var: 'access', type: String ) || 'proxy'
116
+ default = validate( params, required: false, var: 'default', type: Boolean ) || false
117
+ user = validate( params, required: false, var: 'user', type: String )
118
+ password = validate( params, required: false, var: 'password', type: String )
119
+ url = validate( params, required: false, var: 'url', type: String )
120
+ json_data = validate( params, required: false, var: 'json_data', type: Hash )
121
+ ba_user = validate( params, required: false, var: 'basic_user', type: String )
122
+ ba_password = validate( params, required: false, var: 'basic_password', type: String )
123
+ basic_auth = false
124
+ basic_auth = true unless( ba_user.nil? && ba_password.nil? )
125
+ org_id = nil
126
+
127
+ if( name.is_a?(String) && name.is_a?(Integer) )
128
+ raise ArgumentError.new(format('wrong type. \'name\' must be an String (for an Datasource name) or an Integer (for an Datasource Id), given \'%s\'', name.class.to_s))
129
+ end
127
130
  if( organisation )
128
- raise ArgumentError.new(format('wrong type. user \'organisation\' must be an String (for an Organisation name) or an Integer (for an Organisation Id), given \'%s\'', organisation.class.to_s)) if( organisation.is_a?(String) && organisation.is_a?(Integer) )
131
+ if( organisation.is_a?(String) && organisation.is_a?(Integer) )
132
+ raise ArgumentError.new(format('wrong type. \'organisation\' must be an String (for an Organisation name) or an Integer (for an Organisation Id), given \'%s\'', organisation.class.to_s))
133
+ end
134
+
129
135
  org = organization( organisation )
130
136
  org_id = org.dig('id')
131
137
 
@@ -170,7 +176,7 @@ module Grafana
170
176
  endpoint = format('/api/datasources/%d', datasource_id )
171
177
 
172
178
  @logger.debug("Updating data source Id #{datasource_id} (GET #{endpoint})") if @debug
173
- logger.debug(payload.to_json) if(@debug)
179
+ # logger.debug(payload.to_json) if(@debug)
174
180
 
175
181
  put( endpoint, payload.to_json )
176
182
  end
@@ -180,10 +186,8 @@ module Grafana
180
186
  # @param [Hash] params
181
187
  # @option params [String] type Datasource Type - (required) (grafana graphite cloudwatch elasticsearch prometheus influxdb mysql opentsdb postgres)
182
188
  # @option params [String] name Datasource Name - (required)
183
- # @option params [String] database Datasource Database - (required)
184
189
  # @option params [String] access (proxy) Acess Type - (required) (proxy or direct)
185
190
  # @option params [Boolean] default (false)
186
- # @option params [String] password
187
191
  # @option params [String] url Datasource URL - (required)
188
192
  # @option params [Hash] json_data
189
193
  # @option params [Hash] json_secure
@@ -194,7 +198,6 @@ module Grafana
194
198
  # params = {
195
199
  # name: 'graphite',
196
200
  # type: 'graphite',
197
- # database: 'graphite',
198
201
  # url: 'http://localhost:8080'
199
202
  # }
200
203
  # create_datasource(params)
@@ -202,7 +205,6 @@ module Grafana
202
205
  # params = {
203
206
  # name: 'graphite',
204
207
  # type: 'graphite',
205
- # database: 'graphite',
206
208
  # default: true,
207
209
  # url: 'http://localhost:8080',
208
210
  # json_data: { graphiteVersion: '1.1' }
@@ -231,13 +233,11 @@ module Grafana
231
233
  raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
232
234
  raise ArgumentError.new('missing \'params\'') if( params.size.zero? )
233
235
 
234
- type = validate( params, required: true, var: 'type', type: String )
235
- name = validate( params, required: true, var: 'name', type: String )
236
- database = validate( params, required: true, var: 'database', type: String )
236
+ type = validate( params, required: true , var: 'type', type: String )
237
+ name = validate( params, required: true , var: 'name', type: String )
237
238
  access = validate( params, required: false, var: 'access', type: String ) || 'proxy'
238
239
  default = validate( params, required: false, var: 'default', type: Boolean ) || false
239
- password = validate( params, required: false, var: 'password', type: String )
240
- url = validate( params, required: true, var: 'url', type: String )
240
+ url = validate( params, required: true , var: 'url', type: String )
241
241
  json_data = validate( params, required: false, var: 'json_data', type: Hash )
242
242
  json_secure = validate( params, required: false, var: 'json_secure', type: Hash )
243
243
  ba_user = validate( params, required: false, var: 'basic_user', type: String )
@@ -262,14 +262,8 @@ module Grafana
262
262
  jsonData: json_data,
263
263
  secureJsonData: json_secure
264
264
  }
265
-
266
265
  payload.reject!{ |_k, v| v.nil? }
267
266
 
268
- if( @debug )
269
- logger.debug("Creating data source: #{name} (database: #{database})")
270
- logger.debug( payload.to_json )
271
- end
272
-
273
267
  endpoint = '/api/datasources'
274
268
  post(endpoint, payload.to_json)
275
269
  end
@@ -286,7 +280,9 @@ module Grafana
286
280
  #
287
281
  def delete_datasource( datasource_id )
288
282
 
289
- raise ArgumentError.new(format('wrong type. user \'datasource_id\' must be an String (for an Datasource name) or an Integer (for an Datasource Id), given \'%s\'', datasource_id.class.to_s)) if( datasource_id.is_a?(String) && datasource_id.is_a?(Integer) )
283
+ if( datasource_id.is_a?(String) && datasource_id.is_a?(Integer) )
284
+ raise ArgumentError.new(format('wrong type. \'datasource_id\' must be an String (for an Datasource name) or an Integer (for an Datasource Id), given \'%s\'', datasource_id.class.to_s))
285
+ end
290
286
  raise ArgumentError.new('missing \'datasource_id\'') if( datasource_id.size.zero? )
291
287
 
292
288
  if(datasource_id.is_a?(String))