Liron Aravot has posted comments on this change.

Change subject: core: Prevent VM migration when SCSI reservation is used
......................................................................


Patch Set 15:

(20 comments)

https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddDiskCommand.java:

Line 417: ());
it can be null, which will lead to a npe.
you can perform the same as was done for ReadOnly.


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MigrateVmCommand.java:

Line 380: );
I'd move this check to be before the other migration checks, as it overrides 
them..so in terms of ux it's clearer.


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmCommand.java:

Line 670: 
this change is unneeded..can be restored.


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateVmDiskCommand.java:

Line 407:                     if (unlockImage && cinderDisk.getImageStatus() == 
ImageStatus.LOCKED) {
Line 408:                         cinderDisk.setImageStatus(ImageStatus.OK);
Line 409:                     }
Line 410:                     getImageDao().update(cinderDisk.getImage());
Line 411:                 } else if (disk.getDiskStorageType() == 
DiskStorageType.LUN) {
as this patch adds another elseif..i'd consider to replace to switch case (can 
be done in a further patch)
Line 412:                     updateLunProperties((LunDisk)getNewDisk());
Line 413:                 }
Line 414: 
Line 415:                 reloadDisks();


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/VmValidator.java:

Line 237: ()));
perhaps it'll be better to aggregate the list of problematic vms and populate 
the message with all of them.


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/storage/DiskValidator.java
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/validator/storage/DiskValidator.java:

Line 199:         // this operation is valid only when attaching disk to VMs
Line 200:         if (vm == null && 
Boolean.TRUE.equals(lunDisk.isUsingScsiReservation())) {
Line 201:             return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_SCSI_RESERVATION_NOT_VALID_FOR_FLOATING_DISK);
Line 202:         }
Line 203:         // reservation is can be enabled only when sgio is unfiltered
/s/is/
Line 204:         if (lunDisk.isUsingScsiReservation() != null && 
lunDisk.isUsingScsiReservation() && lunDisk.getSgio() == 
ScsiGenericIO.FILTERED) {
Line 205:             return new 
ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_SGIO_IS_FILTERED);
Line 206:         }
Line 207: 


Line 204:  
you can use here also Boolean.TRUE.equals()


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddDiskCommandTest.java
File 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/AddDiskCommandTest.java:

Line 605:         LunDisk disk = createISCSILunDisk();
Line 606:         disk.setSgio(sgio);
Line 607:         disk.setUsingScsiReservation(isUsingScsiReservation);
Line 608:         disk.setDiskInterface(diskInterface);
Line 609:         return  disk;
remove one space
Line 610:     }
Line 611: 
Line 612:     @Test
Line 613:     public void 
testIscsiLunCannotBeAddedIfSgioIsFilteredAndScsiReservationEnabled() {


Line 620:         assertFalse("Lun disk added successfully WHILE sgio is 
filtered and scsi reservation is enabled",
Line 621:                 
command.checkIfLunDiskCanBeAdded(spyDiskValidator(disk)));
Line 622:         assertTrue(command.getReturnValue()
Line 623:                 .getCanDoActionMessages()
Line 624:                 
.contains(VdcBllMessages.ACTION_TYPE_FAILED_SGIO_IS_FILTERED.toString()));
replace with verifyCanDoActionMessagesContainMessage
Line 625:     }
Line 626: 
Line 627:     @Test
Line 628:     public void 
testIscsiLunCanBeAddedIfScsiPassthroughEnabledAndScsiReservationEnabled() {


Line 649: VdcBllMessages
replace with verifyCanDoActionMessagesContainMessage


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmDevice.java
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmDevice.java:

Line 316:                 && alias.equals(other.alias)
Line 317:                 && ObjectUtils.objectsEqual(customProperties, 
other.customProperties)
Line 318:                 && ObjectUtils.objectsEqual(snapshotId, 
other.snapshotId)
Line 319:                 && ObjectUtils.objectsEqual(logicalName, 
other.logicalName)
Line 320:                 && ObjectUtils.objectsEqual(usingScsiReservation, 
other.usingScsiReservation));
it's a primitive, you can avoid using objectEqual
Line 321:     }
Line 322: 
Line 323:     @Override
Line 324:     public String toString() {


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java:

Line 748: ),
is this one used? if it does, its missing from 
https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties


