Allon Mureinik has posted comments on this change.

Change subject: core: Quota refactor - parameters
......................................................................


Patch Set 11: I would prefer that you didn't submit this

(11 inline comments)

....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CommandBase.java
Line 380:                             }
Line 381:                             break;
Line 382:                         case NEW_ENTITY_ID:
Line 383:                             daoForEntity.remove(snapshotData);
Line 384:                             break;
please separate these formatting changes to another patch (or remove them 
altogether).
This patch isn't short as-is, and wherever you can make it easier to review, 
you should.
Line 385:                     }
Line 386:                 }
Line 387: 
Line 388:                 cleanUpCompensationData();


Line 528:         } else {
Line 529:             endWithFailure();
Line 530:         }
Line 531: 
Line 532:         if (!isInternalExecution()) {
can you explain this condition? it sounds counter intuitive.
Line 533:             List<QuotaConsumptionParameter> consumptionParameters = 
getQuotaConsumptionParameters();
Line 534:             if (consumptionParameters != null) {
Line 535:                 for (QuotaConsumptionParameter parameter : 
consumptionParameters) {
Line 536:                     
getQuotaManager().removeQuotaFromCache(getStoragePool().getId(), 
parameter.getQuotaGuid());


Line 541: 
Line 542:     private List<QuotaConsumptionParameter> 
getQuotaConsumptionParameters() {
Line 543:         List<QuotaConsumptionParameter> consumptionParameters = new 
ArrayList<QuotaConsumptionParameter>();
Line 544: 
Line 545:         // This a double marking mechanism which was created to 
ensure Quota dependencies would not be inherited
I'd shorten these lines a bit (introduce \n) to make it more readable.
Line 546:         // by descendants commands. Each Command is both marked by 
the QuotaDependency and implements the required
Line 547:         // Interfaces (NONE does not implement any of the two 
interfaces).
Line 548:         // The enum markings prevent Quota dependencies unintentional 
inheritance.
Line 549:         switch (getActionType().getQuotaDependency()) {


Line 600:             try {
Line 601:                 returnValue =
Line 602:                         isUserAuthorizedToRunAction() && 
isBackwardsCompatible() && validateInputs() && acquireLock()
Line 603:                                 && canDoAction();
Line 604: //                                && internalValidateAndSetQuota();
Don't comment out - just remove it.
Line 605:                 if (returnValue && this instanceof Quotable) {
Line 606:                     returnValue &= ((Quotable) 
this).validateAndSetQuota();
Line 607:                 }
Line 608:                 if (!returnValue && 
getReturnValue().getCanDoActionMessages().size() > 0) {


Line 626:         return returnValue;
Line 627:     }
Line 628: 
Line 629:     private boolean internalValidateAndSetQuota() {
Line 630:         if (isInternalExecution()) {
here too - can you explain?
Line 631:             return true;
Line 632:         }
Line 633: 
Line 634:         if (getStoragePool() == null && 
getActionType().getQuotaDependency() != VdcActionType.QuotaDependency.NONE) {


Line 630:         if (isInternalExecution()) {
Line 631:             return true;
Line 632:         }
Line 633: 
Line 634:         if (getStoragePool() == null && 
getActionType().getQuotaDependency() != VdcActionType.QuotaDependency.NONE) {
Suggestion: I'd wrap "getActionType().getQuotaDependency() != 
VdcActionType.QuotaD
ependency.NONE)" in a helper method, just to make it slightly more readable.
Line 635:             log.error("Command: " + this.getClass().getName()
Line 636:                     + ". Storage pool is not available for quota 
calculation. ");
Line 637:             return false;
Line 638:         }


Line 640:         QuotaConsumptionParametersWrapper 
quotaConsumptionParametersWrapper = new QuotaConsumptionParametersWrapper(this,
Line 641:                 getReturnValue().getCanDoActionMessages());
Line 642:         
quotaConsumptionParametersWrapper.setParameters(getQuotaConsumptionParameters());
Line 643: 
Line 644:         return true; 
//quotaConsumptionParametersWrapper.getParameters().isEmpty() || 
getQuotaManager().consume(quotaConsumptionParametersWrapper);
here too - don't comment out - just delete the old code.
Line 645:     }
Line 646: 
Line 647:     /**
Line 648:      * @return true if all parameters class and its inner members 
passed


Line 820:             
addCanDoActionMessage(VdcBllMessages.USER_NOT_AUTHORIZED_TO_PERFORM_ACTION);
Line 821:             return false;
Line 822:         }
Line 823: 
Line 824:         if 
(!VdcActionType.QuotaDependency.NONE.equals(getActionType().getQuotaDependency()))
 {
I prefer == for enums, but it's a matter of taste. I don't think we have a 
project wide convention (mkublin - please correct me if I'm wrong)
Line 825:             addQuotaPermissionSubject(permSubjects);
Line 826:         }
Line 827: 
Line 828:         for (PermissionSubject permSubject : permSubjects) {


....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/quota/InvalidQuotaParametersException.java
Line 10:         super(errorStr);
Line 11:     }
Line 12: 
Line 13:     public InvalidQuotaParametersException(String errorStr, Throwable 
cause) {
Line 14:         super("InvalidQuotaParametersException: " + errorStr, cause);
I'd just call super(message, cause)
Line 15:     }


....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/quota/QuotaConsumptionParameter.java
Line 4: import org.ovirt.engine.core.compat.Guid;
Line 5: 
Line 6: public abstract class QuotaConsumptionParameter {
Line 7:     private Guid quotaGuid;
Line 8:     private Quota quota;
Why do you need both Quota and QuotaGuid, as separate members?
Line 9:     private QuotaAction quotaAction = QuotaAction.CONSUME;
Line 10: 
Line 11:     protected QuotaConsumptionParameter(Guid quotaGuid, Quota quota, 
QuotaAction quotaAction) {
Line 12:         this.quotaGuid = quotaGuid;


....................................................
File 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/quota/QuotaStorageConsumptionParameter.java
Line 5: 
Line 6: public class QuotaStorageConsumptionParameter extends 
QuotaConsumptionParameter {
Line 7: 
Line 8:     private Guid storageDomainId;
Line 9:     private Double requestedStorageGB;
why not use a primitive double?
Line 10: 
Line 11:     public QuotaStorageConsumptionParameter(Guid quotaGuid,
Line 12:             Quota quota,
Line 13:             QuotaAction quotaAction,


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Iebfc85569ba1aa8bd840f7239f83b7f921a4bd8e
Gerrit-PatchSet: 11
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: ofri masad <oma...@redhat.com>
Gerrit-Reviewer: Allon Mureinik <amure...@redhat.com>
Gerrit-Reviewer: Doron Fediuck <dfedi...@redhat.com>
Gerrit-Reviewer: Gilad Chaplik <gchap...@redhat.com>
Gerrit-Reviewer: Laszlo Hornyak <lhorn...@redhat.com>
Gerrit-Reviewer: Michael Kublin <mkub...@redhat.com>
Gerrit-Reviewer: Sharad Mishra <snmis...@linux.vnet.ibm.com>
Gerrit-Reviewer: Yair Zaslavsky <yzasl...@redhat.com>
Gerrit-Reviewer: ofri masad <oma...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to