Hello Alona Kaplan,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/16031
to review the following change.
Change subject: webadmin: adding external provider to add Networks-> Add Network
......................................................................
webadmin: adding external provider to add Networks-> Add Network
Adding external provider list to add networks popup (via Network tab).
Choosing a provider will add the network to the provider.
If a provider is chosen vlan, mtu and is_vm are not supported.
Change-Id: If3c1be4c9ff5daac716c3ea8f11e97583f90a074
Signed-off-by: Alona Kaplan <[email protected]>
---
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
M
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
M
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
11 files changed, 122 insertions(+), 56 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/16031/1
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
index 1273da2..33fefbc 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/EditNetworkModel.java
@@ -15,6 +15,7 @@
public EditNetworkModel(Network network, ListModel sourceListModel) {
super(network, sourceListModel);
getDataCenters().setIsChangable(false);
+ getExternalProviders().setIsChangable(false);
init();
}
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
index 7ed31e4..5ff9808 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/datacenters/NetworkModel.java
@@ -1,10 +1,13 @@
package org.ovirt.engine.ui.uicommonweb.models.datacenters;
+import org.ovirt.engine.core.common.action.AddNetworkStoragePoolParameters;
+import org.ovirt.engine.core.common.action.VdcActionType;
import org.ovirt.engine.core.common.businessentities.StoragePool;
import org.ovirt.engine.core.common.businessentities.network.Network;
import org.ovirt.engine.core.common.queries.ConfigurationValues;
import org.ovirt.engine.core.compat.Guid;
import org.ovirt.engine.core.compat.StringHelper;
+import org.ovirt.engine.ui.frontend.Frontend;
import org.ovirt.engine.ui.uicommonweb.UICommand;
import org.ovirt.engine.ui.uicommonweb.dataprovider.AsyncDataProvider;
import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
@@ -27,6 +30,7 @@
private EntityModel privateName;
private EntityModel privateDescription;
+ private ListModel externalProviders;
private EntityModel privateVLanTag;
private EntityModel privateIsStpEnabled;
private EntityModel privateHasVLanTag;
@@ -59,23 +63,57 @@
syncWithBackend();
}
});
- setVLanTag(new EntityModel());
+ setExternalProviders(new ListModel());
+ getExternalProviders().getSelectedItemChangedEvent().addListener(new
IEventListener() {
+
+ @Override
+ public void eventRaised(Event ev, Object sender, EventArgs args) {
+ onExternalProviderChanged();
+ }
+ });
+
EntityModel stpEnabled = new EntityModel();
stpEnabled.setEntity(false);
setIsStpEnabled(stpEnabled);
+
+ setVLanTag(new EntityModel());
EntityModel hasVlanTag = new EntityModel();
hasVlanTag.setEntity(false);
setHasVLanTag(hasVlanTag);
+ getHasVLanTag().getEntityChangedEvent().addListener(new
IEventListener() {
+ @Override
+ public void eventRaised(Event ev, Object sender, EventArgs args) {
+ updateVlanTagChangeability();
+ }
+ });
+
setMtu(new EntityModel());
EntityModel hasMtu = new EntityModel();
hasMtu.setEntity(false);
setHasMtu(hasMtu);
+ getHasMtu().getEntityChangedEvent().addListener(new IEventListener() {
+ @Override
+ public void eventRaised(Event ev, Object sender, EventArgs args) {
+ updateMtuChangeability();
+
+ // Clear MTU field in case MTU is disabled
+ if (!((Boolean) getHasMtu().getEntity())) {
+ getMtu().setEntity(null);
+ }
+ }
+ });
+
EntityModel isVmNetwork = new EntityModel();
isVmNetwork.setEntity(true);
setIsVmNetwork(isVmNetwork);
EntityModel publicUse = new EntityModel();
publicUse.setEntity(true);
setPublicUse(publicUse);
+
+ // Update changeability according to initial values
+ onExternalProviderChanged();
+ updateVlanTagChangeability();
+ updateMtuChangeability();
}
public EntityModel getName()
@@ -96,6 +134,14 @@
private void setDescription(EntityModel value)
{
privateDescription = value;
+ }
+
+ public ListModel getExternalProviders() {
+ return externalProviders;
+ }
+
+ public void setExternalProviders(ListModel externalProviders) {
+ this.externalProviders = externalProviders;
}
public EntityModel getVLanTag()
@@ -284,7 +330,7 @@
}
- protected void addCommands(){
+ protected void addCommands() {
UICommand tempVar2 = new UICommand("OnSave", this); //$NON-NLS-1$
tempVar2.setTitle(ConstantsManager.getInstance().getConstants().ok());
tempVar2.setIsDefault(true);
@@ -327,6 +373,13 @@
cancel();
}
stopProgress();
+
+ if (getExternalProviders().getSelectedItem() != null) {
+ final AddNetworkStoragePoolParameters parameters =
+ new
AddNetworkStoragePoolParameters(getSelectedDc().getId(), getNetwork());
+ Frontend.RunAction(VdcActionType.AddNetworkOnProvider,
+ parameters);
+ }
}
private void cancel() {
@@ -370,4 +423,28 @@
protected abstract void initMtu();
protected abstract void initIsVm();
+
+ private void onExternalProviderChanged() {
+ if (getExternalProviders().getSelectedItem() == null) {
+ getHasVLanTag().setIsChangable(false);
+ getVLanTag().setIsChangable(false);
+ getHasMtu().setIsChangable(false);
+ getMtu().setIsChangable(false);
+ getIsVmNetwork().setIsChangable(false);
+ } else {
+ getHasVLanTag().setIsChangable(true);
+ updateVlanTagChangeability();
+ getHasMtu().setIsChangable(true);
+ updateMtuChangeability();
+ getIsVmNetwork().setIsChangable(true);
+ }
+ }
+
+ private void updateVlanTagChangeability() {
+ getVLanTag().setIsChangable((Boolean) getHasVLanTag().getEntity());
+ }
+
+ private void updateMtuChangeability() {
+ getMtu().setIsChangable((Boolean) getHasMtu().getEntity());
+ }
}
diff --git
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
index 7dcd4a2..0cef2f4 100644
---
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
+++
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkListModel.java
@@ -4,6 +4,7 @@
import java.util.Arrays;
import java.util.List;
+import org.ovirt.engine.core.common.businessentities.Provider;
import org.ovirt.engine.core.common.businessentities.StoragePool;
import org.ovirt.engine.core.common.businessentities.network.Network;
import org.ovirt.engine.core.common.businessentities.network.NetworkView;
@@ -73,6 +74,7 @@
final NetworkModel networkModel = new NewNetworkModel(this);
setWindow(networkModel);
+ networkModel.startProgress(null);
initDcList(networkModel);
}
@@ -108,6 +110,7 @@
networkModel.getDataCenters().setItems(Arrays.asList(dc));
networkModel.getDataCenters().setSelectedItem(dc);
networkModel.getDataCenters().setIsChangable(false);
+ initExternalNetworksList(networkModel);
return;
}
@@ -127,11 +130,27 @@
} else {
networkModel.getDataCenters().setSelectedItem(Linq.firstOrDefault(dataCenters));
}
-
+ initExternalNetworksList(networkModel);
}
}));
}
+ private void initExternalNetworksList(final NetworkModel networkModel) {
+ AsyncQuery getProvidersQuery = new AsyncQuery();
+ getProvidersQuery.asyncCallback = new INewAsyncCallback() {
+ @Override
+ public void onSuccess(Object model, Object result)
+ {
+ ArrayList<Provider> providers = (ArrayList<Provider>) result;
+ providers.add(0, null);
+ networkModel.getExternalProviders().setItems(providers);
+ networkModel.getExternalProviders().setSelectedItem(null);
+ networkModel.stopProgress();
+ }
+ };
+ AsyncDataProvider.GetAllProviders(getProvidersQuery);
+ }
+
private StoragePool findDc(Guid dcId, List<StoragePool> dataCenters) {
for (StoragePool dc : dataCenters) {
if (dcId.equals(dc.getId())) {
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
index e18622b..0c8e014 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/ApplicationConstants.java
@@ -160,6 +160,9 @@
@DefaultStringValue("Description")
String descriptionLabel();
+ @DefaultStringValue("External Provider")
+ String externalProviderLabel();
+
@DefaultStringValue("Comment")
String commentLabel();
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
index 6096fcb..2cd7db2 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/AbstractNetworkPopupPresenterWidget.java
@@ -1,7 +1,6 @@
package org.ovirt.engine.ui.webadmin.section.main.presenter.popup;
import
org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget;
-import org.ovirt.engine.ui.uicommonweb.models.EntityModel;
import org.ovirt.engine.ui.uicommonweb.models.datacenters.NetworkModel;
import org.ovirt.engine.ui.uicompat.Event;
import org.ovirt.engine.ui.uicompat.EventArgs;
@@ -14,10 +13,6 @@
extends AbstractModelBoundPopupPresenterWidget<T, V> {
public interface ViewDef<T extends NetworkModel> extends
AbstractModelBoundPopupPresenterWidget.ViewDef<T> {
-
- void setVLanTagEnabled(boolean flag);
-
- void setMtuEnabled(boolean flag);
void setMessageLabel(String label);
@@ -33,43 +28,6 @@
public void init(final T model) {
// Let the parent do its work
super.init(model);
-
- // Set the enabled/disabled status of the VLAN tag field
- // according to the initial value in the model
- Boolean hasVLanTagValue = (Boolean) model.getHasVLanTag().getEntity();
- getView().setVLanTagEnabled(hasVLanTagValue);
-
- // Listen for changes in the VLAN enable/disable status in order
- // to enable/disable the VLAN tag field accordingly
- model.getHasVLanTag().getEntityChangedEvent().addListener(new
IEventListener() {
- @Override
- public void eventRaised(Event ev, Object sender, EventArgs args) {
- EntityModel hasVLanTagEntity = (EntityModel) sender;
- Boolean hasVLanTagValue = (Boolean)
hasVLanTagEntity.getEntity();
- getView().setVLanTagEnabled(hasVLanTagValue);
- }
- });
-
- // Set the enabled/disabled status of the MTU field
- // according to the initial value in the model
- Boolean hasMtuValue = (Boolean) model.getHasMtu().getEntity();
- getView().setMtuEnabled(hasMtuValue);
-
- // Listen for changes in the MTU enable/disable status in order
- // to enable/disable the MTU field accordingly
- model.getHasMtu().getEntityChangedEvent().addListener(new
IEventListener() {
- @Override
- public void eventRaised(Event ev, Object sender, EventArgs args) {
- EntityModel hasMtuEntity = (EntityModel) sender;
- Boolean hasMtuValue = (Boolean) hasMtuEntity.getEntity();
- getView().setMtuEnabled(hasMtuValue);
-
- // Clear MTU field in case MTU is disabled
- if (!hasMtuValue) {
- model.getMtu().setEntity(null);
- }
- }
- });
// Listen to Properties
model.getPropertyChangedEvent().addListener(new IEventListener() {
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
index 08d3d47..1b52ee8 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.java
@@ -2,6 +2,7 @@
import java.util.ArrayList;
+import org.ovirt.engine.core.common.businessentities.Provider;
import org.ovirt.engine.core.common.businessentities.StoragePool;
import org.ovirt.engine.ui.common.idhandler.WithElementId;
import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView;
@@ -70,6 +71,11 @@
public EntityModelTextBoxEditor descriptionEditor;
@UiField(provided = true)
+ @Path(value = "externalProviders.selectedItem")
+ @WithElementId("externalProviders")
+ public ListModelListBoxEditor<Object> externalProviderEditor;
+
+ @UiField(provided = true)
@Path(value = "isVmNetwork.entity")
public final EntityModelCheckBoxEditor isVmNetworkEditor;
@@ -118,6 +124,12 @@
return ((StoragePool) object).getname();
}
});
+ externalProviderEditor = new ListModelListBoxEditor<Object>(new
NullSafeRenderer<Object>() {
+ @Override
+ public String renderNullSafe(Object object) {
+ return ((Provider) object).getName();
+ }
+ });
isVmNetworkEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
vlanTagging = new EntityModelCheckBoxEditor(Align.RIGHT);
hasMtuEditor = new EntityModelCheckBoxEditor(Align.RIGHT);
@@ -134,6 +146,7 @@
assignLabel.setText(constants.networkPopupAssignLabel());
nameEditor.setLabel(constants.nameLabel());
descriptionEditor.setLabel(constants.descriptionLabel());
+ externalProviderEditor.setLabel(constants.externalProviderLabel());
isVmNetworkEditor.setLabel(constants.vmNetworkLabel());
vlanTagging.setLabel(constants.enableVlanTagLabel());
hasMtuEditor.setLabel(constants.overrideMtuLabel());
@@ -156,16 +169,6 @@
@Override
public void focusInput() {
nameEditor.setFocus(true);
- }
-
- @Override
- public void setVLanTagEnabled(boolean flag) {
- vlanTag.setEnabled(flag);
- }
-
- @Override
- public void setMtuEnabled(boolean flag) {
- mtuEditor.setEnabled(flag);
}
@Override
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
index 1db3e01..62b6a4c 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/AbstractNetworkPopupView.ui.xml
@@ -57,6 +57,7 @@
<e:ListModelListBoxEditor
ui:field="dataCenterEditor"/>
<e:EntityModelTextBoxEditor
ui:field="nameEditor" />
<e:EntityModelTextBoxEditor
ui:field="descriptionEditor" />
+ <e:ListModelListBoxEditor
ui:field="externalProviderEditor"/>
<g:HorizontalPanel>
<e:EntityModelCheckBoxEditor ui:field="vlanTagging"/>
<e:EntityModelTextBoxOnlyEditor ui:field="vlanTag" />
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
index d6bd4f6..8bade6d 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/cluster/NewClusterNetworkPopupView.java
@@ -35,6 +35,7 @@
super.updateVisibility();
messageLabel.setVisible(true);
dataCenterEditor.setVisible(false);
+ externalProviderEditor.setVisible(false);
}
}
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
index f76c500..63b1318 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditDataCenterNetworkPopupView.java
@@ -15,11 +15,13 @@
ApplicationResources resources,
ApplicationConstants constants, ApplicationTemplates templates) {
super(eventBus, resources, constants, templates);
+ mainPanel.setHeight("290px"); //$NON-NLS-1$
}
@Override
public void updateVisibility() {
super.updateVisibility();
dataCenterEditor.setVisible(false);
+ externalProviderEditor.setVisible(false);
}
}
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
index ad64c01..99d3c49 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/EditNetworkPopupView.java
@@ -25,7 +25,7 @@
ApplicationConstants constants,
ApplicationTemplates templates) {
super(eventBus, resources, constants, templates);
- mainPanel.setHeight("290px"); //$NON-NLS-1$
+ mainPanel.setHeight("310px"); //$NON-NLS-1$
driver.initialize(this);
}
diff --git
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
index e1e85dd..ed2ed2d 100644
---
a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
+++
b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/datacenter/NewDataCenterNetworkPopupView.java
@@ -22,5 +22,6 @@
public void updateVisibility() {
super.updateVisibility();
dataCenterEditor.setVisible(false);
+ externalProviderEditor.setVisible(false);
}
}
--
To view, visit http://gerrit.ovirt.org/16031
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: If3c1be4c9ff5daac716c3ea8f11e97583f90a074
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Lior Vernia <[email protected]>
Gerrit-Reviewer: Alona Kaplan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches