myreplicator 1.1.20 → 1.1.21

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.
@@ -148,10 +148,11 @@ module Myreplicator
148
148
  log = Log.where(:export_id => options[:export_id],
149
149
  :file => options[:file],
150
150
  :job_type => options[:job_type]).last
151
- Kernel.p "===== transport_complete? log ====="
152
- Kernel.p log
151
+ #Kernel.p "===== transport_complete? log ====="
152
+ #Kernel.p log
153
153
  if log.nil?
154
- return false
154
+ #return false
155
+ return true
155
156
  else
156
157
  return true if log.state == "completed"
157
158
  end
@@ -134,8 +134,8 @@ module Myreplicator
134
134
  options[:incremental_val] = @export_obj.max_incremental_value
135
135
  end
136
136
 
137
- Kernel.p "===== incremental_export_into_outfile OPTIONS ====="
138
- Kernel.p options
137
+ #Kernel.p "===== incremental_export_into_outfile OPTIONS ====="
138
+ #Kernel.p options
139
139
  cmd = SqlCommands.mysql_export_outfile(options)
140
140
  exporting_state_trans
141
141
  puts "Exporting..."
@@ -152,8 +152,8 @@ module Myreplicator
152
152
  end
153
153
 
154
154
  def self.compare_schemas vertica_schema, mysql_schema
155
- Kernel.p vertica_schema
156
- Kernel.p mysql_schema
155
+ #Kernel.p vertica_schema
156
+ #Kernel.p mysql_schema
157
157
  if vertica_schema.size != mysql_schema.size
158
158
  return true
159
159
  else
@@ -196,8 +196,8 @@ module Myreplicator
196
196
  end
197
197
 
198
198
  def self.schema_changed? options
199
- Kernel.p "===== schema_changed? ====="
200
- puts options
199
+ #Kernel.p "===== schema_changed? ====="
200
+ #puts options
201
201
  mysql_schema = Loader.mysql_table_definition(options)
202
202
  vertica_schema = VerticaLoader.destination_table_vertica(options)
203
203
 
@@ -205,19 +205,16 @@ module Myreplicator
205
205
  unless vertica_schema.size > 0
206
206
  return {:changed => true, :mysql_schema => mysql_schema, :new => true}
207
207
  end
208
- Kernel.p "***** 1 *****"
209
208
  # compare two schemas
210
209
 
211
210
 
212
211
  mysql_schema_2 = get_mysql_schema_rows mysql_schema
213
212
  if compare_schemas(vertica_schema, mysql_schema_2)
214
- Kernel.p "***** 2 *****"
215
213
  result = {:changed => true, :mysql_schema => mysql_schema, :vertica_schema => vertica_schema,:new => false}
216
214
  else
217
- Kernel.p "***** 3 *****"
218
215
  result = {:changed => false, :mysql_schema => mysql_schema}
219
216
  end
220
- Kernel.p result
217
+ #Kernel.p result
221
218
  return result
222
219
  end
223
220
 
@@ -145,17 +145,17 @@ module Myreplicator
145
145
  # Location of the output file needs to have 777 perms
146
146
  ##
147
147
  def self.mysql_export_outfile *args
148
- Kernel.p "===== mysql_export_outfile OPTIONS ====="
148
+ #Kernel.p "===== mysql_export_outfile OPTIONS ====="
149
149
 
150
150
  options = args.extract_options!
151
- Kernel.p options
151
+ #Kernel.p options
152
152
  options.reverse_merge! :flags => []
153
153
  db = options[:source_schema]
154
154
 
155
155
  # Database host when ssh'ed into the db server
156
156
  db_host = "127.0.0.1"
157
- Kernel.p "===== mysql_export_outfile ssh_configs ====="
158
- Kernel.p ssh_configs(db)
157
+ #Kernel.p "===== mysql_export_outfile ssh_configs ====="
158
+ #Kernel.p ssh_configs(db)
159
159
  if !ssh_configs(db)["ssh_db_host"].blank?
160
160
  db_host = ssh_configs(db)["ssh_db_host"]
161
161
  elsif !db_configs(db)["host"].blank?
@@ -33,11 +33,11 @@ module Myreplicator
33
33
  incrementals = []
34
34
  all_files = Myreplicator::Loader.metadata_files
35
35
 
36
- Kernel.p "===== all_files ====="
37
- Kernel.p all_files
36
+ #Kernel.p "===== all_files ====="
37
+ #Kernel.p all_files
38
38
 
39
39
  all_files.each do |m|
40
- Kernel.p m
40
+ #Kernel.p m
41
41
  if m.export_type == "initial"
42
42
  initials << m # Add initial to the list
43
43
  all_files.delete(m) # Delete obj from mixed list
@@ -53,11 +53,42 @@ module Myreplicator
53
53
 
54
54
  incrementals = all_files # Remaining are all incrementals
55
55
 
