fog-hyperv 0.0.7 → 0.0.8
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 +5 -5
- data/CHANGELOG.md +9 -0
- data/LICENSE +21 -0
- data/README.md +2 -2
- data/lib/fog/hyperv.rb +1 -0
- data/lib/fog/hyperv/compute.rb +64 -33
- data/lib/fog/hyperv/fog_extensions/enum.rb +38 -19
- data/lib/fog/hyperv/models/compute/cluster.rb +5 -0
- data/lib/fog/hyperv/models/compute/firmware.rb +3 -3
- data/lib/fog/hyperv/models/compute/host.rb +3 -0
- data/lib/fog/hyperv/models/compute/network_adapter.rb +3 -1
- data/lib/fog/hyperv/models/compute/server.rb +47 -47
- data/lib/fog/hyperv/requests/compute/add_vm_network_adapter.rb +1 -1
- data/lib/fog/hyperv/requests/compute/get_vm_firmware.rb +1 -3
- data/lib/fog/hyperv/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e0d0573b3cef41610d0b6fbc09d680a35273ad86aa2fa67344e3a576a77572ff
|
4
|
+
data.tar.gz: 01f53dafc9163356e4d6b6d1ffd820bc6b2566637b0943b2481fbf38a26531a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fdf47eb11f71bc887e3d2597c445ddb38ac40fc7b4628cd0d24a484efd8bfe0f2dbade04b5cb10bec3a1078d778676336d0e47059373c1c7f039262db9b947be
|
7
|
+
data.tar.gz: 6b8ba989fb728271572e79b645130159d17a5d2263d8f39b98ba3180ab6875c0121530d10537f1bdf79f948bc9034e653afcc2319eda1d606878f2ff277f8bcb
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
## v0.0.8 2018-04-06
|
2
|
+
|
3
|
+
- Fix issues due to a lost `to_s` call
|
4
|
+
- Fix enum handling
|
5
|
+
- Improve Ruby 2.4 support
|
6
|
+
- Add support for baking PS option maps in commands
|
7
|
+
- Default to using the cluster if one, and only one, is available
|
8
|
+
- Support adding legacy network adapters
|
9
|
+
|
1
10
|
## v0.0.7 2018-01-22
|
2
11
|
|
3
12
|
- Add a temporary VM-wide VLAN assignment method
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2017 Alexander Olofsson
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Fog Hyper-V
|
2
2
|
|
3
|
-
[](https://travis-ci.org/ananace/fog-hyperv) [](https://badge.fury.io/rb/fog-hyperv)
|
4
4
|
|
5
5
|
Manage your Hyper-V instance with the help of the Fog cloud service abstractions.
|
6
6
|
|
@@ -49,5 +49,5 @@ After checking out the repo, run `bundle install` to install dependencies. Then,
|
|
49
49
|
|
50
50
|
## Contributing
|
51
51
|
|
52
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
52
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/ananace/fog-hyperv.
|
53
53
|
|
data/lib/fog/hyperv.rb
CHANGED
data/lib/fog/hyperv/compute.rb
CHANGED
@@ -2,26 +2,26 @@ module Fog
|
|
2
2
|
module Compute
|
3
3
|
class Hyperv < Fog::Service
|
4
4
|
STATUS_ENUM_VALUES = [
|
5
|
-
:
|
6
|
-
:
|
7
|
-
:
|
8
|
-
:
|
9
|
-
:
|
10
|
-
:
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
|
5
|
+
Unknown: 0,
|
6
|
+
Other: 1,
|
7
|
+
Ok: 2,
|
8
|
+
Degraded: 3,
|
9
|
+
Stressed: 4,
|
10
|
+
PredictiveFailure: 5,
|
11
|
+
Error: 6,
|
12
|
+
NonRecoverableError: 7,
|
13
|
+
Starting: 8,
|
14
|
+
Stopping: 9,
|
15
|
+
Stopped: 0,
|
16
|
+
InService: 1,
|
17
|
+
NoContact: 2,
|
18
|
+
LostCommunication: 3,
|
19
|
+
Aborted: 4,
|
20
|
+
Dormant: 5,
|
21
|
+
SupportingEntity: 6,
|
22
|
+
Completed: 7,
|
23
|
+
PowerMode: 8,
|
24
|
+
ProtocolVersion: 32775,
|
25
25
|
].freeze
|
26
26
|
|
27
27
|
requires :hyperv_username
|
@@ -135,6 +135,8 @@ module Fog
|
|
135
135
|
class Real < Shared
|
136
136
|
attr_reader :logger
|
137
137
|
|
138
|
+
attr_accessor :bake_optmap, :bake_json
|
139
|
+
|
138
140
|
def initialize(options = {})
|
139
141
|
# require 'ostruct'
|
140
142
|
require 'fog/json'
|
@@ -189,13 +191,31 @@ module Fog
|
|
189
191
|
run_shell("$VMMS = if ([environment]::Is64BitProcess) { \"$($env:SystemRoot)\\System32\\vmms.exe\" } else { \"$($env:SystemRoot)\\Sysnative\\vmms.exe\" }\n(Get-Item $VMMS).VersionInfo.ProductVersion", _skip_json: true).stdout.strip
|
190
192
|
end
|
191
193
|
|
194
|
+
def ps_version
|
195
|
+
@ps_version ||= run_shell('$PSVersionTable.PSVersion', _bake_optmap: false, _bake_json: false)
|
196
|
+
end
|
197
|
+
|
192
198
|
private
|
193
199
|
|
194
200
|
def hash_to_optmap(options = {})
|
195
|
-
|
196
|
-
|
201
|
+
bake_json = options.delete :_bake_json
|
202
|
+
if bake_json
|
203
|
+
if ps_version[:major] >= 6
|
204
|
+
"$Args = ConvertFrom-Json -AsHashtable '#{Fog::JSON.encode options}'"
|
205
|
+
else
|
206
|
+
<<-EOS
|
207
|
+
$JsonObject = '#{Fog::JSON.encode options}'
|
208
|
+
$JsonParameters = ConvertFrom-Json -InputObject $JsonObject
|
209
|
+
$Args = $JsonParameters.psobject.properties | foreach -begin {$h=@{}} -process {$h."$($_.Name)" = $_.Value} -end {$h}
|
210
|
+
EOS
|
211
|
+
end
|
212
|
+
else
|
213
|
+
args = options.reject { |k, v| v.nil? || v.is_a?(FalseClass) || k.to_s.start_with?('_') }.map do |k, v|
|
214
|
+
"'#{k}'=#{Fog::Hyperv.shell_quoted(v, true)}"
|
215
|
+
end
|
216
|
+
|
217
|
+
"$Args = @{#{args.join ';'}}"
|
197
218
|
end
|
198
|
-
"@{#{args.join ';'}}"
|
199
219
|
end
|
200
220
|
|
201
221
|
def run_shell_with_vm(command, vm_options, options = {})
|
@@ -235,9 +255,14 @@ module Fog
|
|
235
255
|
skip_json = options.delete :_skip_json
|
236
256
|
skip_camelize = options.delete :_skip_camelize
|
237
257
|
skip_uncamelize = options.delete :_skip_uncamelize
|
258
|
+
always_include = options.delete(:_always_include) {|_| []}
|
259
|
+
bake_optmap = options.delete(:_bake_optmap) {|_| @bake_optmap }
|
260
|
+
bake_json = options.delete(:_bake_json) {|_| @bake_json }
|
238
261
|
computer = options.delete(:_target_computer) || '.'
|
239
262
|
computers = [options.delete(:computer_name)].flatten.compact
|
240
|
-
options.delete_if { |o| o.start_with?
|
263
|
+
options.delete_if { |o| o.to_s.start_with?('_') }
|
264
|
+
|
265
|
+
always_include = Fog::Hyperv.camelize(always_include) unless skip_camelize
|
241
266
|
options = Fog::Hyperv.camelize(options) unless skip_camelize
|
242
267
|
|
243
268
|
if supports_multihop?
|
@@ -258,19 +283,19 @@ module Fog
|
|
258
283
|
return ret
|
259
284
|
end
|
260
285
|
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
286
|
+
args = options.reject { |k, v| !always_include.include?(k) && (v.nil? || v.is_a?(FalseClass) || k.to_s.start_with?('_') || (v.is_a?(String) && v.empty?)) }.map do |k, v|
|
287
|
+
"-#{k} #{Fog::Hyperv.shell_quoted v if !v.is_a?(TrueClass) || always_include.include?(k)}"
|
288
|
+
end
|
289
|
+
|
290
|
+
if bake_optmap
|
291
|
+
command_args = "#{hash_to_optmap options.merge(_bake_json: bake_json)}\n#{command} @Args"
|
292
|
+
else
|
293
|
+
command_args = "#{command} #{args.join ' ' unless args.empty?}"
|
265
294
|
end
|
266
|
-
command_args = "#{command} #{args.join ' ' unless args.empty?}"
|
267
295
|
commandline = "#{command_args} #{suffix} #{return_fields} #{"| ConvertTo-Json -Compress #{"-Depth #{json_depth}" if json_depth}" unless skip_json}"
|
268
296
|
logger.debug "PS; >>> #{commandline}"
|
269
297
|
|
270
|
-
out = nil
|
271
|
-
# stderr: '',
|
272
|
-
# exitcode: -1
|
273
|
-
|
298
|
+
out = nil
|
274
299
|
if local?
|
275
300
|
commanddata = [
|
276
301
|
'powershell',
|
@@ -280,6 +305,9 @@ module Fog
|
|
280
305
|
commandline
|
281
306
|
]
|
282
307
|
begin
|
308
|
+
out = OpenStruct.new stdout: '',
|
309
|
+
stderr: '',
|
310
|
+
exitcode: -1
|
283
311
|
out.stdout, out.stderr, out.exitcode = Open3.capture3(*commanddata)
|
284
312
|
out.exitcode = out.exitcode.exitstatus
|
285
313
|
rescue StandardError => ex
|
@@ -288,6 +316,8 @@ module Fog
|
|
288
316
|
end
|
289
317
|
else
|
290
318
|
connection(computer).shell(:powershell) do |shell|
|
319
|
+
# TODO: Reuse shell?
|
320
|
+
# XXX Multiple commands in one invokation?
|
291
321
|
out = shell.run(commandline)
|
292
322
|
end
|
293
323
|
end
|
@@ -339,6 +369,7 @@ module Fog
|
|
339
369
|
return c[1] if c
|
340
370
|
|
341
371
|
# TODO: Support non-standard endpoints for additional hosts
|
372
|
+
# TODO: Get Windows to provide FQDN for all other hosts
|
342
373
|
unless host.include? '.'
|
343
374
|
host = "#{host}.#{URI.parse(@hyperv_endpoint).host.split('.').drop(1).join('.')}"
|
344
375
|
end
|
@@ -5,12 +5,18 @@ module Fog
|
|
5
5
|
|
6
6
|
def initialize(model, name, options)
|
7
7
|
@values = options.fetch(:values, [])
|
8
|
+
|
9
|
+
raise Fog::Hyperv::Errors::ServiceError, "#{values} is not a valid array or hash" \
|
10
|
+
unless values.class.to_s == 'Array' || values.class.to_s == 'Hash'
|
11
|
+
|
8
12
|
super
|
9
13
|
end
|
10
14
|
|
11
15
|
def ensure_value_getter
|
12
|
-
return if model.
|
16
|
+
return if model.private_methods.include?("#{name}_values".to_sym)
|
17
|
+
|
13
18
|
model.class_eval <<-EOS, __FILE__, __LINE__
|
19
|
+
private
|
14
20
|
def #{name}_values
|
15
21
|
#{values}.freeze
|
16
22
|
end
|
@@ -19,24 +25,31 @@ module Fog
|
|
19
25
|
|
20
26
|
def create_setter
|
21
27
|
ensure_value_getter
|
28
|
+
|
29
|
+
# Add a setter that always stores a symbol value
|
22
30
|
model.class_eval <<-EOS, __FILE__, __LINE__
|
23
|
-
def #{name}=(
|
31
|
+
def #{name}=(new_value)
|
24
32
|
_values = #{name}_values
|
25
|
-
|
26
|
-
|
27
|
-
if _values.class.to_s == 'Array'
|
28
|
-
raise Fog::Hyperv::Errors::ServiceError, "\#{
|
29
|
-
|
30
|
-
|
33
|
+
if new_value.is_a?(Numeric)
|
34
|
+
# TODO: Better way to do class comparison in generated code
|
35
|
+
if _values.class.to_s == 'Array'
|
36
|
+
raise Fog::Hyperv::Errors::ServiceError, "\#{new_value} is not in the range (0..\#{_values.length - 1})" \
|
37
|
+
unless new_value >= 0 && new_value < _values.length
|
38
|
+
attributes[:#{name}] = _values[new_value]
|
39
|
+
elsif _values.class.to_s == 'Hash'
|
40
|
+
raise Fog::Hyperv::Errors::ServiceError, "\#{new_value} is not one of \#{_values.values})" \
|
41
|
+
unless _values.values.include? new_value
|
42
|
+
attributes[:#{name}] = _values.key(new_value)
|
31
43
|
end
|
32
|
-
|
33
|
-
attributes[:#{name}] = _values[new_#{name}]
|
34
|
-
elsif new_#{name}.nil?
|
44
|
+
elsif new_value.nil?
|
35
45
|
attributes[:#{name}] = nil
|
36
46
|
else
|
37
|
-
|
38
|
-
|
39
|
-
|
47
|
+
new_value = new_value.to_s.to_sym unless new_value.is_a? Symbol
|
48
|
+
# Ensure values is the array of enum symbols
|
49
|
+
_values = (_values.is_a?(Hash) ? _values.keys : _values)
|
50
|
+
raise Fog::Hyperv::Errors::ServiceError, "\#{new_value.inspect} is not one of \#{_values})" \
|
51
|
+
unless _values.include? new_value
|
52
|
+
attributes[:#{name}] = new_value
|
40
53
|
end
|
41
54
|
end
|
42
55
|
EOS
|
@@ -44,21 +57,27 @@ module Fog
|
|
44
57
|
|
45
58
|
def create_getter
|
46
59
|
ensure_value_getter
|
60
|
+
|
61
|
+
# Add a getter for <enum>_num to get the numeric value
|
47
62
|
model.class_eval <<-EOS, __FILE__, __LINE__
|
48
63
|
def #{name}_num
|
49
64
|
_values = #{name}_values
|
50
|
-
|
51
|
-
|
52
|
-
|
65
|
+
_value = attributes[:#{name}]
|
66
|
+
|
67
|
+
return nil if _value.nil?
|
68
|
+
if _value.is_a?(Numeric)
|
69
|
+
_value
|
53
70
|
else
|
54
71
|
if _values.is_a?(Hash)
|
55
|
-
_values.
|
72
|
+
_values.send(:[], _value)
|
56
73
|
else
|
57
|
-
_values.index(
|
74
|
+
_values.index(_value)
|
58
75
|
end
|
59
76
|
end
|
60
77
|
end
|
61
78
|
EOS
|
79
|
+
|
80
|
+
# Add the default getter for the symbol value
|
62
81
|
super
|
63
82
|
end
|
64
83
|
end
|
@@ -33,6 +33,10 @@ module Fog
|
|
33
33
|
_return_fields: self.class.attributes,
|
34
34
|
_json_depth: 1
|
35
35
|
)
|
36
|
+
|
37
|
+
@nodes = nil
|
38
|
+
@hosts = nil
|
39
|
+
|
36
40
|
merge_attributes(data.attributes)
|
37
41
|
self
|
38
42
|
end
|
@@ -44,6 +48,7 @@ module Fog
|
|
44
48
|
Fog::Compute::Hyperv.collections.each do |coll|
|
45
49
|
# Don't recurse on hosts
|
46
50
|
next if coll == :hosts
|
51
|
+
|
47
52
|
coll_name = coll.to_s.split('_').map(&:capitalize).join
|
48
53
|
klass = Fog::Compute::Hyperv.const_get(coll_name)
|
49
54
|
next if klass.requires?(:vm)
|
@@ -6,10 +6,10 @@ module Fog
|
|
6
6
|
|
7
7
|
attribute :boot_order
|
8
8
|
attribute :computer_name
|
9
|
-
attribute :console_mode, type: :enum, values: [
|
9
|
+
attribute :console_mode, type: :enum, values: %i[Default COM1 COM2 None]
|
10
10
|
# attribute :is_deleted
|
11
|
-
attribute :preferred_network_boot_protocol, type: :enum, values: [
|
12
|
-
attribute :secure_boot, type: :enum, values: [
|
11
|
+
attribute :preferred_network_boot_protocol, type: :enum, values: %i[IPv4 IPv6]
|
12
|
+
attribute :secure_boot, type: :enum, values: %i[On Off]
|
13
13
|
attribute :vm_name
|
14
14
|
|
15
15
|
def save
|
@@ -27,6 +27,9 @@ module Fog
|
|
27
27
|
@collections = true
|
28
28
|
|
29
29
|
Fog::Compute::Hyperv.collections.each do |coll|
|
30
|
+
# Hosts don't have host collections
|
31
|
+
next if coll == :hosts
|
32
|
+
|
30
33
|
coll_name = coll.to_s.split('_').map(&:capitalize).join
|
31
34
|
klass = Fog::Compute::Hyperv.const_get(coll_name)
|
32
35
|
next if klass.requires?(:vm)
|
@@ -69,6 +69,7 @@ module Fog
|
|
69
69
|
passthru: true,
|
70
70
|
|
71
71
|
dynamic_mac_address: dynamic_mac_address_enabled,
|
72
|
+
is_legacy: !!is_legacy,
|
72
73
|
static_mac_address: !dynamic_mac_address_enabled && mac_address,
|
73
74
|
switch_name: switch_name,
|
74
75
|
|
@@ -131,7 +132,8 @@ module Fog
|
|
131
132
|
data = collection.get(
|
132
133
|
name,
|
133
134
|
computer_name: computer_name,
|
134
|
-
vm_name: vm_name
|
135
|
+
vm_name: vm_name,
|
136
|
+
_suffix: "| Where Id -Eq '#{id}'"
|
135
137
|
)
|
136
138
|
merge_attributes(data.attributes)
|
137
139
|
@old = data
|
@@ -8,33 +8,33 @@ module Fog
|
|
8
8
|
include Fog::Hyperv::ModelIncludes
|
9
9
|
|
10
10
|
VM_STATUS_ENUM_VALUES = {
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
21
|
-
:
|
22
|
-
:
|
23
|
-
:
|
24
|
-
:
|
25
|
-
:
|
26
|
-
:
|
27
|
-
:
|
28
|
-
:
|
29
|
-
:
|
30
|
-
:
|
31
|
-
:
|
32
|
-
:
|
33
|
-
:
|
34
|
-
:
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
11
|
+
Unknown: 1,
|
12
|
+
Running: 2,
|
13
|
+
Off: 3,
|
14
|
+
Stopping: 4,
|
15
|
+
Saved: 6,
|
16
|
+
Paused: 9,
|
17
|
+
Starting: 10,
|
18
|
+
Reset: 11,
|
19
|
+
Saving: 32773,
|
20
|
+
Pausing: 32776,
|
21
|
+
Resuming: 32777,
|
22
|
+
FastSaved: 32779,
|
23
|
+
FastSaving: 32780,
|
24
|
+
ForceShutdown: 32781,
|
25
|
+
ForceReboot: 32782,
|
26
|
+
RunningCritical: 32783,
|
27
|
+
OffCritical: 32784,
|
28
|
+
StoppingCritical: 32785,
|
29
|
+
SavedCritical: 32786,
|
30
|
+
PausedCritical: 32787,
|
31
|
+
StartingCritical: 32788,
|
32
|
+
ResetCritical: 32789,
|
33
|
+
SavingCritical: 32790,
|
34
|
+
PausingCritical: 32791,
|
35
|
+
ResumingCritical: 32792,
|
36
|
+
FastSavedCritical: 32793,
|
37
|
+
FastSavingCritical: 32794,
|
38
38
|
}.freeze
|
39
39
|
|
40
40
|
identity :id, type: :string
|
@@ -49,7 +49,7 @@ module Fog
|
|
49
49
|
attribute :state, type: :enum, values: VM_STATUS_ENUM_VALUES
|
50
50
|
attribute :status, type: :string
|
51
51
|
attribute :memory_assigned, type: :integer
|
52
|
-
attribute :memory_maximum, type: :integer, default:
|
52
|
+
attribute :memory_maximum, type: :integer, default: 17_179_869_184
|
53
53
|
attribute :memory_minimum, type: :integer, default: 536_870_912
|
54
54
|
attribute :memory_startup, type: :integer, default: 536_870_912
|
55
55
|
attribute :notes, type: :string
|
@@ -163,25 +163,25 @@ module Fog
|
|
163
163
|
attributes.select { |k, _v| usable.include? k }
|
164
164
|
.merge(options)
|
165
165
|
.merge(_return_fields: self.class.attributes, _json_depth: 1)
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
166
|
+
else
|
167
|
+
service.set_vm options.merge(
|
168
|
+
computer_name: old.computer_name,
|
169
|
+
name: old.name,
|
170
|
+
passthru: true,
|
171
|
+
|
172
|
+
processor_count: changed!(:processor_count),
|
173
|
+
dynamic_memory: changed?(:dynamic_memory_enabled) && dynamic_memory_enabled,
|
174
|
+
static_memory: changed?(:dynamic_memory_enabled) && !dynamic_memory_enabled,
|
175
|
+
memory_minimum_bytes: changed?(:memory_minimum) && dynamic_memory_enabled && memory_minimum,
|
176
|
+
memory_maximum_bytes: changed?(:memory_maximum) && dynamic_memory_enabled && memory_maximum,
|
177
|
+
memory_startup_bytes: changed!(:memory_startup),
|
178
|
+
notes: changed!(:notes),
|
179
|
+
new_name: changed!(:name),
|
180
|
+
|
181
|
+
_return_fields: self.class.attributes,
|
182
|
+
_json_depth: 1
|
183
|
+
)
|
184
|
+
end
|
185
185
|
|
186
186
|
merge_attributes(data)
|
187
187
|
@old = dup
|
data/lib/fog/hyperv/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog-hyperv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Olofsson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fog-core
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- ".travis.yml"
|
92
92
|
- CHANGELOG.md
|
93
93
|
- Gemfile
|
94
|
+
- LICENSE
|
94
95
|
- README.md
|
95
96
|
- Rakefile
|
96
97
|
- fog-hyperv.gemspec
|
@@ -194,7 +195,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
195
|
version: '0'
|
195
196
|
requirements: []
|
196
197
|
rubyforge_project:
|
197
|
-
rubygems_version: 2.6
|
198
|
+
rubygems_version: 2.7.6
|
198
199
|
signing_key:
|
199
200
|
specification_version: 4
|
200
201
|
summary: Module for the `fog` gem to support Microsoft Hyper-V.
|