Gilad Chaplik has posted comments on this change.

Change subject: webadmin: Import VM dialog redesign (#845947)
......................................................................


Patch Set 2: Verified

(31 inline comments)

....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportVmCommand.java
Line 981:             jobProperties = super.getJobMessageProperties();
Line 982:             jobProperties.put(VdcObjectType.VM.name().toLowerCase(),
Line 983:                     (getVmName() == null) ? "" : getVmName());
Line 984:             
jobProperties.put(VdcObjectType.VdsGroups.name().toLowerCase(), 
getVdsGroupName());
Line 985:             jobProperties.put(VdcObjectType.StoragePool.name(), 
getStoragePoolName());
Done
Line 986:         }
Line 987:         return jobProperties;
Line 988:     }
Line 989: 


Line 1007:     }
Line 1008: 
Line 1009:     private List<StorageQuotaValidationParameter> 
getStorageQuotaListParameters() {
Line 1010:         List<StorageQuotaValidationParameter> list = new 
ArrayList<StorageQuotaValidationParameter>();
Line 1011:         for (Disk disk : 
getParameters().getVm().getDiskMap().values()) {
Done
Line 1012:             if(disk instanceof DiskImage){
Line 1013:                 DiskImage diskImage = (DiskImage)disk;
Line 1014:                 list.add(new 
StorageQuotaValidationParameter(diskImage.getQuotaId(),
Line 1015:                         
imageToDestinationDomainMap.get(diskImage.getId()),


....................................................
File 
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
Line 473: IMPORTEXPORT_EXPORT_VM=Vm ${VmName} was exported successfully to 
${StorageDomainName}
Line 474: IMPORTEXPORT_EXPORT_VM_FAILED=Failed to export Vm ${VmName} to 
${StorageDomainName}
Line 475: IMPORTEXPORT_STARTING_IMPORT_VM=Starting to import Vm ${VmName} to 
${StoragePoolName}
Line 476: IMPORTEXPORT_IMPORT_VM=Vm ${VmName} was imported successfully to 
${StoragePoolName}
Line 477: IMPORTEXPORT_IMPORT_VM_FAILED=Failed to import Vm ${VmName} to 
${StoragePoolName}
who said?
Line 478: IMPORTEXPORT_STARTING_EXPORT_TEMPLATE=Starting to export Template 
${VmTemplateName} to ${StorageDomainName}
Line 479: IMPORTEXPORT_EXPORT_TEMPLATE=Template ${VmTemplateName} was exported 
successfully to ${StorageDomainName}
Line 480: IMPORTEXPORT_EXPORT_TEMPLATE_FAILED=Failed to export Template 
${VmTemplateName} to ${StorageDomainName}
Line 481: IMPORTEXPORT_STARTING_IMPORT_TEMPLATE=Starting to import Template 
${VmTemplateName} to ${StoragePoolName}


....................................................
Commit Message
Line 3: AuthorDate: 2012-08-15 09:08:46 +0300
Line 4: Commit:     Gilad Chaplik <[email protected]>
Line 5: CommitDate: 2012-08-19 12:58:09 +0300
Line 6: 
Line 7: webadmin: Import VM dialog redesign (#845947)
Done, removed backend stuff from this patch.
Line 8: 
Line 9: https://bugzilla.redhat.com/845947
Line 10: https://bugzilla.redhat.com/827097
Line 11: https://bugzilla.redhat.com/848933


Line 19: - includes a dialog for conflicting vm (vm that already exist in
Line 20: the system)
Line 21: - refactoring the way the dialog works (fetching all the data when 
dialog loads)
Line 22: - fixing paper cuts bug in the dialog (mainly wrong messages)
Line 23: - adding quota according to multiple storage domain (per disk)
not sure I can do it.
Line 24: 
Line 25: Change-Id: I1b6551b235c66e6a32db0f8842cd8e410d6e0318


....................................................
File 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
Line 55: 
Line 56:     @DefaultStringValue("Storage")
Line 57:     String singleDestinationStorage();
Line 58: 
Line 59:     @DefaultStringValue("Default Storage")
didn't quite get you
Line 60:     String defaultStorage();
Line 61: 
Line 62:     @DefaultStringValue(" and Quota")
Line 63:     String singleQuota();


....................................................
File 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/storage/VmBackupModel.java
Line 165:                 getEntity().getId());
Line 166:     }
Line 167: 
Line 168:     @Override
Line 169:     protected void Restore() {
I don't see any relation between method name to the name displayed in UI.
can be in clean-up.
Line 170:         super.Restore();
Line 171: 
Line 172:         if (getWindow() != null) {
Line 173:             return;


Line 210:         }
Line 211:         cloneVmMap = new HashMap<Guid, VM>();
Line 212: 
Line 213:         vmsInSetupMap = new HashMap<Guid, VM>();
Line 214:         if (importModel.hasVmInSystem()) {
Done, removed 'if'
Line 215:             for (VM vm : (ArrayList<VM>) importModel.getItems()) {
Line 216:                 if (importModel.isObjectInSetup(vm)) {
Line 217:                     vmsInSetupMap.put(vm.getId(), vm);
Line 218:                 }


Line 220:         }
Line 221:         excuteImportClone();
Line 222:     }
Line 223: 
Line 224:     private void excuteImportClone() {
Done
Line 225:         if (vmsInSetupMap.size() == 0) {
Line 226:             excuteImport();
Line 227:             return;
Line 228:         }


Line 223: 
Line 224:     private void excuteImportClone() {
Line 225:         if (vmsInSetupMap.size() == 0) {
Line 226:             excuteImport();
Line 227:             return;
no, there are 2 flows for this code:
1) onRestore (click ok in the import dialog)
1) onClone (click ok in the conflict dialog)

therefore it should be here.
Line 228:         }
Line 229:         ImportCloneModel entity = new ImportCloneModel();
Line 230:         VM vm = (VM) vmsInSetupMap.values().toArray()[0];
Line 231:         entity.setEntity(vm);


Line 225:         if (vmsInSetupMap.size() == 0) {
Line 226:             excuteImport();
Line 227:             return;
Line 228:         }
Line 229:         ImportCloneModel entity = new ImportCloneModel();
I've created some-kind of a loop (on vmsInSetupMap.size()) once we deal with a 
vm in the map, we remove if from the map, and continue handling till the map is 
empty.
Line 230:         VM vm = (VM) vmsInSetupMap.values().toArray()[0];
Line 231:         entity.setEntity(vm);
Line 232:         entity.setTitle("Import Virtual Machine Conflict"); 
//$NON-NLS-1$
Line 233:         entity.setHashName("import_virtual_machine_conflict"); 
//$NON-NLS-1$


Line 248:         ImportCloneModel cloneModel = (ImportCloneModel) 
getConfirmWindow();
Line 249:         if ((Boolean) cloneModel.getApplyToAll().getEntity()) {
Line 250:             if (!(Boolean) cloneModel.getNoClone().getEntity()) {
Line 251:                 String suffix = (String) 
cloneModel.getSuffix().getEntity();
Line 252:                 if (!validateSuffix(suffix, cloneModel.getSuffix())) {
future?
Line 253:                     return;
Line 254:                 }
Line 255:                 for (VM vm : vmsInSetupMap.values()) {
Line 256:                     vm.setvm_name(vm.getvm_name() + suffix);


Line 261:         } else {
Line 262:             VM vm = (VM) cloneModel.getEntity();
Line 263:             if (!(Boolean) cloneModel.getNoClone().getEntity()) {
Line 264:                 String vmName = (String) 
cloneModel.getName().getEntity();
Line 265:                 if (!validateVmName(vmName, vm.getos(), 
cloneModel.getName())) {
iiuc, it's already supported
Line 266:                     return;
Line 267:                 }
Line 268: 
Line 269:                 vm.setvm_name(vmName);


....................................................
File 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportData.java
Line 42:         this.selectedQuota = selectedQuota;
Line 43:     }
Line 44: 
Line 45:     public VolumeType getSelectedVolumeType() {
Line 46:         if (!(Boolean) collapseSnapshots.getEntity() || 
selectedVolumeType == null) {
this is the get method, and not the set, if it returns 'null' we return the 
default
Line 47:             return getVolumeType();
Line 48:         }
Line 49:         return selectedVolumeType;
Line 50:     }


Line 64:         this.storageDomains = storageDomains;
Line 65:     }
Line 66: 
Line 67:     public storage_domains getSelectedStorageDomain() {
Line 68:         if (selectedStorageDomain == null && 
!storageDomains.isEmpty()) {
it can empty no sure if null... (having a null check is always better than no 
check at all).
Line 69:             selectedStorageDomain = storageDomains.get(0);
Line 70:         }
Line 71: 
Line 72:         return selectedStorageDomain;


Line 76:         this.selectedStorageDomain = selectedStorageDomain;
Line 77:     }
Line 78: 
Line 79:     public void setSelectedStorageDomainString(String value) {
Line 80:         for (storage_domains storageDomain : getStorageDomains()) {
afaik, it can't be null
Line 81:             if (storageDomain.getstorage_name().equals(value)) {
Line 82:                 setSelectedStorageDomain(storageDomain);
Line 83:                 break;
Line 84:             }


....................................................
File 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/ImportVmModel.java
Line 148:         super.setSelectedItem(value);
Line 149:         OnEntityChanged();
Line 150:     }
Line 151: 
Line 152:     public boolean hasVmInSystem() {
done
Line 153:         if (alreadyInSystemVmMap == null || 
alreadyInSystemVmMap.size() == 0) {
Line 154:             return false;
Line 155:         }
Line 156:         return true;


Line 173:             @Override
Line 174:             public void OnSuccess(Object model, Object returnValue) {
Line 175:                 ArrayList<storage_pool> pools = 
(ArrayList<storage_pool>) returnValue;
Line 176:                 storage_pool dataCenter = null;
Line 177:                 if (pools != null && pools.size() > 0) {
Done
Line 178:                     dataCenter = pools.get(0);
Line 179:                 } else {
Line 180:                     //TODO internal client ERROR
Line 181:                 }


Line 213:                                             }
Line 214:                                         }
Line 215: 
Line 216:                                         
getStorage().setItems(filteredStorageDomain);
Line 217:                                         if (hasQuota) {
Done
Line 218:                                             ArrayList<VdcQueryType> 
queryTypeList = new ArrayList<VdcQueryType>();
Line 219:                                             
ArrayList<VdcQueryParametersBase> queryParamsList =
Line 220:                                                     new 
ArrayList<VdcQueryParametersBase>();
Line 221:                                             for (storage_domains 
storage : filteredStorageDomain) {


Line 270:         setMessage(isDefaultStorageApplicableForAllDisks ? "" :
Line 271:                 
ConstantsManager.getInstance().getConstants().importNotApplicableForDefaultStorage());
Line 272:     }
Line 273: 
Line 274:     private void checkForProblematicItems() {
Done
Line 275:         for (Object item : getItems()) {
Line 276:             VM vm = (VM) item;
Line 277:             if (vm.getDiskMap() != null) {
Line 278:                 for (Map.Entry<Guid, Disk> pair : 
vm.getDiskMap().entrySet()) {


Line 282:                             && getDiskImportData(disk.getId()) != null
Line 283:                             && 
(getDiskImportData(disk.getId()).getSelectedStorageDomain()
Line 284:                                     .getstorage_type() == 
StorageType.ISCSI ||
Line 285:                             
getDiskImportData(disk.getId()).getSelectedStorageDomain()
Line 286:                                     .getstorage_type() == 
StorageType.FCP)) {
Done
Line 287:                         getProblematicItems().add(vm);
Line 288:                         break;
Line 289:                     }
Line 290:                 }


Line 283:                             && 
(getDiskImportData(disk.getId()).getSelectedStorageDomain()
Line 284:                                     .getstorage_type() == 
StorageType.ISCSI ||
Line 285:                             
getDiskImportData(disk.getId()).getSelectedStorageDomain()
Line 286:                                     .getstorage_type() == 
StorageType.FCP)) {
Line 287:                         getProblematicItems().add(vm);
?
Line 288:                         break;
Line 289:                     }
Line 290:                 }
Line 291:             }


Line 290:                 }
Line 291:             }
Line 292:         }
Line 293:         if (getProblematicItems().size() > 0) {
Line 294:             if (getProblematicItems().size() == 
Linq.Count(getItems())) {
Done
Line 295:                 // All items are problematic.
Line 296:                 getCollapseSnapshots().setEntity(true);
Line 297:                 getCollapseSnapshots().setIsChangable(false);
Line 298: 


Line 311: 
Line 312:     private void initDisksStorageDomainsList() {
Line 313:         for (Object item : getItems()) {
Line 314:             VM vm = (VM) item;
Line 315:             if (!NGuid.Empty.equals(vm.getvmt_guid())) {
future? or derez (I'm not going to change that)
Line 316:                 templateDiskMap.put(vm.getvmt_guid(), new 
ArrayList<Disk>(vm.getDiskMap().values()));
Line 317:             } else {
Line 318:                 for (Disk disk : vm.getDiskMap().values()) {
Line 319:                     DiskImage diskImage = (DiskImage) disk;


Line 312:     private void initDisksStorageDomainsList() {
Line 313:         for (Object item : getItems()) {
Line 314:             VM vm = (VM) item;
Line 315:             if (!NGuid.Empty.equals(vm.getvmt_guid())) {
Line 316:                 templateDiskMap.put(vm.getvmt_guid(), new 
ArrayList<Disk>(vm.getDiskMap().values()));
shouldn't be null, if so that's a bug.
Line 317:             } else {
Line 318:                 for (Disk disk : vm.getDiskMap().values()) {
Line 319:                     DiskImage diskImage = (DiskImage) disk;
Line 320:                     setDiskImportData(diskImage.getId(),


Line 317:             } else {
Line 318:                 for (Disk disk : vm.getDiskMap().values()) {
Line 319:                     DiskImage diskImage = (DiskImage) disk;
Line 320:                     setDiskImportData(diskImage.getId(),
Line 321:                             filteredStorageDomain, 
diskImage.getvolume_type());
Done
Line 322:                 }
Line 323:             }
Line 324:         }
Line 325:         if (!templateDiskMap.isEmpty()) {


Line 490:                         List<VM> vmList =
Line 491:                                 (List<VM>) ((VdcQueryReturnValue) 
returnValue).getReturnValue();
Line 492:                         alreadyInSystemVmMap = new HashMap<Guid, 
VM>();
Line 493:                         for (VM vm : vmList) {
Line 494:                             alreadyInSystemVmMap.put(vm.getId(), vm);
we can open a bug for it (discuss with PM)
I've changed my mind.
Line 495:                         }
Line 496: 
Line 497:                         setSuperItems(value);
Line 498:                     }


Line 518:     public boolean isObjectInSetup(Object vm) {
Line 519:         if (alreadyInSystemVmMap == null) {
Line 520:             return false;
Line 521:         }
Line 522:         return alreadyInSystemVmMap.containsKey(((VM) vm).getId());
same.
Line 523:     }
Line 524: 
Line 525:     public boolean isQuotaEnabled() {
Line 526:         return getStoragePool() != null


....................................................
File 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmImportDiskListModel.java
Line 51: 
Line 52:     public void setDiskStorageMap(HashMap<Guid, ArrayList<Guid>> value)
Line 53:     {
Line 54:         diskStorageMap = value;
Line 55:         raiseDiskEvent();
Done
Line 56:     }
Line 57: 
Line 58:     public void raiseDiskEvent() {
Line 59:         OnPropertyChanged(new 
PropertyChangedEventArgs("DiskStorageMap")); //$NON-NLS-1$


....................................................
File 
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/Constants.java
Line 1481: 
Line 1482:     @DefaultStringValue("Unassigned Logical Networks panel")
Line 1483:     String unassignedLogicalNetworksPanel();
Line 1484: 
Line 1485:     @DefaultStringValue("Some Templates' disks which are missing. 
Suggested solutions: "
future
Line 1486:             + "1. Preserving Template-Based structure - "
Line 1487:             + "Make sure the relevant Templates exist on the 
relevant Data-Center and Import the VMs again."
Line 1488:             + "2. Using non-Template-Based structure (less optimal 
storage-wise) - "
Line 1489:             + "Export the VMs again using the Collapse Snapshots 
option.")


....................................................
File 
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/storage/backup/ImportVmPopupView.java
Line 177:                 @Override
Line 178:                 public void onSelection(SelectionEvent<Integer> 
event) {
Line 179:                     if (object != null) {
Line 180:                         
object.setActiveDetailModel(object.getDetailModels().get(event.getSelectedItem()));
Line 181:                         if (event.getSelectedItem() == 2) {
Done
Line 182:                             generalView.setMainTabSelectedItem((VM) 
object.getSelectedItem());
Line 183:                         }
Line 184:                     }
Line 185:                 }


--
To view, visit http://gerrit.ovirt.org/7313
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: I1b6551b235c66e6a32db0f8842cd8e410d6e0318
Gerrit-PatchSet: 2
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Gilad Chaplik <[email protected]>
Gerrit-Reviewer: Ayal Baron <[email protected]>
Gerrit-Reviewer: Daniel Erez <[email protected]>
Gerrit-Reviewer: Gilad Chaplik <[email protected]>
Gerrit-Reviewer: Greg Padgett <[email protected]>
Gerrit-Reviewer: Haim Ateya <[email protected]>
Gerrit-Reviewer: Maor Lipchuk <[email protected]>
Gerrit-Reviewer: Tal Nisan <[email protected]>
Gerrit-Reviewer: oVirt Jenkins CI Server
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to