> On July 28, 2013, 3:59 a.m., Min Chen wrote: > > server/src/com/cloud/template/HypervisorTemplateAdapter.java, line 249 > > <https://reviews.apache.org/r/12968/diff/2/?file=329846#file329846line249> > > > > This is not right. For cross-zone template, in > > HypervisorTemplateAdapter.create(TemplateProfile) method, you will see that > > there is a for-loop to download the template to each image store for each > > zone. For each image store, this createTemplateAsyncCallback will be > > invoked. So in this callback, you should just generate usage event for this > > zone. > > Saksham Srivastava wrote: > The reason I do it is because, this part of code will be executed only > once even when template is cross zone. > If I do not generate all the events here, only the first template that > got created will publish the usage event. > Usage records do not have the information about store id, so we cannot be > sure if the usage_record for that store id is already created or not. > > It is too much of unnecessary hack to bypass the root issue, I am > discarding the whole patch and will wait for the root cause (2 async call > backs for a single register-template) to get fix. > Then it won't be required to do this.
I disagree on this. Yes, Usage event will not have store id information, but it has zone information. For zone-wide image store, your code of searching for duplicate should use zone_id to filter as well. - Min ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/12968/#review24049 ----------------------------------------------------------- On July 27, 2013, 6:58 p.m., Saksham Srivastava wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/12968/ > ----------------------------------------------------------- > > (Updated July 27, 2013, 6:58 p.m.) > > > Review request for cloudstack and Min Chen. > > > Bugs: 3686 > > > Repository: cloudstack-git > > > Description > ------- > > Registering a template does not generate a usage event. > The process should generate a usage event when the template is 100% > downloaded. > Added a new usage event that has virtual_size also as a parameter. > > > Diffs > ----- > > engine/schema/src/com/cloud/event/dao/UsageEventDao.java 01979e1 > engine/schema/src/com/cloud/event/dao/UsageEventDaoImpl.java cda02ef > server/src/com/cloud/template/HypervisorTemplateAdapter.java 4b3cade > > Diff: https://reviews.apache.org/r/12968/diff/ > > > Testing > ------- > > Now usage_event table is getting updated with the new usage_event. > > select * from usage_event where id = 23; > +----+-----------------+------------+---------------------+---------+-------------+---------------+-------------+-------------+----------+---------------+-----------+--------------+ > | id | type | account_id | created | zone_id | > resource_id | resource_name | offering_id | template_id | size | > resource_type | processed | virtual_size | > +----+-----------------+------------+---------------------+---------+-------------+---------------+-------------+-------------+----------+---------------+-----------+--------------+ > | 23 | TEMPLATE.CREATE | 2 | 2013-07-26 12:04:29 | 0 | > 215 | r8 | NULL | NULL | 16777728 | NULL | > 0 | 16777216 | > +----+-----------------+------------+---------------------+---------+-------------+---------------+-------------+-------------+----------+---------------+-----------+--------------+ > > > Build passed. > Patch applies cleanly. > > > Thanks, > > Saksham Srivastava > >