pd-blender 0.1.0 → 0.2

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: 4755355532133b48f4e4525b8a7671206318b470
4
- data.tar.gz: 416b8fd419f08c1900b9f08cca300b7703d4ed68
3
+ metadata.gz: 5d2a8ce92f7b3b1e822aef383d7b8877be17b289
4
+ data.tar.gz: d6e102dfd4f9d92ef2c2a6e619f490597846bc05
5
5
  SHA512:
6
- metadata.gz: 7822a210909825f27e67a8887083ac2a3521ef3d465efcdcd3e45dd7b61da3551df7ad59fe480dcbe9875ee6bc77261d3ced3a157b744055d02c4e6c336b08e3
7
- data.tar.gz: 07c515f06d1ae9d67360e264c95e2be947cac421ca9319fefdbb1c08f26258a468466ff7976fbb9fff7d3bdc5467e28447fdaa5834858116c7edb85457a4d8b6
6
+ metadata.gz: 540d5d79754dc7edaca79ad4882a73e2f16badd2dd2dcc3a2cdff5da055d722993b783536c4a9bb9b0f8b5b0098ef56adf351e5437e39234915353f98dd0b83b
7
+ data.tar.gz: 0a8af7f7576af424751136e9f4aee4709e3c9376e58f43ef4eb649d5d2ddd332f3b6526e513a60367ad69e388365f1e8bce2a75c35ce98e7969bc80f0d8392f6
@@ -50,10 +50,10 @@ module Blender
50
50
  begin
51
51
  case command.direction
52
52
  when :upload
53
- session.scp.upload!(command.source, command.target)
53
+ session.scp.upload!(command.source, command.target, command.options)
54
54
  ExecOutput.new(0, '', '')
55
55
  when :download
56
- session.scp.download!(command.source, command.target)
56
+ session.scp.download!(command.source, command.target, command.options)
57
57
  ExecOutput.new(0, '', '')
58
58
  else
59
59
  ExecOutput.new(-1, '' , "Invalid direction. Can be either :upload or :download. Found:'#{command.direction}'")
@@ -22,20 +22,37 @@ module Blender
22
22
  module Task
23
23
  class Scp < Blender::Task::Base
24
24
  extend Forwardable
25
+
25
26
  def_delegators :@command, :direction, :direction=
27
+
26
28
  def initialize(name, metadata = {})
27
29
  super
28
- @command = Struct.new(:direction, :source, :target).new
30
+ @command = Struct.new(:direction, :source, :target, :options).new
29
31
  @command.target = name
30
32
  @command.source = name
33
+ @command.options = {}
31
34
  @direction = :upload
32
35
  end
36
+
33
37
  def from(source)
34
38
  @command.source = source
35
39
  end
40
+
36
41
  def to(target)
37
42
  @command.target = target
38
43
  end
44
+
45
+ def recursive(val)
46
+ @command.options[:recursive] = val
47
+ end
48
+
49
+ def preserve(val)
50
+ @command.options[:preserve] = val
51
+ end
52
+
53
+ def chunk_size(val)
54
+ @command.options[:chunk_size] = val
55
+ end
39
56
  end
40
57
  end
41
58
  end
@@ -16,5 +16,5 @@
16
16
  # limitations under the License.
17
17
 
18
18
  module Blender
19
- VERSION = '0.1.0'
19
+ VERSION = '0.2'
20
20
  end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe Blender do
4
+ it 'passes scp options' do
5
+ scp = double('Net::SCP')
6
+ session = double('Net::SSH::Session', scp: scp, loop: true)
7
+ expect(Net::SSH).to receive(:start).with('1.2.3.4', 'test-user', password: 'test-password').and_return(session)
8
+ expect(scp).to receive(:upload!).with('/tmp/from', '/tmp/to', recursive: true)
9
+ sched = Blender.blend('scp', no_doc: true) do |sched|
10
+ sched.config(:scp, user: 'test-user', password: 'test-password')
11
+ sched.members(['1.2.3.4'])
12
+ sched.scp_upload 'foo' do
13
+ recursive true
14
+ from '/tmp/from'
15
+ to '/tmp/to'
16
+ end
17
+ end
18
+ end
19
+ it '#download' do
20
+ session = double('Net::SSH::Session', loop: true)
21
+ scp = double('Net::SSH::Scp')
22
+ expect(Net::SSH).to receive(:start).with('host1', 'x', password: 'y').and_return(session)
23
+ expect(session).to receive(:scp).and_return(scp)
24
+ expect(scp).to receive(:download!).with('/remote/path', '/local/path', {})
25
+ Blender.blend('test') do |sched|
26
+ sched.members(['host1'])
27
+ sched.config(:scp, user: 'x', password: 'y')
28
+ sched.scp_download '/remote/path' do
29
+ to '/local/path'
30
+ end
31
+ end
32
+ end
33
+ end
@@ -16,35 +16,4 @@ describe '#dsl' do
16
16
  allow_any_instance_of(Blender::Driver::Ssh).to receive(:execute)
