fog-kubevirt 1.1.2 → 1.1.3

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: 40e231b4d296140ac0ca47ba87e7e505045a175b
4
- data.tar.gz: 544172769894bdd6ae6500ddf13bc4c8664844e8
3
+ metadata.gz: 394dc624c69b8bf42ce40a4bbc01215739f02af9
4
+ data.tar.gz: 6b8b0f38edf9f2c82717752e11a4fb50666110a6
5
5
  SHA512:
6
- metadata.gz: e24894d4f40469c4e607aa35cfa88a09809001d70e264ad8673f858e7e3a9862f07556b4c8672a1c5d283d7cbc0d2b004d2b66419414149fdd16102f5e443e3e
7
- data.tar.gz: 802ab241d152f50068b3a0d2379e423d2d41307f07fa32cf67f86ba40cd0d5e5af8bbde631175b14f3121d6a1c4c5862f636d2818082c9195c04d876b4d516d6
6
+ metadata.gz: e4e382201cf05aed39177df9b0eb83007361ef195bb900819e2b15e415df21459b69dd75a604b337359b5153b3111dd5ff1ca3edb151c9b58a131ee07a4cb6ff
7
+ data.tar.gz: 2f4b6871e21d29ef6cf75f051850cb7dfd22956153e5976806f81f1ad7ea7cb5b5b040e758ef1c458deec2543bd41c85ada9232d5f7db6141edaf37217b5cef3
@@ -1,5 +1,6 @@
1
1
  require 'fog/compute/models/server'
2
2
  require 'fog/kubevirt/compute/models/vm_base'
3
+ require 'fog/kubevirt/compute/models/vm_action'
3
4
 
4
5
  module Fog
5
6
  module Kubevirt
@@ -1,4 +1,5 @@
1
1
  require 'fog/kubevirt/compute/models/vm_base'
2
+ require 'fog/kubevirt/compute/models/vm_action'
2
3
 
3
4
  module Fog
4
5
  module Kubevirt
@@ -0,0 +1,29 @@
1
+ module Fog
2
+ module Kubevirt
3
+ class Compute
4
+ module VmAction
5
+ def start(options = {})
6
+ # Change the `running` attribute to `true` so that the virtual machine controller will take it and
7
+ # create the virtual machine instance.
8
+ vm = service.get_raw_vm(name)
9
+ vm = deep_merge!(vm,
10
+ :spec => {
11
+ :running => true
12
+ }
13
+ )
14
+ service.update_vm(vm)
15
+ end
16
+
17
+ def stop(options = {})
18
+ vm = service.get_raw_vm(name)
19
+ vm = deep_merge!(vm,
20
+ :spec => {
21
+ :running => false
22
+ }
23
+ )
24
+ service.update_vm(vm)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -1,10 +1,10 @@
1
- require 'fog/kubevirt/compute/models/vm_data'
1
+ require 'fog/kubevirt/compute/models/vm_parser'
2
2
 
3
3
  module Fog
4
4
  module Kubevirt
5
5
  class Compute
6
6
  module VmBase
7
- include VmData
7
+ include VmParser
8
8
 
9
9
  def define_properties
10
10
  identity :name
@@ -17,11 +17,11 @@ module Fog
17
17
  attribute :annotations, :aliases => 'metadata_annotations'
18
18
  attribute :cpu_cores, :aliases => 'spec_cpu_cores'
19
19
  attribute :memory, :aliases => 'spec_memory'
20
- attribute :disks, :aliases => 'spec_disks'
21
- attribute :volumes, :aliases => 'spec_volumes'
20
+ attribute :disks, :aliases => 'spec_disks', :default => []
21
+ attribute :volumes, :aliases => 'spec_volumes', :default => []
22
22
  attribute :status, :aliases => 'spec_running'
23
- attribute :interfaces, :aliases => 'spec_interfaces'
24
- attribute :networks, :aliases => 'spec_networks'
23
+ attribute :interfaces, :aliases => 'spec_interfaces', :default => []
24
+ attribute :networks, :aliases => 'spec_networks', :default => []
25
25
  attribute :machine_type, :aliases => 'spec_machine_type'
26
26
  end
27
27
 
@@ -55,32 +55,6 @@ module Fog
55
55
  vm
56
56
  end
57
57
  end
58
-
59
- module VmAction
60
- include Shared
61
-
62
- def start(options = {})
63
- # Change the `running` attribute to `true` so that the virtual machine controller will take it and
64
- # create the virtual machine instance.
65
- vm = service.get_raw_vm(name)
66
- vm = deep_merge!(vm,
67
- :spec => {
68
- :running => true
69
- }
70
- )
71
- service.update_vm(vm)
72
- end
73
-
74
- def stop(options = {})
75
- vm = service.get_raw_vm(name)
76
- vm = deep_merge!(vm,
77
- :spec => {
78
- :running => false
79
- }
80
- )
81
- service.update_vm(vm)
82
- end
83
- end
84
58
  end