56
- initial_procs = Loader.initial_loads initials
57
- parallel_load initial_procs
58
-
59
- incremental_procs = Loader.incremental_loads incrementals
60
- parallel_load incremental_procs
56
+ #initial_procs = Loader.initial_loads initials
57
+ #parallel_load initial_procs
58
+ initials.each do |metadata|
59
+ Myreplicator::Log.run(:job_type => "loader",
60
+ :name => "#{metadata.export_type}_import",
61
+ :file => metadata.filename,
62
+ :export_id => metadata.export_id) do |log|
63
+ if Myreplicator::Loader.transfer_completed? metadata
64
+ if metadata.export_to == "vertica"
65
+ Myreplicator::Loader.incremental_load metadata
66
+ else
67
+ Myreplicator::Loader.initial_load metadata
68
+ end
69
+ Myreplicator::Loader.cleanup metadata
70
+ end
71
+ end
72
+ end
73
+
74
+ #incremental_procs = Loader.incremental_loads incrementals
75
+ #parallel_load incremental_procs
76
+ #groups = Myreplicator::Loader.group_incrementals incrementals
77
+ #groups.each do |group|
78
+ incrementals.each do |metadata|
79
+ Myreplicator::Log.run(:job_type => "loader",
80
+ :name => "incremental_import",
81
+ :file => metadata.filename,
82
+ :export_id => metadata.export_id) do |log|
83
+ if Myreplicator::Loader.transfer_completed? metadata
84
+ Myreplicator::Loader.incremental_load metadata
85
+ Myreplicator::Loader.cleanup metadata
86
+ end
87
+ end
88
+ end
89
+ # end # group
90
+ #end # groups
91
+
61
92
  end
62
93
 
63
94
  def self.parallel_load procs
@@ -78,18 +109,18 @@ module Myreplicator
78
109
 
79
110
  initials.each do |metadata|
