influxdb 0.0.16 → 0.0.17

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 922d7fb8e14dbf9ed19a5be9309589f17ca56772
4
- data.tar.gz: e13dbb25d5cc539b31751a8e6fc28f1561c6f5db
3
+ metadata.gz: 0d70a9878bd1e5c317027674416232aa8a04ae7d
4
+ data.tar.gz: 04aa90bf5904206307fe68d2ea09dec094792e9a
5
5
  SHA512:
6
- metadata.gz: 8770fa30c86622dc5da0cc973bb7642ec1840be9fddd68280c810c2be3313fab4803db4067f5c88c271a71def0b27a6208aa16af539e2d62f245d8cc3d15c446
7
- data.tar.gz: c32e3f4298a9b67af57695db14459eface58346a56ba7da079ad4764d5a7891b572d13bff04dd75afb4efa125d273cb4f2e53dea3671c952e53fdb2e5ec19aee
6
+ metadata.gz: be3a486311a2a5506dad439e1aba5d6dfd1c11d54bfd665be5f80d89a958ae40ae641eb40718c4ffe422a1b4d1a02dac4a7ec7dbdb530c7dff1dee91dc4caa62
7
+ data.tar.gz: 59e4d64307c3b4662cf652511ec9f2a1b4c0df7cb293792d5eccfa0d4c804f65ecce0b970ee22c3cd607f39d8d778142f86917df467c1127191ea3e54c47709e
data/README.md CHANGED
@@ -94,7 +94,7 @@ influxdb = InfluxDB::Client.new database, :username => username,
94
94
  :time_precision => time_precision
95
95
 
96
96
  data = {
97
- :value => 0
97
+ :value => 0,
98
98
  :time => Time.now.to_i
99
99
  }
100
100
 
@@ -114,7 +114,7 @@ time_precision = 's'
114
114
  influxdb = InfluxDB::Client.new database, :username => username, :password => password
115
115
 
116
116
  data = {
117
- :value => 0
117
+ :value => 0,
118
118
  :time => Time.now.to_i
119
119
  }
120
120
 
@@ -152,6 +152,16 @@ influxdb = InfluxDB::Client.new
152
152
  influxdb.get_database_user_list(database)
153
153
  ```
154
154
 
155
+ List a database user:
156
+
157
+ ``` ruby
158
+ require 'influxdb'
159
+
160
+ influxdb = InfluxDB::Client.new
161
+
162
+ influxdb.get_database_user_info(database, username)
163
+ ```
164
+
155
165
  Delete a database:
156
166
 
157
167
  ``` ruby
@@ -197,5 +207,5 @@ Testing
197
207
  git clone git@github.com:influxdb/influxdb-ruby.git
198
208
  cd influxdb-ruby
199
209
  bundle
