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>*™*

Reply via email to