pd-blender 0.1.0 → 0.2

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.
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