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.
- data/.gitignore +64 -0
- data/.travis.yml +13 -0
- data/CHANGELOG.md +0 -0
- data/Gemfile +21 -0
- data/LICENSE.md +95 -0
- data/Procfile +2 -0
- data/README.md +734 -0
- data/Rakefile +93 -0
- data/bin/vcd +10 -0
- data/config/database.yml +6 -0
- data/config/spec.example.yml +18 -0
- data/config/vayacondios.example.yml +15 -0
- data/examples/configuration.rb +56 -0
- data/examples/event_stream.rb +19 -0
- data/examples/simple.rb +61 -0
- data/features/event.feature +319 -0
- data/features/events.feature +208 -0
- data/features/stash.feature +840 -0
- data/features/stashes.feature +492 -0
- data/features/step_definitions/stash_steps.rb +113 -0
- data/features/stream.feature +30 -0
- data/features/support/em.rb +14 -0
- data/features/support/env.rb +13 -0
- data/lib/vayacondios/client/cli.rb +456 -0
- data/lib/vayacondios/client/configuration.rb +13 -0
- data/lib/vayacondios/client/connection.rb +39 -0
- data/lib/vayacondios/client/http_client.rb +6 -42
- data/lib/vayacondios/client/http_methods.rb +85 -0
- data/lib/vayacondios/client.rb +21 -0
- data/lib/vayacondios/configuration.rb +63 -0
- data/lib/vayacondios-client.rb +16 -17
- data/lib/vayacondios.rb +22 -0
- data/pom.xml +168 -0
- data/spec/client/cli_spec.rb +283 -0
- data/spec/client/configuration_spec.rb +11 -0
- data/spec/client/http_client_spec.rb +150 -0
- data/spec/configuration_spec.rb +41 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/support/database_helper.rb +42 -0
- data/spec/support/log_helper.rb +19 -0
- data/spec/support/shared_context_for_events.rb +22 -0
- data/spec/support/shared_context_for_stashes.rb +24 -0
- data/spec/support/shared_examples_for_handlers.rb +32 -0
- data/src/main/java/com/infochimps/vayacondios/BaseClient.java +342 -0
- data/src/main/java/com/infochimps/vayacondios/HTTPClient.java +426 -0
- data/src/main/java/com/infochimps/vayacondios/VayacondiosClient.java +500 -0
- data/src/main/java/com/infochimps/vayacondios/test/IntegrationTest.java +3 -0
- data/src/test/java/com/infochimps/vayacondios/BaseClientTest.java +50 -0
- data/src/test/java/com/infochimps/vayacondios/HTTPClientIT.java +267 -0
- data/vayacondios-client.gemspec +25 -0
- metadata +96 -60
- checksums.yaml +0 -15
- data/lib/vayacondios/client/config.rb +0 -7
- data/lib/vayacondios/client/configliere.rb +0 -38
- data/lib/vayacondios/client/cube_client.rb +0 -39
- data/lib/vayacondios/client/itemset.rb +0 -130
- data/lib/vayacondios/client/legacy_switch.rb +0 -43
- data/lib/vayacondios/client/notifier.rb +0 -123
- data/lib/vayacondios/client/zabbix_client.rb +0 -148
- data/spec/client/itemset_legacy_spec.rb +0 -55
- data/spec/client/itemset_spec.rb +0 -60
- data/spec/client/notifier_spec.rb +0 -120
@@ -0,0 +1,267 @@
|
|
1
|
+
package com.infochimps.vayacondios;
|
2
|
+
|
3
|
+
import java.util.Map;
|
4
|
+
import java.util.HashMap;
|
5
|
+
import java.util.List;
|
6
|
+
import java.util.ArrayList;
|
7
|
+
import java.util.Set;
|
8
|
+
|
9
|
+
import java.net.UnknownHostException;
|
10
|
+
|
11
|
+
import org.junit.Before;
|
12
|
+
import org.junit.After;
|
13
|
+
import org.junit.Test;
|
14
|
+
import org.junit.Ignore;
|
15
|
+
import org.junit.runner.RunWith;
|
16
|
+
import org.junit.runners.JUnit4;
|
17
|
+
import static org.junit.Assert.assertEquals;
|
18
|
+
import com.infochimps.vayacondios.test.IntegrationTest;
|
19
|
+
import org.junit.experimental.categories.Category;
|
20
|
+
|
21
|
+
import com.mongodb.MongoClient;
|
22
|
+
import com.mongodb.DB;
|
23
|
+
|
24
|
+
@RunWith(JUnit4.class)
|
25
|
+
@Category(IntegrationTest.class)
|
26
|
+
public class HTTPClientIT {
|
27
|
+
|
28
|
+
private String organization = "organization";
|
29
|
+
private String topic = "topic";
|
30
|
+
private String id = "id";
|
31
|
+
|
32
|
+
private HTTPClient client;
|
33
|
+
|
34
|
+
private Map event() {
|
35
|
+
Map e = new HashMap();
|
36
|
+
e.put("foo", "bar");
|
37
|
+
e.put("baz", 12.0);
|
38
|
+
return e;
|
39
|
+
}
|
40
|
+
|
41
|
+
private List list() {
|
42
|
+
List l = new ArrayList();
|
43
|
+
l.add(1.0);
|
44
|
+
l.add("2");
|
45
|
+
l.add("three");
|
46
|
+
return l;
|
47
|
+
}
|
48
|
+
|
49
|
+
private Map stash() {
|
50
|
+
Map s = new HashMap();
|
51
|
+
s.put("map", event());
|
52
|
+
s.put("list", list());
|
53
|
+
s.put("string", "hello");
|
54
|
+
s.put("double", 3.1415);
|
55
|
+
return s;
|
56
|
+
}
|
57
|
+
|
58
|
+
private Map query() {
|
59
|
+
Map q = new HashMap();
|
60
|
+
q.put("foo", "bar");
|
61
|
+
return q;
|
62
|
+
}
|
63
|
+
|
64
|
+
@Before
|
65
|
+
public void createClient() {
|
66
|
+
client = new HTTPClient(organization);
|
67
|
+
}
|
68
|
+
|
69
|
+
@Before
|
70
|
+
public void cleanMongo() {
|
71
|
+
try {
|
72
|
+
MongoClient mongo = new MongoClient( "localhost" , 27017 );
|
73
|
+
DB database = mongo.getDB( "vayacondios_test" );
|
74
|
+
Set<String> collections = database.getCollectionNames();
|
75
|
+
for (String collection : collections) {
|
76
|
+
if (! collection.matches("^system.*$")) {
|
77
|
+
database.getCollection(collection).drop();
|
78
|
+
}
|
79
|
+
}
|
80
|
+
} catch (UnknownHostException e) {
|
81
|
+
System.err.println("Could not connect to MongoDB, aborting");
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
@After
|
86
|
+
public void closeClient() throws InterruptedException {
|
87
|
+
client.close();
|
88
|
+
}
|
89
|
+
|
90
|
+
@Test
|
91
|
+
public void canGetSetHost() {
|
92
|
+
assertEquals(client.host(), HTTPClient.DEFAULT_HOST);
|
93
|
+
}
|
94
|
+
|
95
|
+
@Test
|
96
|
+
public void canGetSetPort() {
|
97
|
+
assertEquals(client.port(), HTTPClient.DEFAULT_PORT);
|
98
|
+
}
|
99
|
+
|
100
|
+
@Test
|
101
|
+
public void eventsEmpty() {
|
102
|
+
assertEquals(0, client.events(topic, query()).size());
|
103
|
+
}
|
104
|
+
|
105
|
+
@Test
|
106
|
+
public void announce() {
|
107
|
+
client.announce(topic, event());
|
108
|
+
client.announce(topic, event());
|
109
|
+
client.announce(topic, event());
|
110
|
+
assertEquals(3, client.events(topic, query()).size());
|
111
|
+
}
|
112
|
+
|
113
|
+
@Test
|
114
|
+
public void announceWithId() {
|
115
|
+
client.announce(topic, event(), "1");
|
116
|
+
client.announce(topic, event(), "2");
|
117
|
+
client.announce(topic, event(), "2");
|
118
|
+
assertEquals(2, client.events(topic, query()).size());
|
119
|
+
}
|
120
|
+
|
121
|
+
@Test
|
122
|
+
public void get() {
|
123
|
+
client.set(topic, stash());
|
124
|
+
Map s = client.get(topic);
|
125
|
+
assertEquals("hello", s.get("string"));
|
126
|
+
assertEquals(3.1415, s.get("double"));
|
127
|
+
}
|
128
|
+
|
129
|
+
@Test
|
130
|
+
public void getMap() {
|
131
|
+
client.set(topic, stash());
|
132
|
+
Map e = client.getMap(topic, "map");
|
133
|
+
assertEquals("bar", e.get("foo"));
|
134
|
+
}
|
135
|
+
|
136
|
+
@Test
|
137
|
+
public void getList() {
|
138
|
+
client.set(topic, stash());
|
139
|
+
List l = client.getList(topic, "list");
|
140
|
+
assertEquals("2", l.get(1));
|
141
|
+
assertEquals("three", l.get(2));
|
142
|
+
}
|
143
|
+
|
144
|
+
@Test
|
145
|
+
public void getString() {
|
146
|
+
client.set(topic, stash());
|
147
|
+
String s = client.getString(topic, "string");
|
148
|
+
assertEquals("hello", s);
|
149
|
+
}
|
150
|
+
|
151
|
+
@Test
|
152
|
+
public void getDouble() {
|
153
|
+
client.set(topic, stash());
|
154
|
+
Double d = client.getDouble(topic, "double");
|
155
|
+
assertEquals((Double) 3.1415, d);
|
156
|
+
}
|
157
|
+
|
158
|
+
@Test
|
159
|
+
public void setOverwrites() {
|
160
|
+
client.set(topic, stash());
|
161
|
+
client.set(topic, event());
|
162
|
+
Map s = client.get(topic);
|
163
|
+
assertEquals(null, s.get("string"));
|
164
|
+
assertEquals("bar", s.get("foo"));
|
165
|
+
}
|
166
|
+
|
167
|
+
@Test
|
168
|
+
public void setWithIdMapOverwrites() {
|
169
|
+
client.set(topic, stash());
|
170
|
+
client.set(topic, "map", stash());
|
171
|
+
Map s = client.getMap(topic, "map");
|
172
|
+
assertEquals(null, s.get("foo"));
|
173
|
+
assertEquals("hello", s.get("string"));
|
174
|
+
}
|
175
|
+
|
176
|
+
@Test
|
177
|
+
public void setWithIdListOvewrites() {
|
178
|
+
client.set(topic, stash());
|
179
|
+
List ol = list();
|
180
|
+
ol.set(0, "WOW");
|
181
|
+
client.set(topic, "list", ol);
|
182
|
+
List nl = client.getList(topic, "list");
|
183
|
+
assertEquals("WOW", nl.get(0));
|
184
|
+
assertEquals("2", nl.get(1));
|
185
|
+
}
|
186
|
+
|
187
|
+
@Test
|
188
|
+
public void setWithIdStringOvewrites() {
|
189
|
+
client.set(topic, stash());
|
190
|
+
client.set(topic, "string", "goodbye");
|
191
|
+
String s = client.getString(topic, "string");
|
192
|
+
assertEquals("goodbye", s);
|
193
|
+
}
|
194
|
+
|
195
|
+
@Test
|
196
|
+
public void setWithIdDoubleOvewrites() {
|
197
|
+
client.set(topic, stash());
|
198
|
+
client.set(topic, "double", 2.718);
|
199
|
+
Double d = client.getDouble(topic, "double");
|
200
|
+
assertEquals((double) 2.718, d, 0.001);
|
201
|
+
}
|
202
|
+
|
203
|
+
@Test
|
204
|
+
public void mergeMerges() {
|
205
|
+
Map s = stash();
|
206
|
+
client.set(topic, s);
|
207
|
+
s.put("newstring", "goodbye");
|
208
|
+
client.set(topic, s);
|
209
|
+
|
210
|
+
s = client.get(topic);
|
211
|
+
assertEquals("hello", s.get("string"));
|
212
|
+
assertEquals("goodbye", s.get("newstring"));
|
213
|
+
}
|
214
|
+
|
215
|
+
@Test
|
216
|
+
public void mergeWithIdMapMerges() throws InterruptedException {
|
217
|
+
client.set(topic, stash());
|
218
|
+
Map e = new HashMap();
|
219
|
+
e.put("bang", "boof");
|
220
|
+
client.merge(topic, "map", e);
|
221
|
+
Thread.sleep(100); // need to give the server time to process the merge
|
222
|
+
Map s = client.getMap(topic, "map");
|
223
|
+
assertEquals("bar", s.get("foo"));
|
224
|
+
assertEquals("boof", s.get("bang"));
|
225
|
+
}
|
226
|
+
|
227
|
+
public void mergeWithIdListConcatenates() throws InterruptedException {
|
228
|
+
client.set(topic, stash());
|
229
|
+
client.merge(topic, "list", list());
|
230
|
+
Thread.sleep(100); // need to give the server time to process the merge
|
231
|
+
List l = client.getList(topic, "list");
|
232
|
+
assertEquals(6, l.size());
|
233
|
+
}
|
234
|
+
|
235
|
+
public void mergeWithIdStringConcatenates() throws InterruptedException {
|
236
|
+
client.set(topic, stash());
|
237
|
+
client.merge(topic, "string", "goodbye");
|
238
|
+
Thread.sleep(100); // need to give the server time to process the merge
|
239
|
+
String s = client.getString(topic, "string");
|
240
|
+
assertEquals("hellogoodbye", s);
|
241
|
+
}
|
242
|
+
|
243
|
+
public void mergeWithIdDoubleIncrements() throws InterruptedException {
|
244
|
+
client.set(topic, stash());
|
245
|
+
client.merge(topic, "double", 3.1415);
|
246
|
+
Thread.sleep(100); // need to give the server time to process the merge
|
247
|
+
Double d = client.getDouble(topic, "double");
|
248
|
+
assertEquals((double) 6.2830, d, 0.001);
|
249
|
+
}
|
250
|
+
|
251
|
+
public void delete() throws InterruptedException {
|
252
|
+
client.set(topic, stash());
|
253
|
+
client.delete(topic);
|
254
|
+
Thread.sleep(100); // need to give the server time to process the delete
|
255
|
+
Map s = client.get(topic);
|
256
|
+
assertEquals(null, s);
|
257
|
+
}
|
258
|
+
|
259
|
+
public void deleteWithId() throws InterruptedException {
|
260
|
+
client.set(topic, stash());
|
261
|
+
client.delete(topic, "map");
|
262
|
+
Thread.sleep(100); // need to give the server time to process the delete
|
263
|
+
Map s = client.getMap(topic, "map");
|
264
|
+
assertEquals(null, s);
|
265
|
+
}
|
266
|
+
|
267
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
$:.push File.expand_path('../lib', __FILE__)
|
4
|
+
require 'vayacondios'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = 'vayacondios-client'
|
8
|
+
gem.version = Vayacondios::GEM_VERSION
|
9
|
+
gem.authors = ['Philip (flip) Kromer', 'Travis Dempsey', 'Huston Hoburg', 'Logan Lowell', 'Dhruv Bansal']
|
10
|
+
gem.homepage = 'https://github.com/infochimps-labs/vayacondios'
|
11
|
+
gem.email = 'coders@infochimps.com'
|
12
|
+
gem.licenses = ['Apache 2.0']
|
13
|
+
gem.summary = 'Data goes in. The right thing happens'
|
14
|
+
gem.description = "Simple enough to use in a shell script, performant enough to use everywhere. Dios mío! Record that metric, ese!"
|
15
|
+
|
16
|
+
gem.files = `git ls-files`.split("\n").reject{ |f| f =~ /server/ }
|
17
|
+
gem.executables = ['vcd']
|
18
|
+
gem.test_files = gem.files.grep(/^spec/)
|
19
|
+
gem.require_paths = ['lib']
|
20
|
+
|
21
|
+
gem.add_dependency('configliere')
|
22
|
+
gem.add_dependency('multi_json')
|
23
|
+
gem.add_dependency('faraday', '= 0.8.9')
|
24
|
+
gem.add_dependency('faraday_middleware')
|
25
|
+
end
|
metadata
CHANGED
@@ -1,146 +1,182 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vayacondios-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Philip (flip) Kromer
|
8
9
|
- Travis Dempsey
|
9
10
|
- Huston Hoburg
|
10
11
|
- Logan Lowell
|
12
|
+
- Dhruv Bansal
|
11
13
|
autorequire:
|
12
14
|
bindir: bin
|
13
15
|
cert_chain: []
|
14
|
-
date:
|
16
|
+
date: 2014-02-18 00:00:00.000000000 Z
|
15
17
|
dependencies:
|
16
18
|
- !ruby/object:Gem::Dependency
|
17
19
|
name: configliere
|
18
20
|
requirement: !ruby/object:Gem::Requirement
|
21
|
+
none: false
|
19
22
|
requirements:
|
20
23
|
- - ! '>='
|
21
24
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0
|
25
|
+
version: '0'
|
23
26
|
type: :runtime
|
24
27
|
prerelease: false
|
25
28
|
version_requirements: !ruby/object:Gem::Requirement
|
29
|
+
none: false
|
26
30
|
requirements:
|
27
31
|
- - ! '>='
|
28
32
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0
|
33
|
+
version: '0'
|
30
34
|
- !ruby/object:Gem::Dependency
|
31
35
|
name: multi_json
|
32
36
|
requirement: !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
33
38
|
requirements:
|
34
39
|
- - ! '>='
|
35
40
|
- !ruby/object:Gem::Version
|
36
|
-
version:
|
41
|
+
version: '0'
|
37
42
|
type: :runtime
|
38
43
|
prerelease: false
|
39
44
|
version_requirements: !ruby/object:Gem::Requirement
|
45
|
+
none: false
|
40
46
|
requirements:
|
41
47
|
- - ! '>='
|
42
48
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
49
|
+
version: '0'
|
44
50
|
- !ruby/object:Gem::Dependency
|
45
|
-
name:
|
51
|
+
name: faraday
|
46
52
|
requirement: !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
47
54
|
requirements:
|
48
|
-
- -
|
55
|
+
- - '='
|
49
56
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.
|
57
|
+
version: 0.8.9
|
51
58
|
type: :runtime
|
52
59
|
prerelease: false
|
53
60
|
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
54
62
|
requirements:
|
55
|
-
- -
|
63
|
+
- - '='
|
56
64
|
- !ruby/object:Gem::Version
|
57
|
-
version: 0.
|
65
|
+
version: 0.8.9
|
58
66
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
67
|
+
name: faraday_middleware
|
60
68
|
requirement: !ruby/object:Gem::Requirement
|
69
|
+
none: false
|
61
70
|
requirements:
|
62
71
|
- - ! '>='
|
63
72
|
- !ruby/object:Gem::Version
|
64
73
|
version: '0'
|
65
|
-
type: :
|
74
|
+
type: :runtime
|
66
75
|
prerelease: false
|
67
76
|
version_requirements: !ruby/object:Gem::Requirement
|
77
|
+
none: false
|
68
78
|
requirements:
|
69
79
|
- - ! '>='
|
70
80
|
- !ruby/object:Gem::Version
|
71
81
|
version: '0'
|
72
|
-
- !ruby/object:Gem::Dependency
|
73
|
-
name: yard
|
74
|
-
requirement: !ruby/object:Gem::Requirement
|
75
|
-
requirements:
|
76
|
-
- - ! '>='
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: '0.7'
|
79
|
-
type: :development
|
80
|
-
prerelease: false
|
81
|
-
version_requirements: !ruby/object:Gem::Requirement
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0.7'
|
86
|
-
- !ruby/object:Gem::Dependency
|
87
|
-
name: rspec
|
88
|
-
requirement: !ruby/object:Gem::Requirement
|
89
|
-
requirements:
|
90
|
-
- - ! '>='
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: '2.8'
|
93
|
-
type: :development
|
94
|
-
prerelease: false
|
95
|
-
version_requirements: !ruby/object:Gem::Requirement
|
96
|
-
requirements:
|
97
|
-
- - ! '>='
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
version: '2.8'
|
100
82
|
description: Simple enough to use in a shell script, performant enough to use everywhere.
|
101
83
|
Dios mío! Record that metric, ese!
|
102
|
-
email:
|
103
|
-
executables:
|
84
|
+
email: coders@infochimps.com
|
85
|
+
executables:
|
86
|
+
- vcd
|
104
87
|
extensions: []
|
105
88
|
extra_rdoc_files: []
|
106
89
|
files:
|
90
|
+
- .gitignore
|
91
|
+
- .travis.yml
|
92
|
+
- CHANGELOG.md
|
93
|
+
- Gemfile
|
94
|
+
- LICENSE.md
|
95
|
+
- Procfile
|
96
|
+
- README.md
|
97
|
+
- Rakefile
|
98
|
+
- bin/vcd
|
99
|
+
- config/database.yml
|
100
|
+
- config/spec.example.yml
|
101
|
+
- config/vayacondios.example.yml
|
102
|
+
- examples/configuration.rb
|
103
|
+
- examples/event_stream.rb
|
104
|
+
- examples/simple.rb
|
105
|
+
- features/event.feature
|
106
|
+
- features/events.feature
|
107
|
+
- features/stash.feature
|
108
|
+
- features/stashes.feature
|
109
|
+
- features/step_definitions/stash_steps.rb
|
110
|
+
- features/stream.feature
|
111
|
+
- features/support/em.rb
|
112
|
+
- features/support/env.rb
|
107
113
|
- lib/vayacondios-client.rb
|
108
|
-
- lib/vayacondios
|
109
|
-
- lib/vayacondios/client
|
110
|
-
- lib/vayacondios/client/
|
114
|
+
- lib/vayacondios.rb
|
115
|
+
- lib/vayacondios/client.rb
|
116
|
+
- lib/vayacondios/client/cli.rb
|
117
|
+
- lib/vayacondios/client/configuration.rb
|
118
|
+
- lib/vayacondios/client/connection.rb
|
111
119
|
- lib/vayacondios/client/http_client.rb
|
112
|
-
- lib/vayacondios/client/
|
113
|
-
- lib/vayacondios/
|
114
|
-
-
|
115
|
-
-
|
116
|
-
- spec/client/
|
117
|
-
- spec/client/
|
118
|
-
- spec/
|
120
|
+
- lib/vayacondios/client/http_methods.rb
|
121
|
+
- lib/vayacondios/configuration.rb
|
122
|
+
- pom.xml
|
123
|
+
- spec/client/cli_spec.rb
|
124
|
+
- spec/client/configuration_spec.rb
|
125
|
+
- spec/client/http_client_spec.rb
|
126
|
+
- spec/configuration_spec.rb
|
127
|
+
- spec/spec_helper.rb
|
128
|
+
- spec/support/database_helper.rb
|
129
|
+
- spec/support/log_helper.rb
|
130
|
+
- spec/support/shared_context_for_events.rb
|
131
|
+
- spec/support/shared_context_for_stashes.rb
|
132
|
+
- spec/support/shared_examples_for_handlers.rb
|
133
|
+
- src/main/java/com/infochimps/vayacondios/BaseClient.java
|
134
|
+
- src/main/java/com/infochimps/vayacondios/HTTPClient.java
|
135
|
+
- src/main/java/com/infochimps/vayacondios/VayacondiosClient.java
|
136
|
+
- src/main/java/com/infochimps/vayacondios/test/IntegrationTest.java
|
137
|
+
- src/test/java/com/infochimps/vayacondios/BaseClientTest.java
|
138
|
+
- src/test/java/com/infochimps/vayacondios/HTTPClientIT.java
|
139
|
+
- vayacondios-client.gemspec
|
119
140
|
homepage: https://github.com/infochimps-labs/vayacondios
|
120
|
-
licenses:
|
121
|
-
|
141
|
+
licenses:
|
142
|
+
- Apache 2.0
|
122
143
|
post_install_message:
|
123
144
|
rdoc_options: []
|
124
145
|
require_paths:
|
125
146
|
- lib
|
126
147
|
required_ruby_version: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
127
149
|
requirements:
|
128
150
|
- - ! '>='
|
129
151
|
- !ruby/object:Gem::Version
|
130
152
|
version: '0'
|
153
|
+
segments:
|
154
|
+
- 0
|
155
|
+
hash: -3142814313644370706
|
131
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
157
|
+
none: false
|
132
158
|
requirements:
|
133
159
|
- - ! '>='
|
134
160
|
- !ruby/object:Gem::Version
|
135
161
|
version: '0'
|
162
|
+
segments:
|
163
|
+
- 0
|
164
|
+
hash: -3142814313644370706
|
136
165
|
requirements: []
|
137
166
|
rubyforge_project:
|
138
|
-
rubygems_version:
|
167
|
+
rubygems_version: 1.8.23
|
139
168
|
signing_key:
|
140
|
-
specification_version:
|
169
|
+
specification_version: 3
|
141
170
|
summary: Data goes in. The right thing happens
|
142
171
|
test_files:
|
143
|
-
- spec/client/
|
144
|
-
- spec/client/
|
145
|
-
- spec/client/
|
172
|
+
- spec/client/cli_spec.rb
|
173
|
+
- spec/client/configuration_spec.rb
|
174
|
+
- spec/client/http_client_spec.rb
|
175
|
+
- spec/configuration_spec.rb
|
176
|
+
- spec/spec_helper.rb
|
177
|
+
- spec/support/database_helper.rb
|
178
|
+
- spec/support/log_helper.rb
|
179
|
+
- spec/support/shared_context_for_events.rb
|
180
|
+
- spec/support/shared_context_for_stashes.rb
|
181
|
+
- spec/support/shared_examples_for_handlers.rb
|
146
182
|
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
---
|
2
|
-
!binary "U0hBMQ==":
|
3
|
-
metadata.gz: !binary |-
|
4
|
-
MmEzMjBjNzFlYzE5OTc5N2VmZTBlNDc5MjAwNWMxZWYzNGE3OTIwNQ==
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
OTFmNjUzOGU3YzNmODk2ZWM3ZDgyMzJhNjlkNmNiNDhiZDZmZDY5Yw==
|
7
|
-
!binary "U0hBNTEy":
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
YWZmYTVhZTFlODg2YTZjNWM2Mzc0Mjk2M2FiMTg1MTEyOGFmYTA3NmZkYjMw
|
10
|
-
YzBhMTgyNmFiZTFkNjZjYTcwNmQyYWUzZGEyY2Q1YWRmMGQxMWFkNGFiYzlk
|
11
|
-
OWI1Y2Y4ZGFiZDlmZWQ2NzcxNzZkNjM5NWU5YTI3ZDY3MzY3MWM=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
ZDQyZmQ2Yzc4MDJmZGMzZjQwN2QwNThkZjQ5ZjljZjNlMjg2YWNlNTE2NmJk
|
14
|
-
YzM4NjM2ZDYzY2FiMmY3MWE5YjA5MTY2MThmOWM2YTFkYjY4NmEzNTAzZWQz
|
15
|
-
M2Q1ZDg3NDAyZTlmZDk4MTlhMjc3ZmIyMTczNzFjYWJkMjk2NWU=
|
@@ -1,38 +0,0 @@
|
|
1
|
-
class Vayacondios
|
2
|
-
module Configliere
|
3
|
-
|
4
|
-
def load_from_vayacondios(organization, id, options = {})
|
5
|
-
options.symbolize_keys!.deep_merge!(organization: organization)
|
6
|
-
|
7
|
-
client = ::Vayacondios::HttpClient.receive(options.deep_compact!)
|
8
|
-
id = [id, options[:env]].compact.join('.')
|
9
|
-
|
10
|
-
begin
|
11
|
-
new_data = client.fetch(:config, id)
|
12
|
-
rescue ::Vayacondios::HttpClient::Error
|
13
|
-
warn "Unable to load vayacondios config '#{id}' for #{organization} at: #{client.host}:#{client.port}"
|
14
|
-
new_data = {}
|
15
|
-
end
|
16
|
-
deep_merge! new_data
|
17
|
-
self
|
18
|
-
end
|
19
|
-
|
20
|
-
def save_to_vayacondios(organization, id, options = {})
|
21
|
-
options.symbolize_keys!.deep_merge!(organization: organization)
|
22
|
-
|
23
|
-
client = ::Vayacondios::HttpClient.receive(options.deep_compact!)
|
24
|
-
id = [id, options[:env]].compact.join('.')
|
25
|
-
|
26
|
-
begin
|
27
|
-
client.insert(self.to_hash, :config, id)
|
28
|
-
rescue ::Vayacondios::HttpClient::Error
|
29
|
-
warn "Unable to save vayacondios config '#{id}' for #{organization} at: #{client.host}:#{client.port}"
|
30
|
-
end
|
31
|
-
self
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
::Configliere::Param.class_eval do
|
37
|
-
include ::Vayacondios::Configliere
|
38
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
class Vayacondios
|
2
|
-
class CubeClient
|
3
|
-
include Gorillib::Model
|
4
|
-
|
5
|
-
field :host, String, :default => 'localhost'
|
6
|
-
field :port, Integer, :default => 6000
|
7
|
-
|
8
|
-
class Error < StandardError; end
|
9
|
-
|
10
|
-
def uri
|
11
|
-
return @uri if @uri
|
12
|
-
|
13
|
-
uri_str = "http://#{host}:#{port}/1.0"
|
14
|
-
@uri ||= URI(uri_str)
|
15
|
-
end
|
16
|
-
|
17
|
-
def event(topic, document = {})
|
18
|
-
request(:post, File.join(uri.path, 'event'), MultiJson.dump(document))
|
19
|
-
end
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def request(method, path, document=nil)
|
24
|
-
http = Net::HTTP.new(uri.host, uri.port)
|
25
|
-
|
26
|
-
params = [method.to_sym, path]
|
27
|
-
params += [document, {'Content-Type' => 'application/json'}] unless document.nil?
|
28
|
-
|
29
|
-
response = http.send *params
|
30
|
-
|
31
|
-
if Net::HTTPSuccess === response
|
32
|
-
MultiJson.load(response.body) rescue response.body
|
33
|
-
else
|
34
|
-
raise Error.new("Error (#{response.code}) while #{method.to_s == 'get' ? 'fetching' : 'inserting'} document: " + response.body)
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|