anmolbabu has uploaded a new change for review. Change subject: webadmin : Create Geo-rep pop up ......................................................................
webadmin : Create Geo-rep pop up Create Geo-rep pop up Change-Id: Ied7317d456bf66db9a7800ba7106f2e8ec66429c Signed-off-by: Anmol Babu <anb...@redhat.com> --- A frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/GlusterVolumeGeoRepCreateModel.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepListModel.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/gin/PresenterModule.java M frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VolumeModule.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupPresenterWidget.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupView.java A frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupView.ui.xml 8 files changed, 288 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/91/29691/1 diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/GlusterVolumeGeoRepCreateModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/GlusterVolumeGeoRepCreateModel.java new file mode 100644 index 0000000..f745a73 --- /dev/null +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/GlusterVolumeGeoRepCreateModel.java @@ -0,0 +1,84 @@ +package org.ovirt.engine.ui.uicommonweb.models.gluster; + +import org.ovirt.engine.ui.uicommonweb.ICommandTarget; +import org.ovirt.engine.ui.uicommonweb.UICommand; +import org.ovirt.engine.ui.uicommonweb.models.EntityModel; +import org.ovirt.engine.ui.uicommonweb.models.Model; + +public class GlusterVolumeGeoRepCreateModel extends Model{ + + private UICommand selectVolumesCommand; + private EntityModel<String> slaveHostIp; + private EntityModel<String> slaveVolume; + private EntityModel<String> slaveHostRootPassword; + + public GlusterVolumeGeoRepCreateModel() { + init(); + setAvailabilities(); + } + + private void setAvailabilities() { + getSlaveHostIp().setIsAvailable(true); + getSlaveVolume().setIsAvailable(true); + getSlaveHostRootPassword().setIsAvailable(true); + getSelectVolumesCommand().setIsExecutionAllowed(true); + } + + private void init() { + setSlaveHostIp(new EntityModel<String>()); + setSlaveVolume(new EntityModel<String>()); + setSlaveHostRootPassword(new EntityModel<String>()); + setSelectVolumesCommand(new UICommand("selectedVolumesCommand", new ICommandTarget() { //$NON-NLS-1$ + + @Override + public void executeCommand(UICommand uiCommand, Object... parameters) { + showVolumes(); + } + + @Override + public void executeCommand(UICommand command) { + showVolumes(); + } + })); + } + + private void showVolumes() { + + } + + public boolean validate() { + return true; + } + + public UICommand getSelectVolumesCommand() { + return selectVolumesCommand; + } + + public void setSelectVolumesCommand(UICommand selectVolumesCommand) { + this.selectVolumesCommand = selectVolumesCommand; + } + + public EntityModel<String> getSlaveHostIp() { + return slaveHostIp; + } + + public void setSlaveHostIp(EntityModel<String> slaveHostIp) { + this.slaveHostIp = slaveHostIp; + } + + public EntityModel<String> getSlaveVolume() { + return slaveVolume; + } + + public void setSlaveVolume(EntityModel<String> slaveVolume) { + this.slaveVolume = slaveVolume; + } + + public EntityModel<String> getSlaveHostRootPassword() { + return slaveHostRootPassword; + } + + public void setSlaveHostRootPassword(EntityModel<String> slaveHostRootPassword) { + this.slaveHostRootPassword = slaveHostRootPassword; + } +} diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepListModel.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepListModel.java index 1ecaa71..d4866d6 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepListModel.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/gluster/VolumeGeoRepListModel.java @@ -5,6 +5,7 @@ import org.ovirt.engine.ui.uicommonweb.help.HelpTag; import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; +import org.ovirt.engine.ui.uicompat.UIConstants; public class VolumeGeoRepListModel extends SearchableListModel{ @@ -15,6 +16,7 @@ private UICommand sessionOptionsCommand; private UICommand viewSessionDetailsCommand; + private UIConstants constants; private GlusterVolumeEntity volumeEntity; @Override @@ -24,7 +26,8 @@ public VolumeGeoRepListModel() { super(); - setTitle(ConstantsManager.getInstance().getConstants().geoReplicationTitle()); + constants = ConstantsManager.getInstance().getConstants(); + setTitle(constants.geoReplicationTitle()); setHelpTag(HelpTag.geo_replication); setHashName("geo_replication");//$NON-NLS-1$ setNewSessionCommand(new UICommand("createNewSession", this));//$NON-NLS-1$ @@ -147,10 +150,36 @@ } else if(command.equals(getViewSessionDetailsCommand())) { + } else if(command.getName().equals("cancel")) { + setWindow(null); + } else if(command.getName().equals("createGeoRepSession")) { + onCreateGeoRepSession(); } } - private void createNewGeoRepSession() { + private void onCreateGeoRepSession() { + GlusterVolumeEntity volumeEntity = getVolumeEntity(); + GlusterVolumeGeoRepCreateModel geoRepCreateModel = (GlusterVolumeGeoRepCreateModel) getWindow(); + String slaveNode = geoRepCreateModel.getSlaveHostIp().getEntity(); + String slaveNodeRootPassword = geoRepCreateModel.getSlaveHostRootPassword().getEntity(); + String slaveVolume = geoRepCreateModel.getSlaveVolume().getEntity(); + } + private void createNewGeoRepSession() { + if(getWindow() != null) { + return; + } + GlusterVolumeGeoRepCreateModel geoRepCreateModel = new GlusterVolumeGeoRepCreateModel(); + setWindow(geoRepCreateModel); + + UICommand okCommand = new UICommand("createGeoRepSession", this);//$NON-NLS-1$ + okCommand.setTitle(constants.ok()); + okCommand.setIsDefault(true); + geoRepCreateModel.getCommands().add(okCommand); + + UICommand cancelCommand = new UICommand("cancel", this);//$NON-NLS-1$ + cancelCommand.setTitle(constants.cancel()); + cancelCommand.setIsCancel(true); + geoRepCreateModel.getCommands().add(cancelCommand); } } 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 dc2f117..b09d15e 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 @@ -3773,4 +3773,16 @@ @DefaultStringValue("Could not fetch brick profile stats") String brickProfileErrorMessage(); + + @DefaultStringValue("Host name (or) IP") + String geoRepSlaveHostIp(); + + @DefaultStringValue("Root Password") + String geoRepSlaveNodeRootPassword(); + + @DefaultStringValue("Volume") + String geoRepSlaveVolume(); + + @DefaultStringValue("Show Volumes") + String selectGeoRepSlaveVolumeButtonLabel(); } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java index 3f2d19c..7628740 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/PresenterModule.java @@ -41,6 +41,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.AddBrickPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.BrickAdvancedDetailsPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.DetachGlusterHostsPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.GlusterVolumeGeoRepCreateSessionPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.RemoveBrickPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.RemoveBrickStatusPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.ReplaceBrickPopupPresenterWidget; @@ -269,6 +270,7 @@ import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.AddBrickPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.BrickAdvancedDetailsPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.DetachGlusterHostsPopupView; +import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.GlusterVolumeGeoRepCreateSessionPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.RemoveBrickPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.RemoveBrickStatusPopupView; import org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster.ReplaceBrickPopupView; @@ -1117,6 +1119,10 @@ VolumeRebalanceStatusPopupPresenterWidget.ViewDef.class, VolumeRebalanceStatusPopupView.class); + bindPresenterWidget(GlusterVolumeGeoRepCreateSessionPopupPresenterWidget.class, + GlusterVolumeGeoRepCreateSessionPopupPresenterWidget.ViewDef.class, + GlusterVolumeGeoRepCreateSessionPopupView.class); + bindPresenterWidget(RemoveBrickStatusPopupPresenterWidget.class, RemoveBrickStatusPopupPresenterWidget.ViewDef.class, RemoveBrickStatusPopupView.class); diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VolumeModule.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VolumeModule.java index 95910e2..0f02f74 100644 --- a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VolumeModule.java +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/gin/uicommon/VolumeModule.java @@ -30,6 +30,7 @@ import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.event.EventPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.AddBrickPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.BrickAdvancedDetailsPopupPresenterWidget; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.GlusterVolumeGeoRepCreateSessionPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.RemoveBrickPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.RemoveBrickStatusPopupPresenterWidget; import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.ReplaceBrickPopupPresenterWidget; @@ -147,11 +148,15 @@ @Provides @Singleton - public SearchableDetailModelProvider<GlusterGeoRepSession, VolumeListModel, VolumeGeoRepListModel> getVolumeGeoRepListProvider(EventBus eventBus, Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider) { + public SearchableDetailModelProvider<GlusterGeoRepSession, VolumeListModel, VolumeGeoRepListModel> getVolumeGeoRepListProvider(EventBus eventBus, Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider, final Provider<GlusterVolumeGeoRepCreateSessionPopupPresenterWidget> geoRepPopupProvider) { return new SearchableDetailTabModelProvider<GlusterGeoRepSession, VolumeListModel, VolumeGeoRepListModel>(eventBus, defaultConfirmPopupProvider, VolumeListModel.class, VolumeGeoRepListModel.class) { @Override public AbstractModelBoundPopupPresenterWidget<? extends Model, ?> getModelPopup(VolumeGeoRepListModel source, UICommand lastExecutedCommand, Model windowModel) { - return null; + if(lastExecutedCommand == getModel().getNewSessionCommand()) { + return geoRepPopupProvider.get(); + } else { + return super.getModelPopup(source, lastExecutedCommand, windowModel); + } } }; } diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupPresenterWidget.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupPresenterWidget.java new file mode 100644 index 0000000..95c91ec --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupPresenterWidget.java @@ -0,0 +1,21 @@ +package org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster; + +import org.ovirt.engine.ui.common.presenter.AbstractModelBoundPopupPresenterWidget; +import org.ovirt.engine.ui.common.presenter.popup.DefaultConfirmationPopupPresenterWidget; +import org.ovirt.engine.ui.uicommonweb.models.gluster.GlusterVolumeGeoRepCreateModel; + +import com.google.gwt.event.shared.EventBus; +import com.google.inject.Inject; +import com.google.inject.Provider; + +public class GlusterVolumeGeoRepCreateSessionPopupPresenterWidget extends AbstractModelBoundPopupPresenterWidget<GlusterVolumeGeoRepCreateModel, GlusterVolumeGeoRepCreateSessionPopupPresenterWidget.ViewDef>{ + + @Inject + public GlusterVolumeGeoRepCreateSessionPopupPresenterWidget(EventBus eventBus, ViewDef view, Provider<GlusterVolumeGeoRepCreateSessionPopupPresenterWidget> geoRepPopupProvider, Provider<DefaultConfirmationPopupPresenterWidget> defaultConfirmPopupProvider) { + super(eventBus, view); + } + + public interface ViewDef extends AbstractModelBoundPopupPresenterWidget.ViewDef<GlusterVolumeGeoRepCreateModel> { + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupView.java b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupView.java new file mode 100644 index 0000000..e129e9c --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupView.java @@ -0,0 +1,97 @@ +package org.ovirt.engine.ui.webadmin.section.main.view.popup.gluster; + +import org.ovirt.engine.ui.common.idhandler.ElementIdHandler; +import org.ovirt.engine.ui.common.idhandler.WithElementId; +import org.ovirt.engine.ui.common.view.popup.AbstractModelBoundPopupView; +import org.ovirt.engine.ui.common.widget.UiCommandButton; +import org.ovirt.engine.ui.common.widget.dialog.SimpleDialogPanel; +import org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelPasswordBoxEditor; +import org.ovirt.engine.ui.common.widget.editor.generic.StringEntityModelTextBoxEditor; +import org.ovirt.engine.ui.uicommonweb.models.gluster.GlusterVolumeGeoRepCreateModel; +import org.ovirt.engine.ui.webadmin.ApplicationConstants; +import org.ovirt.engine.ui.webadmin.ApplicationMessages; +import org.ovirt.engine.ui.webadmin.ApplicationResources; +import org.ovirt.engine.ui.webadmin.section.main.presenter.popup.gluster.GlusterVolumeGeoRepCreateSessionPopupPresenterWidget; + +import com.google.gwt.core.client.GWT; +import com.google.gwt.editor.client.SimpleBeanEditorDriver; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.event.shared.EventBus; +import com.google.gwt.uibinder.client.UiBinder; +import com.google.gwt.uibinder.client.UiField; +import com.google.inject.Inject; + +public class GlusterVolumeGeoRepCreateSessionPopupView extends AbstractModelBoundPopupView<GlusterVolumeGeoRepCreateModel> implements GlusterVolumeGeoRepCreateSessionPopupPresenterWidget.ViewDef{ + + interface Driver extends SimpleBeanEditorDriver<GlusterVolumeGeoRepCreateModel, GlusterVolumeGeoRepCreateSessionPopupView> { + } + + interface ViewUiBinder extends UiBinder<SimpleDialogPanel, GlusterVolumeGeoRepCreateSessionPopupView> { + ViewUiBinder uiBinder = GWT.create(ViewUiBinder.class); + } + + interface ViewIdHandler extends ElementIdHandler<GlusterVolumeGeoRepCreateSessionPopupView> { + ViewIdHandler idHandler = GWT.create(ViewIdHandler.class); + } + + @UiField + @Path(value = "slaveHostIp.entity") + @WithElementId + StringEntityModelTextBoxEditor slaveHostIpEditor; + + @UiField + @Path(value = "slaveHostRootPassword.entity") + @WithElementId + StringEntityModelPasswordBoxEditor slaveHostRootPasswordEditor; + + @UiField + @Path(value = "slaveVolume.entity") + @WithElementId + StringEntityModelTextBoxEditor slaveVolumeEditor; + + @UiField + UiCommandButton selectVolumes; + + ApplicationMessages messages; + + ApplicationConstants constants; + + private final Driver driver = GWT.create(Driver.class); + + @Inject + public GlusterVolumeGeoRepCreateSessionPopupView(EventBus eventBus, ApplicationResources resources, ApplicationConstants constants, ApplicationMessages messages) { + super(eventBus, resources); + this.messages = messages; + this.constants = constants; + initWidget(ViewUiBinder.uiBinder.createAndBindUi(this)); + ViewIdHandler.idHandler.generateAndSetIds(this); + localize(); + driver.initialize(this); + } + + private void localize() { + slaveHostIpEditor.setLabel(constants.geoRepSlaveHostIp()); + slaveHostRootPasswordEditor.setLabel(constants.geoRepSlaveNodeRootPassword()); + slaveVolumeEditor.setLabel(constants.geoRepSlaveVolume()); + selectVolumes.setLabel(constants.selectGeoRepSlaveVolumeButtonLabel()); + } + + @Override + public void edit(final GlusterVolumeGeoRepCreateModel object) { + driver.edit(object); + selectVolumes.setCommand(object.getSelectVolumesCommand()); + selectVolumes.addClickHandler(new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + object.getSelectVolumesCommand().execute(); + } + }); + } + + @Override + public GlusterVolumeGeoRepCreateModel flush() { + return driver.flush(); + } + +} diff --git a/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupView.ui.xml b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupView.ui.xml new file mode 100644 index 0000000..63a2392 --- /dev/null +++ b/frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/gluster/GlusterVolumeGeoRepCreateSessionPopupView.ui.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent"> +<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder" + xmlns:g="urn:import:com.google.gwt.user.client.ui" xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog" + xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic" + xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor" + xmlns:w="urn:import:org.ovirt.engine.ui.common.widget"> + + <ui:style> + .tablePanel { + height: 415px; + width: 981px; + padding: 1px; + border: 1px solid #CED8DF; + } + </ui:style> + + <d:SimpleDialogPanel width="200px" height="150px"> + <d:content> + <g:VerticalPanel> + <ge:StringEntityModelTextBoxEditor ui:field="slaveHostIpEditor" /> + <ge:StringEntityModelPasswordBoxEditor ui:field="slaveHostRootPasswordEditor" /> + <g:HorizontalPanel> + <ge:StringEntityModelTextBoxEditor ui:field="slaveVolumeEditor" /> + <w:UiCommandButton ui:field="selectVolumes"/> + </g:HorizontalPanel> + </g:VerticalPanel> + </d:content> + </d:SimpleDialogPanel> +</ui:UiBinder> \ No newline at end of file -- To view, visit http://gerrit.ovirt.org/29691 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ied7317d456bf66db9a7800ba7106f2e8ec66429c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: anmolbabu <anb...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches