vagrant-ovirt4 1.2.3 → 2.0.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
  SHA256:
3
- metadata.gz: 7f0791674c10129bc4c799c0edc0a69688c5afad9bf97d5330c8dbfd804fc303
4
- data.tar.gz: ff664c4cf2241450255854076a784cade3b519143e27c96cfe202f1af8bbb456
3
+ metadata.gz: 48a3502fc6d918fe1418248df8be2ca6ba8d2e0f477eb79784c0dbfd6a12c2e2
4
+ data.tar.gz: f33988dd5f134f0f6336e62ab21e4a4de534a434eb721e754301e6319e9043be
5
5
  SHA512:
6
- metadata.gz: 462531777be650d20de06a80c170d435733e62b42e60aa52600e9f52a72a36dd407be247682b68dccc8fad93b8b7d71c42c0f89f2734637be7e79c996f63fc9b
7
- data.tar.gz: 7d5c64d01517722e218f6aed6110c47fcb60aa50fc6f00d2b66e5c1e55f5e84494bd961255524b9fe950b4dbd77e0356075069e0d78b0afe5ddedaf46da25571
6
+ metadata.gz: a84a0d2994268c8fa8df3715fbc5d3c5b40c1505cfdbb750e94539561498cc2d803ca532478bf24d9fc45d1a220bee0bcd1fd00b977f9bf221f841deed5860ec
7
+ data.tar.gz: 2533a97a3cfe3435cad9c3d9dc9199380874736f9221991e8b3072504a07dc7a590aceaf616450f4ddb7d0f52b169f57ef7855e3e3f7a75df1ea81e5ff638600
@@ -0,0 +1,3 @@
1
+ # These are supported funding model platforms
2
+
3
+ github: myoung34
@@ -0,0 +1,20 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ paths:
6
+ - lib/vagrant-ovirt4/version.rb
7
+ branches:
8
+ - master
9
+ jobs:
10
+ build:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - uses: fregante/setup-git-user@v1
15
+ - name: Release Gem
16
+ uses: cadwallion/publish-rubygems-action@master
17
+ env:
18
+ GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
19
+ RUBYGEMS_API_KEY: ${{secrets.RUBYGEMS_API_KEY}}
20
+ RELEASE_COMMAND: rake release
data/.gitignore CHANGED
@@ -6,5 +6,4 @@
6
6
  /.idea
7
7
  *.gem
8
8
  /manifests
9
- hiera.yaml
10
- .kitchen
9
+ vendor
data/Gemfile CHANGED
@@ -1,20 +1,12 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  group :development do
4
- gem 'vagrant', :git => 'git://github.com/myoung34/vagrant.git'
4
+ gem 'rake'
5
+ gem 'rspec-core'
5
6
  gem 'pry'
6
7
  gem 'byebug'
7
8
  gem 'pry-byebug'
8
- end
9
-
10
- group :testing do
11
- gem 'rspec-its'
12
- gem 'rspec'
13
- gem 'rake'
14
- gem 'kitchen-vagrant'
15
- gem 'kitchen-inspec'
16
- gem 'test-kitchen'
17
- gem 'net-scp', "~>1.2"
9
+ gem 'rake-release'
18
10
  end
19
11
 
20
12
  group :plugins do
@@ -1,229 +1,50 @@
1
- GIT
2
- remote: git://github.com/myoung34/vagrant.git
3
- revision: 4572267c33f4ba569f68ad4bff026e9a7ef63b56
4
- specs:
5
- vagrant (1.9.3.dev)
6
- childprocess (~> 0.5.0)
7
- erubis (~> 2.7.0)
8
- hashicorp-checkpoint (~> 0.1.1)
9
- i18n (>= 0.6.0, <= 0.8.0)
10
- listen (~> 3.1.5)
11
- log4r (~> 1.1.9, < 1.1.11)
12
- net-scp (~> 1.2.0)
13
- net-sftp (~> 2.1)
14
- net-ssh (~> 3.0.1)
15
- nokogiri (= 1.6.7.1)
16
- rb-kqueue (~> 0.2.0)
17
- rest-client (>= 1.6.0, < 3.0)
18
- ruby_dep (<= 1.3.1)
19
- wdm (~> 0.1.0)
20
- winrm (~> 2.1)
21
- winrm-elevated (~> 1.1)
22
- winrm-fs (~> 1.0)
23
-
24
1
  PATH
25
2
  remote: .
26
3
  specs:
27
- vagrant-ovirt4 (1.2.1)
4
+ vagrant-ovirt4 (2.0.0)
28
5
  filesize (~> 0)
6
+ nokogiri (>= 1.10.8)
29
7
  ovirt-engine-sdk (~> 4.0.1)
30
8
 
31
9
  GEM
32
10
  remote: http://rubygems.org/
33
11
  specs:
