opennebula 6.6.1.1 → 6.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/VirtualMachineDriver.rb +8 -1
- data/lib/cloud/CloudClient.rb +1 -1
- data/lib/models/service.rb +31 -10
- data/lib/opennebula/flow/service_template.rb +11 -1
- data/lib/opennebula/virtual_machine.rb +10 -1
- data/lib/opennebula.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d0911e0ad571781c4b94ee39d8459948d92ef8eb0d95aa9e06387bf402d2abd9
|
4
|
+
data.tar.gz: 98c66b223bdf54a82a8d4524288067b9b41045781ff90d4828328db18066d67f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9fc7ce19570b9ee1c5b3047e4d0503bd7028b4cee025fd37b8c42526fbe440fb0398ca2c9ba7a803e524e4fd9415f54c971e6be8aaa16a3513df91677cb1f557
|
7
|
+
data.tar.gz: 6e39b6567ce933244ddcedb2700abb82e002ccf3ed6199b78cccd064330fd93e7774d44defa7d6901b6a9d08ffd0abc798cd17f1706088f24897d7efcaaaeef5
|
data/lib/VirtualMachineDriver.rb
CHANGED
@@ -55,7 +55,8 @@ class VirtualMachineDriver < OpenNebulaDriver
|
|
55
55
|
:update_conf => "UPDATECONF",
|
56
56
|
:resize => "RESIZE",
|
57
57
|
:backup => "BACKUP",
|
58
|
-
:update_nic => "UPDATENIC"
|
58
|
+
:update_nic => "UPDATENIC",
|
59
|
+
:backup_cancel=> "BACKUPCANCEL"
|
59
60
|
}
|
60
61
|
|
61
62
|
POLL_ATTRIBUTE = OpenNebula::VirtualMachine::Driver::POLL_ATTRIBUTE
|
@@ -104,6 +105,7 @@ class VirtualMachineDriver < OpenNebulaDriver
|
|
104
105
|
register_action(ACTION[:resize].to_sym, method("resize"))
|
105
106
|
register_action(ACTION[:backup].to_sym, method("backup"))
|
106
107
|
register_action(ACTION[:update_nic].to_sym, method("update_nic"))
|
108
|
+
register_action(ACTION[:backup_cancel].to_sym, method("backup_cancel"))
|
107
109
|
end
|
108
110
|
|
109
111
|
# Decodes the encoded XML driver message received from the core
|
@@ -248,6 +250,11 @@ class VirtualMachineDriver < OpenNebulaDriver
|
|
248
250
|
send_message(ACTION[:update_nic],RESULT[:failure],id,error)
|
249
251
|
end
|
250
252
|
|
253
|
+
def backup_cancel(id, drv_message)
|
254
|
+
error = "Action not implemented by driver #{self.class}"
|
255
|
+
send_message(ACTION[:backup_cancel],RESULT[:failure],id,error)
|
256
|
+
end
|
257
|
+
|
251
258
|
private
|
252
259
|
|
253
260
|
# Interface to handle the pending events from the ActionManager Interface
|
data/lib/cloud/CloudClient.rb
CHANGED
data/lib/models/service.rb
CHANGED
@@ -323,6 +323,9 @@ module OpenNebula
|
|
323
323
|
|
324
324
|
template['start_time'] = Integer(Time.now)
|
325
325
|
|
326
|
+
# Replace $attibute by the corresponding value
|
327
|
+
resolve_attributes(template)
|
328
|
+
|
326
329
|
super(template.to_json, template['name'])
|
327
330
|
end
|
328
331
|
|
@@ -660,7 +663,7 @@ module OpenNebula
|
|
660
663
|
end if deploy
|
661
664
|
|
662
665
|
# Replace $attibute by the corresponding value
|
663
|
-
|
666
|
+
resolve_networks(body)
|
664
667
|
|
665
668
|
# @body = template.to_hash
|
666
669
|
|
@@ -784,31 +787,49 @@ module OpenNebula
|
|
784
787
|
end
|
785
788
|
|
786
789
|
# rubocop:disable Layout/LineLength
|
790
|
+
def resolve_networks(template)
|
791
|
+
template['roles'].each do |role|
|
792
|
+
next unless role['vm_template_contents']
|
793
|
+
|
794
|
+
# $CUSTOM1_VAR Any word character
|
795
|
+
# (letter, number, underscore)
|
796
|
+
role['vm_template_contents'].scan(/\$(\w+)/).each do |key|
|
797
|
+
net = template['networks_values'].find {|att| att.key? key[0] }
|
798
|
+
|
799
|
+
next if net.nil?
|
800
|
+
|
801
|
+
role['vm_template_contents'].gsub!(
|
802
|
+
'$'+key[0],
|
803
|
+
net[net.keys[0]]['id'].to_s
|
804
|
+
)
|
805
|
+
end
|
806
|
+
end
|
807
|
+
end
|
808
|
+
|
787
809
|
def resolve_attributes(template)
|
788
810
|
template['roles'].each do |role|
|
789
811
|
if role['vm_template_contents']
|
790
812
|
# $CUSTOM1_VAR Any word character
|
791
813
|
# (letter, number, underscore)
|
792
814
|
role['vm_template_contents'].scan(/\$(\w+)/).each do |key|
|
793
|
-
# Check if $ var value is in custom_attrs_values
|
794
|
-
if !
|
795
|
-
|
815
|
+
# Check if $ var value is in custom_attrs_values within the role
|
816
|
+
if !role['custom_attrs_values'].nil? && \
|
817
|
+
role['custom_attrs_values'].key?(key[0])
|
796
818
|
role['vm_template_contents'].gsub!(
|
797
819
|
'$'+key[0],
|
798
|
-
|
820
|
+
role['custom_attrs_values'][key[0]]
|
799
821
|
)
|
800
822
|
next
|
801
823
|
end
|
802
824
|
|
803
|
-
# Check if $ var value is in
|
804
|
-
net = template['networks_values']
|
805
|
-
.find {|att| att.key? key[0] }
|
825
|
+
# Check if $ var value is in custom_attrs_values
|
806
826
|
|
807
|
-
next
|
827
|
+
next unless !template['custom_attrs_values'].nil? && \
|
828
|
+
template['custom_attrs_values'].key?(key[0])
|
808
829
|
|
809
830
|
role['vm_template_contents'].gsub!(
|
810
831
|
'$'+key[0],
|
811
|
-
|
832
|
+
template['custom_attrs_values'][key[0]]
|
812
833
|
)
|
813
834
|
end
|
814
835
|
end
|
@@ -42,6 +42,16 @@ module OpenNebula
|
|
42
42
|
:type => :string,
|
43
43
|
:required => false
|
44
44
|
},
|
45
|
+
'custom_attrs' => {
|
46
|
+
:type => :object,
|
47
|
+
:properties => {},
|
48
|
+
:required => false
|
49
|
+
},
|
50
|
+
'custom_attrs_values' => {
|
51
|
+
:type => :object,
|
52
|
+
:properties => {},
|
53
|
+
:required => false
|
54
|
+
},
|
45
55
|
'parents' => {
|
46
56
|
:type => :array,
|
47
57
|
:items => {
|
@@ -487,7 +497,7 @@ module OpenNebula
|
|
487
497
|
instantiate_template = JSON.parse(@body.to_json)
|
488
498
|
else
|
489
499
|
instantiate_template = JSON.parse(@body.to_json)
|
490
|
-
.
|
500
|
+
.deep_merge(merge_template)
|
491
501
|
end
|
492
502
|
|
493
503
|
begin
|
@@ -58,7 +58,8 @@ module OpenNebula
|
|
58
58
|
:attachsg => "vm.attachsg",
|
59
59
|
:detachsg => "vm.detachsg",
|
60
60
|
:backup => "vm.backup",
|
61
|
-
:updatenic => "vm.updatenic"
|
61
|
+
:updatenic => "vm.updatenic",
|
62
|
+
:backupcancel => "vm.backupcancel"
|
62
63
|
}
|
63
64
|
|
64
65
|
VM_STATE=%w{INIT PENDING HOLD ACTIVE STOPPED SUSPENDED DONE FAILED
|
@@ -807,6 +808,14 @@ module OpenNebula
|
|
807
808
|
return @client.call(VM_METHODS[:backup], @pe_id, ds_id, reset)
|
808
809
|
end
|
809
810
|
|
811
|
+
# Cancel ongoing backup operation for the VM
|
812
|
+
#
|
813
|
+
# @return [nil, OpenNebula::Error] nil in case of sucess, Error
|
814
|
+
# otherwise.
|
815
|
+
def backup_cancel()
|
816
|
+
return @client.call(VM_METHODS[:backupcancel], @pe_id)
|
817
|
+
end
|
818
|
+
|
810
819
|
########################################################################
|
811
820
|
# Helpers to get VirtualMachine information
|
812
821
|
########################################################################
|
data/lib/opennebula.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: opennebula
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.6.
|
4
|
+
version: 6.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- OpenNebula
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|