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

Reply via email to