fluent-plugin-bigquery 0.0.7 → 0.0.8

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: 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