kitchen-vagrant_winrm 0.1.1 → 0.2.1

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: 082033c6b24f15d781a783f13f4785c456c5174c
4
- data.tar.gz: 3436d5c5d2049e9f1da06d5cdb53e1756a2c880a
3
+ metadata.gz: 16ecf0da894a2cc18d5686f0202880622a7e6b2c
4
+ data.tar.gz: e6ed107fd4d07554d62852dc9015afe17bbbfd1e
5
5
  SHA512:
6
- metadata.gz: af6133e59fada0709cf38b16853f621481651477a5a98b70f52dca63bfbe8b299c749fe838d73d6d77f1eb9f71c6dca3816c9d8af40cd2889bb7a932dd638a5e
7
- data.tar.gz: 4b382ec24002ca1e69356caa33e3df711ef2b1c8d6bf79798c35b0b37b0b9fe001094f9f6898038ff31ff87440fb8acd762543a8abdee2e77d16461bbf3f94d7
6
+ metadata.gz: a52555efa90e670fe9a0a291a50d345b42ae2985719cd139f325785a7d2420546e6cbfa479eb6a249d79ac7b185c6b3cb1492d516efbfddcade5ccbddfa820e1
7
+ data.tar.gz: 4e3aeae19e62c66e20eb6c2e8a4848ef8936a45c53c95ea6f9839677038def8dc968aa83cfaf3e50b47ce226e6c97e001ffa619f5fc76d1d4b9db1ef1230f2ec
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ deploy:
3
+ provider: rubygems
4
+ api_key:
5
+ secure: UM1xgIt9jc8oy0ZL6R7VTPApn/JTrjvIM1J1QcPNtKkp4b9Ykr62uozsadyk4giTlMU3/Fhswx6wdInwzKwLy63OVn1P4iSJn66SlOAcnn1EuK5oqyJ7UsDL8ZUphIHx0OQD+FYn/ax3ClqieWfC4W/jU277skziS9lOkEQ8FLw=
6
+ gem: kitchen-vagant_winrm
7
+ on:
8
+ tags: true
9
+ all_branches: true
10
+ repo: criteo/kitchen-vagant_winrm
data/CHANGELOG.md CHANGED
@@ -1,3 +1,13 @@
1
- ## 0.1.0 / Unreleased
1
+ ## 0.2.0
2
+ * Use vagrant-winrm (>=0.4) compression feature
3
+ * Use shell script instead of winrm commands
4
+ * Define more default configuration options
2
5
 
3
- * Initial release
6
+ ## 0.1.2
7
+ * Do not append '.vagrantup.com' to hostname
8
+
9
+ ## 0.1.1
10
+ * First clean release
11
+
12
+ ## 0.1.0 / Unrelease
13
+ * Initial implementation
data/README.md CHANGED
@@ -70,15 +70,16 @@ platforms:
70
70
  - name: windows-2008r2
71
71
  driver:
72
72
  name: vagrant_winrm
73
- provisioner:
74
- name: chef-zero
75
- sudo: false
76
- driver_config:
77
- guest: windows
78
- communicator: 'winrm'
79
- winrm_username: 'vagrant'
80
- winrm_password: 'vagrant'
81
- #...
73
+ provisioner:
74
+ name: chef_zero
75
+ sudo: false
76
+ root_path: /var/chef/
77
+ driver_config:
78
+ guest: windows
79
+ communicator: 'winrm'
80
+ winrm_username: 'vagrant'
81
+ winrm_password: 'vagrant'
82
+ #...
82
83
  ```
83
84
 
84
85
  Please read the [Driver usage][driver_usage] page for more details.
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'test-kitchen', '~> 1.2'
21
+ spec.add_dependency 'test-kitchen', '>= 1.2.1'
22
22
 
23
23
  spec.add_development_dependency 'bundler', '~> 1.3'
24
24
  spec.add_development_dependency 'rake'
@@ -12,10 +12,17 @@ module Kitchen
12
12
  # @author Baptiste Courtois <b.courtois@criteo.com>
13
13
  class VagrantWinrm < Base
14
14
 
15
- default_config :customize, {}
15
+ default_config :communicator, :winrm
16
+ default_config :customize, {
17
+ vrde: 'on',
18
+ vrdeport: '5000-5100',
19
+ vrdeauthtype: 'null',
20
+ }
21
+ default_config :guest, :windows
16
22
  default_config :network, []
17
- default_config :synced_folders, []
18
23
  default_config :pre_create_command, nil
24
+ default_config :require_chef_omnibus, false
25
+ default_config :synced_folders, []
19
26
 
20
27
  default_config :vagrantfile_erb,
21
28
  File.join(File.dirname(__FILE__), '../../../templates/Vagrantfile.erb')
@@ -24,7 +31,7 @@ module Kitchen
24
31
  ENV.fetch('VAGRANT_DEFAULT_PROVIDER', 'virtualbox')
25
32
 
26
33
  default_config :vm_hostname do |driver|
27
- "#{driver.instance.name}.vagrantup.com"
34
+ driver.instance.name
28
35
  end
29
36
 
30
37
  default_config :box do |driver|
@@ -53,9 +60,11 @@ module Kitchen
53
60
  run_remote provisioner.install_command
54
61
  run_remote provisioner.init_command
55
62
 
56
- Dir.glob("#{provisioner.sandbox_path}/*").each do |file|
57
- upload file, File.join(provisioner[:root_path], File.basename(file))
58
- end
63
+ sandbox_path = provisioner.sandbox_path
64
+ root_path = provisioner[:root_path]
65
+
66
+ debug("Uploading #{sandbox_path} to #{root_path} through WinRM")
67
+ run "vagrant winrm-upload -c '#{sandbox_path}' '#{root_path}'"
59
68
 
60
69
  run_remote provisioner.prepare_command
61
70
  run_remote provisioner.run_command
@@ -65,13 +74,13 @@ module Kitchen
65
74
 
66
75
  def setup(state)
67
76
  create_vagrantfile
68
- run_remote busser_setup_cmd
77
+ run_remote busser.setup_cmd
69
78
  end
70
79
 
71
80
  def verify(state)
72
81
  create_vagrantfile
73
- run_remote busser_sync_cmd
74
- run_remote busser_run_cmd
82
+ run_remote busser.sync_cmd
83
+ run_remote busser.run_cmd
75
84
  end
76
85
 
77
86
  def destroy(state)
@@ -87,6 +96,7 @@ module Kitchen
87
96
 
88
97
  def verify_dependencies
89
98
  check_vagrant_version
99
+ check_vagrant_winrm_version
90
100
  end
91
101
 
92
102
  def instance=(instance)
@@ -95,20 +105,25 @@ module Kitchen
95
105
  end
96
106
 
97
107
  protected
98
-
99
108
  WEBSITE = 'http://downloads.vagrantup.com/'
100
- MIN_VER = '1.1.0'
101
-
102
- def upload(source, destination)
103
- debug("Uploading #{source} to #{destination} through WinRM")
104
- run "vagrant winrm-upload \"#{source}\" \"#{destination}\""
105
- end
109
+ VAGRANT_MIN_VER = '1.6.0'
110
+ VAGRANT_WINRM_MIN_VER = '0.4.0'
106
111
 
107
112
  def run_remote(cmd)
108
113
  return unless cmd
109
114
 
110
115
  debug("Executing winRM command #{cmd}")
111
- run "vagrant winrm -c \"#{cmd.gsub(/["`\\\x0]/, '\\\\\0')}\""
116
+ tmp = ::Tempfile.new(['script', '.sh'])
117
+ begin
118
+ tmp << cmd
119
+ tmp.close
120
+
121
+ remote_script = run "vagrant winrm-upload -t '#{tmp.path}'"
122
+ run "vagrant winrm -c 'sh \"#{remote_script}\"'"
123
+ ensure
124
+ tmp.close
125
+ tmp.unlink
126
+ end
112
127
  end
113
128
 
114
129
  def run(cmd, options = {})
@@ -194,15 +209,36 @@ module Kitchen
194
209
  version_string = silently_run('vagrant --version')
195
210
  version_string = version_string.chomp.split(' ').last
196
211
  rescue Errno::ENOENT
197
- raise UserError, "Vagrant #{MIN_VER} or higher is not installed." +
198
- " Please download a package from #{WEBSITE}."
212
+ raise UserError, <<-EOS
213
+ Vagrant #{VAGRANT_MIN_VER} or higher is not installed.
214
+ Please download a package from #{WEBSITE}.
215
+ EOS
199
216
  end
