Thanks Doron & Vojetch & Itamar, we will update our design wiki page ASAP, and also, REST API is in pipeline.
Best Regards, Dave Chen > -----Original Message----- > From: Doron Fediuck [mailto:dfedi...@redhat.com] > Sent: Tuesday, March 12, 2013 10:13 PM > To: Chen, Wei D > Cc: engine-devel@ovirt.org; Vojtech Szocs; Itamar Heim > Subject: Re: [Engine-devel] Got some troubles when I want to modify oVirt GUI > > > > ----- Original Message ----- > > From: "Itamar Heim" <ih...@redhat.com> > > To: "Vojtech Szocs" <vsz...@redhat.com> > > Cc: engine-devel@ovirt.org > > Sent: Tuesday, March 12, 2013 3:30:57 PM > > Subject: Re: [Engine-devel] Got some troubles when I want to modify > > oVirt GUI > > > > On 03/12/2013 12:57 PM, Vojtech Szocs wrote: > > > Hi, > > > > > > first of all, did you consider submitting this as RFE in oVirt > > > bugzilla? Maybe it could be useful to have it in oVirt. > > > (Implementing this via UI plugin would be far too complicated, as UI > > > code is tightly coupled with UiCommon code in case of VM dialog.)> > > > > my understanding this is a full blown feature, not a plugin. > > > > Wei D - please note UI is to help the user to not make mistakes, but > > validations must also happen at engine side to cover rest api, etc. > > > > +1. > Also, a detailed wiki page may help both developer and readers to get a better > understanding of how it should look and work. > For example, how do you plan to implement the REST API changes? > > Wei D, I know that Gang Wei started: > http://www.ovirt.org/Trusted_compute_pools But as you can see, it does not > mention your original intention to implement the UI as a plugin, while as you > can see it would be better to have it as an internal UI addition. Also, as > mentioned REST parts are missing and a more detailed design for the engine is > missing here. > > Wei D, is there a reason why not top have a detailed page similar > to: http://www.ovirt.org/Features/Watchdog_engine_support ? > > > > > > Regarding UI code changes, the general idea is to implement business > > > logic in UiCommon models (VmListModel, UnitVmModel, etc.) and have > > > UI code bind to these models. It would be best if you just send a > > > patch (diff) instead of specific files, it's really hard to see what > > > changes you made, but based on the files you sent, here are my > > > comments: > > > > > > * Changes in UnitVmModel look good, you basically added two new > > > fields [privateRunVMOnSpecificHost, privateRunVMOnTrustedHost], > > > hooked up their *_EntityChanged methods, and implemented logic for > > > handling field value changes in these methods > > > > > > * Changes in VmListModel look good, you used newly added UnitVmModel > > > fields in onSave [I assume setTrustedHostFlag/setDedicatedVmForVds > > > are new fields for VM entity?], note - you might also want to update > > > UpdateActionAvailability disable migrating VM when > > > RunVMOnTrustedHost=true, etc. > > > > > > * AbstractVmPopupWidget already has specificHost radio button & > > > drop-down on Host dialog tab, and I assume you want to reuse the > > > drop-down (host list) for trustedHost, so just add new radio button > > > there: > > > > > > AbstractVmPopupWidget.ui.xml line 331 > > > > > > <g:HorizontalPanel verticalAlignment='ALIGN_MIDDLE'> > > > <g:RadioButton name="specificOrTrustedHostGroup" > > > ui:field="specificHost" > > > addStyleNames="{style.radioButtonSpecificHost}" /> > > > <g:RadioButton name="specificOrTrustedHostGroup" > > > ui:field="trustedHost" > > > addStyleNames="{style.radioButtonSpecificHost}" /> > > > <g:Label ui:field="specificHostLabel" > > > text="{constants.specificVmPopup}" /> > > > <e:ListModelListBoxEditor ui:field="defaultHostEditor" /> > > > </g:HorizontalPanel> > > > > > > * In AbstractVmPopupWidget you to bind newly added RadioButton: > > > > > > @UiField(provided = true) > > > @Ignore > > > @WithElementId("trustedHost") > > > public RadioButton trustedHost; > > > > > > You create trustedHost widget in constructor, and in > > > initTabAvailabilityListeners you just add > > > trustedHost.addValueChangeHandler(...) to have logic when > > > trustedHost gets selected. > > > > > > Regards, > > > Vojtech > > > > > > > > > ----- Original Message ----- > > > From: "Wei D Chen" <wei.d.c...@intel.com> > > > To: engine-devel@ovirt.org > > > Sent: Tuesday, March 12, 2013 9:48:34 AM > > > Subject: [Engine-devel] Got some troubles when I want to modify > > > oVirt GUI > > > > > > Hi, > > > In order to add new feature to Ovirt, that is user can choose > > > virtual machine whether on trusted machine or not when it runs > > > up, we modified the relative files. > > > Our goal is when the user click the trusted button, Run/Migration > > > options are disabled. But unfortunately, we haven’t succeeded in > > > graphic interface. > > > I modified these files, I can’t see Host Tab, can you give me some > > > help? Maybe we need modify more files. We did the following > > > efforts: > > > (1) add a trusted radio button. > > > (2) Modify AbstractVmPopupWidget.ui.xml <g:HorizontalPanel > > > verticalAlignment='ALIGN_MIDDLE'> > > > <g:RadioButton ui:field="runVMOnTrustedHost"/> > > > <e:EntityModelRadioButtonEditor width="150px" > > > ui:field="runVMOnTrustedHostEditor" > > > addStyleNames="{style.radioButton}" /> > > > </g:HorizontalPanel> > > > (3) Modify AbstractVmPopupWidget.java @UiField(provided = true) > > > @Path(value = "runVMOnTrustedHost.entity") > > > @WithElementId("runVMOnTrustedHost") > > > public EntityModelRadioButtonEditor runVMOnTrustedHostEditor; > > > > > > initListeners method: > > > object.getIsAutoAssign().getPropertyChangedEvent().addListener(new > > > IEventListener() { > > > @Override > > > public void eventRaised(Event ev, Object sender, > > > EventArgs args) { > > > boolean isAutoAssign = (Boolean) > > > object.getIsAutoAssign().getEntity(); > > > boolean runVMOnTrustedHost = (Boolean) > > > object.getRunVMOnTrustedHost().getEntity(); > > > defaultHostEditor.setEnabled(!isAutoAssign && > > > !runVMOnTrustedHost); > > > //defaultHostEditor.setEnabled(!isAutoAssign); > > > // only this is not bind to the model, so needs to > > > listen to the change explicitly > > > specificHost.setValue(!isAutoAssign && > > > !runVMOnTrustedHost); > > > //specificHost.setValue(!isAutoAssign); > > > } > > > }); > > > isAutoAssignEditor.addDomHandler(new ClickHandler() { > > > @Override > > > public void onClick(ClickEvent event) { > > > defaultHostEditor.setEnabled(false); > > > } > > > }, ClickEvent.getType()); > > > > vm.getIsAutoAssign().getEntityChangedEvent().addListener(new > > > IEventListener() { > > > @Override > > > public void eventRaised(Event ev, Object sender, > > > EventArgs args) { > > > if (!isAutoAssignEditor.asRadioButton().getValue() > > > && > > > !runVMOnTrustedHostEditor.asRadioButton().getValu > e()) > > > { > > > specificHost.setValue(true, true); > > > } > > > } > > > }); > > > runVMOnTrustedHostEditor.addDomHandler(new > ClickHandler() > > > { > > > @Override > > > public void onClick(ClickEvent event) { > > > defaultHostEditor.setEnabled(false); > > > } > > > }, ClickEvent.getType()); > > > > vm.getRunVMOnTrustedHost().getEntityChangedEvent().addListener(new > > > IEventListener() { > > > @Override > > > public void eventRaised(Event ev, Object sender, > > > EventArgs args) { > > > if > > > > (!runVMOnTrustedHostEditor.asRadioButton().getValue() > > > && > > > !isAutoAssignEditor.asRadioButton().getValue()) > > > { > > > specificHost.setValue(true, true); > > > } > > > } > > > }); > > > (4) Modify UnitVmModel.java > > > private void RunVMOnTrustedHost_EntityChanged(Object sender, > > > EventArgs args) > > > { > > > if ((Boolean) getRunVMOnTrustedHost().getEntity() == true) > > > { > > > clearAndDisable(getRunVMOnSpecificHost()); > > > clearAndDisable(getHostCpu()); > > > } > > > else > > > { > > > getRunVMOnSpecificHost().setIsChangable(true); > > > } > > > behavior.updateCpuPinningVisibility(); > > > } > > > > > > > > > _______________________________________________ > > > Engine-devel mailing list > > > Engine-devel@ovirt.org > > > http://lists.ovirt.org/mailman/listinfo/engine-devel > > > _______________________________________________ > > > Engine-devel mailing list > > > Engine-devel@ovirt.org > > > http://lists.ovirt.org/mailman/listinfo/engine-devel > > > > > > > _______________________________________________ > > Engine-devel mailing list > > Engine-devel@ovirt.org > > http://lists.ovirt.org/mailman/listinfo/engine-devel > > _______________________________________________ Engine-devel mailing list Engine-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-devel