Arik Hadas has posted comments on this change.

Change subject: events: removing vm.getStats from event processing
......................................................................


Patch Set 17:

(6 comments)

https://gerrit.ovirt.org/#/c/40205/17/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmDynamic.java
File 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmDynamic.java:

Line 75:     private Map<GraphicsType, GraphicsInfo> graphicsInfos;
Line 76:     private Long guestMemoryCached;
Line 77:     private Long guestMemoryBuffered;
Line 78:     private Long guestMemoryFree;
Line 79:     private Double statusUpdatedTime;
this field should not be in VmDynamic/VM, you need to get the time reported by 
VDSM and report it back to the monitoring. this field is not persisted (like 
devices-hash) and not related to VM (like the other field in VmDynamic). so 
imo, this field should reside in VmInternalData instead
Line 80:     private String guestOsVersion;
Line 81:     private String guestOsDistribution;
Line 82:     private String guestOsCodename;
Line 83:     private ArchitectureType guestOsArch;


https://gerrit.ovirt.org/#/c/40205/17/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java:

Line 91:     private void changeStatus(DestroyVmVDSCommandParameters 
parameters, VM curVm) {
Line 92:         // do the state transition only if that VM is really running 
on SRC
Line 93:         if (getParameters().getVdsId().equals(curVm.getRunOnVds())) {
Line 94:             ResourceManager.getInstance().InternalSetVmStatus(curVm,
Line 95:                     parameters.getGracefully() ? VMStatus.PoweringDown 
: VMStatus.Down, curVm.getStatusUpdatedTime());
not needed (the value is null and won't be used anyway)
Line 96:         }
Line 97:     }


https://gerrit.ovirt.org/#/c/40205/17/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/MigrateVDSCommand.java:

Line 28:         VM vm = getVmDao().get(getParameters().getVmId());
Line 29: 
Line 30:         if (vdsReturnValue.getSucceeded()) {
Line 31:             
ResourceManager.getInstance().AddAsyncRunningVm(getParameters().getVmId());
Line 32:             ResourceManager.getInstance().InternalSetVmStatus(vm, 
VMStatus.MigratingFrom, vm.getStatusUpdatedTime());
not needed (the value is null and won't be used anyway)
Line 33:             vm.setMigratingToVds(getParameters().getDstVdsId());
Line 34:             vmManager.update(vm.getDynamicData());
Line 35:             getVDSReturnValue().setReturnValue(VMStatus.MigratingFrom);
Line 36:         } else {


https://gerrit.ovirt.org/#/c/40205/17/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java:

Line 316:      * @param vm
Line 317:      */
Line 318:     public void SetVmUnknown(VM vm) {
Line 319:         RemoveAsyncRunningVm(vm.getId());
Line 320:         InternalSetVmStatus(vm, VMStatus.Unknown, 
vm.getStatusUpdatedTime());
not needed (the value is null and won't be used anyway)
Line 321:         // log VM transition to unknown status
Line 322:         AuditLogableBase logable = new AuditLogableBase();
Line 323:         logable.setVmId(vm.getId());
Line 324:         auditLogDirector.log(logable, 
AuditLogType.VM_SET_TO_UNKNOWN_STATUS);


https://gerrit.ovirt.org/#/c/40205/17/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java:

Line 69: 
Line 70: public class VdsManager {
Line 71:     private static Logger log = 
LoggerFactory.getLogger(VdsManager.class);
Line 72:     private static Map<Guid, String> recoveringJobIdMap = new 
ConcurrentHashMap<Guid, String>();
Line 73:     private final ConcurrentMap<Guid, Double> vmStatusUpdated = new 
ConcurrentHashMap<Guid, Double>();
this is not a good place to store it. it should be placed in VmManager since it 
is a value per VM
Line 74:     private final Object lockObj = new Object();
Line 75:     private final AtomicInteger mFailedToRunVmAttempts;
Line 76:     private final AtomicInteger mUnrespondedAttempts;
Line 77:     private final Guid vdsId;


https://gerrit.ovirt.org/#/c/40205/17/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmsMonitoring.java
File 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VmsMonitoring.java:

Line 616:      *
Line 617:      * @param vmDynamic
Line 618:      */
Line 619:     protected void addVmDynamicToList(VmDynamic vmDynamic) {
Line 620:         if (vdsManager.shouldUpdateVmStatus(vmDynamic)) {
it looks like far more deeper in the stack from where it should be - let's say 
that we got an event with a latter time than another one we already processed, 
when the code is done here it means we'll process it and will just not save it 
to the DB. I think it should be much higher in the stack - maybe even not to 
call the perform method in this class if the fetched stats are the latest
Line 621:             vmDynamicToSave.put(vmDynamic.getId(), vmDynamic);
Line 622:         }
Line 623:     }
Line 624: 


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

Gerrit-MessageType: comment
Gerrit-Change-Id: Ib15df9ce78bbb86c9284bdd6b772d0e6801db765
Gerrit-PatchSet: 17
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Piotr Kliczewski <piotr.kliczew...@gmail.com>
Gerrit-Reviewer: Arik Hadas <aha...@redhat.com>
Gerrit-Reviewer: Barak Azulay <bazu...@redhat.com>
Gerrit-Reviewer: Francesco Romani <from...@redhat.com>
Gerrit-Reviewer: Jenkins CI
Gerrit-Reviewer: Michal Skrivanek <mskri...@redhat.com>
Gerrit-Reviewer: Moti Asayag <masa...@redhat.com>
Gerrit-Reviewer: Omer Frenkel <ofren...@redhat.com>
Gerrit-Reviewer: Oved Ourfali <oourf...@redhat.com>
Gerrit-Reviewer: Piotr Kliczewski <piotr.kliczew...@gmail.com>
Gerrit-Reviewer: Roy Golan <rgo...@redhat.com>
Gerrit-Reviewer: automat...@ovirt.org
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to