[Ovirt-devel] [PATCH server] require at least one vm network if pxe booting
Mohammed Morsi
mmorsi at redhat.com
Tue Aug 4 20:30:16 UTC 2009
---
src/app/models/vm.rb | 2 ++
src/app/views/vm/_form.rhtml | 23 +++++++++++++++++++++++
2 files changed, 25 insertions(+), 0 deletions(-)
diff --git a/src/app/models/vm.rb b/src/app/models/vm.rb
index 3e0a6fa..9d326ac 100644
--- a/src/app/models/vm.rb
+++ b/src/app/models/vm.rb
@@ -464,6 +464,8 @@ class Vm < ActiveRecord::Base
self.storage_volumes=@storage_volumes_pending
@storage_volumes_pending = []
end
+ errors.add("nics", "must specify at least one network if pxe booting off a network") unless boot_device == BOOT_DEV_NETWORK && nics.size > 0
+
end
end
diff --git a/src/app/views/vm/_form.rhtml b/src/app/views/vm/_form.rhtml
index 5f519fc..39ce55e 100644
--- a/src/app/views/vm/_form.rhtml
+++ b/src/app/views/vm/_form.rhtml
@@ -51,6 +51,9 @@
<div class="vm_form_section" style="display:none;">
<div class="clear_row"></div>
+ <%# display network errors at the top of the section %>
+ <div class="field_title"><label for="vm_nics" /></div>
+
<% if @nics.size > 0 %>
<div id="vm_network_config_header">
<div id="vm_network_config_header_network">Network:</div>
@@ -313,5 +316,25 @@ ${htmlList(pools, id)}
$('#vm_network_config_select_<%= i %>').val("<%= @vm.nics[i].network_id %>").trigger('change');
<% }
end %>
+
+ // wire up provision select box to autoselect a network if necessary
+ $('#vm_provisioning_and_boot_settings').bind('change', function(e){
+
+ // if at least one network is already selected do nothing
+ for(i = 0; i < nics.length; ++i){
+ if(nics[i].selected){
+ return;
+ }
+ }
+
+ // only set value if we have a network to set it to and we've
+ // selected a provision type requiring a net
+ if(nics.length > 0 &&
+ (e.target.value == "<%= Vm::PXE_OPTION_VALUE %>" ||
+ e.target.value.indexOf("<%= Vm::PROFILE_PREFIX %>@<%= Vm::COBBLER_PREFIX %>") == 0)){
+ $('#vm_network_config_select_0').val(nics[0].network_id).trigger('change');
+ }
+ }).trigger('change'); // make sure whatever we have at first is handled
+
});
</script>
--
1.6.0.6
More information about the ovirt-devel
mailing list