34
- artifactory (2.7.0)
35
- blankslate (2.1.2.4)
36
- builder (3.2.3)
37
- byebug (9.0.6)
38
- childprocess (0.5.9)
39
- ffi (~> 1.0, >= 1.0.11)
40
- coderay (1.1.1)
41
- diff-lcs (1.3)
42
- docker-api (1.33.2)
43
- excon (>= 0.38.0)
44
- json
45
- domain_name (0.5.20170223)
46
- unf (>= 0.0.5, < 1.0.0)
47
- erubis (2.7.0)
48
- excon (0.71.0)
49
- faraday (0.11.0)
50
- multipart-post (>= 1.2, < 3)
51
- ffi (1.11.1)
52
- filesize (0.1.1)
53
- gssapi (1.2.0)
54
- ffi (>= 1.0.1)
55
- gyoku (1.3.1)
56
- builder (>= 2.1.2)
57
- hashicorp-checkpoint (0.1.4)
58
- hashie (3.5.5)
59
- http-cookie (1.0.3)
60
- domain_name (~> 0.5)
61
- httpclient (2.8.3)
62
- i18n (0.8.0)
63
- inspec (1.15.0)
64
- faraday (>= 0.9.0)
65
- hashie (~> 3.4)
66
- json (>= 1.8, < 3.0)
67
- method_source (~> 0.8)
68
- mixlib-log
69
- parallel (~> 1.9)
70
- pry (~> 0)
71
- rainbow (~> 2)
72
- rspec (~> 3)
73
- rspec-its (~> 1.2)
74
- rspec_junit_formatter (~> 0.2.3)
75
- rubyzip (~> 1.1)
76
- sslshake (~> 1)
77
- thor (~> 0.19)
78
- toml (~> 0.1)
79
- train (>= 0.22.0, < 1.0)
80
- json (2.0.3)
81
- kitchen-inspec (0.17.0)
82
- hashie (~> 3.4)
83
- inspec (>= 0.34.0, < 2.0.0)
84
- test-kitchen (~> 1.6)
85
- kitchen-vagrant (1.0.2)
86
- test-kitchen (~> 1.4)
87
- listen (3.1.5)
88
- rb-fsevent (~> 0.9, >= 0.9.4)
89
- rb-inotify (~> 0.9, >= 0.9.7)
90
- ruby_dep (~> 1.2)
91
- little-plugger (1.1.4)
92
- log4r (1.1.10)
93
- logging (2.1.0)
94
- little-plugger (~> 1.1)
95
- multi_json (~> 1.10)
96
- method_source (0.8.2)
97
- mime-types (3.1)
98
- mime-types-data (~> 3.2015)
99
- mime-types-data (3.2016.0521)
100
- mini_portile2 (2.0.0)
101
- mixlib-install (2.1.12)
102
- artifactory
103
- mixlib-shellout
104
- mixlib-versioning
105
- thor
106
- mixlib-log (1.7.1)
107
- mixlib-shellout (2.2.7)
108
- mixlib-versioning (1.1.0)
109
- multi_json (1.12.1)
110
- multipart-post (2.0.0)
111
- net-scp (1.2.1)
112
- net-ssh (>= 2.6.5)
113
- net-sftp (2.1.2)
114
- net-ssh (>= 2.6.5)
115
- net-ssh (3.0.2)
116
- net-ssh-gateway (1.3.0)
117
- net-ssh (>= 2.6.5)
118
- netrc (0.11.0)
119
- nokogiri (1.6.7.1)
120
- mini_portile2 (~> 2.0.0.rc2)
121
- nori (2.6.0)
12
+ byebug (11.1.3)
13
+ coderay (1.1.2)
14
+ filesize (0.2.0)
15
+ json (2.5.1)
16
+ method_source (1.0.0)
17
+ mini_portile2 (2.5.0)
18
+ nokogiri (1.11.1)
19
+ mini_portile2 (~> 2.5.0)
20
+ racc (~> 1.4)
122
21
  ovirt-engine-sdk (4.0.12)
123
22
  json
124
- parallel (1.10.0)
125
- parslet (1.5.0)
126
- blankslate (~> 2.0)
127
- pry (0.10.4)
128
- coderay (~> 1.1.0)
129
- method_source (~> 0.8.1)
130
- slop (~> 3.4)
131
- pry-byebug (3.4.0)
132
- byebug (~> 9.0)
133
- pry (~> 0.10)
134
- rainbow (2.2.1)
135
- rake (13.0.1)
136
- rb-fsevent (0.9.8)
137
- rb-inotify (0.9.8)
138
- ffi (>= 0.5.0)
139
- rb-kqueue (0.2.4)
140
- ffi (>= 0.5.0)
141
- rest-client (2.0.1)
142
- http-cookie (>= 1.0.2, < 2.0)
143
- mime-types (>= 1.16, < 4.0)
144
- netrc (~> 0.8)
145
- rspec (3.5.0)
146
- rspec-core (~> 3.5.0)
147
- rspec-expectations (~> 3.5.0)
148
- rspec-mocks (~> 3.5.0)
149
- rspec-core (3.5.4)
150
- rspec-support (~> 3.5.0)
151
- rspec-expectations (3.5.0)
152
- diff-lcs (>= 1.2.0, < 2.0)
153
- rspec-support (~> 3.5.0)
154
- rspec-its (1.2.0)
155
- rspec-core (>= 3.0.0)
156
- rspec-expectations (>= 3.0.0)
157
- rspec-mocks (3.5.0)
158
- diff-lcs (>= 1.2.0, < 2.0)
159
- rspec-support (~> 3.5.0)
160
- rspec-support (3.5.0)
161
- rspec_junit_formatter (0.2.3)
162
- builder (< 4)
163
- rspec-core (>= 2, < 4, != 2.12.0)
164
- ruby_dep (1.3.1)
165
- rubyntlm (0.6.1)
166
- rubyzip (1.3.0)
167
- safe_yaml (1.0.4)
168
- slop (3.6.0)
169
- sslshake (1.0.13)
170
- test-kitchen (1.15.0)
171
- mixlib-install (>= 1.2, < 3.0)
172
- mixlib-shellout (>= 1.2, < 3.0)
173
- net-scp (~> 1.1)
174
- net-ssh (>= 2.9, < 5.0)
175
- net-ssh-gateway (~> 1.2)
176
- safe_yaml (~> 1.0)
177
- thor (~> 0.18)
178
- thor (0.19.4)
179
- toml (0.1.2)
180
- parslet (~> 1.5.0)
181
- train (0.22.1)
182
- docker-api (~> 1.26)
183
- json (>= 1.8, < 3.0)
184
- mixlib-shellout (~> 2.0)
185
- net-scp (~> 1.2)
186
- net-ssh (>= 2.9, < 5.0)
187
- winrm (~> 2.0)
188
- winrm-fs (~> 1.0)
189
- unf (0.1.4)
190
- unf_ext
191
- unf_ext (0.0.7.2)
192
- wdm (0.1.1)
193
- winrm (2.1.2)
194
- builder (>= 2.1.2)
195
- erubis (~> 2.7)
196
- gssapi (~> 1.2)
197
- gyoku (~> 1.0)
198
- httpclient (~> 2.2, >= 2.2.0.2)
199
- logging (>= 1.6.1, < 3.0)
200
- nori (~> 2.0)
201
- rubyntlm (~> 0.6.0, >= 0.6.1)
202
- winrm-elevated (1.1.0)
203
- winrm (~> 2.0)
204
- winrm-fs (~> 1.0)
205
- winrm-fs (1.0.1)
206
- erubis (~> 2.7)
207
- logging (>= 1.6.1, < 3.0)
208
- rubyzip (~> 1.1)
209
- winrm (~> 2.0)
23
+ pry (0.13.1)
24
+ coderay (~> 1.1)
25
+ method_source (~> 1.0)
26
+ pry-byebug (3.9.0)
27
+ byebug (~> 11.0)
28
+ pry (~> 0.13.0)
29
+ racc (1.5.2)
30
+ rake (13.0.3)
31
+ rake-release (1.2.1)
32
+ bundler (>= 1.11, < 3)
33
+ rspec-core (3.10.1)
34
+ rspec-support (~> 3.10.0)
35
+ rspec-support (3.10.1)
210
36
 
