myreplicator 1.1.11 → 1.1.12

Sign up to get free protection for your applications and to get access to all the features.
@@ -117,10 +117,12 @@ module Myreplicator
117
117
  def self.completed? *args
118
118
  options = args.extract_options!
119
119
  log = Log.where(:export_id => options[:export_id],
120
- :file => options[:export_id],
120
+ :file => options[:file],
121
121
  :job_type => options[:job_type]).last
122
+ Kernel.p "===== transport_complete? log ====="
123
+ Kernel.p log
122
124
  if log.nil?
123
- return true
125
+ return false
124
126
  else
125
127
  return true if log.state != "running"
126
128
  end
data/lib/loader/loader.rb CHANGED
@@ -32,8 +32,12 @@ module Myreplicator
32
32
  initials = []
33
33
  incrementals = []
34
34
  all_files = Myreplicator::Loader.metadata_files
35
-
35
+
36
+ Kernel.p "===== all_files ====="
37
+ Kernel.p all_files
38
+
36
39
  all_files.each do |m|
40
+ Kernel.p m
37
41
  if m.export_type == "initial"
38
42
  initials << m # Add initial to the list
39
43
  all_files.delete(m) # Delete obj from mixed list
@@ -156,9 +160,9 @@ module Myreplicator
156
160
  ##
157
161
  def self.initial_load metadata
158
162
  exp = Export.find(metadata.export_id)
159
- Kernel.p "===== unzip ====="
160
- Loader.unzip(metadata.filename)
161
- metadata.zipped = false
163
+ #Kernel.p "===== unzip ====="
164
+ #Loader.unzip(metadata.filename)
165
+ #metadata.zipped = false
162
166
 
163
167
  cmd = ImportSql.initial_load(:db => exp.destination_schema,
164
168
  :filepath => metadata.destination_filepath(tmp_dir))
@@ -178,8 +182,8 @@ module Myreplicator
178
182
  ##
179
183
  def self.incremental_load metadata
180
184
  exp = Export.find(metadata.export_id)
181
- Loader.unzip(metadata.filename)
182
- metadata.zipped = false
185
+ #Loader.unzip(metadata.filename)
186
+ #metadata.zipped = false
183
187
 
