Martin Mucha has posted comments on this change. Change subject: core: MacPool related Commands ......................................................................
Patch Set 16: (33 comments) answers. http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddMacPoolCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddMacPoolCommand.java: Line 26: Line 27: @Override Line 28: public List<PermissionSubject> getPermissionCheckSubjects() { Line 29: return Collections.singletonList(new PermissionSubject(MultiLevelAdministrationHandler.SYSTEM_OBJECT_ID, Line 30: VdcObjectType.System, //TODO MM: fix? > The TODO should be in separate line.. Done Line 31: ActionGroup.CONFIGURE_ENGINE)); Line 32: } Line 33: Line 34: @Override Line 37: return false; Line 38: } Line 39: Line 40: final MacPoolValidator validator = new MacPoolValidator(null, getMacPool()); Line 41: return validate(validator.defaultPoolFlagIsNotSet()) && validate(validator.hasUniqueName()); //TODO MM: improve. > What do you intend to improve? repetitive validate methods calls joined by && is really stupid design, which can be easily improved. That was mine intention. Removed TODO. DONE. Line 42: } Line 43: Line 44: private MacPool getMacPool() { Line 45: return getParameters().getMacPool(); http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MacPoolValidator.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MacPoolValidator.java: Line 6: import org.ovirt.engine.core.common.errors.VdcBllMessages; Line 7: import org.ovirt.engine.core.dal.dbbroker.DbFacade; Line 8: import org.ovirt.engine.core.dao.MacPoolDao; Line 9: Line 10: public class MacPoolValidator { > You should add tests to cover the functionality of the class and in redgard alright then, I had to split MacPoolValidator into two validators to cut down number of permutations. Just don't be surprised. Line 11: Line 12: private final MacPool macPoolFromDb; Line 13: private final MacPool newMacPool; Line 14: Line 17: this.newMacPool = newMacPool; Line 18: } Line 19: Line 20: public ValidationResult defaultPoolFlagIsNotSet() { Line 21: if (newMacPool.isDefaultPool()) { > Please use the new fluent syntax to validate things, see: http://gerrit.ovi Done Line 22: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CHANGING_DEFAULT_MAC_POOL_IS_NOT_SUPPORTED); Line 23: } else { Line 24: return ValidationResult.VALID; Line 25: } Line 18: } Line 19: Line 20: public ValidationResult defaultPoolFlagIsNotSet() { Line 21: if (newMacPool.isDefaultPool()) { Line 22: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CHANGING_DEFAULT_MAC_POOL_IS_NOT_SUPPORTED); > If I'm not mistaken you're not changing the default pool when calling this Done Line 23: } else { Line 24: return ValidationResult.VALID; Line 25: } Line 26: } Line 25: } Line 26: } Line 27: Line 28: public ValidationResult hasUniqueName() { Line 29: if (!macPoolNameUnique(newMacPool.getName())) { > Why pass in parameter? It's already a field in the class.. Done Line 30: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_MAC_POOL_OF_THIS_NAME_ALREADY_EXIST); Line 31: } else { Line 32: return ValidationResult.VALID; Line 33: } Line 26: } Line 27: Line 28: public ValidationResult hasUniqueName() { Line 29: if (!macPoolNameUnique(newMacPool.getName())) { Line 30: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_MAC_POOL_OF_THIS_NAME_ALREADY_EXIST); > You should use ACTION_TYPE_FAILED_NAME_ALREADY_USED Done Line 31: } else { Line 32: return ValidationResult.VALID; Line 33: } Line 34: } Line 35: Line 36: private boolean macPoolNameUnique(String name) { Line 37: final List<MacPool> macPools = getMacPoolDao().getAll(); Line 38: for (MacPool pool : macPools) { Line 39: if (pool.getName().equals(name)) { > Indeed, just failed on this when testing GUI. Done Line 40: return false; Line 41: } Line 42: } Line 43: Line 35: Line 36: private boolean macPoolNameUnique(String name) { Line 37: final List<MacPool> macPools = getMacPoolDao().getAll(); Line 38: for (MacPool pool : macPools) { Line 39: if (pool.getName().equals(name)) { > I suspect that in case of updating the mac pool this would fail, as it alre Done Line 40: return false; Line 41: } Line 42: } Line 43: Line 43: Line 44: return true; Line 45: } Line 46: Line 47: public ValidationResult oldMacPoolIsNotDefault() { > Should be named "notRemovingDefaultPool" since the error you give refers to Done Line 48: if (macPoolFromDb.isDefaultPool()) { Line 49: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CANNOT_REMOVE_DEFAULT_MAC_POOL); Line 50: } else { Line 51: return ValidationResult.VALID; Line 51: return ValidationResult.VALID; Line 52: } Line 53: } Line 54: Line 55: public ValidationResult isNotUsed() { > Should be named "notRemovingUsedPool" since the error you give refers to th Done Line 56: final int dcUsageCount = getMacPoolDao().getDCUsageCount(macPoolFromDb.getId()); Line 57: if (dcUsageCount != 0) { Line 58: return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_CANNOT_REMOVE_STILL_USED_MAC_POOL); Line 59: } else { http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveMacPoolCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RemoveMacPoolCommand.java: Line 12: import org.ovirt.engine.core.common.errors.VdcBllMessages; Line 13: import org.ovirt.engine.core.compat.Guid; Line 14: import org.ovirt.engine.core.utils.transaction.RollbackHandler; Line 15: Line 16: public class RemoveMacPoolCommand extends MacPoolCommandBase<RemoveMacPoolByIdParameters> implements RollbackHandler { > Again no need to explicitly implement RollbackHandler Done Line 17: Line 18: private MacPool oldMacPool; Line 19: Line 20: public RemoveMacPoolCommand(RemoveMacPoolByIdParameters parameters) { Line 53: Line 54: @Override Line 55: public List<PermissionSubject> getPermissionCheckSubjects() { Line 56: return Collections.singletonList(new PermissionSubject(MultiLevelAdministrationHandler.SYSTEM_OBJECT_ID, Line 57: VdcObjectType.System/* VdcObjectType.MacPool */, ActionGroup.CONFIGURE_ENGINE)); // TODO MM: fix? > Please don't save VdcObjectType.MacPool comment and also the TODO should be Done Line 58: } Line 59: Line 60: Line 61: @Override http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMacPoolCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMacPoolCommand.java: Line 59: Line 60: @Override Line 61: public List<PermissionSubject> getPermissionCheckSubjects() { Line 62: return Collections.singletonList(new PermissionSubject(MultiLevelAdministrationHandler.SYSTEM_OBJECT_ID, Line 63: VdcObjectType.System/* VdcObjectType.MacPool */, ActionGroup.CONFIGURE_ENGINE)); // TODO MM: fix? > Please don't save VdcObjectType.MacPool comment and also the TODO should be Done Line 64: } Line 65: Line 66: @Override Line 67: public void rollback() { http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddEmptyStoragePoolCommand.java File backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/AddEmptyStoragePoolCommand.java: Line 26: super(parameters); Line 27: } Line 28: Line 29: protected void addStoragePoolToDb() { Line 30: final StoragePool storagePool = getStoragePool(); > No need to extract to variable Done Line 31: storagePool.setId(Guid.newGuid()); Line 32: storagePool.setStatus(StoragePoolStatus.Uninitialized); Line 33: Line 34: Guid requestedMacPoolId = storagePool.getMacPoolId(); Line 31: storagePool.setId(Guid.newGuid()); Line 32: storagePool.setStatus(StoragePoolStatus.Uninitialized); Line 33: Line 34: Guid requestedMacPoolId = storagePool.getMacPoolId(); Line 35: Guid macPoolIdToUse = requestedMacPoolId == null ? > The ? and : operators should be in the start of the new line, this makes th Done Line 36: getMacPoolDao().getDefaultPool().getId() : Line 37: requestedMacPoolId; Line 38: Line 39: storagePool.setMacPoolId(macPoolIdToUse); http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveMacPoolByIdParameters.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RemoveMacPoolByIdParameters.java: Line 4: Line 5: import org.ovirt.engine.core.common.validation.group.UpdateEntity; Line 6: import org.ovirt.engine.core.compat.Guid; Line 7: Line 8: public class RemoveMacPoolByIdParameters extends VdcActionParametersBase { > No need for this class, you should use IdParameters can I place @NotNull on org.ovirt.engine.core.common.action.IdParameters#id to enforce this validity checking for all commands using it? I thought it would alter existing code behavior. I formerly used IdParameters of course, I was just expecting you'd disagree with its usage. Line 9: Line 10: @NotNull(groups = {UpdateEntity.class }) Line 11: private Guid macPoolId; Line 12: http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/ActionGroup.java: Line 134: // affinity group CRUD commands Line 135: MANIPULATE_AFFINITY_GROUPS(1550, RoleType.ADMIN, true, ApplicationMode.VirtOnly), Line 136: Line 137: // MAC pool actions groups Line 138: CREATE_MAC_POOL(1660, RoleType.ADMIN, true, ApplicationMode.VirtOnly), > These aren't used currently so shouldn't be part of this patch set Done Line 139: EDIT_MAC_POOL(1661, RoleType.ADMIN, true, ApplicationMode.VirtOnly), Line 140: DELETE_MAC_POOL(1662, RoleType.ADMIN, true, ApplicationMode.VirtOnly); Line 141: Line 142: private int id; http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/MacPool.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/MacPool.java: Line 63 Line 64 Line 65 Line 66 Line 67 > This removal should happen in the patch that introduces this, since it's no Done Line 10: import org.hibernate.validator.constraints.NotEmpty; Line 11: import org.ovirt.engine.core.common.validation.group.UpdateEntity; Line 12: import org.ovirt.engine.core.compat.Guid; Line 13: Line 14: public class MacPool extends IVdcQueryable implements BusinessEntity<Guid>, Serializable{ > This change should be part of where you introduce this entity Done Line 15: @NotNull(groups = { UpdateEntity.class }) Line 16: private Guid id; Line 17: Line 18: @NotEmpty(message = "ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_NAME") Line 14: public class MacPool extends IVdcQueryable implements BusinessEntity<Guid>, Serializable{ Line 15: @NotNull(groups = { UpdateEntity.class }) Line 16: private Guid id; Line 17: Line 18: @NotEmpty(message = "ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_NAME") > You should use ACTION_TYPE_FAILED_NAME_MAY_NOT_BE_EMPTY Done Line 19: private String name; Line 20: Line 21: private boolean allowDuplicateMacAddresses; Line 22: http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/MacRange.java File backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/MacRange.java: Line 9: Line 10: public class MacRange implements Serializable{ Line 11: private Guid macPoolId; Line 12: Line 13: @Pattern(regexp = "^[a-fA-F0-9][02468aAcCeE](:[a-fA-F0-9]{2}){5}$") > You should use VmNic.UNICAST_MAC_ADDRESS_FORMAT Done Line 14: @NotNull Line 15: private String macFrom; Line 16: Line 17: @Pattern(regexp = "^[a-fA-F0-9][02468aAcCeE](:[a-fA-F0-9]{2}){5}$") Line 10: public class MacRange implements Serializable{ Line 11: private Guid macPoolId; Line 12: Line 13: @Pattern(regexp = "^[a-fA-F0-9][02468aAcCeE](:[a-fA-F0-9]{2}){5}$") Line 14: @NotNull > You should use VmNic.VALIDATION_MESSAGE_MAC_ADDRESS_NOT_NULL for message I cannot use VmNic like in case above, I will not change visibility, so I'll use string literal instead. Line 15: private String macFrom; Line 16: Line 17: @Pattern(regexp = "^[a-fA-F0-9][02468aAcCeE](:[a-fA-F0-9]{2}){5}$") Line 18: @NotNull Line 13: @Pattern(regexp = "^[a-fA-F0-9][02468aAcCeE](:[a-fA-F0-9]{2}){5}$") Line 14: @NotNull Line 15: private String macFrom; Line 16: Line 17: @Pattern(regexp = "^[a-fA-F0-9][02468aAcCeE](:[a-fA-F0-9]{2}){5}$") > Same here Done Line 18: @NotNull Line 19: private String macTo; Line 20: Line 21: public String getMacFrom() { http://gerrit.ovirt.org/#/c/28705/16/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 365: ACTION_TYPE_FAILED_CANNOT_REMOVE_DEFAULT_MAC_POOL(ErrorType.CONFLICT), Line 366: ACTION_TYPE_FAILED_CANNOT_REMOVE_STILL_USED_MAC_POOL(ErrorType.CONFLICT), Line 367: ACTION_TYPE_FAILED_MAC_POOL_DOES_NOT_EXIST(ErrorType.BAD_PARAMETERS), Line 368: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_NAME(ErrorType.BAD_PARAMETERS), Line 369: ACTION_TYPE_FAILED_CHANGING_DEFAULT_MAC_POOL_IS_NOT_SUPPORTED(ErrorType.BAD_PARAMETERS), > ErrorType.NOT_SUPPORTED is more suitable Done Line 370: ACTION_TYPE_FAILED_MAC_POOL_OF_THIS_NAME_ALREADY_EXIST(ErrorType.BAD_PARAMETERS), Line 371: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_RANGE(ErrorType.BAD_PARAMETERS), Line 372: VM_CANNOT_MOVE_TO_CLUSTER_IN_OTHER_STORAGE_POOL(ErrorType.CONFLICT), Line 373: VM_CLUSTER_IS_NOT_VALID(ErrorType.BAD_PARAMETERS), Line 367: ACTION_TYPE_FAILED_MAC_POOL_DOES_NOT_EXIST(ErrorType.BAD_PARAMETERS), Line 368: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_NAME(ErrorType.BAD_PARAMETERS), Line 369: ACTION_TYPE_FAILED_CHANGING_DEFAULT_MAC_POOL_IS_NOT_SUPPORTED(ErrorType.BAD_PARAMETERS), Line 370: ACTION_TYPE_FAILED_MAC_POOL_OF_THIS_NAME_ALREADY_EXIST(ErrorType.BAD_PARAMETERS), Line 371: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_RANGE(ErrorType.BAD_PARAMETERS), > This isn't used.. Done Line 372: VM_CANNOT_MOVE_TO_CLUSTER_IN_OTHER_STORAGE_POOL(ErrorType.CONFLICT), Line 373: VM_CLUSTER_IS_NOT_VALID(ErrorType.BAD_PARAMETERS), Line 374: VM_CANNOT_REMOVE_VM_WHEN_STATUS_IS_NOT_DOWN(ErrorType.CONFLICT), Line 375: VM_CANNOT_REMOVE_WITH_DETACH_DISKS_SNAPSHOTS_EXIST(ErrorType.CONFLICT), http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java File backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java: Line 570: public StoragePoolDAO getStoragePoolDAO() { Line 571: return getDbFacade().getStoragePoolDao(); Line 572: } Line 573: Line 574: public MacPoolDao getMacPoolDao() { > Since you introduced MacPoolBaseCommand then this should probably reside th it's used by org.ovirt.engine.core.bll.storage.AddEmptyStoragePoolCommand#addStoragePoolToDb Technically I can push it down into CommandBase. I'd prefer to have all those getters in one class to allow easier fix when/if cleaning this. But there are dao getters in CommandBase as well, so it can be done. Line 575: return getDbFacade().getMacPoolDao(); Line 576: } Line 577: Line 578: public StorageDomainStaticDAO getStorageDomainStaticDAO() { http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties File backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties: Line 8: IRS_NETWORK_ERROR=Storage Manager Service not responding. Line 9: IRS_PROTOCOL_ERROR=Storage Manager protocol error. Line 10: IRS_RESPONSE_ERROR=Storage Manager response error. Line 11: MAC_POOL_NOT_ENOUGH_MAC_ADDRESSES=Not enough MAC addresses left in MAC Address Pool. Line 12: ACTION_TYPE_FAILED_CANNOT_REMOVE_STILL_USED_MAC_POOL=Cannot ${action} ${type}. Mac pool cannot be removed, because some DataCenter is still using it. > s/Mac Pool/${type}/ Done Line 13: ACTION_TYPE_FAILED_CANNOT_REMOVE_DEFAULT_MAC_POOL=Cannot ${action} ${type}. Default MAC Pool cannot be removed. Line 14: ACTION_TYPE_FAILED_MAC_POOL_DOES_NOT_EXIST=Cannot ${action} ${type}. Mac pool does not exist. Line 15: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_NAME=Cannot ${action} ${type}. Mac pool cannot be created. Shared MAC pools must have names. Line 16: ACTION_TYPE_FAILED_CHANGING_DEFAULT_MAC_POOL_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Changing default MAC Pool is not supported. Line 9: IRS_PROTOCOL_ERROR=Storage Manager protocol error. Line 10: IRS_RESPONSE_ERROR=Storage Manager response error. Line 11: MAC_POOL_NOT_ENOUGH_MAC_ADDRESSES=Not enough MAC addresses left in MAC Address Pool. Line 12: ACTION_TYPE_FAILED_CANNOT_REMOVE_STILL_USED_MAC_POOL=Cannot ${action} ${type}. Mac pool cannot be removed, because some DataCenter is still using it. Line 13: ACTION_TYPE_FAILED_CANNOT_REMOVE_DEFAULT_MAC_POOL=Cannot ${action} ${type}. Default MAC Pool cannot be removed. > s/Mac Pool/${type}/ Done Line 14: ACTION_TYPE_FAILED_MAC_POOL_DOES_NOT_EXIST=Cannot ${action} ${type}. Mac pool does not exist. Line 15: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_NAME=Cannot ${action} ${type}. Mac pool cannot be created. Shared MAC pools must have names. Line 16: ACTION_TYPE_FAILED_CHANGING_DEFAULT_MAC_POOL_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Changing default MAC Pool is not supported. Line 17: ACTION_TYPE_FAILED_MAC_POOL_OF_THIS_NAME_ALREADY_EXIST=Cannot ${action} ${type}. MAC Pool of this name already exist. Line 10: IRS_RESPONSE_ERROR=Storage Manager response error. Line 11: MAC_POOL_NOT_ENOUGH_MAC_ADDRESSES=Not enough MAC addresses left in MAC Address Pool. Line 12: ACTION_TYPE_FAILED_CANNOT_REMOVE_STILL_USED_MAC_POOL=Cannot ${action} ${type}. Mac pool cannot be removed, because some DataCenter is still using it. Line 13: ACTION_TYPE_FAILED_CANNOT_REMOVE_DEFAULT_MAC_POOL=Cannot ${action} ${type}. Default MAC Pool cannot be removed. Line 14: ACTION_TYPE_FAILED_MAC_POOL_DOES_NOT_EXIST=Cannot ${action} ${type}. Mac pool does not exist. > s/Mac Pool/${type}/ Done Line 15: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_NAME=Cannot ${action} ${type}. Mac pool cannot be created. Shared MAC pools must have names. Line 16: ACTION_TYPE_FAILED_CHANGING_DEFAULT_MAC_POOL_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Changing default MAC Pool is not supported. Line 17: ACTION_TYPE_FAILED_MAC_POOL_OF_THIS_NAME_ALREADY_EXIST=Cannot ${action} ${type}. MAC Pool of this name already exist. Line 18: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_RANGE=Cannot ${action} ${type}. MacPool must contain at least one mac range. Line 12: ACTION_TYPE_FAILED_CANNOT_REMOVE_STILL_USED_MAC_POOL=Cannot ${action} ${type}. Mac pool cannot be removed, because some DataCenter is still using it. Line 13: ACTION_TYPE_FAILED_CANNOT_REMOVE_DEFAULT_MAC_POOL=Cannot ${action} ${type}. Default MAC Pool cannot be removed. Line 14: ACTION_TYPE_FAILED_MAC_POOL_DOES_NOT_EXIST=Cannot ${action} ${type}. Mac pool does not exist. Line 15: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_NAME=Cannot ${action} ${type}. Mac pool cannot be created. Shared MAC pools must have names. Line 16: ACTION_TYPE_FAILED_CHANGING_DEFAULT_MAC_POOL_IS_NOT_SUPPORTED=Cannot ${action} ${type}. Changing default MAC Pool is not supported. > s/MAC Pool/${type}/ Done Line 17: ACTION_TYPE_FAILED_MAC_POOL_OF_THIS_NAME_ALREADY_EXIST=Cannot ${action} ${type}. MAC Pool of this name already exist. Line 18: ACTION_TYPE_FAILED_MAC_POOL_MUST_HAVE_RANGE=Cannot ${action} ${type}. MacPool must contain at least one mac range. Line 19: VMT_CANNOT_REMOVE_DETECTED_DERIVED_VM=Cannot delete Template. Template is being used by the following VMs: ${vmsList}. Line 20: VMT_CANNOT_REMOVE_BASE_WITH_VERSIONS=Cannot delete Base Template that has Template Versions, please first remove all Template Versions for this Template: ${versionsList}. http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/PermitType.java File backend/manager/modules/restapi/interface/definition/src/main/java/org/ovirt/engine/api/model/PermitType.java: > No need to touch this file in this patch Done Line 1: /* Line 2: * Copyright (c) 2010 Red Hat, Inc. Line 3: * Line 4: * Licensed under the Apache License, Version 2.0 (the "License"); http://gerrit.ovirt.org/#/c/28705/16/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermitMapper.java File backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/PermitMapper.java: > No need to touch this file in this patch Done Line 1: package org.ovirt.engine.api.restapi.types; Line 2: Line 3: import org.ovirt.engine.api.model.Permit; Line 4: import org.ovirt.engine.api.model.PermitType; -- To view, visit http://gerrit.ovirt.org/28705 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: comment Gerrit-Change-Id: I9c0c3657e3e53699bcafa375befdce848b01a2f3 Gerrit-PatchSet: 16 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Mucha <[email protected]> Gerrit-Reviewer: Lior Vernia <[email protected]> Gerrit-Reviewer: Martin Mucha <[email protected]> Gerrit-Reviewer: Mike Kolesnik <[email protected]> Gerrit-Reviewer: Moti Asayag <[email protected]> Gerrit-Reviewer: [email protected] Gerrit-Reviewer: oVirt Jenkins CI Server Gerrit-HasComments: Yes _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
