vayacondios-client 0.2.11 → 0.3.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.
Files changed (62) hide show
  1. data/.gitignore +64 -0
  2. data/.travis.yml +13 -0
  3. data/CHANGELOG.md +0 -0
  4. data/Gemfile +21 -0
  5. data/LICENSE.md +95 -0
  6. data/Procfile +2 -0
  7. data/README.md +734 -0
  8. data/Rakefile +93 -0
  9. data/bin/vcd +10 -0
  10. data/config/database.yml +6 -0
  11. data/config/spec.example.yml +18 -0
  12. data/config/vayacondios.example.yml +15 -0
  13. data/examples/configuration.rb +56 -0
  14. data/examples/event_stream.rb +19 -0
  15. data/examples/simple.rb +61 -0
  16. data/features/event.feature +319 -0
  17. data/features/events.feature +208 -0
  18. data/features/stash.feature +840 -0
  19. data/features/stashes.feature +492 -0
  20. data/features/step_definitions/stash_steps.rb +113 -0
  21. data/features/stream.feature +30 -0
  22. data/features/support/em.rb +14 -0
  23. data/features/support/env.rb +13 -0
  24. data/lib/vayacondios/client/cli.rb +456 -0
  25. data/lib/vayacondios/client/configuration.rb +13 -0
  26. data/lib/vayacondios/client/connection.rb +39 -0
  27. data/lib/vayacondios/client/http_client.rb +6 -42
  28. data/lib/vayacondios/client/http_methods.rb +85 -0
  29. data/lib/vayacondios/client.rb +21 -0
  30. data/lib/vayacondios/configuration.rb +63 -0
  31. data/lib/vayacondios-client.rb +16 -17
  32. data/lib/vayacondios.rb +22 -0
  33. data/pom.xml +168 -0
  34. data/spec/client/cli_spec.rb +283 -0
  35. data/spec/client/configuration_spec.rb +11 -0
  36. data/spec/client/http_client_spec.rb +150 -0
  37. data/spec/configuration_spec.rb +41 -0
  38. data/spec/spec_helper.rb +27 -0
  39. data/spec/support/database_helper.rb +42 -0
  40. data/spec/support/log_helper.rb +19 -0
  41. data/spec/support/shared_context_for_events.rb +22 -0
  42. data/spec/support/shared_context_for_stashes.rb +24 -0
  43. data/spec/support/shared_examples_for_handlers.rb +32 -0
  44. data/src/main/java/com/infochimps/vayacondios/BaseClient.java +342 -0
  45. data/src/main/java/com/infochimps/vayacondios/HTTPClient.java +426 -0
  46. data/src/main/java/com/infochimps/vayacondios/VayacondiosClient.java +500 -0
  47. data/src/main/java/com/infochimps/vayacondios/test/IntegrationTest.java +3 -0
  48. data/src/test/java/com/infochimps/vayacondios/BaseClientTest.java +50 -0
  49. data/src/test/java/com/infochimps/vayacondios/HTTPClientIT.java +267 -0
  50. data/vayacondios-client.gemspec +25 -0
  51. metadata +96 -60
  52. checksums.yaml +0 -15
  53. data/lib/vayacondios/client/config.rb +0 -7
  54. data/lib/vayacondios/client/configliere.rb +0 -38
  55. data/lib/vayacondios/client/cube_client.rb +0 -39
  56. data/lib/vayacondios/client/itemset.rb +0 -130
  57. data/lib/vayacondios/client/legacy_switch.rb +0 -43
  58. data/lib/vayacondios/client/notifier.rb +0 -123
  59. data/lib/vayacondios/client/zabbix_client.rb +0 -148
  60. data/spec/client/itemset_legacy_spec.rb +0 -55
  61. data/spec/client/itemset_spec.rb +0 -60
  62. data/spec/client/notifier_spec.rb +0 -120
