dogapi 1.7.1 → 1.8.0

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.
@@ -1,9 +1,13 @@
1
- = Ruby client for Datadog API v1.7.1
1
+ = Ruby client for Datadog API v1.8.0
2
2
 
3
3
  The Ruby client is a library suitable for inclusion in existing Ruby projects or for development of standalone scripts. It provides an abstraction on top of Datadog's raw HTTP interface for reporting events and metrics.
4
4
 
5
5
  = What's new?
6
6
 
7
+ == v1.8.0
8
+
9
+ * Add an API for interacting with Screenboards
10
+
7
11
  == v1.7.1
8
12
 
9
13
  * Add an API for inviting users
@@ -35,6 +35,7 @@ module Dogapi
35
35
  @alert_svc = Dogapi::V1::AlertService.new(@api_key, @application_key, silent)
36
36
  @user_svc = Dogapi::V1::UserService.new(@api_key, @application_key, silent)
37
37
  @snapshot_svc = Dogapi::V1::SnapshotService.new(@api_key, @application_key, silent)
38
+ @screenboard_svc = Dogapi::V1::ScreenboardService.new(@api_key, @application_key, silent)
38
39
 
39
40
  @legacy_event_svc = Dogapi::EventService.new(@datadog_host)
40
41
  end
@@ -285,6 +286,29 @@ module Dogapi
285
286
  @snapshot_svc.snapshot(metric_query, start_ts, end_ts, event_query)
286
287
  end
287
288
 
289
+ #
290
+ # SCREENBOARD
291
+ #
292
+ def create_screenboard(description)
293
+ @screenboard_svc.create_screenboard(description)
294
+ end
295
+
296
+ def update_screenboard(board_id, description)
297
+ @screenboard_svc.update_screenboard(board_id, description)
298
+ end
299
+
300
+ def get_screenboard(board_id)
301
+ @screenboard_svc.get_screenboard(board_id)
302
+ end
303
+
304
+ def delete_screenboard(board_id)
305
+ @screenboard_svc.delete_screenboard(board_id)
306
+ end
307
+
308
+ def share_screenboard(board_id)
309
+ @screenboard_svc.share_screenboard(board_id)
310
+ end
311
+
288
312
  private
289
313
 
290
314
  def override_scope(host, device)
@@ -7,3 +7,4 @@ require 'dogapi/v1/dash'
7
7
  require 'dogapi/v1/alert'
8
8
  require 'dogapi/v1/user'
9
9
  require 'dogapi/v1/snapshot'