200
- rake
210
+ bundle exec rspec
201
211
  ```
@@ -40,7 +40,7 @@ module InfluxDB
40
40
  @password = opts[:password] || "root"
41
41
  @http = Net::HTTP.new(@host, @port)
42
42
  @http.use_ssl = opts[:use_ssl]
43
- @time_precision = opts[:time_precision] || "m"
43
+ @time_precision = opts[:time_precision] || "s"
44
44
  end
45
45
 
46
46
  ## allow options, e.g. influxdb.create_database('foo', replicationFactor: 3)
@@ -99,10 +99,18 @@ module InfluxDB
99
99
  get full_url("db/#{database}/users")
100
100
  end
101
101
 
102
+ def get_database_user_info(database, username)
103
+ get full_url("db/#{database}/users/#{username}")
104
+ end
105
+
102
106
  def alter_database_privilege(database, username, admin=true)
103
107
  update_database_user(database, username, :admin => admin)
104
108
  end
105
109
 
110
+ def continuous_queries
111
+ get full_url("continuous_queries")
112
+ end
113
+
106
114
  def write_point(name, data, async=false, time_precision=@time_precision)
107
115
  data = data.is_a?(Array) ? data : [data]
108
116
  columns = data.reduce(:merge).keys.sort {|a,b| a.to_s <=> b.to_s}
@@ -125,11 +133,7 @@ module InfluxDB
125
133
  def _write(payload, time_precision=nil)
126
134
  url = full_url("db/#{@database}/series", "time_precision=#{time_precision}")
127
135
  data = JSON.generate(payload)
128
-
129
- headers = {"Content-Type" => "application/json"}
130
- response = @http.request(Net::HTTP::Post.new(url, headers), data)
131
- raise "Write failed with '#{response.message}'" unless (200...300).include?(response.code.to_i)
132
- response
136
+ post(url, data)
133
137
  end
134
138
 
135
139
  def query(query)
@@ -192,6 +196,10 @@ module InfluxDB
192
196
 
193
197
  def denormalize_series series
194
198
  columns = series['columns']
199
+
200
+ h = Hash.new(-1)
201
+ columns = columns.map {|v| h[v] += 1; h[v] > 0 ? "#{v}~#{h[v]}" : v }
202
+
195
203
  series['points'].map do |point|
196
204
  decoded_point = point.map do |value|
197
205
  InfluxDB::PointValue.new(value).load
@@ -1,3 +1,3 @@
1
1
  module InfluxDB
2
- VERSION = "0.0.16"
2
+ VERSION = "0.0.17"
3
3
  end
@@ -19,7 +19,7 @@ describe InfluxDB::Client do
19
19
  @influxdb.username.should == "root"
20
20
  @influxdb.password.should == "root"
21
21
  @influxdb.instance_variable_get(:@http).use_ssl?.should == false
22
- @influxdb.time_precision.should == "m"
22
+ @influxdb.time_precision.should == "s"
23
23
  end
24
24
  end
25
25
 
@@ -29,7 +29,7 @@ describe InfluxDB::Client do
29
29
  :port => "port",
30
30
  :username => "username",
31
31
  :password => "password",
32
- :time_precision => "s"
32
+ :time_precision => "m"
33
33
 
34
34
  @influxdb.should be_a InfluxDB::Client
35
35
  @influxdb.database.should be_nil
@@ -37,7 +37,7 @@ describe InfluxDB::Client do
37
37
  @influxdb.port.should == "port"
38
38
  @influxdb.username.should == "username"
39
39
  @influxdb.password.should == "password"
40
- @influxdb.time_precision.should == "s"
40
+ @influxdb.time_precision.should == "m"
41
41
  end
42
42
  end
43
43
 
@@ -51,7 +51,7 @@ describe InfluxDB::Client do
51
51
  @influxdb.port.should == 8086
52
52
  @influxdb.username.should == "root"
53
53
  @influxdb.password.should == "root"
54
- @influxdb.time_precision.should == "m"
54
+ @influxdb.time_precision.should == "s"
55
55
  end
56
56
  end
57
57
 
@@ -61,7 +61,7 @@ describe InfluxDB::Client do
61
61
  :port => "port",
62
62
  :username => "username",
63
63
  :password => "password",
64
- :time_precision => "s"
64
+ :time_precision => "m"
65
65
 
66
66
  @influxdb.should be_a(InfluxDB::Client)
67
67
  @influxdb.database.should == "database"
@@ -69,7 +69,7 @@ describe InfluxDB::Client do
69
69
  @influxdb.port.should == "port"
70
70
  @influxdb.username.should == "username"
71
71
  @influxdb.password.should == "password"
72
- @influxdb.time_precision.should == "s"
72
+ @influxdb.time_precision.should == "m"
73
73
  end
74
74
  end
75
75
 
@@ -217,6 +217,17 @@ describe InfluxDB::Client do
217
217
  end
218
218
  end
219
219
 
220
+ describe "#get_database_user_info" do
221
+ it "should GET information about a database user" do
222
+ user_info = {"name" => "bar", "isAdmin" => true}
223
+ stub_request(:get, "http://influxdb.test:9999/db/foo/users/bar").with(
224
+ :query => {:u => "username", :p => "password"}
225
+ ).to_return(:body => JSON.generate(user_info, :status => 200))
226
+
227
+ @influxdb.get_database_user_info("foo", "bar").should == user_info
228
+ end
229
+ end
230
+
220
231
  describe "#write_point" do
221
232
  it "should POST to add points" do
222
233
  body = [{
@@ -361,7 +372,7 @@ describe InfluxDB::Client do
361
372
 
362
373
  describe "#execute_queries" do
363
374
  before(:each) do
364
- data = [{ :name => "foo", :columns => ["name", "age"], :points => [["shahid", 99],["dix", 50]]}]
375
+ data = [{ :name => "foo", :columns => ["name", "age", "count", "count"], :points => [["shahid", 99, 1, 2],["dix", 50, 3, 4]]}]
365
376
 
366
377
  stub_request(:get, "http://influxdb.test:9999/db/database/series").with(
367
378
  :query => { :q => "select * from foo", :u => "username", :p => "password"}
@@ -370,7 +381,7 @@ describe InfluxDB::Client do
370
381
  )
371
382
  end
372
383
 
373
- expected_series = { 'foo' => [{"name" => "shahid", "age" => 99}, {"name" => "dix", "age" => 50}]}
384
+ expected_series = { 'foo' => [{"name" => "shahid", "age" => 99, "count" => 1, "count~1" => 2}, {"name" => "dix", "age" => 50, "count" => 3, "count~1" => 4}]}
374
385
 
375
386
  it 'can execute a query with a block' do
376
387
  series = { }
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe InfluxDB::Logger do
4
+ class LoggerTest
5
+ include InfluxDB::Logger
6
+
7
+ def write_to_log(level, message)
8
+ log(level, message)
9
+ end
10
+ end
11
+
12
+ subject { LoggerTest.new }
13
+
14
+ context 'with DEBUG level' do
15
+ it 'should not write a log message to STDERR' do
16
+ expect(STDERR).to_not receive(:puts)
17
+
18
+ subject.write_to_log(:debug, 'debug')
19
+ end
20
+ end
21
+
22
+ context 'with non-DEBUG level' do
23
+ it 'should write a log message to STDERR' do
24
+ expect(STDERR).to receive(:puts).with('[InfluxDB] (info) info')
25
+
26
+ subject.write_to_log(:info, 'info')
27
+ end
28
+ end
29
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: influxdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.16
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Todd Persen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-05 00:00:00.000000000 Z
11
+ date: 2014-03-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -104,6 +104,7 @@ files:
104
104
  - lib/influxdb/version.rb
105
105
  - lib/influxdb/worker.rb
106
106
  - spec/influxdb/client_spec.rb
107
+ - spec/influxdb/logger_spec.rb
107
108
  - spec/influxdb/point_value_spec.rb
108
109
  - spec/influxdb_spec.rb
109
110
  - spec/max_queue_spec.rb
@@ -134,6 +135,7 @@ specification_version: 4
134
135
  summary: Ruby library for InfluxDB.
135
136
  test_files:
136
137
  - spec/influxdb/client_spec.rb
138
+ - spec/influxdb/logger_spec.rb
137
139
  - spec/influxdb/point_value_spec.rb
138
140
  - spec/influxdb_spec.rb
139
141
  - spec/max_queue_spec.rb