flydata 0.3.5 → 0.3.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.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/bin/flydata +1 -0
- data/flydata-core/lib/flydata-core/core_ext/module.rb +1 -1
- data/flydata-core/lib/flydata-core/core_ext/object.rb +1 -1
- data/flydata.gemspec +21 -5
- data/lib/flydata.rb +5 -8
- data/lib/flydata/api/data_entry.rb +2 -0
- data/lib/flydata/api/data_port.rb +2 -0
- data/lib/flydata/api/redshift_cluster.rb +2 -0
- data/lib/flydata/api_client.rb +3 -0
- data/lib/flydata/cli.rb +13 -2
- data/lib/flydata/command/base.rb +6 -0
- data/lib/flydata/command/conf.rb +3 -0
- data/lib/flydata/command/crontab.rb +3 -0
- data/lib/flydata/command/encrypt.rb +3 -0
- data/lib/flydata/command/kill_all.rb +3 -0
- data/lib/flydata/command/login.rb +2 -0
- data/lib/flydata/command/restart.rb +3 -0
- data/lib/flydata/command/routine.rb +3 -0
- data/lib/flydata/command/sender.rb +2 -0
- data/lib/flydata/command/setlogdel.rb +4 -1
- data/lib/flydata/command/setup.rb +7 -2
- data/lib/flydata/command/start.rb +3 -0
- data/lib/flydata/command/status.rb +3 -0
- data/lib/flydata/command/stop.rb +3 -0
- data/lib/flydata/command/sync.rb +10 -3
- data/lib/flydata/command/version.rb +2 -0
- data/lib/flydata/{command_logger.rb → command_loggable.rb} +0 -0
- data/lib/flydata/compatibility_check.rb +1 -1
- data/lib/flydata/credentials.rb +2 -0
- data/lib/flydata/fluent-plugins/in_mysql_binlog_flydata.rb +8 -9
- data/lib/flydata/fluent-plugins/mysql/alter_table_query_handler.rb +1 -1
- data/lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb +1 -1
- data/lib/flydata/fluent-plugins/mysql/binlog_query_handler.rb +1 -1
- data/lib/flydata/fluent-plugins/mysql/binlog_record_dispatcher.rb +2 -2
- data/lib/flydata/fluent-plugins/mysql/binlog_record_handler.rb +1 -1
- data/lib/flydata/fluent-plugins/mysql/ddl_query_handler.rb +1 -1
- data/lib/flydata/fluent-plugins/mysql/dml_record_handler.rb +1 -1
- data/lib/flydata/helpers.rb +0 -10
- data/lib/flydata/heroku.rb +3 -0
- data/lib/flydata/output/forwarder.rb +1 -1
- data/lib/flydata/parser/mysql/dump_parser.rb +29 -31
- data/lib/flydata/sync_file_manager.rb +230 -232
- data/spec/fly_data_model_spec.rb +1 -0
- data/spec/flydata/api/data_entry_spec.rb +1 -0
- data/spec/flydata/api_client_spec.rb +18 -0
- data/spec/flydata/cli_spec.rb +1 -0
- data/spec/flydata/command/base_spec.rb +44 -0
- data/spec/flydata/command/conf_spec.rb +21 -0
- data/spec/flydata/command/crontab_spec.rb +17 -0
- data/spec/flydata/command/encrypt_spec.rb +28 -0
- data/spec/flydata/command/kill_all_spec.rb +17 -0
- data/spec/flydata/command/login_spec.rb +21 -0
- data/spec/flydata/command/restart_spec.rb +17 -0
- data/spec/flydata/command/routine_spec.rb +29 -0
- data/spec/flydata/command/sender_spec.rb +7 -2
- data/spec/flydata/command/setlogdel_spec.rb +18 -0
- data/spec/flydata/command/setup_spec.rb +44 -0
- data/spec/flydata/command/start_spec.rb +17 -0
- data/spec/flydata/command/status_spec.rb +17 -0
- data/spec/flydata/command/stop_spec.rb +17 -0
- data/spec/flydata/command/sync_spec.rb +1 -0
- data/spec/flydata/command/version_spec.rb +14 -0
- data/spec/flydata/fluent-plugins/in_mysql_binlog_flydata_spec.rb +1 -1
- data/spec/flydata/parser/mysql/dump_parser_spec.rb +23 -73
- data/spec/flydata/sync_file_manager_spec.rb +150 -152
- metadata +19 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f947592ebedab5272b94129436953e9fac61c46
|
4
|
+
data.tar.gz: b676c7dd72b765244ef0b99d9cd44c584c0126c1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ed77e0b82c8d0c2dbe3e2be510a0fe0b9f3d9bfef08788443b26085989cfaa566348e7537c393786b8d451a5d687dc3f5c9b32c7d8a9c45508f0f7d014099b3
|
7
|
+
data.tar.gz: d3073aba50dff2fbf45a613c5e64c15297bc65f380c284511acddd3af775cd33f8dbaf7acdaed023b2426c9459922b321482a2121968a53afb43ed060d680f57
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.6
|
data/bin/flydata
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
require 'flydata-core/core_ext/module/include'
|
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
require 'flydata-core/core_ext/object/prepend'
|
data/flydata.gemspec
CHANGED
@@ -2,14 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
+
# stub: flydata 0.3.6 ruby lib
|
5
6
|
|
6
7
|
Gem::Specification.new do |s|
|
7
8
|
s.name = "flydata"
|
8
|
-
s.version = "0.3.
|
9
|
+
s.version = "0.3.6"
|
9
10
|
|
10
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
|
+
s.require_paths = ["lib"]
|
11
13
|
s.authors = ["Koichi Fujikawa", "Masashi Miyazaki", "Matthew Luu", "Mak Inada", "Sriram NS"]
|
12
|
-
s.date = "2015-
|
14
|
+
s.date = "2015-03-04"
|
13
15
|
s.description = "FlyData Agent"
|
14
16
|
s.email = "sysadmin@flydata.com"
|
15
17
|
s.executables = ["fdmysqldump", "flydata", "serverinfo"]
|
@@ -89,7 +91,7 @@ Gem::Specification.new do |s|
|
|
89
91
|
"lib/flydata/command/stop.rb",
|
90
92
|
"lib/flydata/command/sync.rb",
|
91
93
|
"lib/flydata/command/version.rb",
|
92
|
-
"lib/flydata/
|
94
|
+
"lib/flydata/command_loggable.rb",
|
93
95
|
"lib/flydata/compatibility_check.rb",
|
94
96
|
"lib/flydata/credentials.rb",
|
95
97
|
"lib/flydata/cron.rb",
|
@@ -127,9 +129,24 @@ Gem::Specification.new do |s|
|
|
127
129
|
"spec/fluent_plugins_spec_helper.rb",
|
128
130
|
"spec/fly_data_model_spec.rb",
|
129
131
|
"spec/flydata/api/data_entry_spec.rb",
|
132
|
+
"spec/flydata/api_client_spec.rb",
|
130
133
|
"spec/flydata/cli_spec.rb",
|
134
|
+
"spec/flydata/command/base_spec.rb",
|
135
|
+
"spec/flydata/command/conf_spec.rb",
|
136
|
+
"spec/flydata/command/crontab_spec.rb",
|
137
|
+
"spec/flydata/command/encrypt_spec.rb",
|
138
|
+
"spec/flydata/command/kill_all_spec.rb",
|
139
|
+
"spec/flydata/command/login_spec.rb",
|
140
|
+
"spec/flydata/command/restart_spec.rb",
|
141
|
+
"spec/flydata/command/routine_spec.rb",
|
131
142
|
"spec/flydata/command/sender_spec.rb",
|
143
|
+
"spec/flydata/command/setlogdel_spec.rb",
|
144
|
+
"spec/flydata/command/setup_spec.rb",
|
145
|
+
"spec/flydata/command/start_spec.rb",
|
146
|
+
"spec/flydata/command/status_spec.rb",
|
147
|
+
"spec/flydata/command/stop_spec.rb",
|
132
148
|
"spec/flydata/command/sync_spec.rb",
|
149
|
+
"spec/flydata/command/version_spec.rb",
|
133
150
|
"spec/flydata/compatibility_check_spec.rb",
|
134
151
|
"spec/flydata/fluent-plugins/idle_event_detector_spec.rb",
|
135
152
|
"spec/flydata/fluent-plugins/in_mysql_binlog_flydata_spec.rb",
|
@@ -150,8 +167,7 @@ Gem::Specification.new do |s|
|
|
150
167
|
]
|
151
168
|
s.homepage = "http://flydata.com/"
|
152
169
|
s.licenses = ["All right reserved."]
|
153
|
-
s.
|
154
|
-
s.rubygems_version = "2.0.14"
|
170
|
+
s.rubygems_version = "2.4.3"
|
155
171
|
s.summary = "FlyData Agent"
|
156
172
|
|
157
173
|
if s.respond_to? :specification_version then
|
data/lib/flydata.rb
CHANGED
@@ -1,25 +1,22 @@
|
|
1
1
|
# load_path settings
|
2
2
|
def append_load_path_if_not_exist(new_lib_path)
|
3
|
-
|
4
|
-
$LOAD_PATH.unshift
|
3
|
+
expanded_path = File.expand_path(new_lib_path)
|
4
|
+
$LOAD_PATH.unshift expanded_path unless $LOAD_PATH.include? expanded_path
|
5
5
|
end
|
6
|
-
flydata_top_dir = File.
|
6
|
+
flydata_top_dir = File.expand_path('../../', __FILE__)
|
7
7
|
flydata_core_dir = File.join(flydata_top_dir, 'flydata-core')
|
8
|
-
flydata_core_lib_dir = File.
|
8
|
+
flydata_core_lib_dir = File.expand_path('lib', flydata_core_dir)
|
9
9
|
append_load_path_if_not_exist(flydata_core_lib_dir)
|
10
10
|
|
11
11
|
# require common libs
|
12
12
|
require 'active_support/core_ext/string'
|
13
|
-
require 'active_support/dependencies'
|
14
13
|
require 'active_support/time'
|
15
14
|
require 'highline/import'
|
16
15
|
require 'readline'
|
17
16
|
require 'json'
|
18
17
|
require 'pp'
|
19
18
|
|
20
|
-
|
21
|
-
lib_dir = File.absolute_path(File.dirname(__FILE__))
|
22
|
-
ActiveSupport::Dependencies.autoload_paths << lib_dir
|
19
|
+
require 'flydata/heroku'
|
23
20
|
|
24
21
|
module Flydata
|
25
22
|
FLYDATA_DEBUG = !!(ENV['FLYDATA_DEBUG'])
|
data/lib/flydata/api_client.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'rest_client'
|
2
2
|
require 'singleton'
|
3
|
+
require 'flydata/credentials'
|
4
|
+
require 'flydata/helpers'
|
3
5
|
|
4
6
|
module Flydata
|
5
7
|
FLYDATA_API_HOST = ENV['FLYDATA_API_HOST'] || 'https://flydata.co'
|
@@ -39,6 +41,7 @@ module Flydata
|
|
39
41
|
# high level api
|
40
42
|
def method_missing(cls_name, *args, &block)
|
41
43
|
method_name = args.shift.to_s
|
44
|
+
require File.join("flydata/api", cls_name.to_s)
|
42
45
|
api_cls = "Flydata::Api::#{cls_name.to_s.camelize}".constantize
|
43
46
|
api_cls.new(self)
|
44
47
|
end
|
data/lib/flydata/cli.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'slop'
|
2
|
-
|
3
|
-
|
2
|
+
require 'flydata/command_loggable'
|
3
|
+
require 'flydata/errors'
|
4
|
+
require 'flydata/helpers'
|
4
5
|
|
5
6
|
module Flydata
|
6
7
|
class Cli
|
@@ -29,6 +30,7 @@ module Flydata
|
|
29
30
|
first_arg = @args.shift
|
30
31
|
cmd, sub_cmd = parse_command(first_arg)
|
31
32
|
begin
|
33
|
+
require_command_source(cmd)
|
32
34
|
cmd_cls = "Flydata::Command::#{cmd.capitalize}".constantize
|
33
35
|
rescue NameError
|
34
36
|
# NameError is raised when the constant is not defined in its target
|
@@ -66,5 +68,14 @@ module Flydata
|
|
66
68
|
def parse_command(cmd)
|
67
69
|
cmd.split(':')
|
68
70
|
end
|
71
|
+
COMMAND_DIR = 'flydata/command'
|
72
|
+
def require_command_source(cmd)
|
73
|
+
source_path = File.join(COMMAND_DIR, cmd)
|
74
|
+
begin
|
75
|
+
require source_path
|
76
|
+
rescue LoadError
|
77
|
+
# ignore
|
78
|
+
end
|
79
|
+
end
|
69
80
|
end
|
70
81
|
end
|
data/lib/flydata/command/base.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
require 'slop'
|
2
2
|
require 'flydata/api_client'
|
3
|
+
require 'flydata/command_loggable'
|
4
|
+
require 'flydata/preference/data_entry_preference'
|
5
|
+
|
3
6
|
|
4
7
|
module Flydata
|
5
8
|
module Command
|
@@ -22,6 +25,7 @@ module Flydata
|
|
22
25
|
if Flydata::Preference::DataEntryPreference.conf_exists?(de)
|
23
26
|
Flydata::Preference::DataEntryPreference.load_conf(de)
|
24
27
|
else
|
28
|
+
Flydata::Preference::DataEntryPreference.filter_data_entry(de)
|
25
29
|
de
|
26
30
|
end
|
27
31
|
end
|
@@ -29,6 +33,8 @@ module Flydata
|
|
29
33
|
def register_crontab
|
30
34
|
data_entries = retrieve_data_entries
|
31
35
|
if data_entries.any?{|e| e['log_deletion']}
|
36
|
+
# require on demand to avoid mutual require issue
|
37
|
+
require 'flydata/command/crontab'
|
32
38
|
Flydata::Command::Crontab.new.run
|
33
39
|
end
|
34
40
|
end
|
data/lib/flydata/command/conf.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require 'flydata/command/base'
|
2
|
+
require 'flydata/command/login'
|
3
|
+
|
1
4
|
module Flydata
|
2
5
|
module Command
|
3
6
|
class Setlogdel < Base
|
@@ -16,7 +19,7 @@ module Flydata
|
|
16
19
|
data_entries = retrieve_data_entries
|
17
20
|
if data_entries.size < 1
|
18
21
|
puts("There are no registered entries.")
|
19
|
-
puts("You need to create a data entry
|
22
|
+
puts("You need to create a data entry with flydata setup command.")
|
20
23
|
return nil
|
21
24
|
end
|
22
25
|
choices = data_entries.map {|e|
|
@@ -1,4 +1,9 @@
|
|
1
|
-
|
1
|
+
require 'flydata/command/base'
|
2
|
+
require 'flydata/command/conf'
|
3
|
+
require 'flydata/command/login'
|
4
|
+
require 'flydata/command/sender'
|
5
|
+
require 'flydata/helpers'
|
6
|
+
require 'flydata/sync_file_manager'
|
2
7
|
|
3
8
|
module Flydata
|
4
9
|
module Command
|
@@ -92,7 +97,7 @@ What's next?
|
|
92
97
|
true
|
93
98
|
elsif has_registered_redshift_mysql_data_entries?
|
94
99
|
de = retrieve_data_entries.first
|
95
|
-
if File.exists?(Flydata::
|
100
|
+
if File.exists?(Flydata::SyncFileManager.new(de).binlog_path)
|
96
101
|
sender = Flydata::Command::Sender.new
|
97
102
|
if sender.process_exist?
|
98
103
|
sender.stop(quiet: true)
|
data/lib/flydata/command/stop.rb
CHANGED
data/lib/flydata/command/sync.rb
CHANGED
@@ -2,11 +2,18 @@ require 'fiber'
|
|
2
2
|
require 'msgpack'
|
3
3
|
require 'open3'
|
4
4
|
require 'mysql2'
|
5
|
+
require 'rest_client'
|
5
6
|
require 'sys/filesystem'
|
6
|
-
require 'flydata/
|
7
|
+
require 'flydata/command/base'
|
8
|
+
require 'flydata/command/conf'
|
9
|
+
require 'flydata/command/sender'
|
7
10
|
require 'flydata/compatibility_check'
|
11
|
+
require 'flydata/errors'
|
12
|
+
require 'flydata/helpers'
|
8
13
|
require 'flydata/output/forwarder'
|
9
14
|
require 'flydata/parser/mysql/dump_parser'
|
15
|
+
require 'flydata/preference/data_entry_preference'
|
16
|
+
require 'flydata/sync_file_manager'
|
10
17
|
require 'flydata/util/mysql_util'
|
11
18
|
require 'flydata-core/table_def'
|
12
19
|
#require 'ruby-prof'
|
@@ -603,7 +610,7 @@ EOM
|
|
603
610
|
start_time = Time.now
|
604
611
|
log_info_stdout("Waiting for the server buffer to get empty.")
|
605
612
|
prev_message =nil
|
606
|
-
while (status = check_server_status(tables)) && (status['state'] == 'processing')
|
613
|
+
while (status = check_server_status(tables)) && (status['state'].nil? || status['state'] == 'processing')
|
607
614
|
prev_message = status['message']
|
608
615
|
if timeout > 0 && Time.now - start_time > timeout
|
609
616
|
raise ServerDataProcessingTimeout.new
|
@@ -815,7 +822,7 @@ Thank you for using FlyData!
|
|
815
822
|
end
|
816
823
|
|
817
824
|
def create_sync_file_manager(de = data_entry)
|
818
|
-
|
825
|
+
SyncFileManager.new(de)
|
819
826
|
end
|
820
827
|
|
821
828
|
def verify_input_tables(input_tables, all_tables)
|
File without changes
|
data/lib/flydata/credentials.rb
CHANGED
@@ -5,18 +5,17 @@ require 'binlog'
|
|
5
5
|
require 'kodama'
|
6
6
|
|
7
7
|
# Load client library(flydata/cli/lib)
|
8
|
-
lib = File.
|
8
|
+
lib = File.expand_path(File.dirname(__FILE__), '/../..')
|
9
9
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
10
10
|
require 'flydata'
|
11
11
|
require 'flydata/sync_file_manager'
|
12
12
|
require 'flydata/util/mysql_util'
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
require_relative 'mysql/table_meta'
|
13
|
+
require 'flydata/fluent-plugins/preference'
|
14
|
+
require 'flydata/fluent-plugins/mysql/binlog_position_file'
|
15
|
+
require 'flydata/fluent-plugins/mysql/binlog_record_dispatcher'
|
16
|
+
require 'flydata/fluent-plugins/mysql/context'
|
17
|
+
require 'flydata/fluent-plugins/idle_event_detector'
|
18
|
+
require 'flydata/fluent-plugins/mysql/table_meta'
|
20
19
|
|
21
20
|
#Monkey-patch fluentd class (EngineClass) to support shutdown for input plugin.
|
22
21
|
#This will be called when USR1 signal is received
|
@@ -73,7 +72,7 @@ class MysqlBinlogFlydataInput < MysqlBinlogInput
|
|
73
72
|
@tables << table unless @tables.include?(table)
|
74
73
|
@omit_events[table] = [:delete]
|
75
74
|
end
|
76
|
-
@sync_fm = Flydata::
|
75
|
+
@sync_fm = Flydata::SyncFileManager.new(nil) # Passing nil for data_entry as this class does not use methods which require data_entry
|
77
76
|
|
78
77
|
#Remove tables that do not have pos files
|
79
78
|
new_tables = @sync_fm.get_new_table_list(@tables, "pos")
|