200
217
 
201
218
  def check_vagrant_version
202
219
  version = vagrant_version
203
- if Gem::Version.new(version) < Gem::Version.new(MIN_VER)
204
- raise UserError, "Detected an old version of Vagrant (#{version})." +
205
- " Please upgrade to version #{MIN_VER} or higher from #{WEBSITE}."
220
+ if Gem::Version.new(version) < Gem::Version.new(VAGRANT_MIN_VER)
221
+ raise UserError, <<-EOS
222
+ Detected an old version of Vagrant (#{version}).
223
+ Please upgrade to version #{VAGRANT_MIN_VER} or higher from #{WEBSITE}.
224
+ EOS
225
+ end
226
+ end
227
+
228
+ def vagrant_winrm_version
229
+ silently_run('vagrant winrm --plugin-version').chomp.split(' ').last
230
+ rescue Errno::ENOENT
231
+ raise UserError,
232
+ "Vagrant-winrm #{VAGRANT_WINRM_MIN_VER} or higher is not installed."
233
+ end
234
+
235
+ def check_vagrant_winrm_version
236
+ version = vagrant_winrm_version
237
+ if Gem::Version.new(version) < Gem::Version.new(VAGRANT_WINRM_MIN_VER)
238
+ raise UserError, <<-EOS
239
+ Detected an old version of Vagrant-winrm (#{version}).
240
+ Please upgrade to version #{VAGRANT_WINRM_MIN_VER} or higher.
241
+ EOS
206
242
  end
207
243
  end
208
244
  end
@@ -21,6 +21,6 @@ module Kitchen
21
21
  module Driver
22
22
 
23
23
  # Version string for VagrantWinrm Kitchen driver
24
- VAGRANT_WINRM_VERSION = '0.1.1'
24
+ VAGRANT_WINRM_VERSION = '0.2.1'
25
25
  end
26
26
  end
data/spec/spec_helper.rb CHANGED
@@ -4,12 +4,6 @@
4
4
  # loaded once.
5
5
  #
6
6
  require 'rspec'
7
- require './lib/vagrant-winrm.rb'
8
- require './lib/vagrant-winrm/plugin.rb'
9
- require './lib/vagrant-winrm/plugin.rb'
10
- require './lib/vagrant-winrm/commands/winrm.rb'
11
- require './lib/vagrant-winrm/commands/winrm_config.rb'
12
- require './lib/vagrant-winrm/commands/winrm_upload.rb'
13
7
 
14
8
  # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
15
9
  RSpec.configure do |config|
@@ -39,4 +33,4 @@ RSpec.configure do |config|
39
33
  # the seed, which is printed after each run.
40
34
  # --seed 1234
41
35
  config.order = 'random'
42
- end
36
+ end
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kitchen-vagrant_winrm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Baptiste Courtois
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-02 00:00:00.000000000 Z
11
+ date: 2015-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-kitchen
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '1.2'
19
+ version: 1.2.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '1.2'
26
+ version: 1.2.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: cane
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: tailor
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: countloc
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Kitchen::Driver::VagrantWinRM - A Test Kitchen Driver using Vagrant-WinRM
@@ -115,10 +115,11 @@ executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - .cane
119
- - .gitignore
120
- - .rspec
121
- - .tailor
118
+ - ".cane"
119
+ - ".gitignore"
120
+ - ".rspec"
121
+ - ".tailor"
122
+ - ".travis.yml"
122
123
  - CHANGELOG.md
123
124
  - Gemfile
124
125
  - LICENSE
@@ -139,17 +140,17 @@ require_paths:
139
140
  - lib
140
141
  required_ruby_version: !ruby/object:Gem::Requirement
141
142
  requirements:
142
- - - '>='
143
+ - - ">="
143
144
  - !ruby/object:Gem::Version
144
145
  version: '0'
145
146
  required_rubygems_version: !ruby/object:Gem::Requirement
146
147
  requirements:
147
- - - '>='
148
+ - - ">="
148
149
  - !ruby/object:Gem::Version
149
150
  version: '0'
150
151
  requirements: []
151
152
  rubyforge_project:
152
- rubygems_version: 2.3.0
153
+ rubygems_version: 2.2.2
153
154
  signing_key:
154
155
  specification_version: 4
155
156
  summary: A Test Kitchen Driver using vagrant winrm