Line 761: ),
this one can be removed


https://gerrit.ovirt.org/#/c/37664/15/backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VmDeviceDAOTest.java
File 
backend/manager/modules/dal/src/test/java/org/ovirt/engine/core/dao/VmDeviceDAOTest.java:

Line 207:     @Test
Line 208:     public void testCreateVmDeviceUsingScsiReservationProperty() {
Line 209:         VmDevice vmDevice = createVmDevice(Guid.newGuid());
Line 210:         vmDevice.setUsingScsiReservation(true);
Line 211:         assertEquals(vmDevice.isUsingScsiReservation(), true);
what's tested here?
Line 212:     }
Line 213: 
Line 214:     @Test
Line 215:     public void testUpdateVmDeviceUsingScsiReservationProperty() {


Line 218: ()));
seems like the address assertion isn't related, we are testing here the scsi 
reservation property.


Line 223:     }
Line 224: 
Line 225:     private VmDevice createVmDevice(Guid vmGuid) {
Line 226:         Map<String, String> customProp = new LinkedHashMap<>();
Line 227:         customProp.put("prop1", "value1");
you can remove customProp and use Collections.singletonMap
Line 228:         return new VmDevice(new VmDeviceId(Guid.newGuid(), vmGuid),
Line 229:                 VmDeviceGeneralType.DISK,
Line 230:                 "floppy",
Line 231:                 "type:'drive', controller:'0', bus:'0', unit:'1'",


https://gerrit.ovirt.org/#/c/37664/15/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java
File 
frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java:

Line 518: ();
see comment regards the messages on previous files


https://gerrit.ovirt.org/#/c/37664/15/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
File 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java:

Line 1806: .")
I'd suggest to change this a bit:
"When at least one of the activated VM disks uses iSCSI reservation the VM 
can't be migrated"


https://gerrit.ovirt.org/#/c/37664/15/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java
File 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationMessages.java:

Line 141: ,
this is a bit confusing, one can look at the vm settings and look for scsi 
reservation. I'd clarify that it's settings on a disk that is plugged to the vm.


https://gerrit.ovirt.org/#/c/37664/15/packaging/dbscripts/upgrade/03_06_1170_add_uses_scsi_reservation.sql
File packaging/dbscripts/upgrade/03_06_1170_add_uses_scsi_reservation.sql:

Line 1: ');
Imo this should "not null", null on that column will break the engine code.


-- 
To view, visit https://gerrit.ovirt.org/37664
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Ia38c03dae04c9dbb30c882941391b1909f5af416
Gerrit-PatchSet: 15
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Ala Hino <ah...@redhat.com>
Gerrit-Reviewer: Adam Litke <ali...@redhat.com>
Gerrit-Reviewer: Ala Hino <ah...@redhat.com>
Gerrit-Reviewer: Allon Mureinik <amure...@redhat.com>
Gerrit-Reviewer: Amit Aviram <aavi...@redhat.com>
Gerrit-Reviewer: Candace Sheremeta <csher...@redhat.com>
Gerrit-Reviewer: Daniel Erez <de...@redhat.com>
Gerrit-Reviewer: Eli Mesika <emes...@redhat.com>
Gerrit-Reviewer: Federico Simoncelli <fsimo...@redhat.com>
Gerrit-Reviewer: Freddy Rolland <froll...@redhat.com>
Gerrit-Reviewer: Greg Padgett <gpadg...@redhat.com>
Gerrit-Reviewer: Idan Shaby <ish...@redhat.com>
Gerrit-Reviewer: Liron Aravot <lara...@redhat.com>
Gerrit-Reviewer: Maor Lipchuk <mlipc...@redhat.com>
Gerrit-Reviewer: Nir Soffer <nsof...@redhat.com>
Gerrit-Reviewer: Tal Nisan <tni...@redhat.com>
Gerrit-Reviewer: Tomas Jelinek <tjeli...@redhat.com>
Gerrit-Reviewer: Vered Volansky <vvola...@redhat.com>
Gerrit-Reviewer: automat...@ovirt.org
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to