17
17
  scheduler.run
18
18
  end
19
-
20
- context '#scp' do
21
- it '#upload' do
22
- session = double('Net::SSH::Session', loop: true)
23
- scp = double('Net::SSH::Scp')
24
- expect(Net::SSH).to receive(:start).with('host1', 'x', password: 'y').and_return(session)
25
- expect(session).to receive(:scp).and_return(scp)
26
- expect(scp).to receive(:upload!).with('/local/path', '/remote/path')
27
- Blender.blend('test') do |sched|
28
- sched.config(:scp, user: 'x', password: 'y')
29
- sched.members(['host1'])
30
- sched.scp_upload '/remote/path' do
31
- from '/local/path'
32
- end
33
- end
34
- end
35
- it '#download' do
36
- session = double('Net::SSH::Session', loop: true)
37
- scp = double('Net::SSH::Scp')
38
- expect(Net::SSH).to receive(:start).with('host1', 'x', password: 'y').and_return(session)
39
- expect(session).to receive(:scp).and_return(scp)
40
- expect(scp).to receive(:download!).with('/remote/path', '/local/path')
41
- Blender.blend('test') do |sched|
42
- sched.members(['host1'])
43
- sched.config(:scp, user: 'x', password: 'y')
44
- sched.scp_download '/remote/path' do
45
- to '/local/path'
46
- end
47
- end
48
- end
49
- end
50
19
  end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe Blender do
4
+ it 'passes scp options' do
5
+ sched = Blender::Scheduler.new('scp')
6
+ sched.scp_upload 'foo' do
7
+ recursive true
8
+ from '/tmp/from'
9
+ to '/tmp/to'
10
+ end
11
+ task = sched.tasks.first
12
+ expect(task.command.target).to eq('/tmp/to')
13
+ expect(task.command.source).to eq('/tmp/from')
14
+ expect(task.command.options[:recursive]).to eq(true)
15
+ expect(task.command.direction).to eq(:upload)
16
+ end
17
+ end
data/spec/spec_helper.rb CHANGED
@@ -5,6 +5,7 @@ require 'rspec/expectations'
5
5
  require 'blender'
6
6
  require 'blender/scheduling_strategies/per_host'
7
7
  require 'blender/scheduling_strategies/per_task'
8
+ require 'pry'
8
9
 
9
10
  module SpecHelper
10
11
  def create_task(name, driver = nil)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pd-blender
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: '0.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ranjib Dey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-02 00:00:00.000000000 Z
11
+ date: 2015-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: highline
@@ -264,6 +264,7 @@ files:
264
264
  - spec/blender/blender_rspec.rb
265
265
  - spec/blender/config_spec.rb
266
266
  - spec/blender/discovery_spec.rb
267
+ - spec/blender/drivers/scp_spec.rb
267
268
  - spec/blender/drivers/ssh_multi_spec.rb
268
269
  - spec/blender/drivers/ssh_spec.rb
269
270
  - spec/blender/dsl_spec.rb
@@ -273,6 +274,7 @@ files:
273
274
  - spec/blender/scheduled_job_spec.rb
274
275
  - spec/blender/scheduler_spec.rb
275
276
  - spec/blender/scheduling_strategies/default_spec.rb
277
+ - spec/blender/tasks/scp_spec.rb
276
278
  - spec/blender/utils/refinements_spec.rb
277
279
  - spec/blender/utils/thread_pool_spec.rb
278
280
  - spec/blender_spec.rb
@@ -306,6 +308,7 @@ test_files:
306
308
  - spec/blender/blender_rspec.rb
307
309
  - spec/blender/config_spec.rb
308
310
  - spec/blender/discovery_spec.rb
311
+ - spec/blender/drivers/scp_spec.rb
309
312
  - spec/blender/drivers/ssh_multi_spec.rb
310
313
  - spec/blender/drivers/ssh_spec.rb
311
314
  - spec/blender/dsl_spec.rb
@@ -315,6 +318,7 @@ test_files:
315
318
  - spec/blender/scheduled_job_spec.rb
316
319
  - spec/blender/scheduler_spec.rb
317
320
  - spec/blender/scheduling_strategies/default_spec.rb
321
+ - spec/blender/tasks/scp_spec.rb
318
322
  - spec/blender/utils/refinements_spec.rb
319
323
  - spec/blender/utils/thread_pool_spec.rb
320
324
  - spec/blender_spec.rb