fog-kubevirt 1.1.2 → 1.1.3

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: 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