80
111
  procs << Proc.new {
81
- Log.run(:job_type => "loader",
112
+ Myreplicator::Log.run(:job_type => "loader",
82
113
  :name => "#{metadata.export_type}_import",
83
114
  :file => metadata.filename,
84
115
  :export_id => metadata.export_id) do |log|
85
116
 
86
- if Loader.transfer_completed? metadata
117
+ if Myreplicator::Loader.transfer_completed? metadata
87
118
  if metadata.export_to == "vertica"
88
- Loader.incremental_load metadata
119
+ Myreplicator::Loader.incremental_load metadata
89
120
  else
90
- Loader.initial_load metadata
121
+ Myreplicator::Loader.initial_load metadata
91
122
  end
92
- Loader.cleanup metadata
123
+ Myreplicator::Loader.cleanup metadata
93
124
  end
94
125
 
95
126
  end
@@ -110,14 +141,14 @@ module Myreplicator
110
141
  groups.each do |group|
111
142
  procs << Proc.new {
112
143
  group.each do |metadata|
113
- Log.run(:job_type => "loader",
144
+ Myreplicator::Log.run(:job_type => "loader",
114
145
  :name => "incremental_import",
115
146
  :file => metadata.filename,
116
147
  :export_id => metadata.export_id) do |log|
117
148
 
118
- if Loader.transfer_completed? metadata
119
- Loader.incremental_load metadata
120
- Loader.cleanup metadata
149
+ if Myreplicator::Loader.transfer_completed? metadata
150
+ Myreplicator::Loader.incremental_load metadata
151
+ Myreplicator::Loader.cleanup metadata
121
152
  end
122
153
 
123
154
  end
@@ -231,10 +262,10 @@ module Myreplicator
231
262
  # being loaded is completed
232
263
  ##
233
264
  def self.transfer_completed? metadata
234
- Kernel.p "===== transfer_completed? metadata ====="
235
- Kernel.p ({:export_id => metadata.export_id,
236
- :file => metadata.export_path,
237
- :job_type => "transporter"})
265
+ #Kernel.p "===== transfer_completed? metadata ====="
266
+ #Kernel.p ({:export_id => metadata.export_id,
267
+ # :file => metadata.export_path,
268
+ #:job_type => "transporter"})
238
269
  if Log.completed?(:export_id => metadata.export_id,
239
270
  :file => metadata.export_path,
240
271
  :job_type => "transporter")
@@ -283,26 +314,26 @@ module Myreplicator
283
314
  files << ExportMetadata.new(:metadata_path => json_file)
284
315
  end
285
316
  result = []
286
- Kernel.p files
317
+ #Kernel.p files
287
318
  files.each do |file|
288
- puts "<<<<<<<<<<<<<<<<"
319
+ #puts "<<<<<<<<<<<<<<<<"
289
320
  job = Export.where("id = #{file.export_id}").first
290
- puts "<<<<<<<<<<<<<<<<"
291
- Kernel.p job
292
- puts "<<<<<<<<<<<<<<<<"
293
- puts "&&&&&&&&&&&&&&&&&&&&&&&&&&"
294
- Kernel.p file
295
- puts "&&&&&&&&&&&&&&&&&&&&&&&&&&"
321
+ #puts "<<<<<<<<<<<<<<<<"
322
+ #Kernel.p job
323
+ #puts "<<<<<<<<<<<<<<<<"
324
+ #puts "&&&&&&&&&&&&&&&&&&&&&&&&&&"
325
+ #Kernel.p file
326
+ #puts "&&&&&&&&&&&&&&&&&&&&&&&&&&"
296
327
  #if job.state == "transport_completed"
297
- result << file
328
+ result << file
298
329
  #end
299
- puts "^^^^^^^^^^^^^^^^^^^^^^^^^^"
300
- Kernel.p result
301
- puts "^^^^^^^^^^^^^^^^^^^^^^^^^^"
330
+ #puts "^^^^^^^^^^^^^^^^^^^^^^^^^^"
331
+ #Kernel.p result
332
+ #puts "^^^^^^^^^^^^^^^^^^^^^^^^^^"
302
333
  end
303
- puts "<<<<<<<<<<<<<<<<"
334
+ #puts "<<<<<<<<<<<<<<<<"
304
335
 
305
- puts "<<<<<<<<<<<<<<<<"
336
+ #puts "<<<<<<<<<<<<<<<<"
306
337
  return result
307
338
  end
308
339
 
@@ -313,9 +344,9 @@ module Myreplicator
313
344
  ##
314
345
  def self.clear_older_files metadata
315
346
  files = Loader.metadata_files
316
- Kernel.p "===== clear old files ====="
317
- Kernel.p metadata
318
- Kernel.p files
347
+ #Kernel.p "===== clear old files ====="
348
+ #Kernel.p metadata
349
+ #Kernel.p files
319
350
  max_date = DateTime.strptime metadata.export_time
320
351
  files.each do |m|
321
352
  if metadata.export_id == m.export_id
@@ -1,3 +1,3 @@
1
1
  module Myreplicator
2
- VERSION = "1.1.20"
2
+ VERSION = "1.1.21"
3
3
  end
@@ -52,8 +52,45 @@ module Myreplicator
52
52
  # Kicks off parallel download
53
53
  ##
54
54
  def self.download export
55
- Kernel.p "===== 1 ====="
56
- parallel_download(completed_files(export))
55
+ #Kernel.p "===== 1 ====="
56
+ #parallel_download(completed_files(export))
57
+ files = completed_files(export)
58
+ files.each do |f|
59
+ export = f[:export]
60
+ filename = f[:file]
61
+ ActiveRecord::Base.verify_active_connections!
62
+ ActiveRecord::Base.connection.reconnect!
63
+
64
+ Log.run(:job_type => "transporter", :name => "metadata_file",
65
+ :file => filename, :export_id => export.id ) do |log|
66
+
67
+ sftp = export.sftp_to_source
68
+ json_file = Transporter.remote_path(export, filename)
69
+ json_local_path = File.join(tmp_dir,filename)
70
+ puts "Downloading #{json_file}"
71
+ sftp.download!(json_file, json_local_path)
72
+ metadata = Transporter.metadata_obj(json_local_path)
73
+ dump_file = metadata.export_path
74
+ puts metadata.state
75
+ if metadata.state == "export_completed"
76
+ Log.run(:job_type => "transporter", :name => "export_file",
77
+ :file => dump_file, :export_id => export.id) do |log|
78
+ puts "Downloading #{dump_file}"
79
+ local_dump_file = File.join(tmp_dir, dump_file.split("/").last)
80
+ sftp.download!(dump_file, local_dump_file)
81
+ Transporter.remove!(export, json_file, dump_file)
82
+ #export.update_attributes!({:state => 'transport_completed'})
83
+ # store back up as well
84
+ unless metadata.store_in.blank?
85
+ Transporter.backup_files(metadata.backup_path, json_local_path, local_dump_file)
86
+ end
87
+ end
88
+ else
89
+ # TO DO: remove metadata file of failed export
90
+ Transporter.remove!(export, json_file, "")
91
+ end #if
92
+ end
93
+ end
57
94
  end
58
95
 
59
96
  ##
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myreplicator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.20
4
+ version: 1.1.21
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-03-29 00:00:00.000000000 Z
12
+ date: 2013-04-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -357,7 +357,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
357
357
  version: '0'
358
358
  segments:
359
359
  - 0
360
- hash: 1636857574436666365
360
+ hash: -1843574403921129739
361
361
  required_rubygems_version: !ruby/object:Gem::Requirement
362
362
  none: false
363
363
  requirements:
@@ -366,7 +366,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
366
366
  version: '0'
367
367
  segments:
368
368
  - 0
369
- hash: 1636857574436666365
369
+ hash: -1843574403921129739
370
370
  requirements: []
371
371
  rubyforge_project:
372
372
  rubygems_version: 1.8.24