Actually, this is a good opportunity to remind devs in general that if you make a change to a schema-upgrade file for a release and you are not on master that you should take a peek at the schema-upgrade file on master to see if it needs to be updated, as well.
In this case, it would have been OK (nothing to do on master) had the volume_view not been modified going from 4.4 to 4.5, but it had been (so modifications to volume_view going from 4.3 to 4.4 needed to be carried forward going from 4.4 to 4.5). Thanks! On Tue, Jul 1, 2014 at 6:10 PM, Mike Tutkowski <mike.tutkow...@solidfire.com > wrote: > Thanks! > > > On Tue, Jul 1, 2014 at 4:26 PM, Yoshikazu Nojima <m...@ynojima.net> wrote: > >> Hi all, >> I pushed a commit to fix this issue. >> I confirmed listVolumes doesn't throw an error now in my environment. >> >> Commit 890e71cb5c2f80b09cd4db7947d94e325d7bd182 in cloudstack's branch >> refs/heads/master from Yoshikazu Nojima >> [ https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;h=890e71c ] >> >> CLOUDSTACK-7032 bugfix: listVolumes throws an error >> >> Since schema change made on 4.4 is not applied to the upgrade script >> from 4.4 to 4.5, listVolumes api throws an error. >> This commit fix the issue. >> >> >> 2014-07-01 14:06 GMT-06:00 Mike Tutkowski <mike.tutkow...@solidfire.com>: >> > Somehow I didn't see that aliasing going on there. >> > >> > >> > On Tue, Jul 1, 2014 at 2:05 PM, Mike Tutkowski < >> mike.tutkow...@solidfire.com >> >> wrote: >> > >> >> Ah, yes, good point. >> >> >> >> >> >> On Tue, Jul 1, 2014 at 2:02 PM, Yoshikazu Nojima <m...@ynojima.net> >> wrote: >> >> >> >>> Hi Mike, >> >>> I suppose "iso" is an alias for "vm_template". >> >>> See the left join syntax you refered. >> >>> >> >>> > left join >> >>> > `cloud`.`vm_template` iso ON iso.id = volumes.iso_id >> >>> >> >>> >> >>> Regards, >> >>> Noji >> >>> >> >>> 2014-07-01 12:19 GMT-06:00 Mike Tutkowski < >> mike.tutkow...@solidfire.com>: >> >>> > This diff shows some of the problem: >> >>> > >> >>> > http://i.imgur.com/PW7lqbs.png >> >>> > >> >>> > Six fields have been removed from the volume_view and five of those >> six >> >>> are >> >>> > still in use. >> >>> > >> >>> > It is not a simple matter of adding them back in, however, because >> the >> >>> iso >> >>> > table that used to be used is no longer present in 4.5. >> >>> > >> >>> > That being the case, we need to figure out where to get this data >> from >> >>> in >> >>> > 4.5. I don't have a lot of context, though, on why the iso table >> doesn't >> >>> > exist anymore. >> >>> > >> >>> > Thoughts? >> >>> > >> >>> > >> >>> > On Mon, Jun 30, 2014 at 11:12 PM, Mike Tutkowski < >> >>> > mike.tutkow...@solidfire.com> wrote: >> >>> > >> >>> >> Upon further consideration, I forgot that we drop and re-create >> views >> >>> in >> >>> >> the SQL - if need be - from release to release. >> >>> >> >> >>> >> It looks like a new version of the volume_view went into 4.5 with >> >>> >> 11f5bdd78de4121331b07995800f6e9e7c22f2c0, which is from Review >> Request >> >>> >> 19446. >> >>> >> >> >>> >> It appears volume_view is missing several columns. >> >>> >> >> >>> >> >> >>> >> On Mon, Jun 30, 2014 at 10:30 PM, Mike Tutkowski < >> >>> >> mike.tutkow...@solidfire.com> wrote: >> >>> >> >> >>> >>> Actually, in looking at "git blame", it appears this view has >> never >> >>> had >> >>> >>> those two columns. >> >>> >>> >> >>> >>> I think the intent, however, is that those two columns exist in >> the >> >>> view. >> >>> >>> >> >>> >>> I'm adding them in my sandbox and testing this out now. >> >>> >>> >> >>> >>> >> >>> >>> On Mon, Jun 30, 2014 at 10:11 PM, Mike Tutkowski < >> >>> >>> mike.tutkow...@solidfire.com> wrote: >> >>> >>> >> >>> >>>> I looked into this a bit more. >> >>> >>>> >> >>> >>>> It appears that the "volume_view" no longer has the following two >> >>> >>>> columns: >> >>> >>>> >> >>> >>>> vm_template.name template_name >> >>> >>>> vm_template.display_text template_display_text >> >>> >>>> >> >>> >>>> The problem is that the Java class, VolumeJoinVO, still has >> >>> reference to >> >>> >>>> them (a variable for each one). >> >>> >>>> >> >>> >>>> I would just remove these variables; however, they are still in >> use >> >>> as >> >>> >>>> they are returned to clients as responses (at least we try to >> return >> >>> them, >> >>> >>>> but get an exception before being able to do so). >> >>> >>>> >> >>> >>>> If we really want to remove these two columns, that will mean >> >>> breaking >> >>> >>>> the API, which really should wait until a major release. >> >>> >>>> >> >>> >>>> >> >>> >>>> On Mon, Jun 30, 2014 at 9:07 AM, Mike Tutkowski < >> >>> >>>> mike.tutkow...@solidfire.com> wrote: >> >>> >>>> >> >>> >>>>> Thanks for the reply. >> >>> >>>>> >> >>> >>>>> The weird part is that this is the second time I've recreated >> the DB >> >>> >>>>> and seen this issue. >> >>> >>>>> >> >>> >>>>> If I have time a bit later, I can see if the SQL in Git is >> wrong and >> >>> >>>>> update it with what you provided. >> >>> >>>>> >> >>> >>>>> Thanks! >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> On Mon, Jun 30, 2014 at 5:47 AM, Bharat Kumar < >> >>> bharat.ku...@citrix.com> >> >>> >>>>> wrote: >> >>> >>>>> >> >>> >>>>>> Hi Mike, >> >>> >>>>>> >> >>> >>>>>> I think the volume_view did not get created properly for some >> >>> reason. >> >>> >>>>>> I think recreating the volume_view will fix the problem. >> >>> >>>>>> >> >>> >>>>>> below commas should fix the issue. >> >>> >>>>>> >> >>> >>>>>> DROP VIEW IF EXISTS `cloud`.`volume_view`; >> >>> >>>>>> CREATE VIEW `cloud`.`volume_view` AS >> >>> >>>>>> select >> >>> >>>>>> volumes.id, >> >>> >>>>>> volumes.uuid, >> >>> >>>>>> volumes.name, >> >>> >>>>>> volumes.device_id, >> >>> >>>>>> volumes.volume_type, >> >>> >>>>>> volumes.size, >> >>> >>>>>> volumes.min_iops, >> >>> >>>>>> volumes.max_iops, >> >>> >>>>>> volumes.created, >> >>> >>>>>> volumes.state, >> >>> >>>>>> volumes.attached, >> >>> >>>>>> volumes.removed, >> >>> >>>>>> volumes.pod_id, >> >>> >>>>>> volumes.display_volume, >> >>> >>>>>> volumes.format, >> >>> >>>>>> volumes.path, >> >>> >>>>>> volumes.chain_info, >> >>> >>>>>> account.id account_id, >> >>> >>>>>> account.uuid account_uuid, >> >>> >>>>>> account.account_name account_name, >> >>> >>>>>> account.type account_type, >> >>> >>>>>> domain.id domain_id, >> >>> >>>>>> domain.uuid domain_uuid, >> >>> >>>>>> domain.name domain_name, >> >>> >>>>>> domain.path domain_path, >> >>> >>>>>> projects.id project_id, >> >>> >>>>>> projects.uuid project_uuid, >> >>> >>>>>> projects.name project_name, >> >>> >>>>>> data_center.id data_center_id, >> >>> >>>>>> data_center.uuid data_center_uuid, >> >>> >>>>>> data_center.name data_center_name, >> >>> >>>>>> data_center.networktype data_center_type, >> >>> >>>>>> vm_instance.id vm_id, >> >>> >>>>>> vm_instance.uuid vm_uuid, >> >>> >>>>>> vm_instance.name vm_name, >> >>> >>>>>> vm_instance.state vm_state, >> >>> >>>>>> vm_instance.vm_type, >> >>> >>>>>> user_vm.display_name vm_display_name, >> >>> >>>>>> volume_store_ref.size volume_store_size, >> >>> >>>>>> volume_store_ref.download_pct, >> >>> >>>>>> volume_store_ref.download_state, >> >>> >>>>>> volume_store_ref.error_str, >> >>> >>>>>> volume_store_ref.created created_on_store, >> >>> >>>>>> disk_offering.id disk_offering_id, >> >>> >>>>>> disk_offering.uuid disk_offering_uuid, >> >>> >>>>>> disk_offering.name disk_offering_name, >> >>> >>>>>> disk_offering.display_text disk_offering_display_text, >> >>> >>>>>> disk_offering.use_local_storage, >> >>> >>>>>> disk_offering.system_use, >> >>> >>>>>> disk_offering.bytes_read_rate, >> >>> >>>>>> disk_offering.bytes_write_rate, >> >>> >>>>>> disk_offering.iops_read_rate, >> >>> >>>>>> disk_offering.iops_write_rate, >> >>> >>>>>> disk_offering.cache_mode, >> >>> >>>>>> storage_pool.id pool_id, >> >>> >>>>>> storage_pool.uuid pool_uuid, >> >>> >>>>>> storage_pool.name pool_name, >> >>> >>>>>> cluster.hypervisor_type, >> >>> >>>>>> vm_template.id template_id, >> >>> >>>>>> vm_template.uuid template_uuid, >> >>> >>>>>> vm_template.extractable, >> >>> >>>>>> vm_template.type template_type, >> >>> >>>>>> vm_template.name template_name, >> >>> >>>>>> vm_template.display_text template_display_text, >> >>> >>>>>> iso.id iso_id, >> >>> >>>>>> iso.uuid iso_uuid, >> >>> >>>>>> iso.name iso_name, >> >>> >>>>>> iso.display_text iso_display_text, >> >>> >>>>>> resource_tags.id tag_id, >> >>> >>>>>> resource_tags.uuid tag_uuid, >> >>> >>>>>> resource_tags.key tag_key, >> >>> >>>>>> resource_tags.value tag_value, >> >>> >>>>>> resource_tags.domain_id tag_domain_id, >> >>> >>>>>> resource_tags.account_id tag_account_id, >> >>> >>>>>> resource_tags.resource_id tag_resource_id, >> >>> >>>>>> resource_tags.resource_uuid tag_resource_uuid, >> >>> >>>>>> resource_tags.resource_type tag_resource_type, >> >>> >>>>>> resource_tags.customer tag_customer, >> >>> >>>>>> async_job.id job_id, >> >>> >>>>>> async_job.uuid job_uuid, >> >>> >>>>>> async_job.job_status job_status, >> >>> >>>>>> async_job.account_id job_account_id >> >>> >>>>>> from >> >>> >>>>>> `cloud`.`volumes` >> >>> >>>>>> inner join >> >>> >>>>>> `cloud`.`account` ON volumes.account_id = account.id >> >>> >>>>>> inner join >> >>> >>>>>> `cloud`.`domain` ON volumes.domain_id = domain.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`projects` ON projects.project_account_id = >> >>> account.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`data_center` ON volumes.data_center_id = >> >>> >>>>>> data_center.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`vm_instance` ON volumes.instance_id = >> >>> vm_instance.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`user_vm` ON user_vm.id = vm_instance.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`volume_store_ref` ON volumes.id = >> >>> >>>>>> volume_store_ref.volume_id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`disk_offering` ON volumes.disk_offering_id = >> >>> >>>>>> disk_offering.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`storage_pool` ON volumes.pool_id = >> >>> storage_pool.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`cluster` ON storage_pool.cluster_id = >> cluster.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`vm_template` ON volumes.template_id = >> >>> vm_template.id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`vm_template` iso ON iso.id = volumes.iso_id >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`resource_tags` ON resource_tags.resource_id = >> >>> >>>>>> volumes.id >> >>> >>>>>> and resource_tags.resource_type = 'Volume' >> >>> >>>>>> left join >> >>> >>>>>> `cloud`.`async_job` ON async_job.instance_id = >> volumes.id >> >>> >>>>>> and async_job.instance_type = 'Volume' >> >>> >>>>>> and async_job.job_status = 0; >> >>> >>>>>> >> >>> >>>>>> Thanks, >> >>> >>>>>> Bharat. >> >>> >>>>>> >> >>> >>>>>> On 28-Jun-2014, at 3:30 am, Mike Tutkowski < >> >>> >>>>>> mike.tutkow...@solidfire.com> wrote: >> >>> >>>>>> >> >>> >>>>>> > Hi, >> >>> >>>>>> > >> >>> >>>>>> > If you click on the Storage tab in the GUI when you have one >> or >> >>> more >> >>> >>>>>> > volumes, you receive the following exception (is this >> something >> >>> >>>>>> someone is >> >>> >>>>>> > already working on?): >> >>> >>>>>> > >> >>> >>>>>> > Caused by: >> >>> com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: >> >>> >>>>>> > Unknown column 'volume_view.template_name' in 'field list' >> >>> >>>>>> > at >> >>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >> >>> >>>>>> Method) >> >>> >>>>>> > at >> >>> >>>>>> > >> >>> >>>>>> >> >>> >> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) >> >>> >>>>>> > at >> >>> >>>>>> > >> >>> >>>>>> >> >>> >> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) >> >>> >>>>>> > at >> >>> java.lang.reflect.Constructor.newInstance(Constructor.java:526) >> >>> >>>>>> > at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) >> >>> >>>>>> > at com.mysql.jdbc.Util.getInstance(Util.java:386) >> >>> >>>>>> > at >> >>> com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053) >> >>> >>>>>> > at >> com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4074) >> >>> >>>>>> > at >> com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4006) >> >>> >>>>>> > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2468) >> >>> >>>>>> > at >> com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2629) >> >>> >>>>>> > at >> >>> com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2719) >> >>> >>>>>> > at >> >>> >>>>>> > >> >>> >>>>>> >> >>> >> com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155) >> >>> >>>>>> > at >> >>> >>>>>> > >> >>> >>>>>> >> >>> >> com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2318) >> >>> >>>>>> > at >> >>> >>>>>> > >> >>> >>>>>> >> >>> >> org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:96) >> >>> >>>>>> > >> >>> >>>>>> > Thanks! >> >>> >>>>>> > >> >>> >>>>>> > -- >> >>> >>>>>> > *Mike Tutkowski* >> >>> >>>>>> > *Senior CloudStack Developer, SolidFire Inc.* >> >>> >>>>>> > e: mike.tutkow...@solidfire.com >> >>> >>>>>> > o: 303.746.7302 >> >>> >>>>>> > Advancing the way the world uses the cloud >> >>> >>>>>> > <http://solidfire.com/solution/overview/?video=play>*™* >> >>> >>>>>> >> >>> >>>>>> >> >>> >>>>> >> >>> >>>>> >> >>> >>>>> -- >> >>> >>>>> *Mike Tutkowski* >> >>> >>>>> *Senior CloudStack Developer, SolidFire Inc.* >> >>> >>>>> e: mike.tutkow...@solidfire.com >> >>> >>>>> o: 303.746.7302 >> >>> >>>>> Advancing the way the world uses the cloud >> >>> >>>>> <http://solidfire.com/solution/overview/?video=play>*™* >> >>> >>>>> >> >>> >>>> >> >>> >>>> >> >>> >>>> >> >>> >>>> -- >> >>> >>>> *Mike Tutkowski* >> >>> >>>> *Senior CloudStack Developer, SolidFire Inc.* >> >>> >>>> e: mike.tutkow...@solidfire.com >> >>> >>>> o: 303.746.7302 >> >>> >>>> Advancing the way the world uses the cloud >> >>> >>>> <http://solidfire.com/solution/overview/?video=play>*™* >> >>> >>>> >> >>> >>> >> >>> >>> >> >>> >>> >> >>> >>> -- >> >>> >>> *Mike Tutkowski* >> >>> >>> *Senior CloudStack Developer, SolidFire Inc.* >> >>> >>> e: mike.tutkow...@solidfire.com >> >>> >>> o: 303.746.7302 >> >>> >>> Advancing the way the world uses the cloud >> >>> >>> <http://solidfire.com/solution/overview/?video=play>*™* >> >>> >>> >> >>> >> >> >>> >> >> >>> >> >> >>> >> -- >> >>> >> *Mike Tutkowski* >> >>> >> *Senior CloudStack Developer, SolidFire Inc.* >> >>> >> e: mike.tutkow...@solidfire.com >> >>> >> o: 303.746.7302 >> >>> >> Advancing the way the world uses the cloud >> >>> >> <http://solidfire.com/solution/overview/?video=play>*™* >> >>> >> >> >>> > >> >>> > >> >>> > >> >>> > -- >> >>> > *Mike Tutkowski* >> >>> > *Senior CloudStack Developer, SolidFire Inc.* >> >>> > e: mike.tutkow...@solidfire.com >> >>> > o: 303.746.7302 >> >>> > Advancing the way the world uses the cloud >> >>> > <http://solidfire.com/solution/overview/?video=play>*™* >> >>> >> >> >> >> >> >> >> >> -- >> >> *Mike Tutkowski* >> >> *Senior CloudStack Developer, SolidFire Inc.* >> >> e: mike.tutkow...@solidfire.com >> >> o: 303.746.7302 >> >> Advancing the way the world uses the cloud >> >> <http://solidfire.com/solution/overview/?video=play>*™* >> >> >> > >> > >> > >> > -- >> > *Mike Tutkowski* >> > *Senior CloudStack Developer, SolidFire Inc.* >> > e: mike.tutkow...@solidfire.com >> > o: 303.746.7302 >> > Advancing the way the world uses the cloud >> > <http://solidfire.com/solution/overview/?video=play>*™* >> > > > > -- > *Mike Tutkowski* > *Senior CloudStack Developer, SolidFire Inc.* > e: mike.tutkow...@solidfire.com > o: 303.746.7302 > Advancing the way the world uses the cloud > <http://solidfire.com/solution/overview/?video=play>*™* > -- *Mike Tutkowski* *Senior CloudStack Developer, SolidFire Inc.* e: mike.tutkow...@solidfire.com o: 303.746.7302 Advancing the way the world uses the cloud <http://solidfire.com/solution/overview/?video=play>*™*