85
59
  end
86
60
  end
@@ -1,154 +1,8 @@
1
- require 'fog/kubevirt/compute/models/volume'
2
-
3
1
  module Fog
4
2
  module Kubevirt
5
3
  class Compute
6
4
  module VmData
7
5
 
8
- #
9
- # Returns an array of parsed network interfaces
10
- #
11
- # @param object [Hash] A hash with raw interfaces data.
12
- #
13
- def parse_interfaces(object)
14
- return {} if object.nil?
15
- nics = []
16
- object.each do |iface|
17
- nic = VmNic.new
18
- nic.name = iface[:name]
19
- nic.mac_address = iface[:macAddress]
20
- nic.type = 'bridge' if iface.keys.include?(:bridge)
21
- nic.type = 'slirp' if iface.keys.include?(:slirp)
22
- nics << nic
23
- end
24
-
25
- nics
26
- end
27
-
28
- #
29
- # Returns an array of parsed networks
30
- #
31
- # @param object [Hash] A hash with raw networks data.
32
- #
33
- def parse_networks(object)
34
- return {} if object.nil?
35
- networks = []
36
- object.each do |net|
37
- network = VmNetwork.new
38
- network.name = net[:name]
39
- network.type = 'pod' if net.keys.include?(:pod)
40
- network.type = 'multus' if net.keys.include?(:multus)
41
- network.type = 'genie' if net.keys.include?(:genie)
42
- networks << network
43
- end
44
-
45
- networks
46
- end
47
-
48
- #
49
- # Returns an array of parsed disks
50
- #
51
- # @param object [Hash] A hash with raw disks data.
52
- #
53
- def parse_disks(object)
54
- return {} if object.nil?
55
- disks = []
56
- object.each do |d|
57
- disk = VmDisk.new
58
- disk.name = d[:name]
59
- disk.boot_order = d[:bootOrder]
60
-
61
- if d.keys.include?(:cdrom)
62
- disk.type = 'cdrom'
63
- disk.bus = d.dig(:cdrom, :bus)
64
- disk.readonly = d.dig(:cdrom, :readonly)
65
- elsif d.keys.include?(:disk)
66
- disk.type = 'disk'
67
- disk.bus = d.dig(:disk, :bus)
68
- disk.readonly = d.dig(:disk, :readonly)
69
- elsif d.keys.include?(:floppy)
70
- disk.type = 'floppy'
71
- disk.readonly = d.dig(:floppy, :readonly)
72
- elsif d.keys.include?(:lun)
73
- disk.type = 'lun'
74
- disk.readonly = d.dig(:lun, :readonly)
75
- end
76
- disks << disk
77
- end
78
-
79
- disks
80
- end
81
-
82
- #
83
- # Returns an array of parsed volumes
84
- #
85
- # @param object [Hash] A hash with raw volumes data.
86
- # @param disks [Array] the disks of the vm associated to the volumes
87
- #
88
- def parse_volumes(object, disks)
89
- return {} if object.nil?
90
- volumes = []
91
- object.each do |v|
92
- volume = Volume.new
93
- volume.name = v[:name]
94
- if v.keys.include?(:containerDisk)
95
- volume.type = 'containerDisk'
96
- volume.info = v.dig(:containerDisk, :image)
97
- elsif v.keys.include?(:persistentVolumeClaim)
98
- volume.type = 'persistentVolumeClaim'
99
- volume.info = v.dig(:persistentVolumeClaim, :claimName)
100
- elsif v.keys.include?(:emptyDisk)
101
- volume.type = 'emptyDisk'
102
- volume.info = v.dig(:emptyDisk, :capacity)
103
- elsif v.keys.include?(:ephemeral)
104
- volume.type = 'ephemeral'
105
- volume.info = v.dig(:ephemeral, :persistentVolumeClaim, :claimName)
106
- elsif v.keys.include?(:cloudInitNoCloud)
107
- volume.type = 'cloudInitNoCloud'
108
- volume.info = v.dig(:cloudInitNoCloud, :userDataBase64)
109
- elsif v.keys.include?(:hostDisk)
110
- volume.type = 'hostDisk'
111
- volume.info = v.dig(:hostDisk, :path)
112
- elsif v.keys.include?(:secret)
113
- volume.type = 'secret'
114
- volume.info = v.dig(:secret, :secretName)
115
- elsif v.keys.include?(:dataVolume)
116
- volume.type = 'dataVolume'
117
- volume.info = v.dig(:dataVolume, :name)
118
- elsif v.keys.include?(:serviceAccount)
119
- volume.type = 'serviceAccount'
120
- volume.info = v.dig(:serviceAccount, :serviceAccountName)
121
- elsif v.keys.include?(:configMap)
122
- volume.type = 'configMap'
123
- volume.info = v.dig(:configMap, :name)
124
- end
125
-
126
- volume.config = v[volume.type.to_sym]
127
- disk = disks.select { |d| d.name == volume.name }.first
128
- volume.boot_order = disk.boot_order
129
- volume.bus = disk.bus if disk.respond_to?(:bus)
130
-
131
- volumes << volume
132
- end
133
-
134
- volumes
135
- end
136
-
137
- class VmNic < Fog::Model
138
- attr_accessor :name
139
-
140
- attribute :mac_address
141
- attribute :type # values: bridge, slirp
142
- attribute :model
143
- attribute :ports
144
- attribute :boot_order
145
- alias :mac :mac_address
146
-
147
- def persisted?
148
- !name.nil?
149
- end
150
- end
151
-
152
6
  class VmNetwork