10
+ require 'dogapi/v1/screenboard'
@@ -0,0 +1,85 @@
1
+ require 'dogapi'
2
+
3
+ module Dogapi
4
+ class V1 # for namespacing
5
+
6
+ class ScreenboardService < Dogapi::APIService
7
+
8
+ API_VERSION = "v1"
9
+
10
+ def create_screenboard(description)
11
+
12
+ begin
13
+ params = {
14
+ :api_key => @api_key,
15
+ :application_key => @application_key
16
+ }
17
+
18
+ body = description
19
+
20
+ request(Net::HTTP::Post, "/api/#{API_VERSION}/screen", params, description, true)
21
+ rescue Exception => e
22
+ suppress_error_if_silent e
23
+ end
24
+ end
25
+
26
+ def update_screenboard(board_id, description)
27
+
28
+ begin
29
+ params = {
30
+ :api_key => @api_key,
31
+ :application_key => @application_key
32
+ }
33
+
34
+ body = description
35
+
36
+ request(Net::HTTP::Put, "/api/#{API_VERSION}/screen/#{board_id}", params, body, true)
37
+ rescue Exception => e
38
+ suppress_error_if_silent e
39
+ end
40
+ end
41
+
42
+ def get_screenboard(board_id)
43
+ begin
44
+ params = {
45
+ :api_key => @api_key,
46
+ :application_key => @application_key
47
+ }
48
+
49
+ request(Net::HTTP::Get, "/api/#{API_VERSION}/screen/#{board_id}", params, nil, false)
50
+ rescue Exception => e
51
+ suppress_error_if_silent e
52
+ end
53
+ end
54
+
55
+ def delete_screenboard(board_id)
56
+ begin
57
+ params = {
58
+ :api_key => @api_key,
59
+ :application_key => @application_key
60
+ }
61
+
62
+ request(Net::HTTP::Delete, "/api/#{API_VERSION}/screen/#{board_id}", params, nil, false)
63
+ rescue Exception => e
64
+ suppress_error_if_silent e
65
+ end
66
+ end
67
+
68
+
69
+ def share_screenboard(board_id)
70
+ begin
71
+ params = {
72
+ :api_key => @api_key,
73
+ :application_key => @application_key
74
+ }
75
+
76
+ request(Net::HTTP::Get, "/api/#{API_VERSION}/screen/share/#{board_id}", params, nil, false)
77
+ rescue Exception => e
78
+ suppress_error_if_silent e
79
+ end
80
+ end
81
+
82
+ end
83
+
84
+ end
85
+ end
@@ -0,0 +1,74 @@
1
+ require 'dogapi'
2
+ require 'time'
3
+ require 'test_base.rb'
4
+
5
+ class TestScreenboard < Test::Unit::TestCase
6
+ include TestBase
7
+
8
+ def test_screenboard
9
+ dog = Dogapi::Client.new(@api_key, @app_key)
10
+
11
+ board = {
12
+ "width" => 1024,
13
+ "height" => 768,
14
+ "board_title" => "dogapi-rb test",
15
+ "widgets" => [
16
+ {
17
+ "type" => "event_stream",
18
+ "title" => false,
19
+ "height" => 57,
20
+ "width" => 59,
21
+ "y" => 18,
22
+ "x" => 84,
23
+ "query" => "tags:release",
24
+ "timeframe" => "1w"
25
+ },
26
+ {
27
+ "type" => "image",
28
+ "height" => 20,
29
+ "width" => 32,
30
+ "y" => 7,
31
+ "x" => 32,
32
+ "url" => "http://path/to/image.jpg"
33
+ }
34
+ ]
35
+ }
36
+
37
+ updated_board = {
38
+ "width" => 1024,
39
+ "height" => 768,
40
+ "board_title" => "dogapi test",
41
+ "widgets" => [
42
+ {
43
+ "type" => "image",
44
+ "height" => 20,
45
+ "width" => 32,
46
+ "y" => 7,
47
+ "x" => 32,
48
+ "url" => "http://path/to/image.jpg"
49
+ }
50
+ ]
51
+ }
52
+
53
+ status, result = dog.create_screenboard(board)
54
+ assert_equal status, "200", "invalid HTTP response => #{status}"
55
+ assert result["widgets"] == board["widgets"]
56
+
57
+ status, result = dog.get_screenboard(result["id"])
58
+ assert_equal status, "200", "invalid HTTP response => #{status}"
59
+ assert result["widgets"] == board["widgets"]
60
+
61
+ status, result = dog.update_screenboard(result["id"], updated_board)
62
+ assert_equal status, "200", "invalid HTTP response => #{status}"
63
+ assert result["widgets"] == updated_board["widgets"]
64
+
65
+ status, share_result = dog.share_screenboard(result["id"])
66
+ assert_equal status, "200", "invalid HTTP response => #{status}"
67
+ assert share_result["board_id"] == result["id"]
68
+
69
+ status, del_result = dog.delete_screenboard(result["id"])
70
+ assert_equal status, "200", "invalid HTTP response => #{status}"
71
+ assert del_result["id"] == result["id"]
72
+
73
+ end
74
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dogapi
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
4
+ version: 1.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-27 00:00:00.000000000 Z
12
+ date: 2013-07-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
16
- requirement: &6638840 !ruby/object:Gem::Requirement
16
+ requirement: &11482000 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 1.5.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *6638840
24
+ version_requirements: *11482000
25
25
  description:
26
26
  email: packages@datadoghq.com
27
27
  executables: []
@@ -42,6 +42,7 @@ files:
42
42
  - lib/dogapi/v1/dash.rb
43
43
  - lib/dogapi/v1/event.rb
44
44
  - lib/dogapi/v1/metric.rb
45
+ - lib/dogapi/v1/screenboard.rb
45
46
  - lib/dogapi/v1/search.rb
46
47
  - lib/dogapi/v1/snapshot.rb
47
48
  - lib/dogapi/v1/tag.rb
@@ -51,6 +52,7 @@ files:
51
52
  - tests/test_client.rb
52
53
  - tests/test_comments.rb
53
54
  - tests/test_dashes.rb
55
+ - tests/test_screenboard.rb
54
56
  - tests/test_search.rb
55
57
  - tests/test_snapshot.rb
56
58
  - tests/test_users.rb