[Kimchi-devel] [PATCH] [Kimchi 5/5] VEPA network support: UI changes

dhbarboza82 at gmail.com dhbarboza82 at gmail.com
Thu Jan 21 13:39:15 UTC 2016


From: Daniel Henrique Barboza <dhbarboza82 at gmail.com>

Pinpoint UI changes to add a new network type named 'vepa'
with the same capabilites as the bridge network.

At this moment, the UI does not support multiple physical
devices to be declared in the VEPA network. This will require
additional UI changes in the future (no backend changes
needed).

Signed-off-by: Daniel Henrique Barboza <dhbarboza82 at gmail.com>
---
 ui/js/src/kimchi.network.js          |  9 +++++++--
 ui/js/src/kimchi.network_add_main.js | 19 +++++++++++++------
 ui/pages/network-add.html.tmpl       |  5 +++--
 3 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/ui/js/src/kimchi.network.js b/ui/js/src/kimchi.network.js
index 923aeb9..a3aea52 100644
--- a/ui/js/src/kimchi.network.js
+++ b/ui/js/src/kimchi.network.js
@@ -1,7 +1,7 @@
 /*
  * Project Kimchi
  *
- * Copyright IBM, Corp. 2013-2015
+ * Copyright IBM, Corp. 2013-2016
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
  */
 
 kimchi.NETWORK_TYPE_MACVTAP = "macvtap";
+kimchi.NETWORK_TYPE_VEPA = "vepa";
 
 kimchi.initNetwork = function() {
     if(wok.tabMode['network'] === 'admin') {
@@ -41,7 +42,11 @@ kimchi.initNetworkListView = function() {
             } else {
                 network.type = data[i].connection;
             }
-            network.interface = data[i].interface ? data[i].interface : null;
+            if (network.type === kimchi.NETWORK_TYPE_VEPA) {
+                network.interface = data[i].vepa_devs[0] ? data[i].vepa_devs[0] : null;
+            } else {
+                network.interface = data[i].interface ? data[i].interface : null;
+            }
             network.addrSpace = data[i].subnet ? data[i].subnet : null;
             network.persistent = data[i].persistent;
             kimchi.addNetworkItem(network);
diff --git a/ui/js/src/kimchi.network_add_main.js b/ui/js/src/kimchi.network_add_main.js
index 0087407..f297e90 100644
--- a/ui/js/src/kimchi.network_add_main.js
+++ b/ui/js/src/kimchi.network_add_main.js
@@ -1,7 +1,7 @@
 /*
  * Project Kimchi
  *
- * Copyright IBM, Corp. 2013-2015
+ * Copyright IBM, Corp. 2013-2016
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -33,9 +33,15 @@ kimchi.startNetworkCreation = function() {
         name : network.name,
         connection: network.type
     };
-    if (network.type === kimchi.NETWORK_TYPE_MACVTAP) {
-        data.connection = "macvtap";
-        data.interface = network.interface;
+    if (network.type === kimchi.NETWORK_TYPE_MACVTAP ||
+        network.type === kimchi.NETWORK_TYPE_VEPA) {
+        if (network.type === kimchi.NETWORK_TYPE_MACVTAP) {
+            data.connection = "macvtap";
+            data.interface = network.interface;
+        } else {
+            data.connection = "vepa";
+            data.vepa_devs = [network.interface];
+        }
         if ($("#enableVlan").prop("checked")) {
             data.vlan_id = network.vlan_id;
             if (!(data.vlan_id >=1 && data.vlan_id <= 4094)) {
@@ -134,7 +140,8 @@ kimchi.getNetworkDialogValues = function() {
         name : $("#networkName").val(),
         type : $("#networkType").val()
     };
-    if (network.type === kimchi.NETWORK_TYPE_MACVTAP) {
+    if (network.type === kimchi.NETWORK_TYPE_MACVTAP ||
+        network.type === 'vepa') {
         network.interface = $("#networkDestinationID").val();
         network.vlan_id = parseInt($("#networkVlanID").val());
     }
@@ -151,7 +158,7 @@ kimchi.setupNetworkFormEvent = function() {
         var selectedType = $(this).val();
         if(selectedType ==  'isolated' ||  selectedType ==  'nat') {
             kimchi.enableBridgeOptions(false);
-        } else if (selectedType ==  'macvtap') {
+        } else if (selectedType ==  'macvtap' || selectedType == 'vepa') {
             kimchi.enableBridgeOptions(true);
         }
     }); 
diff --git a/ui/pages/network-add.html.tmpl b/ui/pages/network-add.html.tmpl
index 7158b75..68fe4bd 100644
--- a/ui/pages/network-add.html.tmpl
+++ b/ui/pages/network-add.html.tmpl
@@ -1,7 +1,7 @@
 #*
  * Project Kimchi
  *
- * Copyright IBM, Corp. 2014-2015
+ * Copyright IBM, Corp. 2014-2016
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -41,6 +41,7 @@
                 <option value="isolated">$_("Isolated: no external network connection")</option>
                 <option value="nat">$_("NAT: outbound physical network connection only")</option>
                 <option value="macvtap">$_("Bridged: Virtual machines are connected to physical network directly")</option>
+                <option value="vepa">$_("VEPA: special mode where virtual machines are connected to a VEPA-enabled switch")</option>
             </select>
         </div>
         <div id="networkBriDisabledLabel" class="form-group hidden">
@@ -71,4 +72,4 @@
 kimchi.network_add_main();
 </script>
 </body>
-</html>
\ No newline at end of file
+</html>
-- 
2.5.0




More information about the Kimchi-devel mailing list