fluent-plugin-bigquery 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2028a3a22b1855688a3dbda29c3f14d686c7a564
4
- data.tar.gz: cba6fc467f68c821af6aa1a8b87e6ae128e9cb15
3
+ metadata.gz: 4ff7b10c800f4cdee7cc503d0991d101c4fe0b91
4
+ data.tar.gz: f1cdcd51c9d0016e8c6367dd3c9903903fd0bb78
5
5
  SHA512:
6
- metadata.gz: 643b083672144627b15a5e822acc57e2180acc63aa5428474ad1953db5a8286211dc222f6b7d6c0c005d5c50f2b4c48abab2bae1fe2e6d3ca6562dc12258b164
7
- data.tar.gz: 97dee7b14e15a3e4663722c91f58b18b037f13839284873dfbffe434fce694112e938899703b2ceb805a4fdbba17a2c1e2a62d2c3b6cf47a2bfcf950c233211e
6
+ metadata.gz: 81168a787618c6687f2cb806d3e69feca256cf4a78f7ccb07bf3af161c7d16a59b34bc70be907909335568adfb38907281175f203fd57bae10be50855791fd5c
7
+ data.tar.gz: c821cf46374222afb0b69cef16243c8f0889f217b5d59b9480461cddbef7cce7384c96648d00a600e9f8d6ad07e7971e0c64367556d45676131157ccecdff95d
@@ -1,6 +1,6 @@
1
1
  module Fluent
2
2
  module BigQueryPlugin
3
- VERSION = "0.0.7"
3
+ VERSION = "0.0.8"
4
4
  end
5
5
  end
6
6
 
@@ -154,22 +154,22 @@ module Fluent
154
154
  end
155
155
  if @field_string
156
156
  @field_string.split(',').each do |fieldname|
157
- @fields.register_field fieldname, :string
157
+ @fields.register_field fieldname.strip, :string
158
158
  end
159
159
  end
160
160
  if @field_integer
161
161
  @field_integer.split(',').each do |fieldname|
162
- @fields.register_field fieldname, :integer
162
+ @fields.register_field fieldname.strip, :integer
163
163
  end
164
164
  end
165
165
  if @field_float
166
166
  @field_float.split(',').each do |fieldname|
167
- @fields.register_field fieldname, :float
167
+ @fields.register_field fieldname.strip, :float
168
168
  end
169
169
  end
170
170
  if @field_boolean
171
171
  @field_boolean.split(',').each do |fieldname|
172
- @fields.register_field fieldname, :boolean
172
+ @fields.register_field fieldname.strip, :boolean
173
173
  end
174
174
  end
175
175
 
@@ -324,6 +324,14 @@ module Fluent
324
324
  unless [:nullable, :required, :repeated].include?(mode)
325
325
  raise ConfigError, "Unrecognized mode for #{name}: #{mode}"
326
326
  end
327
+ ### https://developers.google.com/bigquery/docs/tables
328
+ # Each field has the following properties:
329
+ #
330
+ # name - Field names are any combination of uppercase and/or lowercase letters (A-Z, a-z),
331
+ # digits (0-9) and underscores, but no spaces. The first character must be a letter.
332
+ unless name =~ /^[A-Za-z][_A-Za-z0-9]*$/
333
+ raise Fluent::ConfigError, "invalid bigquery field name: '#{name}'"
334
+ end
327
335
 
328
336
  @name = name
329
337
  @mode = mode
@@ -75,6 +75,69 @@ class BigQueryOutputTest < Test::Unit::TestCase
75
75
  driver.instance.client()
76
76
  end
77
77
 
78
+ def test_configure_fieldname_stripped
79
+ driver = create_driver(%[
80
+ table foo
81
+ email foo@bar.example
82
+ private_key_path /path/to/key
83
+ project yourproject_id
84
+ dataset yourdataset_id
85
+
86
+ time_format %s
87
+ time_field time
88
+
89
+ field_integer time , status , bytes
90
+ field_string vhost ,path,method,protocol, agent,referer, remote.host ,remote.ip,remote.user
91
+ field_float requesttime
92
+ field_boolean bot_access , loginsession
93
+ ])
94
+ fields = driver.instance.instance_eval{ @fields }
95
+
96
+ assert (not fields['time ']), "tailing spaces must be stripped"
97
+ assert fields['time']
98
+ assert fields['status']
99
+ assert fields['bytes']
100
+ assert fields['vhost']
101
+ assert fields['protocol']
102
+ assert fields['agent']
103
+ assert fields['referer']
104
+ assert fields['remote']['host']
105
+ assert fields['remote']['ip']
106
+ assert fields['remote']['user']
107
+ assert fields['requesttime']
108
+ assert fields['bot_access']
109
+ assert fields['loginsession']
110
+ end
111
+
112
+ def test_configure_invalid_fieldname
113
+ base = %[
114
+ table foo
115
+ email foo@bar.example
116
+ private_key_path /path/to/key
117
+ project yourproject_id
118
+ dataset yourdataset_id
119
+
120
+ time_format %s
121
+ time_field time
122
+ ]
123
+
124
+ assert_raises(Fluent::ConfigError) do
125
+ create_driver(base + "field_integer time field\n")
126
+ end
127
+ assert_raises(Fluent::ConfigError) do
128
+ create_driver(base + "field_string my name\n")
129
+ end
130
+ assert_raises(Fluent::ConfigError) do
131
+ create_driver(base + "field_string remote.host name\n")
132
+ end
133
+ assert_raises(Fluent::ConfigError) do
134
+ create_driver(base + "field_float request time\n")
135
+ end
136
+ assert_raises(Fluent::ConfigError) do
137
+ create_driver(base + "field_boolean login session\n")
138
+ end
139
+ end
140
+
78
141
  def test_format_stream
79
142
  now = Time.now
80
143
  input = [
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-bigquery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - TAGOMORI Satoshi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-15 00:00:00.000000000 Z
11
+ date: 2014-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake