opennebula 6.10.3 → 6.99.85.pre
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 +4 -4
- data/lib/cloud/CloudClient.rb +3 -3
- data/lib/models/role.rb +349 -823
- data/lib/models/service.rb +156 -80
- data/lib/models/vmrole.rb +703 -0
- data/lib/models/vrrole.rb +284 -0
- data/lib/models.rb +3 -1
- data/lib/opennebula/acl.rb +1 -1
- data/lib/opennebula/acl_pool.rb +1 -1
- data/lib/opennebula/backupjob.rb +1 -1
- data/lib/opennebula/backupjob_pool.rb +1 -1
- data/lib/opennebula/client.rb +1 -1
- data/lib/opennebula/cluster.rb +45 -2
- data/lib/opennebula/cluster_pool.rb +1 -1
- data/lib/opennebula/datastore.rb +1 -1
- data/lib/opennebula/datastore_pool.rb +1 -1
- data/lib/opennebula/document.rb +1 -1
- data/lib/opennebula/document_json.rb +1 -1
- data/lib/opennebula/document_pool.rb +1 -1
- data/lib/opennebula/document_pool_json.rb +1 -1
- data/lib/opennebula/error.rb +1 -1
- data/lib/opennebula/flow/grammar.rb +1 -1
- data/lib/opennebula/flow/service_pool.rb +1 -1
- data/lib/opennebula/flow/service_template.rb +353 -97
- data/lib/opennebula/flow/service_template_ext.rb +3 -3
- data/lib/opennebula/flow/service_template_pool.rb +1 -1
- data/lib/opennebula/flow/validator.rb +458 -410
- data/lib/opennebula/flow.rb +1 -1
- data/lib/opennebula/group.rb +1 -1
- data/lib/opennebula/group_pool.rb +1 -1
- data/lib/opennebula/hook.rb +1 -1
- data/lib/opennebula/hook_log.rb +1 -1
- data/lib/opennebula/hook_pool.rb +1 -1
- data/lib/opennebula/host.rb +1 -60
- data/lib/opennebula/host_pool.rb +1 -1
- data/lib/opennebula/image.rb +1 -1
- data/lib/opennebula/image_pool.rb +1 -1
- data/lib/opennebula/ldap_auth.rb +1 -1
- data/lib/opennebula/ldap_auth_spec.rb +1 -1
- data/lib/opennebula/lockable_ext.rb +1 -1
- data/lib/opennebula/marketplace.rb +1 -1
- data/lib/opennebula/marketplace_pool.rb +1 -1
- data/lib/opennebula/marketplaceapp.rb +1 -1
- data/lib/opennebula/marketplaceapp_ext.rb +14 -211
- data/lib/opennebula/marketplaceapp_pool.rb +1 -1
- data/lib/opennebula/oneflow_client.rb +11 -9
- data/lib/opennebula/pool.rb +1 -1
- data/lib/opennebula/pool_element.rb +1 -1
- data/lib/opennebula/security_group.rb +1 -1
- data/lib/opennebula/security_group_pool.rb +1 -1
- data/lib/opennebula/server_cipher_auth.rb +1 -1
- data/lib/opennebula/server_x509_auth.rb +1 -1
- data/lib/opennebula/ssh_auth.rb +1 -1
- data/lib/opennebula/system.rb +1 -1
- data/lib/opennebula/template.rb +1 -1
- data/lib/opennebula/template_ext.rb +1 -1
- data/lib/opennebula/template_pool.rb +1 -1
- data/lib/opennebula/user.rb +1 -1
- data/lib/opennebula/user_pool.rb +1 -1
- data/lib/opennebula/utils.rb +2 -2
- data/lib/opennebula/vdc.rb +1 -1
- data/lib/opennebula/vdc_pool.rb +1 -1
- data/lib/opennebula/virtual_machine.rb +3 -12
- data/lib/opennebula/virtual_machine_ext.rb +2 -31
- data/lib/opennebula/virtual_machine_pool.rb +1 -1
- data/lib/opennebula/virtual_network.rb +1 -1
- data/lib/opennebula/virtual_network_pool.rb +1 -1
- data/lib/opennebula/virtual_router.rb +1 -1
- data/lib/opennebula/virtual_router_pool.rb +1 -1
- data/lib/opennebula/vm_group.rb +1 -1
- data/lib/opennebula/vm_group_pool.rb +1 -1
- data/lib/opennebula/vntemplate.rb +1 -1
- data/lib/opennebula/vntemplate_pool.rb +1 -1
- data/lib/opennebula/wait_ext.rb +1 -1
- data/lib/opennebula/x509_auth.rb +1 -1
- data/lib/opennebula/xml_element.rb +2 -2
- data/lib/opennebula/xml_pool.rb +1 -1
- data/lib/opennebula/xml_utils.rb +1 -1
- data/lib/opennebula/zone.rb +1 -1
- data/lib/opennebula/zone_pool.rb +1 -1
- data/lib/opennebula.rb +2 -2
- metadata +6 -67
- data/lib/ActionManager.rb +0 -280
- data/lib/CommandManager.rb +0 -328
- data/lib/DriverExecHelper.rb +0 -213
- data/lib/HostSyncManager.rb +0 -111
- data/lib/OpenNebulaDriver.rb +0 -223
- data/lib/VirtualMachineDriver.rb +0 -404
- data/lib/datacenter.rb +0 -1319
- data/lib/datastore.rb +0 -1049
- data/lib/distributed_firewall.rb +0 -293
- data/lib/file_helper.rb +0 -374
- data/lib/host.rb +0 -1518
- data/lib/logical_port.rb +0 -50
- data/lib/logical_switch.rb +0 -77
- data/lib/memoize.rb +0 -74
- data/lib/network.rb +0 -705
- data/lib/nsx_client.rb +0 -157
- data/lib/nsx_component.rb +0 -28
- data/lib/nsx_constants.rb +0 -162
- data/lib/nsx_driver.rb +0 -91
- data/lib/nsx_error.rb +0 -77
- data/lib/nsx_rule.rb +0 -206
- data/lib/nsxt_client.rb +0 -189
- data/lib/nsxt_dfw.rb +0 -196
- data/lib/nsxt_logical_port.rb +0 -94
- data/lib/nsxt_rule.rb +0 -188
- data/lib/nsxt_tz.rb +0 -38
- data/lib/nsxv_client.rb +0 -189
- data/lib/nsxv_dfw.rb +0 -202
- data/lib/nsxv_logical_port.rb +0 -107
- data/lib/nsxv_rule.rb +0 -172
- data/lib/nsxv_tz.rb +0 -41
- data/lib/opaque_network.rb +0 -134
- data/lib/rest_client.rb +0 -191
- data/lib/scripts_common.rb +0 -176
- data/lib/transport_zone.rb +0 -43
- data/lib/vcenter_driver.rb +0 -152
- data/lib/vcenter_importer.rb +0 -626
- data/lib/vi_client.rb +0 -273
- data/lib/vi_helper.rb +0 -328
- data/lib/virtual_machine.rb +0 -3574
- data/lib/virtual_wire.rb +0 -158
- data/lib/vm_device.rb +0 -80
- data/lib/vm_disk.rb +0 -202
- data/lib/vm_folder.rb +0 -69
- data/lib/vm_helper.rb +0 -30
- data/lib/vm_monitor.rb +0 -305
- data/lib/vm_nic.rb +0 -70
- data/lib/vm_template.rb +0 -2112
- data/lib/vmm_importer.rb +0 -165
data/lib/vmm_importer.rb
DELETED
@@ -1,165 +0,0 @@
|
|
1
|
-
module VCenterDriver
|
2
|
-
|
3
|
-
# Functionality to import vCenter VMs into OpenNebula
|
4
|
-
class VmmImporter < VCenterDriver::VcImporter
|
5
|
-
|
6
|
-
def initialize(one_client, vi_client)
|
7
|
-
super(one_client, vi_client)
|
8
|
-
@one_class = OpenNebula::VirtualMachine
|
9
|
-
@defaults = {}
|
10
|
-
end
|
11
|
-
|
12
|
-
def list(key, list)
|
13
|
-
@list = { key => list }
|
14
|
-
end
|
15
|
-
|
16
|
-
def request_vnc(vc_vm)
|
17
|
-
one_vm = vc_vm.one_item
|
18
|
-
vnc_port = one_vm['TEMPLATE/GRAPHICS/PORT']
|
19
|
-
elapsed_seconds = 0
|
20
|
-
|
21
|
-
# Let's update the info to gather VNC port
|
22
|
-
until vnc_port || elapsed_seconds > 30
|
23
|
-
sleep(1)
|
24
|
-
one_vm.info
|
25
|
-
vnc_port = one_vm['TEMPLATE/GRAPHICS/PORT']
|
26
|
-
elapsed_seconds += 1
|
27
|
-
end
|
28
|
-
|
29
|
-
return unless vnc_port
|
30
|
-
|
31
|
-
extraconfig = []
|
32
|
-
extraconfig += vc_vm.extraconfig_vnc
|
33
|
-
spec_hash = { :extraConfig => extraconfig }
|
34
|
-
spec = RbVmomi::VIM.VirtualMachineConfigSpec(spec_hash)
|
35
|
-
vc_vm.item.ReconfigVM_Task(:spec => spec).wait_for_completion
|
36
|
-
end
|
37
|
-
|
38
|
-
def build
|
39
|
-
xml = OpenNebula::VirtualMachine.build_xml
|
40
|
-
OpenNebula::VirtualMachine.new(xml, @one_client)
|
41
|
-
end
|
42
|
-
|
43
|
-
def import(selected)
|
44
|
-
import_tmplt = selected['IMPORT_TEMPLATE']
|
45
|
-
import_tmplt = Base64.decode64(import_tmplt) if import_tmplt
|
46
|
-
vm_ref = selected['DEPLOY_ID'] || selected[:wild]['DEPLOY_ID']
|
47
|
-
vm = selected[:one_item] || build
|
48
|
-
template = selected[:template] || import_tmplt
|
49
|
-
template = "DEPLOY_ID = #{vm_ref}\n" + template
|
50
|
-
|
51
|
-
# Index where start GRAPHICS block
|
52
|
-
graphics_index = template.index('GRAPHICS = [')
|
53
|
-
unless graphics_index.nil?
|
54
|
-
# Index where finish GRAPHICS block
|
55
|
-
end_of_graphics = template[graphics_index..-1].index(']') + 1
|
56
|
-
|
57
|
-
# GRAPHICS block
|
58
|
-
graphics_sub_string =
|
59
|
-
template[graphics_index, end_of_graphics]
|
60
|
-
|
61
|
-
# GRAPHICS block with PORT removed
|
62
|
-
# OpenNebula will asing a new not used PORT
|
63
|
-
graphics_sub_string =
|
64
|
-
graphics_sub_string.gsub(/PORT(.*?),[\r\n]/, '')
|
65
|
-
|
66
|
-
# Index where graphics block finish
|
67
|
-
before_graphics = template[0, graphics_index]
|
68
|
-
|
69
|
-
# Block after graphics block
|
70
|
-
after_graphics =
|
71
|
-
template[graphics_index..-1][end_of_graphics..-1]
|
72
|
-
|
73
|
-
# Template with out PORT inside GRAPHICS
|
74
|
-
template =
|
75
|
-
before_graphics +
|
76
|
-
graphics_sub_string +
|
77
|
-
after_graphics
|
78
|
-
end
|
79
|
-
|
80
|
-
host_id = selected[:host] || @list.keys[0]
|
81
|
-
|
82
|
-
vc_uuid = @vi_client.vim.serviceContent.about.instanceUuid
|
83
|
-
vc_name = @vi_client.vim.host
|
84
|
-
dpool, ipool, npool, hpool = create_pools
|
85
|
-
|
86
|
-
vc_vm = VCenterDriver::VirtualMachine.new_without_id(@vi_client,
|
87
|
-
vm_ref)
|
88
|
-
|
89
|
-
# clear OpenNebula attributes
|
90
|
-
vc_vm.clear_tags
|
91
|
-
|
92
|
-
# Importing Wild VMs with snapshots is not supported
|
93
|
-
# https://github.com/OpenNebula/one/issues/1268
|
94
|
-
if vc_vm.snapshots? && vc_vm.disk_keys.empty?
|
95
|
-
raise 'Disk metadata not present and snapshots exist, '\
|
96
|
-
'cannot import this VM'
|
97
|
-
end
|
98
|
-
|
99
|
-
vname = vc_vm['name']
|
100
|
-
|
101
|
-
type = { :object => 'VM', :id => vname }
|
102
|
-
error, template_disks = vc_vm.import_vcenter_disks(vc_uuid, dpool,
|
103
|
-
ipool, type)
|
104
|
-
raise error unless error.empty?
|
105
|
-
|
106
|
-
template << template_disks
|
107
|
-
|
108
|
-
opts = {
|
109
|
-
:vi_client => @vi_client,
|
110
|
-
:vc_uuid => vc_uuid,
|
111
|
-
:npool => npool,
|
112
|
-
:hpool => hpool,
|
113
|
-
:vcenter => vc_name,
|
114
|
-
:template_moref => vm_ref,
|
115
|
-
:vm_object => vc_vm,
|
116
|
-
:ipv4 => selected[:ipv4],
|
117
|
-
:ipv6 => selected[:ipv6]
|
118
|
-
}
|
119
|
-
|
120
|
-
# Create images or get nics information for template
|
121
|
-
error, template_nics, ar_ids =
|
122
|
-
vc_vm.import_vcenter_nics(opts)
|
123
|
-
opts = { :uuid => vc_uuid, :npool => npool, :error => error }
|
124
|
-
Raction.delete_ars(ar_ids, opts) unless error.empty?
|
125
|
-
|
126
|
-
template << template_nics
|
127
|
-
template << "VCENTER_ESX_HOST = #{vc_vm['runtime.host.name']}\n"
|
128
|
-
|
129
|
-
# Get DS_ID for the deployment, the wild VM needs a System DS
|
130
|
-
dc_ref = vc_vm.datacenter.item._ref
|
131
|
-
ds_ref = template.match(/^VCENTER_DS_REF *= *"(.*)" *$/)[1]
|
132
|
-
|
133
|
-
ds_one = dpool.select do |e|
|
134
|
-
e['TEMPLATE/TYPE'] == 'SYSTEM_DS' &&
|
135
|
-
e['TEMPLATE/VCENTER_DS_REF'] == ds_ref &&
|
136
|
-
e['TEMPLATE/VCENTER_DC_REF'] == dc_ref &&
|
137
|
-
e['TEMPLATE/VCENTER_INSTANCE_ID'] == vc_uuid
|
138
|
-
end.first
|
139
|
-
opts[:error] = "ds with ref #{ds_ref} is not imported, aborting"
|
140
|
-
Raction.delete_ars(ar_ids, opts) unless ds_one
|
141
|
-
|
142
|
-
rc = vm.allocate(template)
|
143
|
-
if OpenNebula.is_error?(rc)
|
144
|
-
Raction.delete_ars(ar_ids, opts.merge(:error => rc.message))
|
145
|
-
end
|
146
|
-
|
147
|
-
rc = vm.deploy(host_id, false, ds_one.id)
|
148
|
-
if OpenNebula.is_error?(rc)
|
149
|
-
Raction.delete_ars(ar_ids, opts.merge(:error => rc.message))
|
150
|
-
end
|
151
|
-
|
152
|
-
# Set reference to template disks and nics in VM template
|
153
|
-
vc_vm.one_item = vm
|
154
|
-
|
155
|
-
request_vnc(vc_vm)
|
156
|
-
|
157
|
-
# Sync disks with extraConfig
|
158
|
-
vc_vm.reference_all_disks
|
159
|
-
|
160
|
-
vm.id
|
161
|
-
end
|
162
|
-
|
163
|
-
end
|
164
|
-
|
165
|
-
end
|