foreman_xen 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/app/helpers/xen_compute_helper.rb +102 -0
- data/app/models/foreman_xen/xenserver.rb +12 -18
- data/app/views/compute_resources/form/_xenserver.html.erb +3 -1
- data/app/views/compute_resources_vms/form/_network.html.erb +1 -18
- data/app/views/compute_resources_vms/form/_templates.html.erb +2 -27
- data/app/views/compute_resources_vms/form/_volume.html.erb +2 -30
- data/app/views/compute_resources_vms/form/_xenstore.html.erb +8 -25
- data/app/views/compute_resources_vms/form/xenserver/_base.html.erb +10 -11
- data/lib/foreman_xen/version.rb +1 -1
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf86d445212406a7e6272d38901bbf3775dabae3
|
4
|
+
data.tar.gz: f8fcff62613110e76de79caebed200cb3b210293
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6baec9017286dbfcd59f5ed4a1a4bc9898ce5d0c4077748fc5e349c724481614b618d0126ddd4533d68b4d062ab2313d164b60b36aa1e2ac58f07c79069190f4
|
7
|
+
data.tar.gz: 3e6f83333a0912229e3ef87a2b1f9feb21be179f4b05e9843d7aeed82422cfd6a3125abcc47dbd297d6a852e4980dd9080c71e8bf708af158303bd4dbc22ff8e
|
data/README.md
CHANGED
@@ -0,0 +1,102 @@
|
|
1
|
+
module XenComputeHelper
|
2
|
+
def compute_attribute_map(params, compute_resource, new)
|
3
|
+
if controller_name == 'hosts'
|
4
|
+
attribute_map = hosts_controller_compute_attribute_map(params, compute_resource, new)
|
5
|
+
elsif controller_name == 'compute_attributes'
|
6
|
+
attribute_map = compute_resource_controller_attribute_map(params, compute_resource)
|
7
|
+
end
|
8
|
+
attribute_map
|
9
|
+
end
|
10
|
+
|
11
|
+
def init_vmdata()
|
12
|
+
vmdata = { :ifs =>
|
13
|
+
{ '0' => {
|
14
|
+
:ip => '',
|
15
|
+
:gateway => '',
|
16
|
+
:netmask => ''
|
17
|
+
}
|
18
|
+
},
|
19
|
+
:nameserver1 => '',
|
20
|
+
:nameserver2 => '',
|
21
|
+
:environment => ''
|
22
|
+
}
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
def hosts_controller_compute_attribute_map(params, compute_resource, new)
|
28
|
+
attribute_map = empty_attribute_map
|
29
|
+
if new_host?(new)
|
30
|
+
compute_attributes = compute_resource.compute_profile_attributes_for(params['host']['compute_profile_id'])
|
31
|
+
if compute_attributes['VBDs']
|
32
|
+
attribute_map[:volume_size] = compute_attributes['VBDs']['physical_size'] ? compute_attributes['VBDs']['physical_size'] : nil
|
33
|
+
attribute_map[:volume_selected] = compute_attributes['VBDs']['sr_uuid'] ? compute_attributes['VBDs']['sr_uuid'] : nil
|
34
|
+
end
|
35
|
+
if compute_attributes['VIFs']
|
36
|
+
attribute_map[:network_selected] = compute_attributes['VIFs']['print'] ? compute_attributes['VIFs']['print'] : nil
|
37
|
+
end
|
38
|
+
attribute_map[:template_selected_custom] = compute_attributes['custom_template_name'] ? compute_attributes['custom_template_name'] : nil
|
39
|
+
attribute_map[:template_selected_builtin] = compute_attributes['builtin_template_name'] ? compute_attributes['custom_template_name'] : nil
|
40
|
+
attribute_map[:cpu_count] = compute_attributes['vcpus_max'] ? compute_attributes['vcpus_max'] : nil
|
41
|
+
attribute_map[:memory_min] = compute_attributes['memory_min'] ? compute_attributes['memory_min'] : nil
|
42
|
+
attribute_map[:memory_max] = compute_attributes['memory_max'] ? compute_attributes['memory_max'] : nil
|
43
|
+
attribute_map[:power_on] = compute_attributes['start'] ? compute_attributes['start'] : nil
|
44
|
+
elsif params && params['host'] && params['host']['compute_attributes']
|
45
|
+
if params['host']['compute_attributes']['VBDs']
|
46
|
+
attribute_map[:volume_size] = (params['host']['compute_attributes']['VBDs']['physical_size']) ? params['host']['compute_attributes']['VBDs']['physical_size'] : nil
|
47
|
+
attribute_map[:volume_selected] = (params['host']['compute_attributes']['VBDs']['sr_uuid']) ? params['host']['compute_attributes']['VBDs']['sr_uuid'] : nil
|
48
|
+
end
|
49
|
+
if params['host']['compute_attributes']['VIFs']
|
50
|
+
attribute_map[:network_selected] = params['host']['compute_attributes']['VIFs']['print'] ? params['host']['compute_attributes']['VIFs']['print'] : nil
|
51
|
+
end
|
52
|
+
attribute_map[:template_selected_custom] = params['host']['compute_attributes']['custom_template_name'] ? params['host']['compute_attributes']['custom_template_name'] : nil
|
53
|
+
attribute_map[:template_selected_builtin] = params['host']['compute_attributes']['builtin_template_name'] ? params['host']['compute_attributes']['builtin_template_name'] : nil
|
54
|
+
elsif new
|
55
|
+
if new.__vbds
|
56
|
+
attribute_map[:volume_selected] = new.__vbds['sr_uuid'] ? new.__vbds['sr_uuid'] : nil
|
57
|
+
attribute_map[:volume_size] = new.__vbds['physical_size'] ? new.__vbds['physical_size'] : nil
|
58
|
+
end
|
59
|
+
if new.__vifs
|
60
|
+
attribute_map[:network_selected] = new.__vifs['print'] ? new.__vifs['print'] : nil
|
61
|
+
end
|
62
|
+
end
|
63
|
+
attribute_map
|
64
|
+
end
|
65
|
+
|
66
|
+
def compute_resource_controller_attribute_map(params, compute_resource)
|
67
|
+
attribute_map = empty_attribute_map
|
68
|
+
if params && params['compute_profile_id']
|
69
|
+
compute_attributes = compute_resource.compute_profile_attributes_for(params['compute_profile_id'])
|
70
|
+
elsif params && params['host'] && params['host']['compute_profile_id']
|
71
|
+
compute_attributes = compute_resource.compute_profile_attributes_for(params['host']['compute_profile_id'])
|
72
|
+
end
|
73
|
+
if compute_attributes
|
74
|
+
if compute_attributes['VBDs']
|
75
|
+
attribute_map[:volume_size] = compute_attributes['VBDs']['physical_size'] ? compute_attributes['VBDs']['physical_size'] : nil
|
76
|
+
attribute_map[:volume_selected] = compute_attributes['VBDs']['sr_uuid'] ? compute_attributes['VBDs']['sr_uuid'] : nil
|
77
|
+
end
|
78
|
+
if compute_attributes['VIFs']
|
79
|
+
attribute_map[:network_selected] = compute_attributes['VIFs']['print'] ? compute_attributes['VIFs']['print'] : nil
|
80
|
+
end
|
81
|
+
attribute_map[:template_selected_custom] = compute_attributes['custom_template_name'] ? compute_attributes['custom_template_name'] : nil
|
82
|
+
attribute_map[:template_selected_builtin] = compute_attributes['builtin_template_name'] ? compute_attributes['builtin_template_name'] : nil
|
83
|
+
attribute_map[:cpu_count] = compute_attributes['vcpus_max'] ? compute_attributes['vcpus_max'] : nil
|
84
|
+
attribute_map[:memory_min] = compute_attributes['memory_min'] ? compute_attributes['memory_min'] : nil
|
85
|
+
attribute_map[:memory_max] = compute_attributes['memory_max'] ? compute_attributes['memory_max'] : nil
|
86
|
+
attribute_map[:power_on] = compute_attributes['start'] ? compute_attributes['start'] : nil
|
87
|
+
end
|
88
|
+
attribute_map
|
89
|
+
end
|
90
|
+
|
91
|
+
def empty_attribute_map
|
92
|
+
{:volume_size => nil,
|
93
|
+
:volume_selected => nil,
|
94
|
+
:network_selected => nil,
|
95
|
+
:template_selected_custom => nil,
|
96
|
+
:template_selected_builtin => nil,
|
97
|
+
:cpu_count => nil,
|
98
|
+
:memory_min => nil,
|
99
|
+
:memory_max => nil,
|
100
|
+
:power_on => nil}
|
101
|
+
end
|
102
|
+
end
|
@@ -48,7 +48,7 @@ module ForemanXen
|
|
48
48
|
|
49
49
|
def test_connection(options = {})
|
50
50
|
super
|
51
|
-
errors[:url].empty? and hypervisor
|
51
|
+
errors[:url].empty? and errors[:user].empty? and errors[:password].empty? and hypervisor
|
52
52
|
rescue => e
|
53
53
|
disconnect rescue nil
|
54
54
|
errors[:base] << e.message
|
@@ -200,20 +200,17 @@ module ForemanXen
|
|
200
200
|
end
|
201
201
|
|
202
202
|
def create_vm_from_custom(args)
|
203
|
-
|
204
|
-
hypervisor_host = args[:hypervisor_host]
|
205
|
-
hypervisor_host = hypervisor_host.to_s
|
206
203
|
|
207
204
|
mem_max = args[:memory_max]
|
208
205
|
mem_min = args[:memory_min]
|
209
206
|
|
210
|
-
|
207
|
+
if args[:hypervisor_host] != ''
|
211
208
|
host = client.hosts.find { |host| host.name == args[:hypervisor_host] }
|
212
|
-
logger.info "create_vm_from_builtin: host : #{
|
213
|
-
elsif
|
209
|
+
logger.info "create_vm_from_builtin: host : #{ host.name }"
|
210
|
+
elsif
|
214
211
|
host = client.hosts.first
|
215
|
-
logger.info "create_vm_from_builtin: host : #{ host }"
|
216
|
-
end
|
212
|
+
logger.info "create_vm_from_builtin: host : #{ host.name }"
|
213
|
+
end
|
217
214
|
|
218
215
|
raise 'Memory max cannot be lower than Memory min' if mem_min.to_i > mem_max.to_i
|
219
216
|
vm = client.servers.new :name => args[:name],
|
@@ -255,20 +252,17 @@ module ForemanXen
|
|
255
252
|
end
|
256
253
|
|
257
254
|
def create_vm_from_builtin(args)
|
258
|
-
|
259
|
-
hypervisor_host = args[:hypervisor_host]
|
260
|
-
hypervisor_host = hypervisor_host.to_s
|
261
|
-
|
255
|
+
|
262
256
|
builtin_template_name = args[:builtin_template_name]
|
263
257
|
builtin_template_name = builtin_template_name.to_s
|
264
258
|
|
265
|
-
|
259
|
+
if args[:hypervisor_host] != ''
|
266
260
|
host = client.hosts.find { |host| host.name == args[:hypervisor_host] }
|
267
|
-
logger.info "create_vm_from_builtin: host : #{
|
268
|
-
elsif
|
261
|
+
logger.info "create_vm_from_builtin: host : #{ host.name }"
|
262
|
+
elsif
|
269
263
|
host = client.hosts.first
|
270
|
-
logger.info "create_vm_from_builtin: host : #{ host }"
|
271
|
-
end
|
264
|
+
logger.info "create_vm_from_builtin: host : #{ host.name }"
|
265
|
+
end
|
272
266
|
|
273
267
|
storage_repository = client.storage_repositories.find { |sr| sr.uuid == "#{args[:VBDs][:sr_uuid]}" }
|
274
268
|
|
@@ -6,6 +6,8 @@
|
|
6
6
|
<% if hypervisor -%>
|
7
7
|
<%= f.hidden_field :uuid, :value => hypervisor %>
|
8
8
|
<% end -%>
|
9
|
-
<%= link_to_function _("Test Connection"), "testConnection(this)", :class => "btn + #{hypervisor.nil? ? "" : "btn-success"}", :'data-url' => test_connection_compute_resources_path %>
|
9
|
+
<%= link_to_function _("Test Connection"), "testConnection(this)", :class => "btn + #{hypervisor.nil? ? "btn-default" : "btn-success"}", :'data-url' => test_connection_compute_resources_path %>
|
10
10
|
|
11
11
|
<%= image_tag('/assets/spinner.gif', :id => 'test_connection_indicator', :class => 'hide') %>
|
12
|
+
|
13
|
+
|
@@ -1,29 +1,12 @@
|
|
1
1
|
<div class="fields">
|
2
2
|
<%
|
3
3
|
nat = compute_resource.networks
|
4
|
-
selected = ""
|
5
|
-
|
6
|
-
if controller_name == 'hosts'
|
7
|
-
compute_attributes = compute_resource.compute_profile_attributes_for(params['host']['compute_profile_id'])
|
8
|
-
if params && params['host']['compute_profile_id'] != ""
|
9
|
-
selected = compute_attributes['VIFs']['print']
|
10
|
-
elsif params && params['host'] && params['host']['compute_attributes']
|
11
|
-
selected = params['host']['compute_attributes']['VIFs']['print']
|
12
|
-
elsif new.__vifs
|
13
|
-
selected = new.__vifs['print']
|
14
|
-
end
|
15
|
-
elsif controller_name == 'compute_attributes'
|
16
|
-
compute_attributes = compute_resource.compute_profile_attributes_for(params['compute_profile_id'])
|
17
|
-
if compute_attributes['VIFs'] && compute_attributes['VIFs']['print']
|
18
|
-
selected = compute_attributes['VIFs']['print']
|
19
|
-
end
|
20
|
-
end
|
21
4
|
-%>
|
22
5
|
|
23
6
|
<div id='nat' class=''>
|
24
7
|
<%= selectable_f f, :print, nat.map(&:name),
|
25
8
|
{ :include_blank => nat.any? ? false : _("No networks"),
|
26
|
-
:selected =>
|
9
|
+
:selected => attribute_map[:network_selected] },
|
27
10
|
{ :class => "span2", :label => _("Network") } %>
|
28
11
|
</div>
|
29
12
|
</div>
|
@@ -1,36 +1,11 @@
|
|
1
1
|
<div class="fields">
|
2
|
-
<%
|
3
|
-
selected_item_c = ''
|
4
|
-
selected_item_b = ''
|
5
|
-
|
6
|
-
if controller_name == 'hosts'
|
7
|
-
compute_attributes = compute_resource.compute_profile_attributes_for(params['host']['compute_profile_id'])
|
8
|
-
if params && params['host']['compute_profile_id'] != ""
|
9
|
-
selected_item_c = compute_attributes['custom_template_name']
|
10
|
-
selected_item_b = compute_attributes['builtin_template_name']
|
11
|
-
elsif params && params['host'] && params['host']['compute_attributes']
|
12
|
-
selected_item_c = params['host']['compute_attributes']['custom_template_name']
|
13
|
-
selected_item_b = params['host']['compute_attributes']['builtin_template_name']
|
14
|
-
end
|
15
|
-
|
16
|
-
elsif controller_name == 'compute_attributes'
|
17
|
-
compute_attributes = compute_resource.compute_profile_attributes_for(params['compute_profile_id'])
|
18
|
-
if compute_attributes['custom_template_name']
|
19
|
-
selected_item_c = compute_attributes['custom_template_name']
|
20
|
-
end
|
21
|
-
if compute_attributes['builtin_template_name']
|
22
|
-
selected_item_b = compute_attributes['builtin_template_name']
|
23
|
-
end
|
24
|
-
end
|
25
|
-
-%>
|
26
|
-
|
27
2
|
<div id='templates' class=''>
|
28
3
|
<div class="form-group">
|
29
|
-
<%= selectable_f f, :custom_template_name,[[_("No template"), ""]] + compute_resource.custom_templates.map { |t| [t.name, t.name] }, { :selected =>
|
4
|
+
<%= selectable_f f, :custom_template_name,[[_("No template"), ""]] + compute_resource.custom_templates.map { |t| [t.name, t.name] }, { :selected => attribute_map[:template_selected_custom] }, :class => 'form-control span2', :label => 'Custom Template' %>
|
30
5
|
</div>
|
31
6
|
|
32
7
|
<div class="form-group ">
|
33
|
-
<%= selectable_f f, :builtin_template_name,[[_("No template"), ""]] + compute_resource.builtin_templates.map { |t| [t.name, t.name] }, { :selected =>
|
8
|
+
<%= selectable_f f, :builtin_template_name,[[_("No template"), ""]] + compute_resource.builtin_templates.map { |t| [t.name, t.name] }, { :selected => attribute_map[:template_selected_builtin] }, :class => 'form-control span2', :label => 'Builtin Template' %>
|
34
9
|
</div>
|
35
10
|
</div>
|
36
11
|
</div>
|
@@ -1,34 +1,6 @@
|
|
1
1
|
<div class="fields">
|
2
|
-
<%
|
3
|
-
selected = ""
|
4
|
-
size = ""
|
5
|
-
|
6
|
-
if controller_name == 'hosts'
|
7
|
-
compute_attributes = compute_resource.compute_profile_attributes_for(params['host']['compute_profile_id'])
|
8
|
-
if params && params['host']['compute_profile_id'] != ""
|
9
|
-
size = compute_attributes['VBDs']['physical_size']
|
10
|
-
selected = compute_attributes['VBDs']['sr_uuid']
|
11
|
-
elsif params && params['host'] && params['host']['compute_attributes'] && params['host']['compute_attributes']['VBDs']['physical_size'] != ""
|
12
|
-
selected = params['host']['compute_attributes']['VBDs']['print']
|
13
|
-
size = params['host']['compute_attributes']['VBDs']['physical_size']
|
14
|
-
elsif new.__vbds
|
15
|
-
selected = new.__vbds['print']
|
16
|
-
size = new.__vbds['physical_size']
|
17
|
-
end
|
18
|
-
elsif controller_name == 'compute_attributes'
|
19
|
-
compute_attributes = compute_resource.compute_profile_attributes_for(params['compute_profile_id'])
|
20
|
-
if compute_attributes['VBDs'] && compute_attributes['VBDs']['physical_size']
|
21
|
-
size = compute_attributes['VBDs']['physical_size']
|
22
|
-
end
|
23
|
-
if compute_attributes['VBDs'] && compute_attributes['VBDs']['sr_uuid']
|
24
|
-
selected = compute_attributes['VBDs']['sr_uuid']
|
25
|
-
end
|
26
2
|
|
27
|
-
|
28
|
-
-%>
|
29
|
-
|
3
|
+
<%= selectable_f f, :sr_uuid, compute_resource.storage_pools.map{ |item| [item[:display_name], item[:uuid]]}, { :selected => attribute_map[:volume_selected] }, :class => "span2", :label => _("Storage Repository") %>
|
30
4
|
|
31
|
-
<%=
|
32
|
-
|
33
|
-
<%= text_f f, :physical_size, :class => "input-mini", :label => _("Size (GB)"), :value => size %>
|
5
|
+
<%= text_f f, :physical_size, :class => "input-mini", :label => _("Size (GB)"), :value => attribute_map[:volume_size] %>
|
34
6
|
</div>
|
@@ -1,28 +1,11 @@
|
|
1
1
|
<%
|
2
|
-
vmdata = { :ifs =>
|
3
|
-
{ '0' => {
|
4
|
-
:ip => '',
|
5
|
-
:gateway => '',
|
6
|
-
:netmask => ''
|
7
|
-
}
|
8
|
-
},
|
9
|
-
:nameserver1 => '',
|
10
|
-
:nameserver2 => '',
|
11
|
-
:environment => ''
|
12
|
-
}
|
13
|
-
|
14
2
|
|
15
3
|
if params[:host] && params[:host][:compute_attributes] && params[:host][:compute_attributes][:xenstore]
|
16
4
|
vmdata = params[:host][:compute_attributes][:xenstore]['vm-data']
|
5
|
+
else
|
6
|
+
vmdata = init_vmdata
|
17
7
|
end
|
18
8
|
|
19
|
-
ip = vmdata[:ifs]['0'][:ip]
|
20
|
-
gateway = vmdata[:ifs]['0'][:gateway]
|
21
|
-
netmask = vmdata[:ifs]['0'][:netmask]
|
22
|
-
nameserver1 = vmdata[:nameserver1]
|
23
|
-
nameserver2 = vmdata[:nameserver2]
|
24
|
-
environment = vmdata[:environment]
|
25
|
-
|
26
9
|
disabled = 'readonly'
|
27
10
|
|
28
11
|
%>
|
@@ -35,7 +18,7 @@
|
|
35
18
|
<label class="col-md-2 control-label" for="xenstore-vm-data-ifs-0-ip">vm-data/ifs/0/ip</label>
|
36
19
|
<div class="col-md-4">
|
37
20
|
<div class="controls">
|
38
|
-
<input <%= disabled %> id="xenstore-vm-data-ifs-0-ip" type="text" name="host[compute_attributes][xenstore][vm-data][ifs][0][ip]" class="form-control input-mini" value="<%= ip %>">
|
21
|
+
<input <%= disabled %> id="xenstore-vm-data-ifs-0-ip" type="text" name="host[compute_attributes][xenstore][vm-data][ifs][0][ip]" class="form-control input-mini" value="<%= vmdata[:ifs]['0'][:ip] %>">
|
39
22
|
</div>
|
40
23
|
</div>
|
41
24
|
</div>
|
@@ -44,7 +27,7 @@
|
|
44
27
|
<label class="col-md-2 control-label" for="xenstore-vm-data-ifs-0-gateway">vm-data/ifs/0/gateway</label>
|
45
28
|
<div class="col-md-4">
|
46
29
|
<div class="controls">
|
47
|
-
<input <%= disabled %> id="xenstore-vm-data-ifs-0-gateway" type="text" name="host[compute_attributes][xenstore][vm-data][ifs][0][gateway]" class="form-control input-mini" value="<%= gateway %>">
|
30
|
+
<input <%= disabled %> id="xenstore-vm-data-ifs-0-gateway" type="text" name="host[compute_attributes][xenstore][vm-data][ifs][0][gateway]" class="form-control input-mini" value="<%= vmdata[:ifs]['0'][:gateway] %>">
|
48
31
|
</div>
|
49
32
|
</div>
|
50
33
|
</div>
|
@@ -53,7 +36,7 @@
|
|
53
36
|
<label class="col-md-2 control-label" for="xenstore-vm-data-ifs-0-netmask">vm-data/ifs/0/netmask</label>
|
54
37
|
<div class="col-md-4">
|
55
38
|
<div class="controls">
|
56
|
-
<input <%= disabled %> id="xenstore-vm-data-ifs-0-netmask" type="text" name="host[compute_attributes][xenstore][vm-data][ifs][0][netmask]" class="form-control input-mini" value="<%= netmask %>">
|
39
|
+
<input <%= disabled %> id="xenstore-vm-data-ifs-0-netmask" type="text" name="host[compute_attributes][xenstore][vm-data][ifs][0][netmask]" class="form-control input-mini" value="<%= vmdata[:ifs]['0'][:netmask] %>">
|
57
40
|
</div>
|
58
41
|
</div>
|
59
42
|
</div>
|
@@ -61,21 +44,21 @@
|
|
61
44
|
<div class="form-group">
|
62
45
|
<label class="col-md-2 control-label" for="xenstore-vm-data-nameserver1">vm-data/nameserver1</label>
|
63
46
|
<div class="col-md-4">
|
64
|
-
<input <%= disabled %> id="xenstore-vm-data-nameserver1" type="text" name="host[compute_attributes][xenstore][vm-data][nameserver1]" class="form-control input-mini" value="<%= nameserver1 %>">
|
47
|
+
<input <%= disabled %> id="xenstore-vm-data-nameserver1" type="text" name="host[compute_attributes][xenstore][vm-data][nameserver1]" class="form-control input-mini" value="<%= vmdata[:nameserver1] %>">
|
65
48
|
</div>
|
66
49
|
</div>
|
67
50
|
|
68
51
|
<div class="form-group">
|
69
52
|
<label class="col-md-2 control-label" for="xenstore-vm-data-nameserver2">vm-data/nameserver2</label>
|
70
53
|
<div class="col-md-4">
|
71
|
-
<input <%= disabled %> id="xenstore-vm-data-nameserver2" type="text" name="host[compute_attributes][xenstore][vm-data][nameserver2]" class="form-control input-mini" value="<%= nameserver2
|
54
|
+
<input <%= disabled %> id="xenstore-vm-data-nameserver2" type="text" name="host[compute_attributes][xenstore][vm-data][nameserver2]" class="form-control input-mini" value="<%= vmdata[:nameserver2] %>">
|
72
55
|
</div>
|
73
56
|
</div>
|
74
57
|
|
75
58
|
<div class="form-group">
|
76
59
|
<label class="col-md-2 control-label" for="xenstore-vm-data-environment">vm-data/environment</label>
|
77
60
|
<div class="col-md-4">
|
78
|
-
<input <%= disabled %> id="xenstore-vm-data-environment" type="text" name="host[compute_attributes][xenstore][vm-data][environment]" class="form-control input-mini" value="<%= environment %>">
|
61
|
+
<input <%= disabled %> id="xenstore-vm-data-environment" type="text" name="host[compute_attributes][xenstore][vm-data][environment]" class="form-control input-mini" value="<%= vmdata[:environment] %>">
|
79
62
|
</div>
|
80
63
|
</div>
|
81
64
|
</div>
|
@@ -1,4 +1,6 @@
|
|
1
1
|
<% new = f.object
|
2
|
+
attribute_map = compute_attribute_map(params, compute_resource, new)
|
3
|
+
|
2
4
|
hide_raw = ''
|
3
5
|
if params && params['host'] && params['host']['compute_attributes'] && params['host']['compute_attributes']['custom_template_name'] != ''
|
4
6
|
hide_raw = 'display:none;'
|
@@ -12,9 +14,6 @@
|
|
12
14
|
fields_enabled = true
|
13
15
|
compute_attributes = compute_resource.compute_profile_attributes_for(params['compute_profile_id'])
|
14
16
|
name = compute_attributes['name']
|
15
|
-
vcpus_max = compute_attributes['vcpus_max']
|
16
|
-
memory_min = compute_attributes['memory_min']
|
17
|
-
memory_max = compute_attributes['memory_max']
|
18
17
|
else
|
19
18
|
fields_enabled = false
|
20
19
|
end
|
@@ -27,9 +26,9 @@
|
|
27
26
|
<legend>VM Profile</legend>
|
28
27
|
<div class="fields">
|
29
28
|
<!--<%= text_f f, :name, :disabled => !fields_enabled, :value => name, :label => 'Name' if controller_name != 'hosts' %>-->
|
30
|
-
<%= selectable_f f, :vcpus_max, 1..compute_resource.max_cpu_count, {:selected =>
|
31
|
-
<%= selectable_f f, :memory_min, memory_options(compute_resource.max_memory), {:selected => memory_min}, :class => 'form-control span2', :disabled => !fields_enabled, :label => 'Memory Min' %>
|
32
|
-
<%= selectable_f f, :memory_max, memory_options(compute_resource.max_memory), {:selected => memory_max}, :class => 'form-control span2', :disabled => !fields_enabled, :label => 'Memory Max' %>
|
29
|
+
<%= selectable_f f, :vcpus_max, 1..compute_resource.max_cpu_count, {:selected => attribute_map[:cpu_count]}, :class => 'input-mini', :disabled => !fields_enabled, :label => 'vCPUs' %>
|
30
|
+
<%= selectable_f f, :memory_min, memory_options(compute_resource.max_memory), {:selected => attribute_map[:memory_min]}, :class => 'form-control span2', :disabled => !fields_enabled, :label => 'Memory Min' %>
|
31
|
+
<%= selectable_f f, :memory_max, memory_options(compute_resource.max_memory), {:selected => attribute_map[:memory_max]}, :class => 'form-control span2', :disabled => !fields_enabled, :label => 'Memory Max' %>
|
33
32
|
</div>
|
34
33
|
</fieldset>
|
35
34
|
</div>
|
@@ -37,14 +36,14 @@
|
|
37
36
|
<!-- Templates -->
|
38
37
|
<div class="children_fields">
|
39
38
|
<%= field_set_tag 'VM Template', :id => 'xen_templates', :title => _('Template') do -%>
|
40
|
-
<%= render 'compute_resources_vms/form/templates', :f => f, :compute_resource => compute_resource, :new => new %>
|
39
|
+
<%= render 'compute_resources_vms/form/templates', :f => f, :compute_resource => compute_resource, :new => new, :attribute_map => attribute_map %>
|
41
40
|
<% end -%>
|
42
41
|
</div>
|
43
42
|
|
44
43
|
<!-- XenStore Data -->
|
45
44
|
<div class="children_fields" id="xenserver-xenstore-data">
|
46
45
|
<%= field_set_tag 'Xen Store Data', :id => 'xen_store_data', :title => _('Xen Store Data') do -%>
|
47
|
-
<%= render 'compute_resources_vms/form/xenstore', :f => f, :compute_resource => compute_resource, :new => new %>
|
46
|
+
<%= render 'compute_resources_vms/form/xenstore', :f => f, :compute_resource => compute_resource, :new => new, :attribute_map => attribute_map %>
|
48
47
|
<% end %>
|
49
48
|
</div>
|
50
49
|
|
@@ -52,7 +51,7 @@
|
|
52
51
|
<div class="children_fields xenserver-raw" id="xenserver-storage" style="<%= hide_raw %>">
|
53
52
|
<%= field_set_tag 'Storage', :id => 'storage_volumes', :title => _('Storage') do -%>
|
54
53
|
<%= f.fields_for :VBDs do |i| %>
|
55
|
-
<%= render 'compute_resources_vms/form/volume', :f => i, :compute_resource => compute_resource, :new => new %>
|
54
|
+
<%= render 'compute_resources_vms/form/volume', :f => i, :compute_resource => compute_resource, :new => new, :attribute_map => attribute_map %>
|
56
55
|
<% end -%>
|
57
56
|
<% end -%>
|
58
57
|
</div>
|
@@ -61,14 +60,14 @@
|
|
61
60
|
<div class="children_fields" id="xenserver-network" style="<%= hide_raw %>">
|
62
61
|
<%= field_set_tag 'Network interfaces', :id => 'network_interfaces', :title => _('Networks') do -%>
|
63
62
|
<%= f.fields_for :VIFs do |i| %>
|
64
|
-
<%= render 'compute_resources_vms/form/network', :f => i, :compute_resource => compute_resource, :new => new %>
|
63
|
+
<%= render 'compute_resources_vms/form/network', :f => i, :compute_resource => compute_resource, :new => new, :attribute_map => attribute_map %>
|
65
64
|
<% end -%>
|
66
65
|
<% end -%>
|
67
66
|
</div>
|
68
67
|
|
69
68
|
<div class="children_fields" id="xenserver-hosts" style="<%= hide_raw %>">
|
70
69
|
<%= field_set_tag 'Start on server', :id => 'xen_hypervisors', :title => _('Start on server') do -%>
|
71
|
-
<%= render 'compute_resources_vms/form/hypervisors', :f => f, :compute_resource => compute_resource, :new => new %>
|
70
|
+
<%= render 'compute_resources_vms/form/hypervisors', :f => f, :compute_resource => compute_resource, :new => new, :attribute_map => attribute_map %>
|
72
71
|
<% end -%>
|
73
72
|
</div>
|
74
73
|
|
data/lib/foreman_xen/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_xen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pavel Nemirovsky, Michal Piotrowski, Avi Israeli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-10-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -49,6 +49,7 @@ files:
|
|
49
49
|
- README.md
|
50
50
|
- Rakefile
|
51
51
|
- app/controllers/foreman_xen/snapshots_controller.rb
|
52
|
+
- app/helpers/xen_compute_helper.rb
|
52
53
|
- app/models/concerns/fog_extensions/xenserver/server.rb
|
53
54
|
- app/models/concerns/foreman_xen/host_helper_extensions.rb
|
54
55
|
- app/models/foreman_xen/xenserver.rb
|
@@ -97,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
98
|
version: '0'
|
98
99
|
requirements: []
|
99
100
|
rubyforge_project:
|
100
|
-
rubygems_version: 2.
|
101
|
+
rubygems_version: 2.2.2
|
101
102
|
signing_key:
|
102
103
|
specification_version: 4
|
103
104
|
summary: Provision and manage XEN Server from Foreman
|