184
188
  options = {:table_name => exp.table_name,
185
189
  :db => exp.destination_schema,
@@ -227,8 +231,12 @@ module Myreplicator
227
231
  # being loaded is completed
228
232
  ##
229
233
  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"})
230
238
  if Log.completed?(:export_id => metadata.export_id,
231
- :file => metadata.destination_filepath(tmp_dir),
239
+ :file => metadata.export_path,
232
240
  :job_type => "transporter")
233
241
  return true
234
242
  end
@@ -274,7 +282,28 @@ module Myreplicator
274
282
  Dir.glob(File.join(tmp_dir, "*.json")).each do |json_file|
275
283
  files << ExportMetadata.new(:metadata_path => json_file)
276
284
  end
277
- return files
285
+ result = []
286
+ Kernel.p files
287
+ files.each do |file|
288
+ puts "<<<<<<<<<<<<<<<<"
289
+ job = Export.where("id = #{file.export_id}").first
290
+ puts "<<<<<<<<<<<<<<<<"
291
+ Kernel.p job
292
+ puts "<<<<<<<<<<<<<<<<"
293
+ puts "&&&&&&&&&&&&&&&&&&&&&&&&&&"
294
+ Kernel.p file
295
+ puts "&&&&&&&&&&&&&&&&&&&&&&&&&&"
296
+ if job.state == "transport_completed"
297
+ result << file
298
+ end
299
+ puts "^^^^^^^^^^^^^^^^^^^^^^^^^^"
300
+ Kernel.p result
301
+ puts "^^^^^^^^^^^^^^^^^^^^^^^^^^"
302
+ end
303
+ puts "<<<<<<<<<<<<<<<<"
304
+ a = gets
305
+ puts "<<<<<<<<<<<<<<<<"
306
+ return result
278
307
  end
279
308
 
280
309
  ##
@@ -137,10 +137,12 @@ module Myreplicator
137
137
  vertica_copy options
138
138
  elsif schema_check[:changed]
139
139
  if metadata.export_type == 'initial'
140
+ Kernel.p "===== schema_check[:changed] ====="
140
141
  Loader.clear_older_files metadata # clear old incremental files
141
142
  apply_schema_change(ops, temp_table)
142
143
  else
143
144
  Loader.cleanup metadata #Remove incremental file
145
+ Kernel.p "===== Remove incremental file ====="
144
146
  end
145
147
  else
146
148
  temp_table = create_temp_table ops
@@ -354,24 +356,24 @@ module Myreplicator
354
356
  # place holder
355
357
  end
356
358
  end
357
-
358
- # def create_all_tables db
359
- # tables = Loader::SourceDb.get_tables(db)
360
- # sqls = {}
361
- # tables.each do |table|
362
- # puts "Creating #{db}.#{table}"
363
- # sql = "DROP TABLE IF EXISTS #{db}.#{table} CASCADE;"
364
- # VerticaDb::Base.connection.execute sql
365
- # sql = Loader::VerticaLoader.create_table(:vertica_db => "bidw",
366
- # :vertica_table => table,
367
- # :vertica_schema => db,
368
- # :table => table,
369
- # :db => db)
370
- # sqls["#{table}"] = sql
371
- # VerticaDb::Base.connection.execute sql
372
- # end
373
- # end
374
-
359
+ =begin
360
+ def create_all_tables db
361
+ tables = Myreplicator::DB.get_tables(db)
362
+ sqls = {}
363
+ tables.each do |table|
364
+ puts "Creating #{db}.#{table}"
365
+ sql = "DROP TABLE IF EXISTS #{db}.#{table} CASCADE;"
366
+ VerticaDb::Base.connection.execute sql
367
+ sql = Loader::VerticaLoader.create_table(:vertica_db => "bidw",
368
+ :vertica_table => table,
369
+ :vertica_schema => db,
370
+ :table => table,
371
+ :db => db)
372
+ sqls["#{table}"] = sql
373
+ VerticaDb::Base.connection.execute sql
374
+ end
375
+ end
376
+ =end
375
377
  end
376
378
  end
377
379
  end
@@ -1,3 +1,3 @@
1
1
  module Myreplicator
2
- VERSION = "1.1.11"
2
+ VERSION = "1.1.12"
3
3
  end
@@ -39,8 +39,9 @@ module Myreplicator
39
39
  # downloads export files concurrently from multiple sources
40
40
  ##
41
41
  def self.transfer
42
- unique_jobs = Export.where("active = 1").group("source_schema")
43
-
42
+ unique_jobs = Export.where("active = 1 and state = 'export_completed'").group("source_schema")
43
+ Kernel.p "===== unique_jobs ====="
44
+ Kernel.p unique_jobs
44
45
  unique_jobs.each do |export|
45
46
  download export
46
47
  end
@@ -51,19 +52,20 @@ module Myreplicator
51
52
  # Kicks off parallel download
52
53
  ##
53
54
  def self.download export
54
- parallel_download(export, completed_files(export))
55
+ Kernel.p "===== 1 ====="
56
+ parallel_download(completed_files(export))
55
57
  end
56
58
 
57
59
  ##
58
60
  # Gathers all files that need to be downloaded
59
61
  # Gives the queue to parallelizer library to download in parallel
60
62
  ##
61
- def self.parallel_download export, files
63
+ def self.parallel_download files
62
64
  p = Parallelizer.new(:klass => "Myreplicator::Transporter")
63
-
64
- files.each do |filename|
65
- puts filename
66
- p.queue << {:params =>[export, filename], :block => download_file}
65
+
66
+ files.each do |f|
67
+ puts f[:file]
68
+ p.queue << {:params =>[f[:export], f[:file]], :block => download_file}
67
69
  end
68
70
 
69
71
  p.run
@@ -103,6 +105,7 @@ module Myreplicator
103
105
  local_dump_file = File.join(tmp_dir, dump_file.split("/").last)
104
106
  sftp.download!(dump_file, local_dump_file)
105
107
  Transporter.remove!(export, json_file, dump_file)
108
+ export.update_attributes!({:state => 'transport_completed'})
106
109
  # store back up as well
107
110
  unless metadata.store_in.blank?
108
111
  Transporter.backup_files(metadata.backup_path, json_local_path, local_dump_file)
@@ -144,12 +147,30 @@ module Myreplicator
144
147
  def self.completed_files export
145
148
  ssh = export.ssh_to_source
146
149
  done_files = ssh.exec!(get_done_files(export))
147
-
148
- unless done_files.blank?
149
- return done_files.split("\n")
150
+ if done_files.blank?
151
+ return []
150
152
  end
151
-
152
- return []
153
+ files = done_files.split("\n")
154
+ jobs = Export.where("active = 1 and state = 'export_completed' and source_schema = '#{export.source_schema}'")
155
+ #jobs.each do |j|
156
+ # j.update_attributes!({:state => "transporting"})
157
+ #end
158
+ result = []
159
+ files.each do |file|
160
+ flag = nil
161
+ jobs.each do |job|
162
+ if file.include?(job.table_name)
163
+ flag = job
164
+ job.update_attributes!({:state => 'transporting'})
165
+ end
166
+ end
167
+ if flag
168
+ result << {:file => file, :export => flag}
169
+ end
170
+ end
171
+ Kernel.p "===== done_files ====="
172
+ Kernel.p result
173
+ return result
153
174
  end
154
175
 
155
176
  def self.metadata_obj json_path
@@ -177,6 +198,8 @@ module Myreplicator
177
198
  # Grep -s used to supress error messages
178
199
  ##
179
200
  def self.get_done_files export
201
+ Kernel.p "===== export ====="
202
+ Kernel.p export
180
203
  cmd = "cd #{Myreplicator.configs[export.source_schema]["ssh_tmp_dir"]}; grep -ls export_completed *.json"
181
204
  end
182
205