grafana 0.9.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/grafana/tools.rb CHANGED
@@ -17,16 +17,16 @@ module Grafana
17
17
  raise ArgumentError.new(format('wrong type. \'text\' must be an String, given \'%s\'', text.class.to_s)) unless( text.is_a?(String) )
18
18
 
19
19
  begin
20
- if( text =~ /\s/ && text =~ /-/ )
20
+ if( text =~ /\s/ && text =~ /-/ )
21
21
  # if( text =~ /-/ )
22
22
  text = text.gsub( /\s+/, '' )
23
23
  else
24
24
  text = text.gsub( /\s+/, '-' )
25
25
  # end
26
- end
26
+ end
27
27
 
28
- rescue => e
29
- puts e
28
+ rescue => error
29
+ puts error
30
30
  end
31
31
 
32
32
  text.downcase
@@ -87,12 +87,12 @@ module Grafana
87
87
  begin
88
88
  JSON.parse( json )
89
89
  return true
90
- rescue JSON::ParserError => e
91
- @logger.error("json parse error: #{e}") if @debug
90
+ rescue JSON::ParserError => error
91
+ @logger.error("json parse error: #{error}") if @debug
92
92
  return false
93
93
  end
94
94
  end
95
95
 
96
- end
97
96
 
97
+ end
98
98
  end
data/lib/grafana/user.rb CHANGED
@@ -98,7 +98,9 @@ module Grafana
98
98
  #
99
99
  def add_dashboard_star( dashboard_id )
100
100
 
101
- raise ArgumentError.new(format('wrong type. user \'dashboard_id\' must be an String (for an Dashboard name) or an Integer (for an Dashboard Id), given \'%s\'', dashboard_id.class.to_s)) if( dashboard_id.is_a?(String) && dashboard_id.is_a?(Integer) )
101
+ if( dashboard_id.is_a?(String) && dashboard_id.is_a?(Integer) )
102
+ raise ArgumentError.new(format('wrong type. \'dashboard_id\' must be an String (for an Dashboard name) or an Integer (for an Dashboard Id), given \'%s\'', dashboard_id.class.to_s))
103
+ end
102
104
  raise ArgumentError.new('missing \'dashboard_id\'') if( dashboard_id.size.zero? )
103
105
 
104
106
  dashboard_id = dashboard if(dashboard_id.is_a?(Integer))
@@ -128,7 +130,9 @@ module Grafana
128
130
  #
129
131
  def remove_dashboard_star( dashboard_id )
130
132
 
131
- raise ArgumentError.new(format('wrong type. user \'dashboard_id\' must be an String (for an Dashboard name) or an Integer (for an Dashboard Id), given \'%s\'', dashboard_id.class.to_s)) if( dashboard_id.is_a?(String) && dashboard_id.is_a?(Integer) )
133
+ if( dashboard_id.is_a?(String) && dashboard_id.is_a?(Integer) )
134
+ raise ArgumentError.new(format('wrong type. \'dashboard_id\' must be an String (for an Dashboard name) or an Integer (for an Dashboard Id), given \'%s\'', dashboard_id.class.to_s))
135
+ end
132
136
  raise ArgumentError.new('missing \'dashboard_id\'') if( dashboard_id.size.zero? )
133
137
 
134
138
  dashboard_id = dashboard( dashboard_id ) if(dashboard_id.is_a?(Integer))
data/lib/grafana/users.rb CHANGED
@@ -30,17 +30,23 @@ module Grafana
30
30
  #
31
31
  def user( user_id )
32
32
 
33
- raise ArgumentError.new(format('wrong type. user \'user_id\' must be an String (for an Datasource name) or an Integer (for an Datasource Id), given \'%s\'', user_id.class.to_s)) if( user_id.is_a?(String) && user_id.is_a?(Integer) )
33
+ if( user_id.is_a?(String) && user_id.is_a?(Integer) )
34
+ raise ArgumentError.new(format('wrong type. user \'user_id\' must be an String (for an User name) or an Integer (for an User Id), given \'%s\'', user_id.class.to_s))
35
+ end
34
36
  raise ArgumentError.new('missing \'user_id\'') if( user_id.size.zero? )
35
37
 
36
38
  if(user_id.is_a?(String))
37
- user_map = {}
38
- users.dig('message').each do |d|
39
- usr_id = d.dig('id').to_i
40
- user_map[usr_id] = d
41
- end
39
+ usrs = users
40
+ usrs = JSON.parse(usrs) if(usrs.is_a?(String))
41
+
42
+ status = usrs.dig('status')
43
+ return usrs if( status != 200 )
44
+
45
+ u = usrs.dig('message').detect { |v| v['login'] == user_id || v['email'] == user_id || v['name'] == user_id }
42
46
 
43
- user_id = user_map.select { |_k,v| v['login'] == user_id || v['email'] == user_id || v['name'] == user_id }.keys.first
47
+ return { 'status' => 404, 'message' => format( 'No User \'%s\' found', user_id) } if( u.nil? )
48
+
49
+ user_id = u.dig('id') unless(u.nil?)
44
50
  end
45
51
 
46
52
  return { 'status' => 404, 'message' => format( 'No User \'%s\' found', user_id) } if( user_id.nil? )
@@ -102,10 +108,10 @@ module Grafana
102
108
 
