kitchen-hyperv 0.3.0 → 0.4.0

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: a1487a387bfe733bc51dbb0e2e791df21f3cbba4
4
- data.tar.gz: 7bccbbc392b003eb4e829b53244c8bc5669384bf
3
+ metadata.gz: bc2c3434848b858549e45714e5828f52182159f5
4
+ data.tar.gz: 79cb0919ca938194aca1446c14fa899a01b4a141
5
5
  SHA512:
6
- metadata.gz: a966a187860dfb50208b282938aac5193300e8410b56faa5cf97caedbd9eda08c8a846b24d4a7f0a6b55da87cc27c12ce24c6c7bbdcbaf85053d7b96f61bf3ad
7
- data.tar.gz: c7717e133cabc5a5852b5bbf5d9963b71059d25574c404554bccc17c5e4069b1d7fbbb97f8a0ae9da9396645cc38a01d7985a12dbc4cc4ed4bbafabb4e848f38
6
+ metadata.gz: c67ce7d0ce7789ccfea65bc7cff15552cde8bc8f6902d2845e36ed0748d56756147ba869f76de36b3a0df8261e9e282c0395a88724119b3c3aca1d6992bc8333
7
+ data.tar.gz: 2ed67e5ae88901c540d6371670b8dea20df6cf1a093af90ba26de0431b9b47046d15ae1795d6275487e6f89fba009b8e8c7fb3c8b5037f35473ddb2b04bf2b9d
data/.cane CHANGED
@@ -1,2 +1,2 @@
1
- --no-doc
1
+ --no-doc
2
2
  --style-measure 100
