fiverr_copy 1.0.0 → 1.0.1

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.
@@ -21,23 +21,7 @@ class FiverrCopy::Client
21
21
  end
22
22
 
23
23
  def setup!
24
- puts "Setting up #{self.client_ip}"
25
- Net::SSH.start(self.client_ip, self.username) do |ssh|
26
- bundler_exists = ssh.exec!("which bundle") == "" ? false : true
27
- if !(bundler_exists)
28
- puts "Installing bundler on #{client_ip}."
29
- puts ssh.exec!("gem install bundler --no-rdoc --no-ri")
30
- end
31
-
32
- fiverr_copy_exists = ssh.exec!("gem list | grep fiverr_copy") == "" ? false : true
33
-
34
- if !(fiverr_copy_exists)
35
- puts "Installing fiverr_copy."
36
- puts ssh.exec!("gem install fiverr_copy --no-rdoc --no-ri")
37
- end
38
-
39
- @ready = true
40
- end
24
+ @ready = true
41
25
  end
42
26
 
43
27
 
@@ -65,7 +49,10 @@ class FiverrCopy::Client
65
49
  puts "Got #{stream.size} bytes"
66
50
  f.write stream
67
51
 
68
- client_session.write(stream) if !(next_client.nil?)
52
+ if !(next_client.nil?)
53
+ puts "Forwarding to #{next_client}"
54
+ client_session.write(stream)
55
+ end
69
56
  session.puts "OK:#{stream.size}"
70
57
  end
71
58
  # end #end thread conversation
@@ -6,7 +6,8 @@ class FiverrCopy::Recipe
6
6
  :username,
7
7
  :port,
8
8
  :chunk_size,
9
- :manual
9
+ :manual,
10
+ :gem_installation_auth
10
11
 
11
12
  attr_reader :initialized_clients
12
13
 
@@ -17,6 +18,7 @@ class FiverrCopy::Recipe
17
18
  self.port = 1234
18
19
  self.chunk_size = 1024
19
20
  self.manual = false
21
+ self.gem_installation_auth = ""
20
22
  @initialized_clients = []
21
23
  yield(self)
22
24
  self
@@ -25,7 +27,7 @@ class FiverrCopy::Recipe
25
27
  def manual_client_activation?
26
28
  self.manual == true
27
29
  end
28
-
30
+
29
31
  def clients=(clients_array = [])
30
32
  raise "No clients specified" if clients_array.empty?
31
33
  clients_array.uniq!
@@ -19,24 +19,29 @@ class FiverrCopy::Server
19
19
  if !(self.recipe.manual_client_activation?)
20
20
  self.recipe.initialized_clients.each do |client|
21
21
  threads << Thread.new(client) do |current_client|
22
- #current_client.setup!
22
+ current_client.setup!
23
23
  puts "Connecting to #{current_client.client_ip}:#{self.recipe.port}"
24
24
  Net::SSH.start(current_client.client_ip, current_client.username) do |ssh|
25
- #ssh.exec("killall fiverr_copy")
25
+ gem_exists = ssh.exec("which fiverr_copy") == "" ? false : true
26
+ if !(gem_exists)
27
+ puts "Please install the fiverr_copy gem on all clients."
28
+ exit 0
29
+ end
26
30
  next_client = "--nexthop #{current_client.next_client}" if current_client.next_client
27
- puts "#{current_client}: fiverr_copy --client --port #{self.recipe.port} --filename #{compressed_file_name} --chunk #{self.recipe.chunk_size} #{next_client} \&"
31
+ puts "#{current_client.client_ip}: fiverr_copy --client --port #{self.recipe.port} --filename #{compressed_file_name} --chunk #{self.recipe.chunk_size} #{next_client} \&"
28
32
  ssh.exec("fiverr_copy --client --port #{self.recipe.port} --filename #{compressed_file_name} --chunk #{self.recipe.chunk_size} #{next_client} \&")
29
33
  end
30
34
  end
31
35
  end
32
36
  end
33
37
 
38
+ #threads.collect(&:join)
34
39
  puts "Booting clients"
35
40
 
36
41
  attempts = 1
37
42
  begin
38
- puts "Attempting Connection to #{self.recipe.initialized_clients.first.client_ip}:#{self.recipe.port}"
39
- client_session = TCPSocket.new(self.recipe.initialized_clients.first.client_ip, self.recipe.port)
43
+ puts "Attempting Connection to #{self.recipe.initialized_clients.last.client_ip}:#{self.recipe.port}"
44
+ client_session = TCPSocket.new(self.recipe.initialized_clients.last.client_ip, self.recipe.port)
40
45
  puts "Compressing: tar cvzf #{compressed_file_name} #{self.recipe.filter}"
41
46
  `tar cvzf #{compressed_file_name} #{self.recipe.filter}`
42
47
  rescue Errno::ECONNREFUSED => e
@@ -46,7 +51,7 @@ class FiverrCopy::Server
46
51
  print "Retry #{attempts}: "
47
52
  retry
48
53
  else
49
- puts "ERROR: unable to connect to #{self.recipe.initialized_clients.first.client_ip} => #{e.to_s}"
54
+ puts "ERROR: unable to connect to #{self.recipe.initialized_clients.last.client_ip} => #{e.to_s}"
50
55
  exit 0
51
56
  end
52
57
  end
@@ -62,7 +67,7 @@ class FiverrCopy::Server
62
67
  puts "Transmitting..."
63
68
 
64
69
  File.open("#{compressed_file_name}") do |transmitted_file|
65
- puts "Transmitting #{transmitted_file.to_s} (#{File.size(transmitted_file)})"
70
+ puts "Transmitting #{transmitted_file.path.to_s} (#{File.size(transmitted_file)})"
66
71
  while !(client_session.closed?) && (buffer = transmitted_file.read(self.recipe.chunk_size)) do
67
72
  puts "Sending #{buffer.size}B"
68
73
  client_session.write buffer
@@ -1,3 +1,3 @@
1
1
  module FiverrCopy
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fiverr_copy
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
- - 0
10
- version: 1.0.0
9
+ - 1
10
+ version: 1.0.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Elad Meidar