103
109
  raise ArgumentError.new(format('wrong type. \'params\' must be an Hash, given \'%s\'', params.class.to_s)) unless( params.is_a?(Hash) )
104
110
 
105
- user_name = validate( params, required: true, var: 'user_name', type: String )
106
- email = validate( params, required: true, var: 'email', type: String )
111
+ user_name = validate( params, required: true , var: 'user_name' , type: String )
112
+ email = validate( params, required: true , var: 'email' , type: String )
107
113
  login_name = validate( params, required: false, var: 'login_name', type: String ) || user_name
108
- theme = validate( params, required: false, var: 'theme', type: String )
114
+ theme = validate( params, required: false, var: 'theme' , type: String )
109
115
 
110
116
  usr = user(user_name)
111
117
 
@@ -144,7 +150,9 @@ module Grafana
144
150
  #
145
151
  def user_organizations( user_id )
146
152
 
147
- raise ArgumentError.new(format('wrong type. user \'user_id\' must be an String (for an Username) or an Integer (for an Userid), given \'%s\'', user_id.class.to_s)) if( user_id.is_a?(String) && user_id.is_a?(Integer) )
153
+ if( user_id.is_a?(String) && user_id.is_a?(Integer) )
154
+ raise ArgumentError.new(format('wrong type. user \'user_id\' must be an String (for an Username) or an Integer (for an Userid), given \'%s\'', user_id.class.to_s))
155
+ end
148
156
  raise ArgumentError.new('missing \'user_id\'') if( user_id.size.zero? )
149
157
 
150
158
  usr = user(user_id)
@@ -26,7 +26,7 @@ module Grafana
26
26
  params = params.deep_symbolize_keys
27
27
  variable = params.dig(var.to_sym)
28
28
 
29
- raise ArgumentError.new(format('\'%s\' is requiered and missing!', var)) if(variable.nil?) if(required == true )
29
+ raise ArgumentError.new(format('\'%s\' is requiered and missing!', var)) if(variable.nil? && required == true )
30
30
 
31
31
  unless( type.nil? )
32
32
  clazz = Object.const_get(type.to_s)
@@ -36,6 +36,38 @@ module Grafana
36
36
  variable
37
37
  end
38
38
 
39
+ # validate an value with an array of values
40
+ #
41
+ #
42
+ # @return [Mixed]
43
+ #
44
+ def validate_hash( value, valid_params )
45
+
46
+ # puts "validate_hash( #{value}, #{valid_params} )"
47
+
48
+ unless( valid_params.collect { |r| r.downcase }.include?(value.downcase) )
49
+ # puts "NOOO : #{value}"
50
+ return {
51
+ 'status' => 404,
52
+ 'message' => format( 'wrong value. \'%s\' must be one of \'%s\'', value, valid_params.join('\', \''))
53
+ }
54
+ end
55
+ # puts "result: #{result} #{result.class}"
56
+ #
57
+ #
58
+ # downcased = Set.new valid_params.map(&:downcase)
59
+ #
60
+ # puts "downcased: #{downcased}"
61
+ #
62
+ # unless( downcased.include?( value.downcase ) )
63
+ # return {
64
+ # 'status' => 404,
65
+ # 'message' => format( 'wrong value. \'%s\' must be one of \'%s\'', value, valid_params.join('\', \''))
66
+ # }
67
+ # end
68
+ true
69
+ end
70
+
39
71
  end
40
72
  end
41
73
 
@@ -6,9 +6,9 @@ module Grafana
6
6
  # major part of version
7
7
  MAJOR = 0
8
8
  # minor part of version
9
- MINOR = 9
9
+ MINOR = 10
10
10
  # tiny part of version
11
- TINY = 0
11
+ TINY = 1
12
12
  end
13
13
 
14
14
  # Current version of gem.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grafana
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bodo Schulz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-11 00:00:00.000000000 Z
11
+ date: 2018-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -38,20 +38,6 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '2.1'
41
- - !ruby/object:Gem::Dependency
42
- name: ruby_dig
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rake
57
43
  requirement: !ruby/object:Gem::Requirement
@@ -252,14 +238,20 @@ files:
252
238
  - lib/grafana/annotations.rb
253
239
  - lib/grafana/client.rb
254
240
  - lib/grafana/dashboard.rb
241
+ - lib/grafana/dashboard_permissions.rb
255
242
  - lib/grafana/dashboard_versions.rb
256
243
  - lib/grafana/datasource.rb
244
+ - lib/grafana/folder.rb
245
+ - lib/grafana/folder_and_dashboard_search.rb
246
+ - lib/grafana/folder_permissions.rb
257
247
  - lib/grafana/login.rb
258
248
  - lib/grafana/network.rb
259
249
  - lib/grafana/organization.rb
260
250
  - lib/grafana/organizations.rb
251
+ - lib/grafana/preferences.rb
261
252
  - lib/grafana/snapshot.rb
262
253
  - lib/grafana/tags.rb
254
+ - lib/grafana/teams.rb
263
255
  - lib/grafana/tools.rb
264
256
  - lib/grafana/user.rb
265
257
  - lib/grafana/users.rb
@@ -287,7 +279,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
279
  version: '0'
288
280
  requirements: []
289
281
  rubyforge_project:
290
- rubygems_version: 2.6.14
282
+ rubygems_version: 2.7.6
291
283
  signing_key:
292
284
  specification_version: 4
293
285
  summary: Grafana HTTP API Wrapper