153
7
  attr_accessor :name,
154
8
  :type # values: multus, pod, genie
@@ -0,0 +1,141 @@
1
+ require 'fog/kubevirt/compute/models/volume'
2
+ require 'fog/kubevirt/compute/models/vmnic'
3
+ require 'fog/kubevirt/compute/models/vm_data'
4
+
5
+ module Fog
6
+ module Kubevirt
7
+ class Compute
8
+ module VmParser
9
+
10
+ #
11
+ # Returns an array of parsed network interfaces
12
+ #
13
+ # @param object [Hash] A hash with raw interfaces data.
14
+ #
15
+ def parse_interfaces(object)
16
+ return {} if object.nil?
17
+ nics = []
18
+ object.each do |iface|
19
+ nic = VmNic.new
20
+ nic.name = iface[:name]
21
+ nic.mac_address = iface[:macAddress]
22
+ nic.type = 'bridge' if iface.keys.include?(:bridge)
23
+ nic.type = 'slirp' if iface.keys.include?(:slirp)
24
+ nics << nic
25
+ end
26
+
27
+ nics
28
+ end
29
+
30
+ #
31
+ # Returns an array of parsed networks
32
+ #
33
+ # @param object [Hash] A hash with raw networks data.
34
+ #
35
+ def parse_networks(object)
36
+ return {} if object.nil?
37
+ networks = []
38
+ object.each do |net|
39
+ network = VmData::VmNetwork.new
40
+ network.name = net[:name]
41
+ network.type = 'pod' if net.keys.include?(:pod)
42
+ network.type = 'multus' if net.keys.include?(:multus)
43
+ network.type = 'genie' if net.keys.include?(:genie)
44
+ networks << network
45
+ end
46
+
47
+ networks
48
+ end
49
+
50
+ #
51
+ # Returns an array of parsed disks
52
+ #
53
+ # @param object [Hash] A hash with raw disks data.
54
+ #
55
+ def parse_disks(object)
56
+ return {} if object.nil?
57
+ disks = []
58
+ object.each do |d|
59
+ disk = VmData::VmDisk.new
60
+ disk.name = d[:name]
61
+ disk.boot_order = d[:bootOrder]
62
+
63
+ if d.keys.include?(:cdrom)
64
+ disk.type = 'cdrom'
65
+ disk.bus = d.dig(:cdrom, :bus)
66
+ disk.readonly = d.dig(:cdrom, :readonly)
67
+ elsif d.keys.include?(:disk)
68
+ disk.type = 'disk'
69
+ disk.bus = d.dig(:disk, :bus)
70
+ disk.readonly = d.dig(:disk, :readonly)
71
+ elsif d.keys.include?(:floppy)
72
+ disk.type = 'floppy'
73
+ disk.readonly = d.dig(:floppy, :readonly)
74
+ elsif d.keys.include?(:lun)
75
+ disk.type = 'lun'
76
+ disk.readonly = d.dig(:lun, :readonly)
77
+ end
78
+ disks << disk
79
+ end
80
+
81
+ disks
82
+ end
83
+
84
+ #
85
+ # Returns an array of parsed volumes
86
+ #
87
+ # @param object [Hash] A hash with raw volumes data.
88
+ # @param disks [Array] the disks of the vm associated to the volumes
89
+ #
90
+ def parse_volumes(object, disks)
91
+ return {} if object.nil?
92
+ volumes = []
93
+ object.each do |v|
94
+ volume = Volume.new
95
+ volume.name = v[:name]
96
+ if v.keys.include?(:containerDisk)
97
+ volume.type = 'containerDisk'
98
+ volume.info = v.dig(:containerDisk, :image)
99
+ elsif v.keys.include?(:persistentVolumeClaim)
100
+ volume.type = 'persistentVolumeClaim'
101
+ volume.info = v.dig(:persistentVolumeClaim, :claimName)
102
+ elsif v.keys.include?(:emptyDisk)
103
+ volume.type = 'emptyDisk'
104
+ volume.info = v.dig(:emptyDisk, :capacity)
105
+ elsif v.keys.include?(:ephemeral)
106
+ volume.type = 'ephemeral'
107
+ volume.info = v.dig(:ephemeral, :persistentVolumeClaim, :claimName)
108
+ elsif v.keys.include?(:cloudInitNoCloud)
109
+ volume.type = 'cloudInitNoCloud'
110
+ volume.info = v.dig(:cloudInitNoCloud, :userDataBase64)
111
+ elsif v.keys.include?(:hostDisk)
112
+ volume.type = 'hostDisk'
113
+ volume.info = v.dig(:hostDisk, :path)
114
+ elsif v.keys.include?(:secret)
115
+ volume.type = 'secret'
116
+ volume.info = v.dig(:secret, :secretName)
117
+ elsif v.keys.include?(:dataVolume)
118
+ volume.type = 'dataVolume'
119
+ volume.info = v.dig(:dataVolume, :name)
120
+ elsif v.keys.include?(:serviceAccount)
121
+ volume.type = 'serviceAccount'
122
+ volume.info = v.dig(:serviceAccount, :serviceAccountName)
123
+ elsif v.keys.include?(:configMap)
124
+ volume.type = 'configMap'
125
+ volume.info = v.dig(:configMap, :name)
126
+ end
127
+
128
+ volume.config = v[volume.type.to_sym]
129
+ disk = disks.select { |d| d.name == volume.name }.first
130
+ volume.boot_order = disk.boot_order
131
+ volume.bus = disk.bus if disk.respond_to?(:bus)
132
+
133
+ volumes << volume
134
+ end
135
+
136
+ volumes
137
+ end
138
+ end
139
+ end
140
+ end
141
+ end
@@ -1,10 +1,10 @@
1
- require 'fog/kubevirt/compute/models/vm_data'
1
+ require 'fog/kubevirt/compute/models/vm_parser'
2
2
 
