[Ovirt-devel] [PATCH]: Add host memory in kb to the database
sseago at redhat.com
Mon Aug 11 14:54:19 UTC 2008
Steve Linabery wrote:
> On Mon, Aug 11, 2008 at 03:16:29PM +0200, Chris Lalancette wrote:
>> When inserting memory values into the database, ovirt-identify-node is
>> sending over values in kilobytes. The database is also in kilobytes.
>> Don't run a non-sensical "mb_to_kb" conversion on the memory value
>> before sticking it into the database.
>> Signed-off-by: Chris Lalancette <clalance at redhat.com>
>> diff --git a/wui/src/host-browser/host-browser.rb b/wui/src/host-browser/host-browser.rb
>> index a1bda3d..881b2ae 100755
>> --- a/wui/src/host-browser/host-browser.rb
>> +++ b/wui/src/host-browser/host-browser.rb
>> @@ -219,7 +219,7 @@ class HostBrowser
>> "hostname" => host_info['HOSTNAME'],
>> "hypervisor_type" => host_info['HYPERVISOR_TYPE'],
>> "arch" => host_info['ARCH'],
>> - "memory_in_mb" => host_info['MEMSIZE'],
>> + "memory" => host_info['MEMSIZE'],
>> "is_disabled" => 0,
>> "hardware_pool" => HardwarePool.get_default_pool,
>> # Let host-status mark it available when it
>> @@ -232,7 +232,7 @@ class HostBrowser
>> host.uuid = host_info['UUID']
>> host.hostname = host_info['HOSTNAME']
>> host.arch = host_info['ARCH']
>> - host.memory_in_mb = host_info['MEMSIZE']
>> + host.memory = host_info['MEMSIZE']
>> # delete an existing CPUs and create new ones based on the data
>> Ovirt-devel mailing list
>> Ovirt-devel at redhat.com
> I don't think this is necessary. The migration file for CreateHosts (currently wui/src/db/migrate/002_create_hosts.rb) doesn't define memory_in_mb, so this attribute is never being stuck into the database.
memory_in_mb is a method defined on Host which converts from MB to kb to
stuff in the db. The idea is when you have a number already in kb, you
just set host.memory, but if your value is in mb (as it would be if
you're soliciting user input via the WUI), you set host.memory_in_mb,
which converts to kb and stores in the db.
> I'm not sure I understand what effect this:
> "memory_in_mb" => host_info['MEMSIZE'],
> was intended to have in host-browser.rb in the first place (creating an instance of Host using a non-existent attribute? Do I just not know ruby well enough to know what's going on here?)
Well the attribute doesn't exist, but as mentioned above, there's a
method with this name that sets the proper memory value (assuming what
you have is in megabytes).
On this particular change, I seem to recall a bug a while back where we
had to change the host browser code to use the _in_mb methods to fix an
earlier problem. Could it be that the semantics of host_browser has
changed and that, at one point, we were passing memory in MB?
In a larger sense (i.e. beyond this particular bugfix, etc.) we've
talked about how we need a more robust way of dealing with
storage/memory sizing and conversion/display. As we see here, it's
currently a bit fragile.
> Ovirt-devel mailing list
> Ovirt-devel at redhat.com
More information about the ovirt-devel