211
37
  PLATFORMS
212
38
  ruby
213
39
 
214
40
  DEPENDENCIES
215
41
  byebug
216
- kitchen-inspec
217
- kitchen-vagrant
218
- net-scp (~> 1.2)
219
42
  pry
220
43
  pry-byebug
221
44
  rake
222
- rspec
223
- rspec-its
224
- test-kitchen
225
- vagrant!
45
+ rake-release
46
+ rspec-core
226
47
  vagrant-ovirt4!
227
48
 
228
49
  BUNDLED WITH
229
- 1.14.4
50
+ 1.17.2
data/README.md CHANGED
@@ -63,6 +63,12 @@ Vagrant.configure("2") do |config|
63
63
  :ovirt__network_name => 'ovirtmgmt' #DHCP
64
64
  # Static configuration
65
65
  #:ovirt__ip => '192.168.2.198', :ovirt__network_name => 'ovirtmgmt', :ovirt__gateway => '192.168.2.125', :ovirt__netmask => '255.255.0.0', :ovirt__dns_servers => '192.168.2.1', :ovirt__dns_search => 'test.local'
66
+ # Static configuration with biosdevname. Guest OS assigns interface names (ens3, em1 or something else). ovirt__interface_name has to match that name.
67
+ #:ovirt__ip => '192.168.2.198', :ovirt__network_name => 'ovirtmgmt', :ovirt__gateway => '192.168.2.125', :ovirt__netmask => '255.255.0.0', :ovirt__dns_servers => '192.168.2.1', :ovirt__dns_search => 'test.local', :ovirt__interface_name => 'ens3'
68
+
69
+ # configure additional interface
70
+ # config.vm.network :private_network,
71
+ # :ovirt__ip => '192.168.2.199', :ovirt__network_name => 'ovirtmgmt', :ovirt__netmask => '255.255.0.0', :ovirt__interface_name => 'ens4'
66
72
 
67
73
  config.vm.provider :ovirt4 do |ovirt|
68
74
  ovirt.url = 'https://server/ovirt-engine/api'
@@ -74,9 +80,9 @@ Vagrant.configure("2") do |config|
74
80
  ovirt.cluster = 'Default'
75
81
  ovirt.template = 'Vagrant-Centos7-test'
76
82
  ovirt.console = 'vnc'
77
- ovirt.disk_size = '15 GB' # only growing is supported. works the same way as below memory settings
83
+ ovirt.disk_size = '15 GiB' # only growing is supported. works the same way as below memory settings
78
84
  ovirt.memory_size = '1 GiB' #see https://github.com/dominikh/filesize for usage
79
- ovirt.memory_guaranteed = '256 MB' #see https://github.com/dominikh/filesize for usage
85
+ ovirt.memory_guaranteed = '256 MiB' #see https://github.com/dominikh/filesize for usage
80
86
  ovirt.cpu_cores = 2
81
87
  ovirt.cpu_sockets = 2
82
88
  ovirt.cpu_threads = 2
@@ -132,25 +138,6 @@ end
132
138
  a. `storage_domain`: the storage domain where the disk should be created
133
139
 
134
140
 
