Has this bug been raised? I have this issue as well .. we are on 4.0.2 and 4.1.1
On Wed, Sep 25, 2013 at 4:43 PM, Prachi Damle <prachi.da...@citrix.com>wrote: > Yes, the main bug here is not updating the Total Capacity - this is > avoiding the total getting updated on host reconnects. > > Bug with the Used and Reserved Capacities gets masked since > CapacityManager also listens to the VM state changes and updates these > values. > > Prachi > -----Original Message----- > From: Darren Shepherd [mailto:darren.s.sheph...@gmail.com] > Sent: Wednesday, September 25, 2013 1:45 PM > To: dev@cloudstack.apache.org > Subject: Re: bug? capacity not updated when adding memory to hypervisor > > The main bug being the lack of > memCap.setTotalCapacity(host.getTotalMemory()); > > Darren > > On Wed, Sep 25, 2013 at 1:13 PM, Daan Hoogland <daan.hoogl...@gmail.com> > wrote: > > I agree Darren, > > > > if (cpuCap.getUsedCapacity() == usedCpu && > > cpuCap.getReservedCapacity() == reservedCpu) { } else { > > if (cpuCap.getReservedCapacity() != reservedCpu) { > > cpuCap.setReservedCapacity(reservedCpu); > > } > > if (cpuCap.getUsedCapacity() != usedCpu) { > > cpuCap.setUsedCapacity(usedCpu); > > } > > } > > > > makes more sense. (same for mem) > > > > > > On Wed, Sep 25, 2013 at 9:59 PM, Darren Shepherd < > > darren.s.sheph...@gmail.com> wrote: > > > >> I added more memory to a hypervisor, and the host tables was updated > >> properly, but the op_host_capacity is not updated. I tracked down > >> the code to CapacityManagerImpl.updateCapacityForHost. The below > >> logic seems completely wrong. Unless I'm reading it wrong, it seems > >> like it will only update EITHER used or reserved (not both) and never > >> update total. I removed log statements to make it more readable. > >> > >> if (cpuCap.getUsedCapacity() == usedCpu && > >> cpuCap.getReservedCapacity() == reservedCpu) { > >> } else if (cpuCap.getReservedCapacity() != reservedCpu) { > >> cpuCap.setReservedCapacity(reservedCpu); > >> } else if (cpuCap.getUsedCapacity() != usedCpu) { > >> cpuCap.setUsedCapacity(usedCpu); > >> } > >> > >> if (memCap.getUsedCapacity() == usedMemory && > >> memCap.getReservedCapacity() == reservedMemory) { > >> } else if (memCap.getReservedCapacity() != reservedMemory) { > >> memCap.setReservedCapacity(reservedMemory); > >> } else if (memCap.getUsedCapacity() != usedMemory) { > >> memCap.setUsedCapacity(usedMemory); > >> } > >> >