cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Min Chen <min.c...@citrix.com>
Subject Convention on UUID column
Date Thu, 23 May 2013 22:38:45 GMT
Hi there,

During API refactoring efforts, Rohit and I run into several issues due to empty UUID column
for existing DB entries. Since UUID was introduced later in 3.0.x, we have to always conditionally
handle existing customers with empty UUID columns for different entities, causing much headache
for various upgrade cases. To make sure that we have a consistent upgrade base for all 4.1
customers later, in schema-410to420.sql, we have added sql scripts to populate UUID column
of all pre-4.1 schema tables with values from their ID column if UUID column is NULL. To make
this work properly, we require that all UUID columns should be populated with values when
you add new data into both pre-4.1 schema or post-4.1 schema. I just noticed that this assumption
may not be well known to community, since I am seeing this sql in schema-410to420.sql:


INSERT INTO `cloud`.`vm_template` (id, unique_name, name, public, created, type, hvm, bits,
account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured, cross_zones,
hypervisor_type)

     VALUES (10, 'routing-10', 'SystemVM Template (LXC)', 0, now(), 'SYSTEM', 0, 64, 1, 'http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2',
'2755de1f9ef2ce4d6f2bee2efbb4da92', 0, 'SystemVM Template (LXC)', 'QCOW2', 15, 0, 1, 'LXC');


Instead, this should be modified as:


INSERT INTO `cloud`.`vm_template` (id, uuid, unique_name, name, public, created, type, hvm,
bits, account_id, url, checksum, enable_password, display_text, format, guest_os_id, featured,
cross_zones, hypervisor_type)

     VALUES (10, UUID(), 'routing-10', 'SystemVM Template (LXC)', 0, now(), 'SYSTEM', 0, 64,
1, 'http://download.cloud.com/templates/acton/acton-systemvm-02062012.qcow2.bz2', '2755de1f9ef2ce4d6f2bee2efbb4da92',
0, 'SystemVM Template (LXC)', 'QCOW2', 15, 0, 1, 'LXC');

I have made this fix in master, but want to raise this topic to get community's attention
on this.

Thanks
-min



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message