135
- ## Testing
136
-
137
- Currently pull-requests are tested via [test-kitchen using kitchen-vagrant](https://github.com/test-kitchen/kitchen-vagrant).
138
- See [Jenkinsfile](Jenkinsfile) for more information.
139
- If you'd like to run them yourself, however, they make not work in all setups. For example they assume `192.168.2.0/24`, host pinning will probably not have a host that's in all set ups, and the template names might not match.
140
-
141
- To run Unit tests: `bundle install; bundle exec rspec`
142
-
143
- To run acceptance tests:
144
-
145
- ```bash
146
- export OVIRT_URL='https://yoururl/ovirt-engine/api''
147
- export OVIRT_USERNAME='yourname@internal'
148
- export OVIRT_PASSWORD='yourpassword!'
149
- gem build *.gemspec
150
- vagrant plugin install *.gem
151
- bundle exec kitchen test all
152
- ```
153
-
154
141
  ## Contributing
155
142
 
156
143
  1. Fork it
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'bundler/setup'
3
+ require 'rake/release'
3
4
  require 'rspec/core/rake_task'
4
- require 'kitchen/rake_tasks'
5
5
 
6
6
  # Immediately sync all stdout so that tools like buildbot can
7
7
  # immediately load in the output.
@@ -14,20 +14,3 @@ Dir.chdir(File.expand_path("../", __FILE__))
14
14
  # This installs the tasks that help with gem creation and
15
15
  # publishing.
16
16
  Bundler::GemHelper.install_tasks
17
-
18
- # Install the `spec` task so that we can run tests.
19
- RSpec::Core::RakeTask.new(:spec) do |t|
20
- t.rspec_opts = "--order defined"
21
- end
22
-
23
- # Default task is to run all tests
24
- namespace :test do
25
- task :all do
26
- RSpec::Core::RakeTask.new(:spec)
27
- Rake::Task["spec"].execute
28
- Kitchen::RakeTasks.new
29
- Rake::Task['kitchen:all'].invoke
30
- end
31
- end
32
-
33
- task :default => 'test:all'
@@ -13,8 +13,11 @@ module VagrantPlugins
13
13
  b.use ConfigValidate
14
14
  b.use ConnectOVirt
15
15
  b.use Call, ReadState do |env, b2|
16
+ # synced_folders defaults to NFS on linux. Make it default to rsync as before.
17
+ env[:machine].config.nfs.functional = false
16
18
  if env[:machine_state_id] == :up
17
- b2.use SyncFolders
19
+ b2.use SyncedFolderCleanup
20
+ b2.use SyncedFolders
18
21
  b2.use MessageAlreadyUp
19
22
  next
20
23
  end
@@ -37,7 +40,8 @@ module VagrantPlugins
37
40
 
38
41
  b2.use StartVM
39
42
  b2.use WaitTillUp
40
- b2.use SyncFolders
43
+ b2.use SyncedFolderCleanup
44
+ b2.use SyncedFolders
41
45
  end
42
46
  b.use DisconnectOVirt
43
47
  end
@@ -54,8 +58,8 @@ module VagrantPlugins
54
58
 
55
59
  b2.use ConnectOVirt
56
60
  b2.use ProvisionerCleanup, :before if defined?(ProvisionerCleanup)
57
- b2.use HaltVM
58
- b2.use WaitTillDown
61
+ b2.use HaltVM unless env[:machine].state.id == :down
62
+ b2.use WaitTillDown unless env[:machine].state.id == :down
59
63
  b2.use DestroyVM
60
64
  b2.use DisconnectOVirt
61
65
  end
@@ -66,12 +70,15 @@ module VagrantPlugins
66
70
  Vagrant::Action::Builder.new.tap do |b|
67
71
  b.use ConfigValidate
68
72
  b.use Call, IsCreated do |env, b2|
73
+ # synced_folders defaults to NFS on linux. Make it default to rsync as before.
74
+ env[:machine].config.nfs.functional = false
69
75
  if !env[:result]
70
76
  b2.use MessageNotCreated
71
77
  next
72
78
  end
73
79
  b2.use Provision
74
- b2.use SyncFolders
80
+ b2.use SyncedFolderCleanup
81
+ b2.use SyncedFolders
75
82
  end
76
83
  end
77
84
  end
@@ -161,7 +168,7 @@ module VagrantPlugins
161
168
  end
162
169
 
163
170
  def self.action_reload
164
- with_ovirt do |env, b|
171
+ Vagrant::Action::Builder.new.tap do |b|
165
172
  b.use action_halt
166
173
  b.use action_up
167
174
  end
@@ -194,7 +201,8 @@ module VagrantPlugins
194
201
  b.use MessageNotSuspended
195
202
  next
196
203
  end
197
- b.use action_up
204
+ b.use StartVM
205
+ b.use WaitTillUp
198
206
  end
199
207
  end
200
208
 
@@ -234,7 +242,8 @@ module VagrantPlugins
234
242
  autoload :SnapshotSave, action_root.join("snapshot_save")
235
243
  autoload :StartVM, action_root.join("start_vm")
236
244
  autoload :SuspendVM, action_root.join("suspend_vm")
237
- autoload :SyncFolders, action_root.join("sync_folders")
245
+ autoload :SyncedFolders, 'vagrant/action/builtin/synced_folders'
246
+ autoload :SyncedFolderCleanup, 'vagrant/action/builtin/synced_folder_cleanup'
238
247
  autoload :WaitTillDown, action_root.join("wait_till_down")
239
248
  autoload :WaitTillUp, action_root.join("wait_till_up")
240
249
  autoload :WaitTilSuspended, action_root.join("wait_til_suspended")
@@ -29,15 +29,15 @@ module VagrantPlugins
29
29
  env[:ui].info(" -- Optimized For: #{config.optimized_for}")
30
30
  env[:ui].info(" -- Description: #{config.description}")
31
31
  env[:ui].info(" -- Comment: #{config.comment}")
32
- env[:ui].info(" -- Disk: #{Filesize.from("#{config.disk_size} B").to_f('GB').to_i} GB") unless config.disk_size.nil?
32
+ env[:ui].info(" -- Disk: #{Filesize.from("#{config.disk_size} B").to_f('GiB').to_i} GiB") unless config.disk_size.nil?
33
33
  env[:ui].info(" -- Additional Disks:") unless config.disks.empty?
34
34
  config.disks.each do |disk|
35
- env[:ui].info(" ---- name=#{disk[:name]} size=#{Filesize.from("#{disk[:size]} B").to_f('GB').to_i} GB")
35
+ env[:ui].info(" ---- name=#{disk[:name]} size=#{Filesize.from("#{disk[:size]} B").to_f('GiB').to_i} GiB")
36
36
  end
37
37
  env[:ui].info(" -- Memory: ")
38
- env[:ui].info(" ---- Memory: #{Filesize.from("#{config.memory_size} B").to_f('MB').to_i} MB")
39
- env[:ui].info(" ---- Maximum: #{Filesize.from("#{config.memory_maximum} B").to_f('MB').to_i} MB")
40
- env[:ui].info(" ---- Guaranteed: #{Filesize.from("#{config.memory_guaranteed} B").to_f('MB').to_i} MB")
38
+ env[:ui].info(" ---- Memory: #{Filesize.from("#{config.memory_size} B").to_f('MiB').to_i} MiB")
39
+ env[:ui].info(" ---- Maximum: #{Filesize.from("#{config.memory_maximum} B").to_f('MiB').to_i} MiB")
40
+ env[:ui].info(" ---- Guaranteed: #{Filesize.from("#{config.memory_guaranteed} B").to_f('MiB').to_i} MiB")
41
41
  env[:ui].info(" -- Cpu: ")
42
42
  env[:ui].info(" ---- Cores: #{config.cpu_cores}")
43
43
  env[:ui].info(" ---- Sockets: #{config.cpu_sockets}")
@@ -12,6 +12,17 @@ module VagrantPlugins
12
12
  def call(env)
13
13
  env[:ui].info(I18n.t("vagrant_ovirt4.halt_vm"))
14
14
 
15
+ # Halt via OS capability
16
+ begin
17
+ if env[:machine].guest.capability?(:halt)
18
+ env[:machine].guest.capability(:halt)
19
+ # Give the VM a chance to shutdown gracefully..."
20
+ sleep 10
21
+ end
22
+ rescue
23
+ env[:ui].info("Failed to shutdown guest gracefully.")
24
+ end
25
+
15
26
  machine = env[:vms_service].vm_service(env[:machine].id)
16
27
  machine.stop rescue nil #todo dont rescue
17
28
 
@@ -36,7 +36,12 @@ module VagrantPlugins
36
36
 
37
37
  nics_service = server.nics_service
38
38
  nics = nics_service.list
39
- ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment).reported_devices.collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first rescue nil
39
+ begin
40
+ ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment.reported_devices).collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first
41
+ rescue
42
+ # for backwards compatibility with ovirt 4.3
43
+ ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment).reported_devices.collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first rescue nil
44
+ end
40
45
 
41
46
  # Return the info
42
47
  # TODO: Some info should be configurable in Vagrantfile
@@ -33,7 +33,13 @@ module VagrantPlugins
33
33
  end
34
34
  nics_service = server.nics_service
35
35
  nics = nics_service.list
36
- ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment).reported_devices.collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first rescue nil
36
+ begin
37
+ ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment.reported_devices).collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first
38
+ rescue
39
+ # for backwards compatibility with ovirt 4.3
40
+ ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment).reported_devices.collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first rescue nil
41
+ end
42
+
37
43
  unless ip_addr.nil?
38
44
  env[:ip_address] = ip_addr
39
45
  @logger.debug("Got output #{env[:ip_address]}")
@@ -46,9 +46,15 @@ module VagrantPlugins
46
46
  (0...configured_ifaces_options.length()).each do |iface_index|
47
47
  iface_options = configured_ifaces_options[iface_index]
48
48
 
49
+ if iface_options[:interface_name] != nil then
50
+ iface_name = iface_options[:interface_name]
51
+ else
52
+ iface_name = "eth#{iface_index}"
53
+ end
54
+
49
55
  if iface_options[:ip] then
50
56
  nic_configuration = {
51
- name: "eth#{iface_index}",
57
+ name: iface_name,
52
58
  on_boot: true,
53
59
  boot_protocol: OvirtSDK4::BootProtocol::STATIC,
54
60
  ip: {
@@ -60,7 +66,7 @@ module VagrantPlugins
60
66
  }
61
67
  else
62
68
  nic_configuration = {
63
- name: "eth#{iface_index}",
69
+ name: iface_name,
64
70
  on_boot: true,
65
71
  boot_protocol: OvirtSDK4::BootProtocol::DHCP,
66
72
  }
@@ -57,7 +57,13 @@ module VagrantPlugins
57
57
 
58
58
  nics_service = server.nics_service
59
59
  nics = nics_service.list
60
- ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment).reported_devices.collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first rescue nil
60
+ begin
61
+ ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment.reported_devices).collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first
62
+ rescue
63
+ # for backwards compatibility with ovirt 4.3
64
+ ip_addr = nics.collect { |nic_attachment| env[:connection].follow_link(nic_attachment).reported_devices.collect { |dev| dev.ips.collect { |ip| ip.address if ip.version == 'v4' } unless dev.ips.nil? } }.flatten.reject { |ip| ip.nil? }.first rescue nil
65
+ end
66
+
61
67
  unless ip_addr.nil?
62
68
  env[:ui].info("Got IP: #{ip_addr}")
63
69
  # Check if SSH-Server is up
@@ -98,7 +98,7 @@ module VagrantPlugins
98
98
  @cpu_threads = 1 if @cpu_threads == UNSET_VALUE
99
99
  @cluster = nil if @cluster == UNSET_VALUE
100
100
  @console = nil if @console == UNSET_VALUE
101
- @memory_size = '256 MB' if @memory_size == UNSET_VALUE
101
+ @memory_size = '256 MiB' if @memory_size == UNSET_VALUE
102
102
  @memory_maximum = @memory_size if @memory_maximum == UNSET_VALUE
103
103
  @memory_guaranteed = @memory_size if @memory_guaranteed == UNSET_VALUE
104
104
  @template = nil if @template == UNSET_VALUE
@@ -1,6 +1,6 @@
1
1
  module VagrantPlugins
2
2
  module OVirtProvider
3
- VERSION = '1.2.3'
3
+ VERSION = '2.0.0'
4
4
  end
5
5
  end
6
6
 
@@ -55,6 +55,10 @@ en:
55
55
  The instance is not running. Use `vagrant up` to start it.
56
56
  short_down: |-
57
57
  down
58
+ long_not_created: |-
59
+ The instance is not created. Use `vagrant up` to create it.
60
+ short_not_created: |-
61
+ not created
58
62
  errors:
59
63
  remove_vm_error: |-
60
64
  Error removing VM '%{vm_name}'. oVirt error message was '%{error_message}'
@@ -68,13 +68,13 @@ describe VagrantPlugins::OVirtProvider::Config do
68
68
  [:memory_size, :memory_maximum, :memory_guaranteed].each do |attribute|
69
69
 
70
70
  it "should not default #{attribute} if overridden" do
71
- instance.send("#{attribute}=".to_sym, "512 MB")
71
+ instance.send("#{attribute}=".to_sym, "512 MiB")
72
72
  instance.finalize!
73
73
  instance.send(attribute).should == 512000000
74
74
  end
75
75
 
76
76
  it "should convert the value" do
77
- instance.send("#{attribute}=".to_sym, "1 GB")
77
+ instance.send("#{attribute}=".to_sym, "1 GiB")
78
78
  instance.finalize!
79
79
  instance.send(attribute).should == 1000000000
80
80
  end
@@ -18,5 +18,6 @@ Gem::Specification.new do |gem|
18
18
 
19
19
  gem.add_runtime_dependency 'ovirt-engine-sdk', '~> 4.0.1'
20
20
  gem.add_runtime_dependency 'filesize', '~> 0'
21
+ gem.add_runtime_dependency 'nokogiri', '>= 1.10.8'
21
22
 
22
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-ovirt4
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcus Young
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-05 00:00:00.000000000 Z
11
+ date: 2021-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ovirt-engine-sdk
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: nokogiri
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 1.10.8
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.10.8
41
55
  description: Vagrant provider for oVirt and RHEV v4
42
56
  email:
43
57
  - myoung34@my.apsu.edu
@@ -45,13 +59,13 @@ executables: []
45
59
  extensions: []
46
60
  extra_rdoc_files: []
47
61
  files:
62
+ - ".github/FUNDING.yml"
63
+ - ".github/workflows/release.yml"
48
64
  - ".gitignore"
49
- - ".kitchen.yml"
50
65
  - ".rspec"
51
66
  - Dockerfile
52
67
  - Gemfile
53
68
  - Gemfile.lock
54
- - Jenkinsfile
55
69
  - LICENSE
56
70
  - README.md
57
71
  - Rakefile
@@ -85,7 +99,6 @@ files:
85
99
  - lib/vagrant-ovirt4/action/snapshot_save.rb
86
100
  - lib/vagrant-ovirt4/action/start_vm.rb
87
101
  - lib/vagrant-ovirt4/action/suspend_vm.rb
88
- - lib/vagrant-ovirt4/action/sync_folders.rb
89
102
  - lib/vagrant-ovirt4/action/wait_til_suspended.rb
90
103
  - lib/vagrant-ovirt4/action/wait_till_down.rb
91
104
  - lib/vagrant-ovirt4/action/wait_till_up.rb
@@ -113,10 +126,6 @@ files:
113
126
  - spec/vagrant-ovirt4/action/read_state_spec.rb
114
127
  - spec/vagrant-ovirt4/config_spec.rb
115
128
  - templates/Vagrantfile.erb
116
- - test/integration/bios_serial/bios_serial_spec.rb
117
- - test/integration/dynamic_network/network_spec.rb
118
- - test/integration/optimized_for.sh
119
- - test/integration/singleton-static_network/network_spec.rb
120
129
  - tools/prepare_redhat_for_box.sh
121
130
  - vagrant-ovirt4.gemspec
122
131
  homepage: https://github.com/myoung34/vagrant-ovirt4
@@ -138,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
147
  - !ruby/object:Gem::Version
139
148
  version: '0'
140
149
  requirements: []
141
- rubygems_version: 3.0.1
150
+ rubygems_version: 3.0.3
142
151
  signing_key:
143
152
  specification_version: 4
144
153
  summary: This vagrant plugin provides the ability to create, control, and destroy
@@ -156,7 +165,3 @@ test_files:
156
165
  - spec/vagrant-ovirt4/action/read_ssh_info_spec.rb
157
166
  - spec/vagrant-ovirt4/action/read_state_spec.rb
158
167
  - spec/vagrant-ovirt4/config_spec.rb
159
- - test/integration/bios_serial/bios_serial_spec.rb
160
- - test/integration/dynamic_network/network_spec.rb
161
- - test/integration/optimized_for.sh
162
- - test/integration/singleton-static_network/network_spec.rb
@@ -1,83 +0,0 @@
1
- driver:
2
- name: vagrant
3
- vagrantfile_erb: templates/Vagrantfile.erb
4
- provider: ovirt4
5
-
6
- verifier:
7
- name: inspec
8
- format: doc
9
-
10
- platforms:
11
- - name: centos7
12
- driver_plugin: vagrant
13
- driver_config:
14
- customize:
15
- memory_size: 1024 MB
16
- url: <%= ENV['OVIRT_URL'] %>
17
- insecure: true
18
- username: <%= ENV['OVIRT_USERNAME'] %>
19
- password: <%= ENV['OVIRT_PASSWORD'] %>
20
- cluster: Default
21
- debug: true
22
- box: ovirt4
23
- box_url: https://github.com/myoung34/vagrant-ovirt4/blob/master/example_box/dummy.box?raw=true
24
-
25
- suites:
26
- - name: singleton-static_network
27
- driver_config:
28
- vm_hostname: static
29
- customize:
30
- template: vagrant-centos7
31
- network:
32
- - ["private_network", {ovirt__ip: <%= "192.168.2.254" %>, ovirt__network_name: 'ovirtmgmt', ovirt__gateway: 192.168.2.1, ovirt__netmask: 255.255.255.0, ovirt__dns_servers: 192.168.2.1}]
33
- - name: dynamic_network
34
- driver_config:
35
- vm_hostname: dynamic
36
- network:
37
- - ["private_network", {ovirt__network_name: 'ovirtmgmt'}]
38
- customize:
39
- template: vagrant-centos7
40
- cloud_init: |
41
- runcmd:
42
- - ifdown eth0
43
- - service network restart
44
- - name: bios_serial
45
- driver_config:
46
- vm_hostname: bios-serial
47
- network:
48
- - ["private_network", {ovirt__network_name: 'ovirtmgmt'}]
49
- customize:
50
- template: vagrant-centos7
51
- bios_serial: 'banana-hammock'
52
- cloud_init: |
53
- runcmd:
54
- - ifdown eth0
55
- - service network restart
56
- - name: optimized_for_default
57
- verifier:
58
- name: shell
59
- command: curl --silent -k -L --user "${OVIRT_USERNAME}:${OVIRT_PASSWORD}" --header 'Content-Type: application/xml' --header 'Accept: application/xml' ${OVIRT_URL}/vms/d3f659e1-21ff-42a0-b5fa-7c2f74a36c2b | xmllint --xpath '/vm/type/text()' - | grep desktop
60
- driver_config:
61
- vm_hostname: optimized-for
62
- network:
63
- - ["private_network", {ovirt__network_name: 'ovirtmgmt'}]
64
- customize:
65
- template: vagrant-centos7
66
- cloud_init: |
67
- runcmd:
68
- - ifdown eth0
69
- - service network restart
70
- - name: optimized_for_set
71
- verifier:
72
- name: shell
73
- command: test/integration/optimized_for.sh
74
- driver_config:
75
- vm_hostname: optimized-for
76
- network:
77
- - ["private_network", {ovirt__network_name: 'ovirtmgmt'}]
78
- customize:
79
- template: vagrant-centos7
80
- cloud_init: |
81
- runcmd:
82
- - ifdown eth0
83
- - service network restart
@@ -1,70 +0,0 @@
1
- #!/usr/bin/env groovy
2
- node {
3
- stage('Checkout') {
4
- checkout scm
5
- }
6
-
7
- // Run as many tests as possible in parallel.
8
- String[] vagrantVersions = ["1.9.1", "1.9.2"]
9
- stage('Test') {
10
-
11
- def buildJobs = [:]
12
-
13
- buildJobs["rspec"] = {
14
- docker.build("jenkins/ruby:2.2.6").inside('-v /opt/gemcache:/opt/gemcache') {
15
- sh """#!/bin/bash -ex
16
- bundle install --path /opt/gemcache
17
- bundle exec rspec
18
- """
19
- }
20
- }
21
-
22
- for (int i = 0; i < vagrantVersions.length; i++) {
23
- def index = i //if we tried to use i below, it would equal 4 in each job execution.
24
- def vagrantVersion = vagrantVersions[index]
25
-
26
- buildJobs["vagrant-${vagrantVersion}"] = {
27
-
28
- docker.image("myoung34/vagrant:${vagrantVersion}").inside('-v /opt/gemcache:/opt/gemcache') {
29
- sh """#!/bin/bash -ex
30
- temp_dir="/tmp/\$(cat /proc/sys/kernel/random/uuid)"
31
- cp -r \$(pwd) \$temp_dir
32
- cd \$temp_dir
33
- gem build *.gemspec
34
- /usr/bin/vagrant plugin install *.gem
35
- bundle install --path /opt/gemcache --without development plugins
36
- export VAGRANT_VERSION=\$(echo ${vagrantVersion} | sed 's/\\.//g')
37
- bundle exec kitchen test ^[^singleton-]
38
- """
39
- }
40
-
41
- }
42
- }
43
-
44
- parallel( buildJobs )
45
- }
46
-
47
- for (int i = 0; i < vagrantVersions.length; i++) {
48
- def index = i //if we tried to use i below, it would equal 4 in each job execution.
49
- def vagrantVersion = vagrantVersions[index]
50
-
51
-
52
- stage("singleton vagrant-${vagrantVersion}") {
53
- docker.image("myoung34/vagrant:${vagrantVersion}").inside('-v /opt/gemcache:/opt/gemcache') {
54
- sh """#!/bin/bash -ex
55
- gem build *.gemspec
56
- /usr/bin/vagrant plugin install *.gem
57
- bundle install --path /opt/gemcache --without development plugins
58
- bundle exec kitchen destroy all
59
- rm -rf .kitchen
60
- export VAGRANT_VERSION=\$(echo ${vagrantVersion} | sed 's/\\.//g')
61
- bundle exec kitchen test ^singleton-
62
- """
63
- }
64
- }
65
- }
66
-
67
- stage("Cleanup") {
68
- deleteDir()
69
- }
70
- }
@@ -1,69 +0,0 @@
1
- require "log4r"
2
- require "vagrant/util/subprocess"
3
-
4
- module VagrantPlugins
5
- module OVirtProvider
6
- module Action
7
- class SyncFolders
8
- def initialize(app, env)
9
- @app = app
10
- @logger = Log4r::Logger.new("vagrant_ovirt::action::sync_folders")
11
- end
12
-
13
- def call(env)
14
- @app.call(env)
15
-
16
- ssh_info = env[:machine].ssh_info
17
-
18
- env[:machine].config.vm.synced_folders.each do |id, data|
19
- next if data[:disabled]
20
- hostpath = File.expand_path(data[:hostpath], env[:root_path])
21
- guestpath = data[:guestpath]
22
-
23
- # Make sure there is a trailing slash on the host path to avoid creating an additional directory with rsync
24
- hostpath = "#{hostpath}/" if hostpath !~ /\/$/
25
-
26
- # on windows rsync.exe requires cygdrive-style paths.
27
- # assumes: /c/...
28
- # Should be msysgit and cygwin compatible if /etc/fstab in cygwin contains:
29
- # none / cygdrive binary,posix=0,user 0 0
30
- if Vagrant::Util::Platform.windows?
31
- hostpath = hostpath.gsub(/^(\w):/) { "/#{$1}" }
32
- end
33
-
34
- env[:ui].info(I18n.t("vagrant_ovirt4.rsync_folder", :hostpath => hostpath, :guestpath => guestpath))
35
-
36
- # Create the guest path
37
- env[:machine].communicate.sudo("mkdir -p '#{guestpath}'")
38
- env[:machine].communicate.sudo("chown #{ssh_info[:username]} '#{guestpath}'")
39
-
40
- # Rsync over to the guest path using the SSH info
41
- command = [
42
- "rsync",
43
- "--verbose",
44
- "--archive",
45
- "-z",
46
- "--owner",
47
- "--perms",
48
- "--exclude",
49
- ".vagrant/",
50
- "-e",
51
- "ssh -p #{ssh_info[:port]} -o StrictHostKeyChecking=no -i '#{ssh_info[:private_key_path][0]}'",
52
- hostpath,
53
- "#{ssh_info[:username]}@#{ssh_info[:host]}:#{guestpath}"
54
- ]
55
-
56
- r = Vagrant::Util::Subprocess.execute(*command)
57
- if r.exit_code != 0
58
- raise Errors::RsyncError,
59
- :guestpath => guestpath,
60
- :hostpath => hostpath,
61
- :stderr => r.stderr
62
- end
63
- end
64
- end
65
- end
66
- end
67
- end
68
- end
69
-
@@ -1,6 +0,0 @@
1
- describe command('dmidecode -s system-serial-number') do
2
- its(:exit_status) { should eq 0 }
3
- its(:stderr) { should be_empty }
4
- its(:stdout) { should match(/^banana-hammock$/) }
5
- end
6
-
@@ -1,6 +0,0 @@
1
- describe command('uname -a') do
2
- its(:exit_status) { should eq 0 }
3
- its(:stderr) { should be_empty }
4
- its(:stdout) { should match(/^Linux kitchen-dynamic-[0-9]+-[a-f0-9\-]+/) }
5
- end
6
-
@@ -1,4 +0,0 @@
1
- #!/bin/bash
2
- bios_serial=$(vagrant ssh -c 'sudo dmidecode -s system-serial-number' 2>/dev/null | tail -n 1 | sed 's/[\r\n]//g')
3
- vm_id=$(curl --silent -k -L --user "${OVIRT_USERNAME}:${OVIRT_PASSWORD}" --header 'Content-Type: application/xml' --header 'Accept: application/xml' ${OVIRT_URL}/vms | xmllint --xpath 'string(./vms/vm[./serial_number/value/text() = "'$bios_serial'"]/@id)' -)
4
- curl --silent -k -L --user "${OVIRT_USERNAME}:${OVIRT_PASSWORD}" --header 'Content-Type: application/xml' --header 'Accept: application/xml' ${OVIRT_URL}/vms/${vm_id} | xmllint --xpath './vm/type/text()' - | grep server
@@ -1,11 +0,0 @@
1
- describe command('uname -a') do
2
- its(:exit_status) { should eq 0 }
3
- its(:stderr) { should be_empty }
4
- its(:stdout) { should match(/^Linux kitchen-static-[0-9]+-[a-f0-9\-]+/) }
5
- end
6
-
7
- describe command("ip route get 1 | awk '{print $NF;exit}'") do
8
- its(:exit_status) { should eq 0 }
9
- its(:stderr) { should be_empty }
10
- its(:stdout) { should match(/^192.168.2.254$/) }
11
- end