[pve-devel] Add support for OVS Trunk
Alexandre DERUMIER
aderumier at odiso.com
Mon Sep 15 13:53:13 CEST 2014
Hi,
you should send patches for proxmox git repository.
https://git.proxmox.com/?p=pve-manager.git;a=summary
pvemanagerlib.js is compiled from many files
http://pve.proxmox.com/wiki/Developer_Documentation
also, your patch is not enough (it's only the gui), you also need to patch qemu-server, Network.pm ...
----- Mail original -----
De: "Benjamin Lessani | Sonassi - The Magento Experts" <ben at sonassi.com>
À: pve-devel at pve.proxmox.com
Envoyé: Lundi 15 Septembre 2014 13:27:21
Objet: Re: [pve-devel] Add support for OVS Trunk
Hi Guys,
Given 3.3 has just been released, the changes I made to pvemanagerlib.js are no longer valid, so I’ve adjusted the fixes to the following.
--
diff --git a/usr/share/pve-manager/ext4/pvemanagerlib.js b/usr/share/pve-manager/ext4/pvemanagerlib.js
index 6f50679..c75e310 100644
--- a/usr/share/pve-manager/ext4/pvemanagerlib.js
+++ b/usr/share/pve-manager/ext4/pvemanagerlib.js
@@ -1303,9 +1303,11 @@ Ext.define('PVE.Parser', { statics: {
} else if ((match_res = p.match(/^rate=(\d+(\.\d+)?)$/)) !== null) {
res.rate = match_res[1];
} else if ((match_res = p.match(/^tag=(\d+(\.\d+)?)$/)) !== null) {
- res.tag = match_res[1];
+ res.tag = match_res[1];
} else if ((match_res = p.match(/^firewall=(\d+)$/)) !== null) {
- res.firewall = match_res[1];
+ res.firewall = match_res[1];
+ } else if ((match_res = p.match(/^trunks=([0-9;]+)$/)) !== null) {
+ res.trunks = match_res[1];
} else {
errors = true;
return false; // break
@@ -1333,6 +1335,9 @@ Ext.define('PVE.Parser', { statics: {
if (net.firewall) {
netstr += ",firewall=" + net.firewall;
}
+ if (net.trunks) {
+ netstr += ",trunks=" + net.trunks;
+ }
}
if (net.rate) {
netstr += ",rate=" + net.rate;
@@ -1442,6 +1447,7 @@ Ext.define('PVE.Parser', { statics: {
data['bridge'] = bridge_res[1];
data['tag'] = bridge_res[4];
data['firewall'] = bridge_res[5] ? 1 : 0;
+ data['trunks'] = bridge_res[6];
} else {
data[match_res[1]] = match_res[2];
}
@@ -1465,7 +1471,7 @@ Ext.define('PVE.Parser', { statics: {
Ext.Object.each(netif, function(iface, data) {
var tmparray = [];
- Ext.Array.each(['ifname', 'mac', 'bridge', 'host_ifname' , 'host_mac', 'mac_filter', 'tag', 'firewall'], function(key) {
+ Ext.Array.each(['ifname', 'mac', 'bridge', 'host_ifname' , 'host_mac', 'mac_filter', 'tag', 'firewall', 'trunks'], function(key) {
var value = data[key];
if (key === 'bridge'){
if(data['tag']){
@@ -1473,7 +1479,7 @@ Ext.define('PVE.Parser', { statics: {
}
if (data['firewall']){
value = value + 'f';
- }
+ }
}
if (value) {
tmparray.push(key + '=' + value);
@@ -3999,6 +4005,14 @@ Ext.define('PVE.form.VlanField', {
me.callParent();
}
});
+Ext.define('PVE.form.VlansField', {
+ extend: 'Ext.form.field.Text',
+ alias: ['widget.pveVlansField'],
+ deleteEmpty: false,
+ emptyText: 'no VLANs',
+ fieldLabel: gettext('VLAN Trunks'),
+ allowBlank: true,
+});
Ext.define('PVE.form.Checkbox', {
extend: 'Ext.form.field.Checkbox',
alias: ['widget.pvecheckbox'],
@@ -15150,6 +15164,7 @@ Ext.define('PVE.qemu.MemoryEdit', {
me.network.bridge = values.bridge;
me.network.tag = values.tag;
me.network.firewall = values.firewall;
+ me.network.trunks = values.trunks;
} else {
me.network.bridge = undefined;
}
@@ -15222,6 +15237,7 @@ Ext.define('PVE.qemu.MemoryEdit', {
me.down('field[name=bridge]').validate();
me.down('field[name=tag]').setDisabled(!value);
me.down('field[name=firewall]').setDisabled(!value);
+ me.down('field[name=trunks]').setDisabled(!value);
}
}
},
@@ -15234,6 +15250,13 @@ Ext.define('PVE.qemu.MemoryEdit', {
},
me.bridgesel,
{
+ xtype: 'pveVlansField',
+ name: 'trunks',
+ value: '',
+ labelAlign: 'right'
+ },
+ me.bridgesel,
+ {
xtype: 'pvecheckbox',
fieldLabel: gettext('Firewall'),
name: 'firewall',
@@ -19211,6 +19234,11 @@ Ext.define('PVE.OpenVZ.NetIfEdit', {
value: cdata.tag,
},
{
+ xtype: 'pveVlansField',
+ name: 'trunks',
+ value: cdata.trunks
+ },
+ {
xtype: 'pvecheckbox',
fieldLabel: gettext('Firewall'),
name: 'firewall',
@@ -19564,7 +19592,7 @@ Ext.define('PVE.openvz.NetworkView', {
Ext.define('pve-openvz-network', {
extend: "Ext.data.Model",
proxy: { type: 'memory' },
- fields: [ 'id', 'type', 'value', 'ifname', 'mac', 'bridge', 'host_ifname', 'host_mac', 'tag', 'firewall' ]
+ fields: [ 'id', 'type', 'value', 'ifname', 'mac', 'bridge', 'host_ifname', 'host_mac', 'tag', 'firewall', 'trunks' ]
});
});
_______________________________________________
pve-devel mailing list
pve-devel at pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
More information about the pve-devel
mailing list