staypuft 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/staypuft/host_edit.js +57 -30
- data/app/helpers/staypuft/hosts_helper.rb +17 -0
- data/app/lib/staypuft/seeder.rb +4 -4
- data/app/models/staypuft/deployment/cinder_service.rb +2 -1
- data/app/models/staypuft/deployment/neutron_service.rb +12 -1
- data/app/overrides/nic_base_form.rb +11 -0
- data/app/views/nic/_subnet_id_field.html.erb +7 -0
- data/lib/staypuft/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8fdb7f5ba17853a2b098fcf45e3a0a9798a92e1e
|
4
|
+
data.tar.gz: ade7196f14eac31b51265ade7c16c13f4a7db384
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 055e98568db7d185ccc3d92013a7c59931b3b8602e4daa414af70091096557d805e2df95fb16baa0a437b4a23770354d3b4f400cf370ee45e1cc597ebd6c77be
|
7
|
+
data.tar.gz: 1f140055e26614e19ab63d42897f76ed04691fe724821e8bdb7c49863a4abedd5dff64e1697c98ba4a2e62d4293b718a457af653a9e719731160f2116420d6ed
|
@@ -1,3 +1,11 @@
|
|
1
|
+
function find_network_interface_field(fieldset, field, html_input_type) {
|
2
|
+
label = fieldset.find("label[for='" + field + "']");
|
3
|
+
html_input = label.parent().find(html_input_type);
|
4
|
+
|
5
|
+
return html_input;
|
6
|
+
};
|
7
|
+
|
8
|
+
|
1
9
|
$(document).ready(function() {
|
2
10
|
update_fencing_form();
|
3
11
|
// NOTE: setTimeout is required to make sure this code runs after all event
|
@@ -55,23 +63,8 @@ function override_ajax_submit() {
|
|
55
63
|
});
|
56
64
|
};
|
57
65
|
|
58
|
-
$(document).on('change', 'fieldset#interface', function() { update_fencing_form(); });
|
59
|
-
$(document).on('change', '#fencing', function() { update_bmc_interface_form(); });
|
60
|
-
|
61
|
-
function get_value_from_network_interface_form(fieldset, field, html_input_type) {
|
62
|
-
label = fieldset.find("label[for='" + field + "']");
|
63
|
-
html_input = label.parent().find(html_input_type);
|
64
|
-
|
65
|
-
return html_input;
|
66
|
-
};
|
67
|
-
|
68
|
-
function get_bmc_interface_form() {
|
69
|
-
return $('fieldset#interface').filter(function(index, fieldset){
|
70
|
-
type = get_value_from_network_interface_form($(fieldset), 'type', 'select');
|
71
|
-
return type.val() == 'Nic::BMC';
|
72
|
-
});
|
73
|
-
}
|
74
66
|
|
67
|
+
$(document).on('change', 'fieldset#interface', function() { update_fencing_form(); });
|
75
68
|
function update_fencing_form() {
|
76
69
|
bmc_fieldset = get_bmc_interface_form();
|
77
70
|
if (bmc_fieldset.length == 0) {
|
@@ -81,34 +74,68 @@ function update_fencing_form() {
|
|
81
74
|
enable_fencing_form();
|
82
75
|
}
|
83
76
|
|
84
|
-
selected_provider =
|
77
|
+
selected_provider = find_network_interface_field(bmc_fieldset, 'provider', 'select');
|
85
78
|
|
86
|
-
ip =
|
79
|
+
ip = find_network_interface_field(bmc_fieldset, 'ip', 'input').val();
|
87
80
|
$('#host_fencing_attrs_fence_ipmilan_address').val(ip);
|
88
|
-
username =
|
81
|
+
username = find_network_interface_field(bmc_fieldset, 'username', 'input').val();
|
89
82
|
$('#host_fencing_attrs_fence_ipmilan_username').val(username);
|
90
|
-
password =
|
83
|
+
password = find_network_interface_field(bmc_fieldset, 'password', 'input').val();
|
91
84
|
$('#host_fencing_attrs_fence_ipmilan_password').val(password);
|
92
85
|
};
|
93
86
|
|
87
|
+
function disable_fencing_form() {
|
88
|
+
$('#fencing_form').hide();
|
89
|
+
$('#fencing_disabled_notice').show();
|
90
|
+
};
|
91
|
+
|
92
|
+
function enable_fencing_form() {
|
93
|
+
$('#fencing_disabled_notice').hide();
|
94
|
+
$('#fencing_form').show();
|
95
|
+
};
|
96
|
+
|
97
|
+
|
98
|
+
$(document).on('change', '#fencing', function() { update_bmc_interface_form(); });
|
94
99
|
function update_bmc_interface_form() {
|
95
100
|
bmc_fieldset = get_bmc_interface_form();
|
96
|
-
selected_provider =
|
101
|
+
selected_provider = find_network_interface_field(bmc_fieldset, 'provider', 'select');
|
97
102
|
|
98
103
|
ip = $('#host_fencing_attrs_fence_ipmilan_address').val();
|
99
|
-
|
104
|
+
find_network_interface_field(bmc_fieldset, 'ip', 'input').val(ip);
|
100
105
|
username = $('#host_fencing_attrs_fence_ipmilan_username').val();
|
101
|
-
|
106
|
+
find_network_interface_field(bmc_fieldset, 'username', 'input').val(username);
|
102
107
|
password = $('#host_fencing_attrs_fence_ipmilan_password').val();
|
103
|
-
|
108
|
+
find_network_interface_field(bmc_fieldset, 'password', 'input').val(password);
|
104
109
|
};
|
105
110
|
|
106
|
-
function
|
107
|
-
$('#
|
108
|
-
|
111
|
+
function get_bmc_interface_form() {
|
112
|
+
return $('fieldset#interface').filter(function(index, fieldset){
|
113
|
+
type = find_network_interface_field($(fieldset), 'type', 'select');
|
114
|
+
return type.val() == 'Nic::BMC';
|
115
|
+
});
|
109
116
|
};
|
110
117
|
|
111
|
-
|
112
|
-
|
113
|
-
$('#
|
118
|
+
|
119
|
+
$(document).ready(function() {
|
120
|
+
$('fieldset#interface').each(function(idx, fieldset) {
|
121
|
+
update_subnet_types(fieldset);
|
122
|
+
});
|
123
|
+
});
|
124
|
+
|
125
|
+
$(document).on('change', 'fieldset#interface select.interface_subnet', function(event) {
|
126
|
+
fieldset = $(event.target).parents('fieldset#interface');
|
127
|
+
update_subnet_types(fieldset);
|
128
|
+
});
|
129
|
+
function update_subnet_types(fieldset) {
|
130
|
+
subnet_select = find_network_interface_field($(fieldset), 'subnet_id', 'select');
|
131
|
+
subnet_types = subnet_select.data('types');
|
132
|
+
help_message = subnet_types[subnet_select.val()];
|
133
|
+
|
134
|
+
if (!help_message || help_message == '') {
|
135
|
+
subnet_select.parent().next().empty();
|
136
|
+
return;
|
137
|
+
}
|
138
|
+
|
139
|
+
subnet_select.parent().next().empty().append(
|
140
|
+
'<div><i class="glyphicon glyphicon-info-sign" /> ' + help_message + '</div>');
|
114
141
|
};
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Staypuft
|
2
|
+
module HostsHelper
|
3
|
+
|
4
|
+
def list_subnet_types(nic, subnets)
|
5
|
+
types = {}
|
6
|
+
|
7
|
+
return types if nic.host.nil? || nic.host.deployment.nil?
|
8
|
+
|
9
|
+
subnets.each do |subnet|
|
10
|
+
types[subnet.id] = subnet_types(nic.host.deployment, subnet)
|
11
|
+
end
|
12
|
+
|
13
|
+
return types
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
17
|
+
end
|
data/app/lib/staypuft/seeder.rb
CHANGED
@@ -236,7 +236,7 @@ module Staypuft
|
|
236
236
|
ml2_tenant_network_types = [ tenant_network_type ]
|
237
237
|
ml2_tunnel_id_ranges = ['10:1000']
|
238
238
|
ml2_vni_ranges = ['10:1000']
|
239
|
-
ovs_tunnel_types =
|
239
|
+
ovs_tunnel_types = { :array => '<%= @host.deployment.neutron.ovs_tunnel_types %>' }
|
240
240
|
ovs_tunnel_iface = { :string => '<%= n = @host.deployment.neutron; n.enable_tunneling? ? n.tenant_iface(@host) : "" %>' }
|
241
241
|
ovs_bridge_mappings = { :array => '<%= @host.deployment.neutron.networker_ovs_bridge_mappings(@host) %>' }
|
242
242
|
ovs_bridge_uplinks = { :array => '<%= @host.deployment.neutron.networker_ovs_bridge_uplinks(@host) %>' }
|
@@ -359,9 +359,9 @@ module Staypuft
|
|
359
359
|
fence_ipmilan_address = { :string => '<%= @host.bmc_nic.ip if @host.bmc_nic && @host.bmc_nic.fencing_enabled? %>' }
|
360
360
|
fence_ipmilan_username = { :string => '<%= @host.bmc_nic.username if @host.bmc_nic && @host.bmc_nic.fencing_enabled? %>' }
|
361
361
|
fence_ipmilan_password = { :string => '<%= @host.bmc_nic.password if @host.bmc_nic && @host.bmc_nic.fencing_enabled? %>' }
|
362
|
-
fence_ipmilan_interval =
|
363
|
-
fence_ipmilan_hostlist =
|
364
|
-
fence_ipmilan_host_to_address =
|
362
|
+
fence_ipmilan_interval = '60s'
|
363
|
+
fence_ipmilan_hostlist = ''
|
364
|
+
fence_ipmilan_host_to_address = []
|
365
365
|
fence_ipmilan_expose_lanplus = { :string => '<%= @host.bmc_nic.expose_lanplus? if @host.bmc_nic && @host.bmc_nic.fencing_enabled? %>' }
|
366
366
|
fence_ipmilan_lanplus_options = { :string => '<%= @host.bmc_nic.attrs["fence_ipmilan_lanplus_options"] if @host.bmc_nic && @host.bmc_nic.fencing_enabled? %>' }
|
367
367
|
|
@@ -54,7 +54,8 @@ module Staypuft
|
|
54
54
|
validates :eqlxs,
|
55
55
|
:presence => true,
|
56
56
|
:if => :equallogic_backend?
|
57
|
-
validate :equallogic_backends
|
57
|
+
validate :equallogic_backends,
|
58
|
+
:if => :equallogic_backend?
|
58
59
|
|
59
60
|
class Jail < Safemode::Jail
|
60
61
|
allow :lvm_backend?, :nfs_backend?, :ceph_backend?, :equallogic_backend?,
|
@@ -41,7 +41,7 @@ module Staypuft
|
|
41
41
|
class Jail < Safemode::Jail
|
42
42
|
allow :networker_vlan_ranges, :compute_vlan_ranges, :network_segmentation, :enable_tunneling?,
|
43
43
|
:tenant_iface, :networker_ovs_bridge_mappings, :networker_ovs_bridge_uplinks,
|
44
|
-
:compute_ovs_bridge_mappings, :compute_ovs_bridge_uplinks
|
44
|
+
:compute_ovs_bridge_mappings, :compute_ovs_bridge_uplinks, :ovs_tunnel_types
|
45
45
|
end
|
46
46
|
|
47
47
|
def set_defaults
|
@@ -98,6 +98,17 @@ module Staypuft
|
|
98
98
|
deployment.network_query.interface_for_host(host, Staypuft::SubnetType::EXTERNAL)
|
99
99
|
end
|
100
100
|
|
101
|
+
def ovs_tunnel_types
|
102
|
+
case network_segmentation
|
103
|
+
when NetworkSegmentation::VXLAN
|
104
|
+
['vxlan']
|
105
|
+
when NetworkSegmentation::GRE
|
106
|
+
['gre']
|
107
|
+
else
|
108
|
+
[]
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
101
112
|
def param_hash
|
102
113
|
{ 'network_segmentation' => network_segmentation,
|
103
114
|
'tenant_vlan_ranges' => tenant_vlan_ranges }
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# older deface requires code prefix for erb tags
|
2
|
+
if Gem.loaded_specs['deface'].version >= Gem::Version.new('1.0.0')
|
3
|
+
erb_tag = 'erb[loud]'
|
4
|
+
else
|
5
|
+
erb_tag = 'code[erb-loud]'
|
6
|
+
end
|
7
|
+
|
8
|
+
Deface::Override.new(:virtual_path => "nic/_base_form",
|
9
|
+
:name => "add_network_types_to_subnet",
|
10
|
+
:replace => "erb[loud]:contains(':subnet_id')",
|
11
|
+
:template => "nic/_subnet_id_field")
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<%= select_f f, :subnet_id, accessible_subnets, :id, :to_label,
|
2
|
+
{ :include_blank => accessible_subnets.any? ? true : _("No subnets")},
|
3
|
+
{ :disabled => accessible_subnets.empty? ? true : false,
|
4
|
+
:help_inline => 'help_inline',
|
5
|
+
:class => 'interface_subnet',
|
6
|
+
'data-url' => freeip_subnets_path,
|
7
|
+
'data-types' => "#{list_subnet_types(f.object, accessible_subnets).to_json}" } %>
|
data/lib/staypuft/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: staypuft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Staypuft team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: foreman-tasks
|
@@ -136,6 +136,7 @@ files:
|
|
136
136
|
- app/models/staypuft/subnet_typing.rb
|
137
137
|
- app/models/staypuft/deployment_role_hostgroup.rb
|
138
138
|
- app/models/setting/staypuft_provisioning.rb
|
139
|
+
- app/overrides/nic_base_form.rb
|
139
140
|
- app/overrides/customize_foreman_tasks_show_page.rb
|
140
141
|
- app/overrides/foreman_hosts_edit.rb
|
141
142
|
- app/overrides/hide_subscription_manager_passwords.rb
|
@@ -207,6 +208,8 @@ files:
|
|
207
208
|
- app/views/staypuft/deployments/_import_form.html.erb
|
208
209
|
- app/views/staypuft/deployments/_deployment_summary.html.erb
|
209
210
|
- app/views/staypuft/deployments/_deployment_networking.html.erb
|
211
|
+
- app/views/nic/_subnet_id_field.html.erb
|
212
|
+
- app/helpers/staypuft/hosts_helper.rb
|
210
213
|
- app/helpers/staypuft/deployments_helper.rb
|
211
214
|
- app/helpers/staypuft/application_helper.rb
|
212
215
|
- config/staypuft.local.rb
|