data/.gitignore CHANGED
@@ -1,15 +1,15 @@
1
- /.bundle/
2
- /.yardoc
3
- /Gemfile.lock
4
- /_yardoc/
5
- /coverage/
6
- /doc/
7
- /pkg/
8
- /spec/reports/
9
- /tmp/
10
- *.bundle
11
- *.so
12
- *.o
13
- *.a
14
- mkmf.log
15
- *.gem
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ *.bundle
11
+ *.so
12
+ *.o
13
+ *.a
14
+ mkmf.log
15
+ *.gem
@@ -1,93 +1,93 @@
1
- # Change Log
2
-
3
- ## [v0.3.0](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.3.0) (2016-11-28)
4
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.2.3...v0.3.0)
5
-
6
- **Merged pull requests:**
7
-
8
- - Support setting VM notes [\#39](https://github.com/test-kitchen/kitchen-hyperv/pull/39) ([watsonlu](https://github.com/watsonlu))
9
- - Fix mounting iso on Gen 2 VM [\#38](https://github.com/test-kitchen/kitchen-hyperv/pull/38) ([mahsoud](https://github.com/mahsoud))
10
- - Adding support for HyperV Guest Interface Services [\#34](https://github.com/test-kitchen/kitchen-hyperv/pull/34) ([gaelcolas](https://github.com/gaelcolas))
11
- - Fix line continuation syntax [\#32](https://github.com/test-kitchen/kitchen-hyperv/pull/32) ([brantb](https://github.com/brantb))
12
-
13
- ## [v0.2.3](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.2.3) (2016-06-10)
14
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.2.2...v0.2.3)
15
-
16
- **Merged pull requests:**
17
-
18
- - Support PowerShell v5.1 on the Insider Preview - updated [\#31](https://github.com/test-kitchen/kitchen-hyperv/pull/31) ([smurawski](https://github.com/smurawski))
19
-
20
- ## [v0.2.2](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.2.2) (2016-06-10)
21
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.2.1...v0.2.2)
22
-
23
- **Merged pull requests:**
24
-
25
- - Support PowerShell v5.1 on the Insider Preview [\#30](https://github.com/test-kitchen/kitchen-hyperv/pull/30) ([smurawski](https://github.com/smurawski))
26
-
27
- ## [v0.2.1](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.2.1) (2016-05-25)
28
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.20...v0.2.1)
29
-
30
- ## [v0.1.20](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.20) (2016-05-17)
31
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.10...v0.1.20)
32
-
33
- **Merged pull requests:**
34
-
35
- - More Configurable VM Networking [\#27](https://github.com/test-kitchen/kitchen-hyperv/pull/27) ([svmastersamurai](https://github.com/svmastersamurai))
36
- - Add -noprofile to powershell executions to prevent users' custom prof… [\#23](https://github.com/test-kitchen/kitchen-hyperv/pull/23) ([kriszentner](https://github.com/kriszentner))
37
-
38
- ## [v0.1.10](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.10) (2015-12-03)
39
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.9...v0.1.10)
40
-
41
- **Merged pull requests:**
42
-
43
- - update incorrect module name [\#21](https://github.com/test-kitchen/kitchen-hyperv/pull/21) ([jbruettcva](https://github.com/jbruettcva))
44
-
45
- ## [v0.1.9](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.9) (2015-12-03)
46
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.8...v0.1.9)
47
-
48
- ## [v0.1.8](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.8) (2015-12-03)
49
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.7...v0.1.8)
50
-
51
- **Merged pull requests:**
52
-
53
- - Updating readme.md to include image configuration, specifically winrm… [\#20](https://github.com/test-kitchen/kitchen-hyperv/pull/20) ([jbruettcva](https://github.com/jbruettcva))
54
- - Hyper-V module and Get-VMIP delay fix [\#19](https://github.com/test-kitchen/kitchen-hyperv/pull/19) ([jbruettcva](https://github.com/jbruettcva))
55
- - File copy feature [\#17](https://github.com/test-kitchen/kitchen-hyperv/pull/17) ([dpiessens](https://github.com/dpiessens))
56
- - Fixed NilClass exception if VM does not exist [\#16](https://github.com/test-kitchen/kitchen-hyperv/pull/16) ([dpiessens](https://github.com/dpiessens))
57
- - Add support for dynamic memory [\#15](https://github.com/test-kitchen/kitchen-hyperv/pull/15) ([brantb](https://github.com/brantb))
58
-
59
- ## [v0.1.7](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.7) (2015-07-14)
60
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.6...v0.1.7)
61
-
62
- **Merged pull requests:**
63
-
64
- - 64-bit windows support [\#8](https://github.com/test-kitchen/kitchen-hyperv/pull/8) ([ksubrama](https://github.com/ksubrama))
65
-
66
- ## [v0.1.6](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.6) (2015-06-25)
67
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.5...v0.1.6)
68
-
69
- ## [v0.1.5](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.5) (2015-06-24)
70
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.2...v0.1.5)
71
-
72
- **Merged pull requests:**
73
-
74
- - Adding support for mounting ISOs [\#6](https://github.com/test-kitchen/kitchen-hyperv/pull/6) ([smurawski](https://github.com/smurawski))
75
-
76
- ## [v0.1.2](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.2) (2015-05-20)
77
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.1...v0.1.2)
78
-
79
- **Merged pull requests:**
80
-
81
- - Smurawski/updating metadata [\#4](https://github.com/test-kitchen/kitchen-hyperv/pull/4) ([smurawski](https://github.com/smurawski))
82
-
83
- ## [v0.1.1](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.1) (2015-05-20)
84
- [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.0...v0.1.1)
85
-
86
- ## [v0.1.0](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.0) (2015-05-20)
87
- **Merged pull requests:**
88
-
89
- - Prepping for release [\#3](https://github.com/test-kitchen/kitchen-hyperv/pull/3) ([smurawski](https://github.com/smurawski))
90
-
91
-
92
-
1
+ # Change Log
2
+
3
+ ## [v0.3.0](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.3.0) (2016-11-28)
4
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.2.3...v0.3.0)
5
+
6
+ **Merged pull requests:**
7
+
8
+ - Support setting VM notes [\#39](https://github.com/test-kitchen/kitchen-hyperv/pull/39) ([watsonlu](https://github.com/watsonlu))
9
+ - Fix mounting iso on Gen 2 VM [\#38](https://github.com/test-kitchen/kitchen-hyperv/pull/38) ([mahsoud](https://github.com/mahsoud))
10
+ - Adding support for HyperV Guest Interface Services [\#34](https://github.com/test-kitchen/kitchen-hyperv/pull/34) ([gaelcolas](https://github.com/gaelcolas))
11
+ - Fix line continuation syntax [\#32](https://github.com/test-kitchen/kitchen-hyperv/pull/32) ([brantb](https://github.com/brantb))
12
+
13
+ ## [v0.2.3](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.2.3) (2016-06-10)
14
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.2.2...v0.2.3)
15
+
16
+ **Merged pull requests:**
17
+
18
+ - Support PowerShell v5.1 on the Insider Preview - updated [\#31](https://github.com/test-kitchen/kitchen-hyperv/pull/31) ([smurawski](https://github.com/smurawski))
19
+
20
+ ## [v0.2.2](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.2.2) (2016-06-10)
21
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.2.1...v0.2.2)
22
+
23
+ **Merged pull requests:**
24
+
25
+ - Support PowerShell v5.1 on the Insider Preview [\#30](https://github.com/test-kitchen/kitchen-hyperv/pull/30) ([smurawski](https://github.com/smurawski))
26
+
27
+ ## [v0.2.1](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.2.1) (2016-05-25)
28
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.20...v0.2.1)
29
+
30
+ ## [v0.1.20](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.20) (2016-05-17)
31
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.10...v0.1.20)
32
+
33
+ **Merged pull requests:**
34
+
35
+ - More Configurable VM Networking [\#27](https://github.com/test-kitchen/kitchen-hyperv/pull/27) ([svmastersamurai](https://github.com/svmastersamurai))
36
+ - Add -noprofile to powershell executions to prevent users' custom prof… [\#23](https://github.com/test-kitchen/kitchen-hyperv/pull/23) ([kriszentner](https://github.com/kriszentner))
37
+
38
+ ## [v0.1.10](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.10) (2015-12-03)
39
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.9...v0.1.10)
40
+
41
+ **Merged pull requests:**
42
+
43
+ - update incorrect module name [\#21](https://github.com/test-kitchen/kitchen-hyperv/pull/21) ([jbruettcva](https://github.com/jbruettcva))
44
+
45
+ ## [v0.1.9](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.9) (2015-12-03)
46
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.8...v0.1.9)
47
+
48
+ ## [v0.1.8](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.8) (2015-12-03)
49
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.7...v0.1.8)
50
+
51
+ **Merged pull requests:**
52
+
53
+ - Updating readme.md to include image configuration, specifically winrm… [\#20](https://github.com/test-kitchen/kitchen-hyperv/pull/20) ([jbruettcva](https://github.com/jbruettcva))
54
+ - Hyper-V module and Get-VMIP delay fix [\#19](https://github.com/test-kitchen/kitchen-hyperv/pull/19) ([jbruettcva](https://github.com/jbruettcva))
55
+ - File copy feature [\#17](https://github.com/test-kitchen/kitchen-hyperv/pull/17) ([dpiessens](https://github.com/dpiessens))
56
+ - Fixed NilClass exception if VM does not exist [\#16](https://github.com/test-kitchen/kitchen-hyperv/pull/16) ([dpiessens](https://github.com/dpiessens))
57
+ - Add support for dynamic memory [\#15](https://github.com/test-kitchen/kitchen-hyperv/pull/15) ([brantb](https://github.com/brantb))
58
+
59
+ ## [v0.1.7](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.7) (2015-07-14)
60
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.6...v0.1.7)
61
+
62
+ **Merged pull requests:**
63
+
64
+ - 64-bit windows support [\#8](https://github.com/test-kitchen/kitchen-hyperv/pull/8) ([ksubrama](https://github.com/ksubrama))
65
+
66
+ ## [v0.1.6](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.6) (2015-06-25)
67
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.5...v0.1.6)
68
+
69
+ ## [v0.1.5](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.5) (2015-06-24)
70
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.2...v0.1.5)
71
+
72
+ **Merged pull requests:**
73
+
74
+ - Adding support for mounting ISOs [\#6](https://github.com/test-kitchen/kitchen-hyperv/pull/6) ([smurawski](https://github.com/smurawski))
75
+
76
+ ## [v0.1.2](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.2) (2015-05-20)
77
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.1...v0.1.2)
78
+
79
+ **Merged pull requests:**
80
+
81
+ - Smurawski/updating metadata [\#4](https://github.com/test-kitchen/kitchen-hyperv/pull/4) ([smurawski](https://github.com/smurawski))
82
+
83
+ ## [v0.1.1](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.1) (2015-05-20)
84
+ [Full Changelog](https://github.com/test-kitchen/kitchen-hyperv/compare/v0.1.0...v0.1.1)
85
+
86
+ ## [v0.1.0](https://github.com/test-kitchen/kitchen-hyperv/tree/v0.1.0) (2015-05-20)
87
+ **Merged pull requests:**
88
+
89
+ - Prepping for release [\#3](https://github.com/test-kitchen/kitchen-hyperv/pull/3) ([smurawski](https://github.com/smurawski))
90
+
91
+
92
+
93
93
  \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
@@ -1,22 +1,22 @@
1
- Copyright (c) 2015 Steven Murawski
2
-
3
- MIT License
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining
6
- a copy of this software and associated documentation files (the
7
- "Software"), to deal in the Software without restriction, including
8
- without limitation the rights to use, copy, modify, merge, publish,
9
- distribute, sublicense, and/or sell copies of the Software, and to
10
- permit persons to whom the Software is furnished to do so, subject to
11
- the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be
14
- included in all copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1
+ Copyright (c) 2015 Steven Murawski
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md CHANGED
@@ -47,30 +47,67 @@ driver:
47
47
  * A list of DNS Servers that can be reached on the virtual network.
48
48
  * vm_switch
49
49
  * The virtual switch to attach the guest VMs. Defaults to the first switch returned from Get-VMSwitch.
50
+ * vm_vlan_id
51
+ * The VLAN ID to assign the virtual network adapter on the VM (Valid values: 1-4094). Defaults to untagged.
50
52
  * iso_path
51
53
  * Path on the host to the ISO to mount on the VMs.
52
54
  * boot_iso_path
53
55
  * Path on the host to the ISO to mount before starting the VMs.
54
56
  * vm_generation
55
57
  * The generation for the hyper-v VM. Defaults to 1.
58
+ * disable_secureboot
59
+ * Boolean. If true, will disable secure boot for the VM. Only applies if `vm_generation=2`. Defaults to false.
56
60
  * enable_guest_services
57
61
  * Enable the Hyper-V Integration Guest services for the VM before starting it. Hyper-V defauls is false (true|false)
58
62
  * disk_type
59
63
  * The type of virtual disk to create, .VHD or .VHDX. Defaults to the file extension of the parent virtual hard drive.
64
+ * resize_vhd
65
+ * Resize the disk to the specified size. Leave empty to keep the original size. Only works on newly created VM's. Defaults to empty.
66
+ * additional_disks
67
+ * An array of hashes (`name`,`size_gb`, and `type`) of additional disks to attach to the VM.
68
+ * **Required parameters:**
69
+ * name
70
+ * Unique name for the virtual disk.
71
+ * **Optional parameters:**
72
+ * size_gb
73
+ * Integer. If not provided, will default to 5.
74
+ * type
75
+ * The type of virtual disk to create, .VHD or .VHDX. Defaults to the file extension of the parent virtual hard drive.
76
+ * Example:
77
+
78
+ ```yaml
79
+ driver:
80
+ name: hyperv
81
+ parent_vhd_folder: 'D:\Hyper-V\Virtual Hard Disks'
82
+ parent_vhd_name: tk_test.vhdx
83
+ additional_disks:
84
+ - name: disk1
85
+ size_gb: 10
86
+ - name: disk2
87
+ size_gb: 50
88
+ type: .VHD
89
+ ```
60
90
  * vm_note
61
91
  * A note to add to the VM's note field. Defaults to empty.
92
+ * copy_vm_files
93
+ * An array of hashes (`source` and `dest`) of files or directories to copy over to the sytem under test.
94
+ * example:
95
+
96
+ ```
97
+ driver:
98
+ name: hyperv
99
+ copy_vm_files:
100
+ - source: c:/users/steven/downloads/chef-client-12.19.36-1-x64.msi
101
+ dest: c:/users/administrator/appdata/local/temp/chef-client-12.19.36-1-x64.msi
102
+ ```
103
+
62
104
 
63
105
  ## Image Configuration
64
106
 
65
107
  The following changes need to be made to a Windows image that is going to be used for testing. This is not an exhaustive list and, your milage may vary.
108
+
109
+ * Guest VMs should have the latest Integration Components installed. See https://support.microsoft.com/en-us/help/3063109/hyper-v-integration-components-update-for-windows-virtual-machines-that-are-running-on-a-windows-10-based-host
66
110
 
67
- #### WinRM
68
-
69
- ```powershell
70
- winrm set winrm/config/client/auth @{Basic="true"}
71
- winrm set winrm/config/service/auth @{Basic="true"}
72
- winrm set winrm/config/service @{AllowUnencrypted="true"}
73
- ```
74
111
  ## Contributing
75
112
 
76
113
  1. Fork it ( https://github.com/[my-github-username]/kitchen-hyperv/fork )
data/Rakefile CHANGED
@@ -21,36 +21,7 @@ task :stats do
21
21
  sh "countloc -r spec"
22
22
  end
23
23
 
24
- require "finstyle"
25
- require "rubocop/rake_task"
26
- RuboCop::RakeTask.new(:style) do |task|
27
- task.options << "--display-cop-names"
28
- task.options << "--lint"
29
- task.options << '--config' << '.rubocop.yml'
30
- task.patterns = ['lib/**/*.rb']
31
- end
32
-
33
- require "cane/rake_task"
34
- desc "Run cane to check quality metrics"
35
- Cane::RakeTask.new do |cane|
36
- cane.canefile = "./.cane"
37
- end
38
-
39
- desc "Run all quality tasks"
40
- task :quality => [:cane, :style, :stats]
41
-
42
- require "yard"
43
- YARD::Rake::YardocTask.new
44
-
45
- desc "Generate gem dependency graph"
46
- task :viz do
47
- Bundler.with_clean_env do
48
- sh "bundle viz --without test development guard " \
49
- "--requirements --version"
50
- end
51
- end
52
-
53
- task :default => [:test, :quality]
24
+ task :default => [:test]
54
25
 
55
26
  begin
56
27
  require "github_changelog_generator/task"
@@ -46,11 +46,14 @@ module Kitchen
46
46
  default_config :dns_servers
47
47
  default_config :subnet, '255.255.255.0'
48
48
  default_config :vm_switch
49
+ default_config :vm_vlan_id
49
50
  default_config :iso_path
50
51
  default_config :boot_iso_path
51
52
  default_config :enable_guest_services
52
53
  default_config :vm_note
54
+ default_config :resize_vhd
53
55
  default_config :vm_generation, 1
56
+ default_config :disable_secureboot, false
54
57
  default_config :disk_type do |driver|
55
58
  File.extname(driver[:parent_vhd_name])
56
59
  end
@@ -61,6 +64,7 @@ module Kitchen
61
64
  @state = state
62
65
  validate_vm_settings
63
66
  create_new_differencing_disk
67
+ create_additional_disks
64
68
  create_virtual_machine
65
69
  set_virtual_machine_note
66
70
  update_state
@@ -76,6 +80,7 @@ module Kitchen
76
80
  instance.transport.connection(state).close
77
81
  remove_virtual_machine
78
82
  remove_differencing_disk
83
+ remove_additional_disks
79
84
  info("The Hyper-V instance #{instance.to_str} has been removed.")
80
85
  state.delete(:id)
81
86
  end
@@ -95,6 +100,15 @@ module Kitchen
95
100
  raise warning unless memory_valid
96
101
  end
97
102
  config[:vm_switch] = vm_switch
103
+ if config[:vm_vlan_id]
104
+ vm_vlan_id = config[:vm_vlan_id]
105
+ vm_vlan_id_min = 1
106
+ vm_vlan_id_max = 4094
107
+ vm_vlan_id_valid = vm_vlan_id.between?(vm_vlan_id_min, vm_vlan_id_max)
108
+ vm_vlan_id_warning = "vm_vlan_id (#{vm_vlan_id}) must be a valid 802.1Q" \
109
+ " VLAN ID between (#{vm_vlan_id_min}-#{vm_vlan_id_max})"
110
+ raise vm_vlan_id_warning unless vm_vlan_id_valid
111
+ end
98
112
  end
99
113
 
100
114
  def create_new_differencing_disk
@@ -102,6 +116,23 @@ module Kitchen
102
116
  info("Creating differencing disk for #{instance.name}.")
103
117
  run_ps new_differencing_disk_ps
104
118
  info("Created differencing disk for #{instance.name}.")
119
+ set_new_vhd_size
120
+ end
121
+
122
+ def create_additional_disks
123
+ return if config[:additional_disks].nil?
124
+ @additional_disk_objects = []
125
+ config[:additional_disks].each do |additional_disk|
126
+ raise "Missing name for additional disk" unless additional_disk[:name]
127
+ disk_type = additional_disk[:type] || config[:disk_type]
128
+ disk_path = additional_disk_path(additional_disk[:name], disk_type)
129
+ raise "Additional disk file already exists: #{disk_path}" unless !File.exist?(disk_path)
130
+ disk_size = additional_disk[:size_gb] || 5
131
+ info("Creating additional disk #{additional_disk[:name]} for #{instance.name}.")
132
+ run_ps new_additional_disk_ps(disk_path, disk_size)
133
+ info("Created additional disk #{additional_disk[:name]} for #{instance.name}.")
134
+ @additional_disk_objects.push(disk_path)
135
+ end
105
136
  end
106
137
 
107
138
  def vm_switch
@@ -140,6 +171,14 @@ module Kitchen
140
171
  run_ps mount_vm_iso
141
172
  info("Done mounting #{config[:iso_path]}")
142
173
  end
174
+
175
+ def set_new_vhd_size
176
+ return unless config[:resize_vhd]
177
+ info("Resizing differencing disk for #{instance.name}.")
178
+ run_ps resize_vhd
179
+ info("Resized differencing disk for #{instance.name}.")
180
+ end
181
+
143
182
  def set_virtual_machine_note
144
183
  return unless config[:vm_note]
145
184
  info("Adding note to VM: '#{config[:vm_note]}'")
@@ -176,6 +215,20 @@ module Kitchen
176
215
  info("Removed the differencing disk for #{instance.name}.")
177
216
  end
178
217
 
218
+ def remove_additional_disks
219
+ return if config[:additional_disks].nil?
220
+ config[:additional_disks].each do |additional_disk|
221
+ raise "Missing name for additional disk" unless additional_disk[:name]
222
+ disk_type = additional_disk[:type] || config[:disk_type]
223
+ disk_path = additional_disk_path(additional_disk[:name], disk_type)
224
+ if File.exist?(disk_path)
225
+ info("Removing additional disk #{additional_disk[:name]} for #{instance.name}.")
226
+ FileUtils.rm(disk_path)
227
+ info("Removed additional disk #{additional_disk[:name]} for #{instance.name}.")
228
+ end
229
+ end
230
+ end
231
+
179
232
  def kitchen_vm_path
180
233
  @kitchen_vm_path ||= File.join(config[:kitchen_root], ".kitchen/#{instance.name}")
181
234
  end
@@ -188,6 +241,10 @@ module Kitchen
188
241
  @differencing_disk_path ||= File.join(kitchen_vm_path, "diff" + "#{config[:disk_type]}")
189
242
  end
190
243
 
244
+ def additional_disk_path(disk_name, disk_type)
245
+ File.join(kitchen_vm_path, disk_name + disk_type)
246
+ end
247
+
191
248
  def parent_vhd_path
192
249
  @parent_vhd_path ||= File.join(config[:parent_vhd_folder], config[:parent_vhd_name])
193
250
  end