3
3
  module Fog
4
4
  module Kubevirt
5
5
  class Compute
6
6
  class Vminstance < Fog::Model
7
- extend VmData
7
+ extend VmParser
8
8
 
9
9
  identity :name
10
10
 
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Kubevirt
3
+ class Compute
4
+ class VmNic < Fog::Model
5
+ identity :mac_address
6
+ attr_accessor :name
7
+
8
+ attribute :type # values: bridge, slirp
9
+ attribute :model
10
+ attribute :ports
11
+ attribute :boot_order
12
+ alias :mac :mac_address
13
+
14
+ def persisted?
15
+ !name.nil?
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module Kubevirt
3
- VERSION = '1.1.2'
3
+ VERSION = '1.1.3'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-kubevirt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Piotr Kliczewski
@@ -13,7 +13,7 @@ authors:
13
13
  autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
- date: 2019-04-04 00:00:00.000000000 Z
16
+ date: 2019-04-05 00:00:00.000000000 Z
17
17
  dependencies:
18
18
  - !ruby/object:Gem::Dependency
19
19
  name: minitest
@@ -161,10 +161,13 @@ files:
161
161
  - lib/fog/kubevirt/compute/models/template.rb
162
162
  - lib/fog/kubevirt/compute/models/templates.rb
163
163
  - lib/fog/kubevirt/compute/models/vm.rb
164
+ - lib/fog/kubevirt/compute/models/vm_action.rb
164
165
  - lib/fog/kubevirt/compute/models/vm_base.rb
165
166
  - lib/fog/kubevirt/compute/models/vm_data.rb
167
+ - lib/fog/kubevirt/compute/models/vm_parser.rb
166
168
  - lib/fog/kubevirt/compute/models/vminstance.rb
167
169
  - lib/fog/kubevirt/compute/models/vminstances.rb
170
+ - lib/fog/kubevirt/compute/models/vmnic.rb
168
171
  - lib/fog/kubevirt/compute/models/vms.rb
169
172
  - lib/fog/kubevirt/compute/models/volume.rb
170
173
  - lib/fog/kubevirt/compute/models/volumes.rb