vayacondios-server 0.1.2 → 0.1.6
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/Gemfile +1 -0
- data/app/http_shim.rb +1 -5
- data/lib/vayacondios-client.rb +2 -0
- data/lib/vayacondios-server.rb +1 -0
- data/lib/vayacondios/client/cube_client.rb +39 -0
- data/lib/vayacondios/client/itemset.rb +43 -28
- data/lib/vayacondios/client/notifier.rb +24 -1
- data/lib/vayacondios/client/zabbix_client.rb +148 -0
- data/lib/vayacondios/server/handlers/itemset_handler.rb +0 -1
- data/lib/vayacondios/server/model/itemset_document.rb +8 -4
- data/lib/vayacondios/server/rack/assume_json.rb +13 -0
- data/lib/vayacondios/server/rack/extract_methods.rb +11 -1
- data/lib/vayacondios/version.rb +1 -1
- data/pom.xml +97 -0
- data/scripts/hadoop_monitor/configurable.rb +1 -1
- data/scripts/hadoop_monitor/hadoop_attempt_scraper.rb +6 -3
- data/scripts/hadoop_monitor/hadoop_client.rb +20 -19
- data/scripts/hadoop_monitor/hadoop_monitor.rb +3 -3
- data/scripts/hadoop_monitor/hadoopable.rb +3 -3
- data/scripts/hadoop_monitor/machine_monitor.rb +2 -2
- data/spec/client/itemset_spec.rb +8 -8
- data/spec/server/itemset_spec.rb +4 -4
- data/src/main/java/com/infochimps/util/CurrentClass.java +26 -0
- data/src/main/java/com/infochimps/util/DebugUtil.java +38 -0
- data/src/main/java/com/infochimps/util/HttpHelper.java +112 -0
- data/src/main/java/com/infochimps/vayacondios/ItemSets.java +456 -0
- data/src/main/java/com/infochimps/vayacondios/Organization.java +49 -0
- data/src/main/java/com/infochimps/vayacondios/PathBuilder.java +13 -0
- data/src/main/java/com/infochimps/vayacondios/VCDIntegrationTest.java +68 -0
- data/src/main/java/com/infochimps/vayacondios/VayacondiosClient.java +88 -0
- data/vayacondios-client.gemspec +2 -2
- data/vayacondios-server.gemspec +4 -2
- metadata +37 -9
@@ -0,0 +1,49 @@
|
|
1
|
+
package com.infochimps.vayacondios;
|
2
|
+
|
3
|
+
import java.util.Collection;
|
4
|
+
|
5
|
+
/**
|
6
|
+
* An organization is the last commmon class in the Vayacondios
|
7
|
+
* hierarchy between the itemset and stash interface.
|
8
|
+
*/
|
9
|
+
public class Organization extends VayacondiosClient {
|
10
|
+
public Organization(PathBuilder delegate) { super(delegate); }
|
11
|
+
|
12
|
+
public Organization(VayacondiosClient server, String organization) {
|
13
|
+
super(server);
|
14
|
+
_server = server;
|
15
|
+
_organization = organization;
|
16
|
+
}
|
17
|
+
|
18
|
+
//----------------------------------------------------------------------------
|
19
|
+
// next in path hierarchy
|
20
|
+
//----------------------------------------------------------------------------
|
21
|
+
|
22
|
+
/**
|
23
|
+
* @return new ItemSets path builder for this organization
|
24
|
+
*/
|
25
|
+
public ItemSets itemsets() { return new ItemSets(this); }
|
26
|
+
|
27
|
+
//----------------------------------------------------------------------------
|
28
|
+
// API HTTP path components
|
29
|
+
//----------------------------------------------------------------------------
|
30
|
+
|
31
|
+
protected String urlString(String type, String topic, String id) {
|
32
|
+
return urlString(getOrganization(), type, topic, id);
|
33
|
+
}
|
34
|
+
|
35
|
+
protected int getPort() {
|
36
|
+
return ((VayacondiosClient)getDelegate()).getPort();
|
37
|
+
}
|
38
|
+
protected String getServerName() {
|
39
|
+
return ((VayacondiosClient)getDelegate()).getServerName();
|
40
|
+
}
|
41
|
+
String getOrganization() { return _organization; }
|
42
|
+
|
43
|
+
//----------------------------------------------------------------------------
|
44
|
+
// fields
|
45
|
+
//----------------------------------------------------------------------------
|
46
|
+
|
47
|
+
private VayacondiosClient _server;
|
48
|
+
private String _organization;
|
49
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
package com.infochimps.vayacondios;
|
2
|
+
|
3
|
+
class PathBuilder {
|
4
|
+
public PathBuilder() {}
|
5
|
+
|
6
|
+
public PathBuilder(PathBuilder delegate) {
|
7
|
+
_delegate = delegate;
|
8
|
+
}
|
9
|
+
|
10
|
+
protected PathBuilder getDelegate() { return _delegate; }
|
11
|
+
|
12
|
+
private PathBuilder _delegate;
|
13
|
+
}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
package com.infochimps.vayacondios;
|
2
|
+
|
3
|
+
import com.infochimps.vayacondios.VayacondiosClient;
|
4
|
+
|
5
|
+
import static com.infochimps.util.CurrentClass.getLogger;
|
6
|
+
|
7
|
+
import static com.infochimps.vayacondios.ItemSets.Item;
|
8
|
+
import static com.infochimps.vayacondios.ItemSets.ItemSet;
|
9
|
+
|
10
|
+
import java.io.IOException;
|
11
|
+
import java.util.Arrays;
|
12
|
+
import java.util.ArrayList;
|
13
|
+
import java.util.Iterator;
|
14
|
+
import java.util.List;
|
15
|
+
|
16
|
+
import org.slf4j.Logger;
|
17
|
+
|
18
|
+
public class VCDIntegrationTest {
|
19
|
+
private static final int VCD_PORT = 8000;
|
20
|
+
private static final Logger LOG = getLogger();
|
21
|
+
|
22
|
+
private static ItemSet newSet() {
|
23
|
+
return new VayacondiosClient("localhost", VCD_PORT).
|
24
|
+
organization("org").
|
25
|
+
itemsets().
|
26
|
+
topic("topic").
|
27
|
+
itemSet("id");
|
28
|
+
}
|
29
|
+
|
30
|
+
private static void assertEquals(String... expectedStringArr)
|
31
|
+
throws IOException {
|
32
|
+
List<Item> items = newSet().fetch();
|
33
|
+
List<Item> expectedItems = new ArrayList();
|
34
|
+
List<Item> copy;
|
35
|
+
|
36
|
+
for (String exp : expectedStringArr) expectedItems.add(new Item(exp));
|
37
|
+
|
38
|
+
if (!items.containsAll(expectedItems)) {
|
39
|
+
copy = new ArrayList(); copy.addAll(expectedItems);
|
40
|
+
LOG.trace("removing items. copy change? " + copy.removeAll(items));
|
41
|
+
System.out.println("\033[31mFAIL\033[0m: expected but absent: " + copy);
|
42
|
+
}
|
43
|
+
if (!expectedItems.containsAll(items)) {
|
44
|
+
copy = new ArrayList(); copy.addAll(items);
|
45
|
+
LOG.trace("removing items. copy change? " + copy.removeAll(expectedItems));
|
46
|
+
System.out.println("\033[31mFAIL\033[0m: unexpected and present: " + copy);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
public static void main(String argv[]) {
|
51
|
+
System.out.println("*** If Vayacondios is not running on port " + VCD_PORT + ", " +
|
52
|
+
"this will fail. ***");
|
53
|
+
System.out.println("Running Vayacondios integration test...");
|
54
|
+
|
55
|
+
try {
|
56
|
+
newSet().create(Arrays.asList(new Item("foo"), new Item("baz"), new Item("bar"), new Item("bing")));
|
57
|
+
assertEquals("foo", "baz", "bar", "bing");
|
58
|
+
newSet().update(Arrays.asList(new Item("biff")));
|
59
|
+
assertEquals("foo", "baz", "bar", "bing", "biff");
|
60
|
+
newSet().remove(Arrays.asList(new Item("biff"), new Item("bar")));
|
61
|
+
assertEquals("foo", "baz", "bing");
|
62
|
+
|
63
|
+
System.out.println("Integration test complete.");
|
64
|
+
} catch (Exception ex) {
|
65
|
+
ex.printStackTrace();
|
66
|
+
}
|
67
|
+
}
|
68
|
+
}
|
@@ -0,0 +1,88 @@
|
|
1
|
+
package com.infochimps.vayacondios;
|
2
|
+
|
3
|
+
import static com.infochimps.util.CurrentClass.getLogger;
|
4
|
+
|
5
|
+
import com.infochimps.util.CurrentClass;
|
6
|
+
import com.infochimps.util.HttpHelper;
|
7
|
+
|
8
|
+
import java.io.IOException;
|
9
|
+
import java.io.BufferedReader;
|
10
|
+
import java.nio.charset.Charset;
|
11
|
+
import java.util.HashMap;
|
12
|
+
|
13
|
+
import org.slf4j.Logger;
|
14
|
+
|
15
|
+
/**
|
16
|
+
* VayacondiosClient is the root of the Vayacondios hierarchy. It
|
17
|
+
* communicates with a Vayacondios server via its HTTP API. Currently
|
18
|
+
* only Vayacondios itemsets are supported.
|
19
|
+
*/
|
20
|
+
public class VayacondiosClient extends PathBuilder {
|
21
|
+
public VayacondiosClient(PathBuilder delegate) { super(delegate); }
|
22
|
+
|
23
|
+
public VayacondiosClient(String serverName, int port) {
|
24
|
+
_serverName = serverName;
|
25
|
+
_port = port;
|
26
|
+
}
|
27
|
+
|
28
|
+
//----------------------------------------------------------------------------
|
29
|
+
// next in path hierarchy
|
30
|
+
//----------------------------------------------------------------------------
|
31
|
+
|
32
|
+
/**
|
33
|
+
* @param organization Vayacondios organization. see Vayacondios
|
34
|
+
* documentation for details.
|
35
|
+
* @return new Organization path builder for this server with the
|
36
|
+
* specified orgnanization name
|
37
|
+
*
|
38
|
+
*/
|
39
|
+
public Organization organization(String organization) {
|
40
|
+
return new Organization(this, organization);
|
41
|
+
}
|
42
|
+
|
43
|
+
//----------------------------------------------------------------------------
|
44
|
+
// API HTTP path components
|
45
|
+
//----------------------------------------------------------------------------
|
46
|
+
|
47
|
+
protected String urlString(String organization,
|
48
|
+
String type,
|
49
|
+
String topic,
|
50
|
+
String id) {
|
51
|
+
return new StringBuilder().
|
52
|
+
append("http://").
|
53
|
+
append(getServerName()).
|
54
|
+
append(":").
|
55
|
+
append(getPort()).
|
56
|
+
append("/v1/").
|
57
|
+
append(organization).
|
58
|
+
append("/").
|
59
|
+
append(type).
|
60
|
+
append("/").
|
61
|
+
append(topic).
|
62
|
+
append("/").
|
63
|
+
append(id)
|
64
|
+
.toString();
|
65
|
+
}
|
66
|
+
|
67
|
+
protected int getPort() { return _port; }
|
68
|
+
protected String getServerName() { return _serverName; }
|
69
|
+
|
70
|
+
//----------------------------------------------------------------------------
|
71
|
+
// private methods
|
72
|
+
//----------------------------------------------------------------------------
|
73
|
+
|
74
|
+
protected BufferedReader openUrl(String urlString) throws IOException {
|
75
|
+
HashMap headers = new HashMap();
|
76
|
+
headers.put("Accept", "*/*");
|
77
|
+
return HttpHelper.open(LOG, urlString, headers, Charset.forName("UTF-8"));
|
78
|
+
}
|
79
|
+
|
80
|
+
//----------------------------------------------------------------------------
|
81
|
+
// fields
|
82
|
+
//----------------------------------------------------------------------------
|
83
|
+
|
84
|
+
private String _serverName;
|
85
|
+
private int _port;
|
86
|
+
|
87
|
+
private static final Logger LOG = getLogger();
|
88
|
+
}
|
data/vayacondios-client.gemspec
CHANGED
@@ -16,8 +16,8 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.require_paths = ['lib']
|
17
17
|
|
18
18
|
gem.add_dependency('configliere', '>= 0.4.16')
|
19
|
-
gem.add_dependency('multi_json', '
|
20
|
-
gem.add_dependency('gorillib', '
|
19
|
+
gem.add_dependency('multi_json', '>= 1.3.6')
|
20
|
+
gem.add_dependency('gorillib', '>= 0.4.2')
|
21
21
|
|
22
22
|
gem.add_development_dependency('rake')
|
23
23
|
gem.add_development_dependency('yard', '>= 0.7')
|
data/vayacondios-server.gemspec
CHANGED
@@ -16,8 +16,10 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.test_files = gem.files.grep(/^spec/)
|
17
17
|
gem.require_paths = ['lib']
|
18
18
|
|
19
|
-
gem.add_dependency('configliere', '>= 0.4.
|
20
|
-
gem.add_dependency('gorillib', '
|
19
|
+
gem.add_dependency('configliere', '>= 0.4.16')
|
20
|
+
gem.add_dependency('gorillib', '>= 0.4.2')
|
21
|
+
gem.add_dependency('multi_json', '>= 1.3.6')
|
22
|
+
|
21
23
|
gem.add_dependency('eventmachine', '~> 1.0.0.beta.4')
|
22
24
|
gem.add_dependency('goliath', '~> 1.0')
|
23
25
|
gem.add_dependency('em-http-request', '~> 1.0')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vayacondios-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2013-03-06 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: configliere
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
requirements:
|
22
22
|
- - ! '>='
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: 0.4.
|
24
|
+
version: 0.4.16
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -29,13 +29,13 @@ dependencies:
|
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
31
31
|
- !ruby/object:Gem::Version
|
32
|
-
version: 0.4.
|
32
|
+
version: 0.4.16
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: gorillib
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
none: false
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ! '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.4.2
|
41
41
|
type: :runtime
|
@@ -43,9 +43,25 @@ dependencies:
|
|
43
43
|
version_requirements: !ruby/object:Gem::Requirement
|
44
44
|
none: false
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ! '>='
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: 0.4.2
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: multi_json
|
51
|
+
requirement: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: 1.3.6
|
57
|
+
type: :runtime
|
58
|
+
prerelease: false
|
59
|
+
version_requirements: !ruby/object:Gem::Requirement
|
60
|
+
none: false
|
61
|
+
requirements:
|
62
|
+
- - ! '>='
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 1.3.6
|
49
65
|
- !ruby/object:Gem::Dependency
|
50
66
|
name: eventmachine
|
51
67
|
requirement: !ruby/object:Gem::Requirement
|
@@ -187,9 +203,11 @@ files:
|
|
187
203
|
- lib/vayacondios-client.rb
|
188
204
|
- lib/vayacondios-server.rb
|
189
205
|
- lib/vayacondios/client/configliere.rb
|
206
|
+
- lib/vayacondios/client/cube_client.rb
|
190
207
|
- lib/vayacondios/client/http_client.rb
|
191
208
|
- lib/vayacondios/client/itemset.rb
|
192
209
|
- lib/vayacondios/client/notifier.rb
|
210
|
+
- lib/vayacondios/client/zabbix_client.rb
|
193
211
|
- lib/vayacondios/server/errors/bad_request.rb
|
194
212
|
- lib/vayacondios/server/errors/not_found.rb
|
195
213
|
- lib/vayacondios/server/handlers/config_handler.rb
|
@@ -199,10 +217,12 @@ files:
|
|
199
217
|
- lib/vayacondios/server/model/document.rb
|
200
218
|
- lib/vayacondios/server/model/event_document.rb
|
201
219
|
- lib/vayacondios/server/model/itemset_document.rb
|
220
|
+
- lib/vayacondios/server/rack/assume_json.rb
|
202
221
|
- lib/vayacondios/server/rack/extract_methods.rb
|
203
222
|
- lib/vayacondios/server/rack/path.rb
|
204
223
|
- lib/vayacondios/server/rack/path_validation.rb
|
205
224
|
- lib/vayacondios/version.rb
|
225
|
+
- pom.xml
|
206
226
|
- scripts/hadoop_monitor/configurable.rb
|
207
227
|
- scripts/hadoop_monitor/hadoop_attempt_scraper.rb
|
208
228
|
- scripts/hadoop_monitor/hadoop_client.rb
|
@@ -223,6 +243,14 @@ files:
|
|
223
243
|
- spec/server/server_spec.rb
|
224
244
|
- spec/spec_helper.rb
|
225
245
|
- spec/support/mongo_cleaner.rb
|
246
|
+
- src/main/java/com/infochimps/util/CurrentClass.java
|
247
|
+
- src/main/java/com/infochimps/util/DebugUtil.java
|
248
|
+
- src/main/java/com/infochimps/util/HttpHelper.java
|
249
|
+
- src/main/java/com/infochimps/vayacondios/ItemSets.java
|
250
|
+
- src/main/java/com/infochimps/vayacondios/Organization.java
|
251
|
+
- src/main/java/com/infochimps/vayacondios/PathBuilder.java
|
252
|
+
- src/main/java/com/infochimps/vayacondios/VCDIntegrationTest.java
|
253
|
+
- src/main/java/com/infochimps/vayacondios/VayacondiosClient.java
|
226
254
|
- vayacondios-client.gemspec
|
227
255
|
- vayacondios-server.gemspec
|
228
256
|
homepage: https://github.com/infochimps-labs/vayacondios
|
@@ -239,7 +267,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
239
267
|
version: '0'
|
240
268
|
segments:
|
241
269
|
- 0
|
242
|
-
hash:
|
270
|
+
hash: -1849202629108369085
|
243
271
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
244
272
|
none: false
|
245
273
|
requirements:
|
@@ -248,10 +276,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
248
276
|
version: '0'
|
249
277
|
segments:
|
250
278
|
- 0
|
251
|
-
hash:
|
279
|
+
hash: -1849202629108369085
|
252
280
|
requirements: []
|
253
281
|
rubyforge_project:
|
254
|
-
rubygems_version: 1.8.
|
282
|
+
rubygems_version: 1.8.25
|
255
283
|
signing_key:
|
256
284
|
specification_version: 3
|
257
285
|
summary: Data goes in. The right thing happens
|