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.
- checksums.yaml +5 -5
- data/doc/Array.html +1 -1
- data/doc/Boolean.html +1 -1
- data/doc/FalseClass.html +1 -1
- data/doc/Grafana.html +1 -1
- data/doc/Hash.html +1 -1
- data/doc/Logging.html +1 -1
- data/doc/Object.html +1 -1
- data/doc/Time.html +1 -1
- data/doc/TrueClass.html +1 -1
- data/doc/_index.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +65 -65
- data/doc/top-level-namespace.html +1 -1
- data/lib/grafana/admin.rb +2 -1
- data/lib/grafana/alerts.rb +334 -14
- data/lib/grafana/annotations.rb +10 -8
- data/lib/grafana/client.rb +36 -0
- data/lib/grafana/dashboard.rb +96 -6
- data/lib/grafana/dashboard_permissions.rb +132 -0
- data/lib/grafana/dashboard_versions.rb +101 -5
- data/lib/grafana/datasource.rb +34 -38
- data/lib/grafana/folder.rb +198 -0
- data/lib/grafana/folder_and_dashboard_search.rb +57 -0
- data/lib/grafana/folder_permissions.rb +155 -0
- data/lib/grafana/login.rb +40 -34
- data/lib/grafana/network.rb +48 -92
- data/lib/grafana/organization.rb +2 -1
- data/lib/grafana/organizations.rb +13 -4
- data/lib/grafana/preferences.rb +122 -0
- data/lib/grafana/teams.rb +364 -0
- data/lib/grafana/tools.rb +7 -7
- data/lib/grafana/user.rb +6 -2
- data/lib/grafana/users.rb +19 -11
- data/lib/grafana/validator.rb +33 -1
- data/lib/grafana/version.rb +2 -2
- metadata +9 -17
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
|
-
|
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
|
-
|
26
|
+
end
|
27
27
|
|
28
|
-
rescue =>
|
29
|
-
puts
|
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 =>
|
91
|
-
@logger.error("json parse error: #{
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
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
|
-
|
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
|
-
|
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)
|
data/lib/grafana/validator.rb
CHANGED
@@ -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?
|
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
|
|
data/lib/grafana/version.rb
CHANGED
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.
|
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:
|
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
|
282
|
+
rubygems_version: 2.7.6
|
291
283
|
signing_key:
|
292
284
|
specification_version: 4
|
293
285
|
summary: Grafana HTTP API Wrapper
|