datapipe2 0.0.11 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 50d3264229f3363592e873e03600b7830f205a46
4
- data.tar.gz: d1226748e0b7892cb315b0082fe901ea397a14e0
3
+ metadata.gz: 9a4e42506c6c2a85e662dc284be5a740e4c81f39
4
+ data.tar.gz: 7f602f5afdd3d5821f1cb0ff50d4cb4cfe54e842
5
5
  SHA512:
6
- metadata.gz: 6b444290a548ea22eefadb745da1fd8042f2d56bf020a894360cf04c29372ad71d893533fe22c965e16780948a9993fe6bcd11f3c3fa4e5bdb68c977c3b5577c
7
- data.tar.gz: 8405a58c633c023750110419d10fd1bdd0cd2b9ffe86a769f2b48d075189ead6730663e5f040864766add4c2bb0f1d709c4fb5d2deb0ee7af41f35f2c80116f4
6
+ metadata.gz: be6cca3b89a584fc0052a3331e5a162dfd37b272907f115ed9c2a131070c8ecec148b62d59ed3968b7f52ad1f33069b314ea807dfa5b235f35ed810cb9fe08f1
7
+ data.tar.gz: dc4d0532c05ba9b587facb7e96eed7a404fa9086ed1d3d0c7eecc2ec8d0597317f3974d25e779b8ea82a1c60e39d8b391091bb0d8be86e334fcb0d22c6eb363b
data/lib/datapipe2.rb CHANGED
@@ -12,6 +12,7 @@ module DataPipe2
12
12
  require 'fns/csv_to_db'
13
13
  require 'fns/mssql_to_pgsql'
14
14
  require 'fns/smb_to_local'
15
+ require 'fns/scp_to_local'
15
16
  require 'fns/db_to_db'
16
17
 
17
18
  class DataPipe2lineError < StandardError
data/lib/fns/db_to_db.rb CHANGED
@@ -1,7 +1,7 @@
1
1
 
2
2
  def db_to_db(select_sql, table_name, columns)
3
- s = FluidDb::Db(ENV['SOURCE_DB']) # source
4
- d = FluidDb::Db(ENV['DEST_DB']) # destination
3
+ s = FluidDb::Db(ENV['SOURCE_DB']) if s.nil? # source
4
+ d = FluidDb::Db(ENV['DEST_DB']) if d.nil? # destination
5
5
 
6
6
  insert_cmd = %{
7
7
  INSERT INTO #{table_name} (#{columns})
@@ -0,0 +1,37 @@
1
+ require 'net/sftp'
2
+ require 'fileutils'
3
+ require 'uri'
4
+
5
+ def scp_to_local(scp_uri_string,
6
+ remote_done_path,
7
+ local_path,
8
+ local_working_path = nil)
9
+ scp_uri = URI.parse(scp_uri_string)
10
+ remote_ready_path = "#{scp_uri.path}"
11
+
12
+ local_working_path = "/tmp/#{local_path}" if local_working_path.nil?
13
+ FileUtils.mkdir_p local_working_path
14
+ # Check we can write to local path
15
+
16
+ Net::SFTP.start(scp_uri.host, scp_uri.user) do |sftp|
17
+ # Check we can read and write from remote_ready_path
18
+ # Check we can write to remote_done_path
19
+ # puts "remote_ready_path: #{sftp.lstat!('remote_ready_path').permissions}"
20
+ # puts "remote_done_path: #{sftp.lstat!('remote_done_path').permissions}"
21
+ sftp.dir.foreach(remote_ready_path) do |entry|
22
+ if entry.file?
23
+ puts entry.name
24
+ sftp.download!(
25
+ "#{remote_ready_path}/#{entry.name}",
26
+ "#{local_working_path}/#{entry.name}")
27
+
28
+ FileUtils.mv("#{local_working_path}/#{entry.name}", local_path)
29
+
30
+ sftp.rename!("#{remote_ready_path}/#{entry.name}",
31
+ "#{remote_done_path}/#{entry.name}")
32
+ end
33
+ end
34
+ end
35
+
36
+ FileUtils.rm_rf local_working_path
37
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datapipe2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guy Irvine
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-07 00:00:00.000000000 Z
11
+ date: 2016-08-03 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: zero to one for moving data
14
14
  email: guy@guyirvine.com
@@ -23,6 +23,7 @@ files:
23
23
  - lib/fns/db_to_db.rb
24
24
  - lib/fns/db_to_json.rb
25
25
  - lib/fns/mssql_to_pgsql.rb
26
+ - lib/fns/scp_to_local.rb
26
27
  - lib/fns/smb_to_local.rb
27
28
  - lib/helper_functions.rb
28
29
  - lib/host.rb