diff --git a/src/vmm/LibVirtDriverKVM.cc b/src/vmm/LibVirtDriverKVM.cc index 6aca971987..c3b10c4e67 100644 --- a/src/vmm/LibVirtDriverKVM.cc +++ b/src/vmm/LibVirtDriverKVM.cc @@ -69,7 +69,9 @@ int LibVirtDriver::deployment_description_kvm( string model = ""; string ip = ""; string filter = ""; + string default_filter = ""; + string default_model = ""; const VectorAttribute * graphics; @@ -86,6 +88,7 @@ int LibVirtDriver::deployment_description_kvm( string acpi = ""; const VectorAttribute * raw; + string default_raw; string data; // ------------------------------------------------------------------------ @@ -438,9 +441,11 @@ int LibVirtDriver::deployment_description_kvm( // Network interfaces // ------------------------------------------------------------------------ - get_default("NIC","FILTER",default_filter); + get_default("NIC", "FILTER", default_filter); - num = vm->get_template_attribute("NIC",attrs); + get_default("NIC", "MODEL", default_model); + + num = vm->get_template_attribute("NIC", attrs); for(int i=0; i" << endl; } - if( !model.empty() ) + string * the_model = 0; + + if (!model.empty()) { - file << "\t\t\t" << endl; + the_model = &model; + } + else if (!default_model.empty()) + { + the_model = &default_model; + } + + if (the_model != 0) + { + file << "\t\t\t" << endl; } if (!ip.empty() ) @@ -679,6 +695,13 @@ int LibVirtDriver::deployment_description_kvm( } } + get_default("RAW", default_raw); + + if ( !default_raw.empty() ) + { + file << "\t" << default_raw << endl; + } + file << "" << endl; file.close(); diff --git a/src/vmm/LibVirtDriverVMware.cc b/src/vmm/LibVirtDriverVMware.cc index af020b506c..2319eafe14 100644 --- a/src/vmm/LibVirtDriverVMware.cc +++ b/src/vmm/LibVirtDriverVMware.cc @@ -65,6 +65,8 @@ int LibVirtDriver::deployment_description_vmware( string script = ""; string model = ""; + string default_model = ""; + const VectorAttribute * graphics; string listen = ""; @@ -74,6 +76,7 @@ int LibVirtDriver::deployment_description_vmware( const VectorAttribute * raw; string data; + string default_raw; // ------------------------------------------------------------------------ @@ -301,6 +304,8 @@ int LibVirtDriver::deployment_description_vmware( // Network interfaces // ------------------------------------------------------------------------ + get_default("NIC", "MODEL", default_model); + num = vm->get_template_attribute("NIC",attrs); for(int i=0; i" << endl; } - if( !model.empty() ) + string * the_model = 0; + + if (!model.empty()) { - file << "\t\t\t" << endl; + the_model = &model; + } + else if (!default_model.empty()) + { + the_model = &default_model; + } + + if (the_model != 0) + { + file << "\t\t\t" << endl; } file << "\t\t" << endl; @@ -437,6 +453,13 @@ int LibVirtDriver::deployment_description_vmware( } } + get_default("RAW", default_raw); + + if ( !default_raw.empty() ) + { + file << "\t" << default_raw << endl; + } + file << "" << endl; file.close(); diff --git a/src/vmm/XenDriver.cc b/src/vmm/XenDriver.cc index 5dcd0110f8..9be40d3453 100644 --- a/src/vmm/XenDriver.cc +++ b/src/vmm/XenDriver.cc @@ -61,6 +61,8 @@ int XenDriver::deployment_description( string bridge = ""; string model = ""; + string default_model = ""; + const VectorAttribute * graphics; string listen = ""; @@ -70,6 +72,7 @@ int XenDriver::deployment_description( const VectorAttribute * raw; string data; + string default_raw; // ------------------------------------------------------------------------ @@ -331,6 +334,8 @@ int XenDriver::deployment_description( num = vm->get_template_attribute("NIC",attrs); + get_default("NIC", "MODEL", default_model); + file << "vif = [" << endl; for(int i=0; ivector_value("BRIDGE"); model = nic->vector_value("MODEL"); - if( !model.empty() ) + string * the_model = 0; + + if (!model.empty()) { - file << "model=" << model; + the_model = &model; + } + else if (!default_model.empty()) + { + the_model = &default_model; + } + + if (the_model != 0) + { + file << "model=" << *the_model; pre_char = ','; } @@ -470,6 +486,13 @@ int XenDriver::deployment_description( } } + get_default("RAW", default_raw); + + if ( !default_raw.empty() ) + { + file << default_raw << endl; + } + file.close(); return 0; diff --git a/src/vmm_mad/exec/vmm_exec_kvm.conf b/src/vmm_mad/exec/vmm_exec_kvm.conf index 5f3ef0d752..a1c4e7e2ce 100644 --- a/src/vmm_mad/exec/vmm_exec_kvm.conf +++ b/src/vmm_mad/exec/vmm_exec_kvm.conf @@ -15,14 +15,15 @@ #--------------------------------------------------------------------------- # # Default configuration attributes for the KVM driver -# (all domains will use these values as defaults). These values can +# (all domains will use these values as defaults). These values can # be overridden in each VM template. Valid atributes are: # - emulator # - os [kernel,initrd,boot,root,kernel_cmd,arch] # - vcpu # - features [acpi, pae] # - disk [driver, cache] -# - nic [filter] +# - nic [filter, model] +# - raw #EMULATOR = /usr/libexec/qemu-kvm @@ -33,4 +34,5 @@ FEATURES = [ PAE = "no", ACPI = "yes" ] DISK = [ driver = "raw" , cache = "default"] -#NIC = [ filter = "clean-traffic" ] +#NIC = [ filter = "clean-traffic", model="virtio" ] +#RAW = "" diff --git a/src/vmm_mad/exec/vmm_exec_vmware.conf b/src/vmm_mad/exec/vmm_exec_vmware.conf index a3b5e2a5b4..4a3d7151c0 100644 --- a/src/vmm_mad/exec/vmm_exec_vmware.conf +++ b/src/vmm_mad/exec/vmm_exec_vmware.conf @@ -20,7 +20,8 @@ # - vcpu # - os[arch] # - disk[dirver] -# - datastore +# - nic[model] +# - raw #VCPU = 1 diff --git a/src/vmm_mad/exec/vmm_exec_xen.conf b/src/vmm_mad/exec/vmm_exec_xen.conf index 3d4ac94fba..ccef6d75da 100644 --- a/src/vmm_mad/exec/vmm_exec_xen.conf +++ b/src/vmm_mad/exec/vmm_exec_xen.conf @@ -15,15 +15,19 @@ #--------------------------------------------------------------------------- # # Default configuration attributes for the Xen driver -# (all domains will use these values as defaults). These values can +# (all domains will use these values as defaults). These values can # be overridden in each VM template. Valid atributes are: # - credit # - os [kernel,initrd,root,kernel_cmd] # - vcpu # - disk[driver] +# - nic[model] +# - raw #VCPU = 1 #OS = [ kernel="/vmlinuz", initrd="/initrd.img", root="sda1", kernel_cmd="ro" ] CREDIT = 256 DISK = [ driver = "tap:aio:" ] + +#RAW = "data=\"on_crash=destroy\""