fluent-plugin-scribe 0.9.7

Sign up to get free protection for your applications and to get access to all the features.
data/AUTHORS ADDED
@@ -0,0 +1 @@
1
+ Kazuki Ohta <kazuki.ohta _at_ gmail.com>
@@ -0,0 +1,50 @@
1
+ = Scribe output plugin for Fluent
2
+
3
+ == Overview
4
+
5
+ This is a plugin for fluent[https://github.com/fluent] event collector. This plugin adds the Scribe[https://github.com/facebook/scribe] compatible interface to fluent.
6
+
7
+ == What's Scribe?
8
+
9
+ Scribe[https://github.com/facebook/scribe] is a server for aggregating log data streamed in real time from a large number of servers, developed at Facebook.
10
+
11
+ It uses Thrift[http://thrift.apache.org/], cross-language RPC framework, to communicate between clients and servers.
12
+
13
+ == What's Scribe plugin for fluent?
14
+
15
+ The Scribe plugin for fluent enables fluent daemon, to talk the Scribe protocol by using Thrift. The following shows the protocol itself, in thrift-idl format:
16
+
17
+ enum ResultCode
18
+ {
19
+ OK,
20
+ TRY_LATER
21
+ }
22
+
23
+ struct LogEntry
24
+ {
25
+ 1: string category,
26
+ 2: string message
27
+ }
28
+
29
+ service scribe extends fb303.FacebookService
30
+ {
31
+ ResultCode Log(1: list<LogEntry> messages);
32
+ }
33
+
34
+ == How to use?
35
+
36
+ Install this plugin with fluent, and add the following configuration to fluent.conf.
37
+
38
+ # Scribe input
39
+ <source>
40
+ type scribe
41
+ port 1463
42
+ tag debug.aiueo
43
+ </source>
44
+
45
+ You can modify port, and the corresponding tag.
46
+
47
+ == Copyright
48
+
49
+ Copyright:: Copyright (c) 2011 Treasure Data, Inc.
50
+ License:: Apache License, Version 2.0
@@ -0,0 +1,65 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/clean'
4
+
5
+ begin
6
+ require 'jeweler'
7
+ Jeweler::Tasks.new do |gemspec|
8
+ gemspec.name = "fluent-plugin-scribe"
9
+ gemspec.summary = "Scribe plugin for Fluent event collector"
10
+ gemspec.author = "Kazuki Ohta"
11
+ #gemspec.email = "kazuki.ohta@gmail.com"
12
+ #gemspec.homepage = "http://fluent.github.com/"
13
+ gemspec.has_rdoc = false
14
+ gemspec.require_paths = ["lib"]
15
+ gemspec.add_dependency "fluent", "~> 0.9.7"
16
+ gemspec.add_dependency "thrift", "~> 0.7.0"
17
+ gemspec.test_files = Dir["test/**/*.rb"]
18
+ gemspec.files = Dir["bin/**/*", "lib/**/*", "test/**/*.rb"] +
19
+ %w[example.conf VERSION AUTHORS Rakefile fluent-plugin-scribe.gemspec]
20
+
21
+ gemspec.executables = []
22
+ end
23
+ Jeweler::GemcutterTasks.new
24
+ rescue LoadError
25
+ puts "Jeweler not available. Install it with: gem install jeweler"
26
+ end
27
+
28
+ task "thrift_gen" do
29
+ system "rm -f common.thrift jobtracker.thrift"
30
+ system "wget https://raw.github.com/facebook/scribe/master/if/scribe.thrift"
31
+ system "wget https://raw.github.com/apache/thrift/trunk/contrib/fb303/if/fb303.thrift"
32
+ system "mv scribe.thrift lib/fluent/plugin/thrift/"
33
+ system "mv fb303.thrift lib/fluent/plugin/thrift/"
34
+ system "mkdir -p tmp"
35
+ system "sed -i '' 's/fb303\\/if\\///g' lib/fluent/plugin/thrift/scribe.thrift"
36
+ system "thrift --gen rb -o tmp lib/fluent/plugin/thrift/fb303.thrift"
37
+ system "thrift --gen rb -o tmp lib/fluent/plugin/thrift/scribe.thrift"
38
+ system "mv tmp/gen-rb/* lib/fluent/plugin/thrift/"
39
+ system "rm -fR tmp"
40
+ end
41
+
42
+ Rake::TestTask.new(:test) do |t|
43
+ t.test_files = Dir['test/*_test.rb']
44
+ t.ruby_opts = ['-rubygems'] if defined? Gem
45
+ t.ruby_opts << '-I.'
46
+ end
47
+
48
+ #VERSION_FILE = "lib/fluent/version.rb"
49
+ #
50
+ #file VERSION_FILE => ["VERSION"] do |t|
51
+ # version = File.read("VERSION").strip
52
+ # File.open(VERSION_FILE, "w") {|f|
53
+ # f.write <<EOF
54
+ #module Fluent
55
+ #
56
+ #VERSION = '#{version}'
57
+ #
58
+ #end
59
+ #EOF
60
+ # }
61
+ #end
62
+ #
63
+ #task :default => [VERSION_FILE, :build]
64
+
65
+ task :default => [:build]
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.9.7
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env ruby
2
+ require 'thrift'
3
+ $:.unshift File.join(File.dirname(__FILE__), '../lib/fluent/plugin/thrift')
4
+ require 'fb303_types'
5
+ require 'fb303_constants'
6
+ require 'facebook_service'
7
+ require 'scribe_types'
8
+ require 'scribe_constants'
9
+ require 'scribe'
10
+
11
+ host = 'localhost'
12
+ port = 1463
13
+
14
+ socket = Thrift::Socket.new host, port.to_i
15
+ transport = Thrift::FramedTransport.new socket
16
+ protocol = Thrift::BinaryProtocol.new transport
17
+ client = Scribe::Client.new protocol
18
+ transport.open
19
+
20
+ # 2011/09/02 Kazuki Ohta <kazuki.ohta@gmail.com>
21
+ # explicitly specify TCP_NODELAY for low-latency communication.
22
+ raw_sock = socket.to_io
23
+ raw_sock.setsockopt Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1
24
+
25
+ entry = LogEntry.new
26
+ entry.category = 'hoge'
27
+ entry.message = 'fuga'
28
+ p client.Log([entry])
29
+
30
+ transport.close
@@ -0,0 +1,11 @@
1
+ # Scribe input
2
+ <source>
3
+ type scribe
4
+ port 1463
5
+ tag debug.aiueo
6
+ </source>
7
+
8
+ # match tag=debug.** and dump to console
9
+ <match debug.**>
10
+ type stdout
11
+ </match>
@@ -0,0 +1,45 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{fluent-plugin-scribe}
8
+ s.version = "0.9.7"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Kazuki Ohta"]
12
+ s.date = %q{2011-08-06}
13
+ s.extra_rdoc_files = [
14
+ "README.rdoc"
15
+ ]
16
+ s.files = [
17
+ "AUTHORS",
18
+ "Rakefile",
19
+ "VERSION",
20
+ "example.conf",
21
+ "fluent-plugin-scribe.gemspec",
22
+ "lib/fluent/plugin/out_tdlog.rb"
23
+ ]
24
+ s.rdoc_options = ["--charset=UTF-8"]
25
+ s.require_paths = ["lib"]
26
+ s.rubygems_version = %q{1.3.7}
27
+ s.summary = %q{Scribe plugin for Fluent event collector}
28
+
29
+ if s.respond_to? :specification_version then
30
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
31
+ s.specification_version = 3
32
+
33
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
34
+ s.add_runtime_dependency(%q<thrift>, [">= 0.7.0"])
35
+ s.add_runtime_dependency(%q<fluent>, ["~> 0.9.7"])
36
+ else
37
+ s.add_dependency(%q<thrift>, [">= 0.7.0"])
38
+ s.add_dependency(%q<fluent>, ["~> 0.9.7"])
39
+ end
40
+ else
41
+ s.add_dependency(%q<thrift>, [">= 0.7.0"])
42
+ s.add_dependency(%q<fluent>, ["~> 0.9.7"])
43
+ end
44
+ end
45
+
@@ -0,0 +1,123 @@
1
+ #
2
+ # Fluent
3
+ #
4
+ # Copyright (C) 2011 Kazuki Ohta
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module Fluent
19
+
20
+
21
+ class ScribeInput < Input
22
+ Plugin.register_input('scribe', self)
23
+
24
+ def initialize
25
+ require 'thrift'
26
+ $:.unshift File.join(File.dirname(__FILE__), 'thrift')
27
+ require 'fb303_types'
28
+ require 'fb303_constants'
29
+ require 'facebook_service'
30
+ require 'scribe_types'
31
+ require 'scribe_constants'
32
+ require 'scribe'
33
+
34
+ @port = 1463
35
+ @bind = '0.0.0.0'
36
+ @body_size_limit = 32*1024*1024 # TODO default
37
+ end
38
+
39
+ def configure(conf)
40
+ @port = conf['port'] || @port
41
+ @port = @port.to_i
42
+ @bind = conf['bind'] || @bind
43
+ if tag = conf['tag']
44
+ @tag = tag
45
+ else
46
+ raise ConfigError, "in_scribe: 'tag' parameter is required on scribe input"
47
+ end
48
+
49
+ @server_type = conf['server_type'] || 'thread_pool'
50
+ @is_framed = conf['framed'].to_s != "false"
51
+
52
+ if body_size_limit = conf['body_size_limit']
53
+ @body_size_limit = Config.size_value(body_size_limit)
54
+ end
55
+ end
56
+
57
+ def start
58
+ $log.debug "listening scribe on #{@bind}:#{@port}"
59
+
60
+ handler = FluentScribeHandler.new @tag
61
+ processor = Scribe::Processor.new handler
62
+
63
+ @transport = Thrift::ServerSocket.new @host, @port
64
+ if @is_framed
65
+ transport_factory = Thrift::FramedTransportFactory.new
66
+ else
67
+ transport_factory = Thrift::BufferedTransportFactory.new
68
+ end
69
+
70
+ case @server_type
71
+ when 'simple'
72
+ @server = Thrift::SimpleServer.new processor, @transport, transport_factory
73
+ when 'threaded'
74
+ @server = Thrift::ThreadedServer.new processor, @transport, transport_factory
75
+ when 'thread_pool'
76
+ @server = Thrift::ThreadPoolServer.new processor, @transport, transport_factory
77
+ when 'nonblocking'
78
+ @server = Thrift::NonblockingServer.new processor, @transport, transport_factory
79
+ else
80
+ raise ConfigError, "in_scribe: unsupported server_type '#{@server_type}'"
81
+ end
82
+ @thread = Thread.new(&method(:run))
83
+ end
84
+
85
+ def shutdown
86
+ @transport.close unless @transport.closed?
87
+ #@thread.join # TODO
88
+ end
89
+
90
+ def run
91
+ @server.serve
92
+ rescue
93
+ $log.error "unexpected error", :error=>$!.to_s
94
+ $log.error_backtrace
95
+ end
96
+
97
+ class FluentScribeHandler
98
+ def initialize(tag)
99
+ @tag = tag
100
+ end
101
+
102
+ def Log(msgs)
103
+ begin
104
+ msgs.each { |msg|
105
+ event = Event.new(Engine.now, {
106
+ 'category' => msg.category,
107
+ 'message' => msg.message
108
+ })
109
+ Engine.emit(@tag, event)
110
+ }
111
+ return ResultCode::OK
112
+ rescue => e
113
+ $log.error "unexpected error", :error=>$!.to_s
114
+ $log.error_backtrace
115
+ return ResultCode::TRY_LATER
116
+ end
117
+ end
118
+ end
119
+ end
120
+
121
+
122
+ end
123
+
@@ -0,0 +1,700 @@
1
+ #
2
+ # Autogenerated by Thrift
3
+ #
4
+ # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
+ #
6
+
7
+ require 'thrift'
8
+ require 'fb303_types'
9
+
10
+ module FacebookService
11
+ class Client
12
+ include ::Thrift::Client
13
+
14
+ def getName()
15
+ send_getName()
16
+ return recv_getName()
17
+ end
18
+
19
+ def send_getName()
20
+ send_message('getName', GetName_args)
21
+ end
22
+
23
+ def recv_getName()
24
+ result = receive_message(GetName_result)
25
+ return result.success unless result.success.nil?
26
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getName failed: unknown result')
27
+ end
28
+
29
+ def getVersion()
30
+ send_getVersion()
31
+ return recv_getVersion()
32
+ end
33
+
34
+ def send_getVersion()
35
+ send_message('getVersion', GetVersion_args)
36
+ end
37
+
38
+ def recv_getVersion()
39
+ result = receive_message(GetVersion_result)
40
+ return result.success unless result.success.nil?
41
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getVersion failed: unknown result')
42
+ end
43
+
44
+ def getStatus()
45
+ send_getStatus()
46
+ return recv_getStatus()
47
+ end
48
+
49
+ def send_getStatus()
50
+ send_message('getStatus', GetStatus_args)
51
+ end
52
+
53
+ def recv_getStatus()
54
+ result = receive_message(GetStatus_result)
55
+ return result.success unless result.success.nil?
56
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getStatus failed: unknown result')
57
+ end
58
+
59
+ def getStatusDetails()
60
+ send_getStatusDetails()
61
+ return recv_getStatusDetails()
62
+ end
63
+
64
+ def send_getStatusDetails()
65
+ send_message('getStatusDetails', GetStatusDetails_args)
66
+ end
67
+
68
+ def recv_getStatusDetails()
69
+ result = receive_message(GetStatusDetails_result)
70
+ return result.success unless result.success.nil?
71
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getStatusDetails failed: unknown result')
72
+ end
73
+
74
+ def getCounters()
75
+ send_getCounters()
76
+ return recv_getCounters()
77
+ end
78
+
79
+ def send_getCounters()
80
+ send_message('getCounters', GetCounters_args)
81
+ end
82
+
83
+ def recv_getCounters()
84
+ result = receive_message(GetCounters_result)
85
+ return result.success unless result.success.nil?
86
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getCounters failed: unknown result')
87
+ end
88
+
89
+ def getCounter(key)
90
+ send_getCounter(key)
91
+ return recv_getCounter()
92
+ end
93
+
94
+ def send_getCounter(key)
95
+ send_message('getCounter', GetCounter_args, :key => key)
96
+ end
97
+
98
+ def recv_getCounter()
99
+ result = receive_message(GetCounter_result)
100
+ return result.success unless result.success.nil?
101
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getCounter failed: unknown result')
102
+ end
103
+
104
+ def setOption(key, value)
105
+ send_setOption(key, value)
106
+ recv_setOption()
107
+ end
108
+
109
+ def send_setOption(key, value)
110
+ send_message('setOption', SetOption_args, :key => key, :value => value)
111
+ end
112
+
113
+ def recv_setOption()
114
+ result = receive_message(SetOption_result)
115
+ return
116
+ end
117
+
118
+ def getOption(key)
119
+ send_getOption(key)
120
+ return recv_getOption()
121
+ end
122
+
123
+ def send_getOption(key)
124
+ send_message('getOption', GetOption_args, :key => key)
125
+ end
126
+
127
+ def recv_getOption()
128
+ result = receive_message(GetOption_result)
129
+ return result.success unless result.success.nil?
130
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getOption failed: unknown result')
131
+ end
132
+
133
+ def getOptions()
134
+ send_getOptions()
135
+ return recv_getOptions()
136
+ end
137
+
138
+ def send_getOptions()
139
+ send_message('getOptions', GetOptions_args)
140
+ end
141
+
142
+ def recv_getOptions()
143
+ result = receive_message(GetOptions_result)
144
+ return result.success unless result.success.nil?
145
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getOptions failed: unknown result')
146
+ end
147
+
148
+ def getCpuProfile(profileDurationInSec)
149
+ send_getCpuProfile(profileDurationInSec)
150
+ return recv_getCpuProfile()
151
+ end
152
+
153
+ def send_getCpuProfile(profileDurationInSec)
154
+ send_message('getCpuProfile', GetCpuProfile_args, :profileDurationInSec => profileDurationInSec)
155
+ end
156
+
157
+ def recv_getCpuProfile()
158
+ result = receive_message(GetCpuProfile_result)
159
+ return result.success unless result.success.nil?
160
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'getCpuProfile failed: unknown result')
161
+ end
162
+
163
+ def aliveSince()
164
+ send_aliveSince()
165
+ return recv_aliveSince()
166
+ end
167
+
168
+ def send_aliveSince()
169
+ send_message('aliveSince', AliveSince_args)
170
+ end
171
+
172
+ def recv_aliveSince()
173
+ result = receive_message(AliveSince_result)
174
+ return result.success unless result.success.nil?
175
+ raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'aliveSince failed: unknown result')
176
+ end
177
+
178
+ def reinitialize()
179
+ send_reinitialize()
180
+ end
181
+
182
+ def send_reinitialize()
183
+ send_message('reinitialize', Reinitialize_args)
184
+ end
185
+ def shutdown()
186
+ send_shutdown()
187
+ end
188
+
189
+ def send_shutdown()
190
+ send_message('shutdown', Shutdown_args)
191
+ end
192
+ end
193
+
194
+ class Processor
195
+ include ::Thrift::Processor
196
+
197
+ def process_getName(seqid, iprot, oprot)
198
+ args = read_args(iprot, GetName_args)
199
+ result = GetName_result.new()
200
+ result.success = @handler.getName()
201
+ write_result(result, oprot, 'getName', seqid)
202
+ end
203
+
204
+ def process_getVersion(seqid, iprot, oprot)
205
+ args = read_args(iprot, GetVersion_args)
206
+ result = GetVersion_result.new()
207
+ result.success = @handler.getVersion()
208
+ write_result(result, oprot, 'getVersion', seqid)
209
+ end
210
+
211
+ def process_getStatus(seqid, iprot, oprot)
212
+ args = read_args(iprot, GetStatus_args)
213
+ result = GetStatus_result.new()
214
+ result.success = @handler.getStatus()
215
+ write_result(result, oprot, 'getStatus', seqid)
216
+ end
217
+
218
+ def process_getStatusDetails(seqid, iprot, oprot)
219
+ args = read_args(iprot, GetStatusDetails_args)
220
+ result = GetStatusDetails_result.new()
221
+ result.success = @handler.getStatusDetails()
222
+ write_result(result, oprot, 'getStatusDetails', seqid)
223
+ end
224
+
225
+ def process_getCounters(seqid, iprot, oprot)
226
+ args = read_args(iprot, GetCounters_args)
227
+ result = GetCounters_result.new()
228
+ result.success = @handler.getCounters()
229
+ write_result(result, oprot, 'getCounters', seqid)
230
+ end
231
+
232
+ def process_getCounter(seqid, iprot, oprot)
233
+ args = read_args(iprot, GetCounter_args)
234
+ result = GetCounter_result.new()
235
+ result.success = @handler.getCounter(args.key)
236
+ write_result(result, oprot, 'getCounter', seqid)
237
+ end
238
+
239
+ def process_setOption(seqid, iprot, oprot)
240
+ args = read_args(iprot, SetOption_args)
241
+ result = SetOption_result.new()
242
+ @handler.setOption(args.key, args.value)
243
+ write_result(result, oprot, 'setOption', seqid)
244
+ end
245
+
246
+ def process_getOption(seqid, iprot, oprot)
247
+ args = read_args(iprot, GetOption_args)
248
+ result = GetOption_result.new()
249
+ result.success = @handler.getOption(args.key)
250
+ write_result(result, oprot, 'getOption', seqid)
251
+ end
252
+
253
+ def process_getOptions(seqid, iprot, oprot)
254
+ args = read_args(iprot, GetOptions_args)
255
+ result = GetOptions_result.new()
256
+ result.success = @handler.getOptions()
257
+ write_result(result, oprot, 'getOptions', seqid)
258
+ end
259
+
260
+ def process_getCpuProfile(seqid, iprot, oprot)
261
+ args = read_args(iprot, GetCpuProfile_args)
262
+ result = GetCpuProfile_result.new()
263
+ result.success = @handler.getCpuProfile(args.profileDurationInSec)
264
+ write_result(result, oprot, 'getCpuProfile', seqid)
265
+ end
266
+
267
+ def process_aliveSince(seqid, iprot, oprot)
268
+ args = read_args(iprot, AliveSince_args)
269
+ result = AliveSince_result.new()
270
+ result.success = @handler.aliveSince()
271
+ write_result(result, oprot, 'aliveSince', seqid)
272
+ end
273
+
274
+ def process_reinitialize(seqid, iprot, oprot)
275
+ args = read_args(iprot, Reinitialize_args)
276
+ @handler.reinitialize()
277
+ return
278
+ end
279
+
280
+ def process_shutdown(seqid, iprot, oprot)
281
+ args = read_args(iprot, Shutdown_args)
282
+ @handler.shutdown()
283
+ return
284
+ end
285
+
286
+ end
287
+
288
+ # HELPER FUNCTIONS AND STRUCTURES
289
+
290
+ class GetName_args
291
+ include ::Thrift::Struct, ::Thrift::Struct_Union
292
+
293
+ FIELDS = {
294
+
295
+ }
296
+
297
+ def struct_fields; FIELDS; end
298
+
299
+ def validate
300
+ end
301
+
302
+ ::Thrift::Struct.generate_accessors self
303
+ end
304
+
305
+ class GetName_result
306
+ include ::Thrift::Struct, ::Thrift::Struct_Union
307
+ SUCCESS = 0
308
+
309
+ FIELDS = {
310
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
311
+ }
312
+
313
+ def struct_fields; FIELDS; end
314
+
315
+ def validate
316
+ end
317
+
318
+ ::Thrift::Struct.generate_accessors self
319
+ end
320
+
321
+ class GetVersion_args
322
+ include ::Thrift::Struct, ::Thrift::Struct_Union
323
+
324
+ FIELDS = {
325
+
326
+ }
327
+
328
+ def struct_fields; FIELDS; end
329
+
330
+ def validate
331
+ end
332
+
333
+ ::Thrift::Struct.generate_accessors self
334
+ end
335
+
336
+ class GetVersion_result
337
+ include ::Thrift::Struct, ::Thrift::Struct_Union
338
+ SUCCESS = 0
339
+
340
+ FIELDS = {
341
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
342
+ }
343
+
344
+ def struct_fields; FIELDS; end
345
+
346
+ def validate
347
+ end
348
+
349
+ ::Thrift::Struct.generate_accessors self
350
+ end
351
+
352
+ class GetStatus_args
353
+ include ::Thrift::Struct, ::Thrift::Struct_Union
354
+
355
+ FIELDS = {
356
+
357
+ }
358
+
359
+ def struct_fields; FIELDS; end
360
+
361
+ def validate
362
+ end
363
+
364
+ ::Thrift::Struct.generate_accessors self
365
+ end
366
+
367
+ class GetStatus_result
368
+ include ::Thrift::Struct, ::Thrift::Struct_Union
369
+ SUCCESS = 0
370
+
371
+ FIELDS = {
372
+ SUCCESS => {:type => ::Thrift::Types::I32, :name => 'success', :enum_class => Fb_status}
373
+ }
374
+
375
+ def struct_fields; FIELDS; end
376
+
377
+ def validate
378
+ unless @success.nil? || Fb_status::VALID_VALUES.include?(@success)
379
+ raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid value of field success!')
380
+ end
381
+ end
382
+
383
+ ::Thrift::Struct.generate_accessors self
384
+ end
385
+
386
+ class GetStatusDetails_args
387
+ include ::Thrift::Struct, ::Thrift::Struct_Union
388
+
389
+ FIELDS = {
390
+
391
+ }
392
+
393
+ def struct_fields; FIELDS; end
394
+
395
+ def validate
396
+ end
397
+
398
+ ::Thrift::Struct.generate_accessors self
399
+ end
400
+
401
+ class GetStatusDetails_result
402
+ include ::Thrift::Struct, ::Thrift::Struct_Union
403
+ SUCCESS = 0
404
+
405
+ FIELDS = {
406
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
407
+ }
408
+
409
+ def struct_fields; FIELDS; end
410
+
411
+ def validate
412
+ end
413
+
414
+ ::Thrift::Struct.generate_accessors self
415
+ end
416
+
417
+ class GetCounters_args
418
+ include ::Thrift::Struct, ::Thrift::Struct_Union
419
+
420
+ FIELDS = {
421
+
422
+ }
423
+
424
+ def struct_fields; FIELDS; end
425
+
426
+ def validate
427
+ end
428
+
429
+ ::Thrift::Struct.generate_accessors self
430
+ end
431
+
432
+ class GetCounters_result
433
+ include ::Thrift::Struct, ::Thrift::Struct_Union
434
+ SUCCESS = 0
435
+
436
+ FIELDS = {
437
+ SUCCESS => {:type => ::Thrift::Types::MAP, :name => 'success', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::I64}}
438
+ }
439
+
440
+ def struct_fields; FIELDS; end
441
+
442
+ def validate
443
+ end
444
+
445
+ ::Thrift::Struct.generate_accessors self
446
+ end
447
+
448
+ class GetCounter_args
449
+ include ::Thrift::Struct, ::Thrift::Struct_Union
450
+ KEY = 1
451
+
452
+ FIELDS = {
453
+ KEY => {:type => ::Thrift::Types::STRING, :name => 'key'}
454
+ }
455
+
456
+ def struct_fields; FIELDS; end
457
+
458
+ def validate
459
+ end
460
+
461
+ ::Thrift::Struct.generate_accessors self
462
+ end
463
+
464
+ class GetCounter_result
465
+ include ::Thrift::Struct, ::Thrift::Struct_Union
466
+ SUCCESS = 0
467
+
468
+ FIELDS = {
469
+ SUCCESS => {:type => ::Thrift::Types::I64, :name => 'success'}
470
+ }
471
+
472
+ def struct_fields; FIELDS; end
473
+
474
+ def validate
475
+ end
476
+
477
+ ::Thrift::Struct.generate_accessors self
478
+ end
479
+
480
+ class SetOption_args
481
+ include ::Thrift::Struct, ::Thrift::Struct_Union
482
+ KEY = 1
483
+ VALUE = 2
484
+
485
+ FIELDS = {
486
+ KEY => {:type => ::Thrift::Types::STRING, :name => 'key'},
487
+ VALUE => {:type => ::Thrift::Types::STRING, :name => 'value'}
488
+ }
489
+
490
+ def struct_fields; FIELDS; end
491
+
492
+ def validate
493
+ end
494
+
495
+ ::Thrift::Struct.generate_accessors self
496
+ end
497
+
498
+ class SetOption_result
499
+ include ::Thrift::Struct, ::Thrift::Struct_Union
500
+
501
+ FIELDS = {
502
+
503
+ }
504
+
505
+ def struct_fields; FIELDS; end
506
+
507
+ def validate
508
+ end
509
+
510
+ ::Thrift::Struct.generate_accessors self
511
+ end
512
+
513
+ class GetOption_args
514
+ include ::Thrift::Struct, ::Thrift::Struct_Union
515
+ KEY = 1
516
+
517
+ FIELDS = {
518
+ KEY => {:type => ::Thrift::Types::STRING, :name => 'key'}
519
+ }
520
+
521
+ def struct_fields; FIELDS; end
522
+
523
+ def validate
524
+ end
525
+
526
+ ::Thrift::Struct.generate_accessors self
527
+ end
528
+
529
+ class GetOption_result
530
+ include ::Thrift::Struct, ::Thrift::Struct_Union
531
+ SUCCESS = 0
532
+
533
+ FIELDS = {
534
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
535
+ }
536
+
537
+ def struct_fields; FIELDS; end
538
+
539
+ def validate
540
+ end
541
+
542
+ ::Thrift::Struct.generate_accessors self
543
+ end
544
+
545
+ class GetOptions_args
546
+ include ::Thrift::Struct, ::Thrift::Struct_Union
547
+
548
+ FIELDS = {
549
+
550
+ }
551
+
552
+ def struct_fields; FIELDS; end
553
+
554
+ def validate
555
+ end
556
+
557
+ ::Thrift::Struct.generate_accessors self
558
+ end
559
+
560
+ class GetOptions_result
561
+ include ::Thrift::Struct, ::Thrift::Struct_Union
562
+ SUCCESS = 0
563
+
564
+ FIELDS = {
565
+ SUCCESS => {:type => ::Thrift::Types::MAP, :name => 'success', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}}
566
+ }
567
+
568
+ def struct_fields; FIELDS; end
569
+
570
+ def validate
571
+ end
572
+
573
+ ::Thrift::Struct.generate_accessors self
574
+ end
575
+
576
+ class GetCpuProfile_args
577
+ include ::Thrift::Struct, ::Thrift::Struct_Union
578
+ PROFILEDURATIONINSEC = 1
579
+
580
+ FIELDS = {
581
+ PROFILEDURATIONINSEC => {:type => ::Thrift::Types::I32, :name => 'profileDurationInSec'}
582
+ }
583
+
584
+ def struct_fields; FIELDS; end
585
+
586
+ def validate
587
+ end
588
+
589
+ ::Thrift::Struct.generate_accessors self
590
+ end
591
+
592
+ class GetCpuProfile_result
593
+ include ::Thrift::Struct, ::Thrift::Struct_Union
594
+ SUCCESS = 0
595
+
596
+ FIELDS = {
597
+ SUCCESS => {:type => ::Thrift::Types::STRING, :name => 'success'}
598
+ }
599
+
600
+ def struct_fields; FIELDS; end
601
+
602
+ def validate
603
+ end
604
+
605
+ ::Thrift::Struct.generate_accessors self
606
+ end
607
+
608
+ class AliveSince_args
609
+ include ::Thrift::Struct, ::Thrift::Struct_Union
610
+
611
+ FIELDS = {
612
+
613
+ }
614
+
615
+ def struct_fields; FIELDS; end
616
+
617
+ def validate
618
+ end
619
+
620
+ ::Thrift::Struct.generate_accessors self
621
+ end
622
+
623
+ class AliveSince_result
624
+ include ::Thrift::Struct, ::Thrift::Struct_Union
625
+ SUCCESS = 0
626
+
627
+ FIELDS = {
628
+ SUCCESS => {:type => ::Thrift::Types::I64, :name => 'success'}
629
+ }
630
+
631
+ def struct_fields; FIELDS; end
632
+
633
+ def validate
634
+ end
635
+
636
+ ::Thrift::Struct.generate_accessors self
637
+ end
638
+
639
+ class Reinitialize_args
640
+ include ::Thrift::Struct, ::Thrift::Struct_Union
641
+
642
+ FIELDS = {
643
+
644
+ }
645
+
646
+ def struct_fields; FIELDS; end
647
+
648
+ def validate
649
+ end
650
+
651
+ ::Thrift::Struct.generate_accessors self
652
+ end
653
+
654
+ class Reinitialize_result
655
+ include ::Thrift::Struct, ::Thrift::Struct_Union
656
+
657
+ FIELDS = {
658
+
659
+ }
660
+
661
+ def struct_fields; FIELDS; end
662
+
663
+ def validate
664
+ end
665
+
666
+ ::Thrift::Struct.generate_accessors self
667
+ end
668
+
669
+ class Shutdown_args
670
+ include ::Thrift::Struct, ::Thrift::Struct_Union
671
+
672
+ FIELDS = {
673
+
674
+ }
675
+
676
+ def struct_fields; FIELDS; end
677
+
678
+ def validate
679
+ end
680
+
681
+ ::Thrift::Struct.generate_accessors self
682
+ end
683
+
684
+ class Shutdown_result
685
+ include ::Thrift::Struct, ::Thrift::Struct_Union
686
+
687
+ FIELDS = {
688
+
689
+ }
690
+
691
+ def struct_fields; FIELDS; end
692
+
693
+ def validate
694
+ end
695
+
696
+ ::Thrift::Struct.generate_accessors self
697
+ end
698
+
699
+ end
700
+