@@ -0,0 +1,208 @@
1
+ Feature: Events
2
+ In order to provide functionality
3
+ As a user of the Vayacondios Api
4
+ I want to document how Events work
5
+
6
+ Scenario: Retrieving non-Existent Events
7
+ Given there are no Events under topic "topic" in the database
8
+ When the client sends a GET request to "/v3/organization/events/topic" with no body
9
+ Then the response status should be 200
10
+ And the response body should be:
11
+ """
12
+ [
13
+ ]
14
+ """
15
+
16
+ Scenario: Retrieving Existing Events with a Time Query
17
+ Given the following Event exists under topic "topic" in the database:
18
+ """
19
+ {
20
+ "_id": "id1",
21
+ "_t": "2012-02-13T12:34:42.452Z",
22
+ "_d": { }
23
+ }
24
+ """
25
+ And the following Event exists under topic "topic" in the database:
26
+ """
27
+ {
28
+ "_id": "id2",
29
+ "_t": "2010-02-13T12:34:42.452Z",
30
+ "_d": { }
31
+ }
32
+ """
33
+ When the client sends a GET request to "/v3/organization/events/topic" with the following body:
34
+ """
35
+ {
36
+ "after": "2012-01-01T00:00:00.000Z"
37
+ }
38
+ """
39
+ Then the response status should be 200
40
+ And the response body should be:
41
+ """
42
+ [
43
+ {
44
+ "id": "id1",
45
+ "time": "2012-02-13T12:34:42.452Z"
46
+ }
47
+ ]
48
+ """
49
+
50
+ Scenario: Retrieving Existing Events with a Data Query
51
+ Given the following Event exists under topic "topic" in the database:
52
+ """
53
+ {
54
+ "_id": "id1",
55
+ "_t": "2012-02-13T12:34:42.452Z",
56
+ "_d": {
57
+ "alignment": "good"
58
+ }
59
+ }
60
+ """
61
+ And the following Event exists under topic "topic" in the database:
62
+ """
63
+ {
64
+ "_id": "id2",
65
+ "_t": "2012-02-13T12:34:42.452Z",
66
+ "_d": {
67
+ "alignment": "evil"
68
+ }
69
+ }
70
+ """
71
+ When the client sends a GET request to "/v3/organization/events/topic" with the following body:
72
+ """
73
+ {
74
+ "alignment": "good"
75
+ }
76
+ """
77
+ Then the response status should be 200
78
+ And the response body should be:
79
+ """
80
+ [
81
+ {
82
+ "id": "id1",
83
+ "time": "2012-02-13T12:34:42.452Z",
84
+ "alignment": "good"
85
+ }
86
+ ]
87
+ """
88
+
89
+ Scenario: Creating Events
90
+ Given there are no Events under topic "topic" in the database
91
+ When the client sends a POST request to "/v3/organization/events/topic" with no body
92
+ Then the response status should be 405
93
+ And the response body should be:
94
+ """
95
+ {
96
+ "error": "Operation create not allowed for Vayacondios::Server::EventsHandler. Valid operations are [\"search\", \"retrieve\", \"delete\"]"
97
+ }
98
+ """
99
+ And there are no Events under topic "topic" in the database
100
+
101
+ Scenario: Updating Events
102
+ Given there are no Events under topic "topic" in the database
103
+ When the client sends a PUT request to "/v3/organization/events/topic" with no body
104
+ Then the response status should be 405
105
+ And the response body should be:
106
+ """
107
+ {
108
+ "error": "Operation update not allowed for Vayacondios::Server::EventsHandler. Valid operations are [\"search\", \"retrieve\", \"delete\"]"
109
+ }
110
+ """
111
+ And there are no Events under topic "topic" in the database
112
+
113
+ Scenario: Deleting Events
114
+ Given the following Event exists under topic "topic" in the database:
115
+ """
116
+ {
117
+ "_id": "id1",
118
+ "_t": "2012-02-13T12:34:42.452Z",
119
+ "_d": { }
120
+ }
121
+ """
122
+ And the following Event exists under topic "topic" in the database:
123
+ """
124
+ {
125
+ "_id": "id2",
126
+ "_t": "2012-02-13T12:34:42.452Z",
127
+ "_d": { }
128
+ }
129
+ """
130
+ When the client sends a DELETE request to "/v3/organization/events/topic" with no body
131
+ Then the response status should be 200
132
+ And the response body should be:
133
+ """
134
+ {
135
+ "ok": true
136
+ }
137
+ """
138
+ And there are no Events under topic "topic" in the database
139
+
140
+ Scenario: Deleting Events with a Time Query
141
+ Given the following Event exists under topic "topic" in the database:
142
+ """
143
+ {
144
+ "_id": "id1",
145
+ "_t": "2012-02-13T12:34:42.452Z",
146
+ "_d": { }
147
+ }
148
+ """
149
+ And the following Event exists under topic "topic" in the database:
150
+ """
151
+ {
152
+ "_id": "id2",
153
+ "_t": "2010-02-13T12:34:42.452Z",
154
+ "_d": { }
155
+ }
156
+ """
157
+ When the client sends a DELETE request to "/v3/organization/events/topic" with the following body:
158
+ """
159
+ {
160
+ "after": "2012-01-01T00:00:00.000Z"
161
+ }
162
+ """
163
+ Then the response status should be 200
164
+ And the response body should be:
165
+ """
166
+ {
167
+ "ok": true
168
+ }
169
+ """
170
+ And there should not be an Event with Id "id1" under topic "topic" in the database
171
+ And there should be an Event with Id "id2" under topic "topic" in the database
172
+
173
+ Scenario: Deleting Events with a Data Query
174
+ Given the following Event exists under topic "topic" in the database:
175
+ """
176
+ {
177
+ "_id": "id1",
178
+ "_t": "2012-02-13T12:34:42.452Z",
179
+ "_d": {
180
+ "alignment":"good"
181
+ }
182
+ }
183
+ """
184
+ And the following Event exists under topic "topic" in the database:
185
+ """
186
+ {
187
+ "_id": "id2",
188
+ "_t": "2012-02-13T12:34:42.452Z",
189
+ "_d": {
190
+ "alignment":"evil"
191
+ }
192
+ }
193
+ """
194
+ When the client sends a DELETE request to "/v3/organization/events/topic" with the following body:
195
+ """
196
+ {
197
+ "alignment":"good"
198
+ }
199
+ """
200
+ Then the response status should be 200
201
+ And the response body should be:
202
+ """
203
+ {
204
+ "ok": true
205
+ }
206
+ """
207
+ And there should not be an Event with Id "id1" under topic "topic" in the database
208
+ And there should be an Event with Id "id2" under topic "topic" in the database