This isn't a great solution, but you could also change the value for your plug-in from true or false to something like t or f.
On Fri, Jan 24, 2014 at 8:08 AM, Mike Tutkowski < mike.tutkow...@solidfire.com> wrote: > Edison could confirm this perhaps, but I doubt any current installation > would have true for the value unless it was for a storage tag (the plug-in > framework just came out in 4.2). > > > On Fri, Jan 24, 2014 at 8:05 AM, Mike Tutkowski < > mike.tutkow...@solidfire.com> wrote: > >> I think your idea would be acceptable risk for 4.3. The upgrade logic >> would have to perform this true-to-storage_tag conversion, too, though. >> >> >> On Fri, Jan 24, 2014 at 8:00 AM, SuichII, Christopher < >> chris.su...@netapp.com> wrote: >> >>> I think the quickest, easiest change would be to keep using the tag name >>> as the key in the details table, but use a unique value like ‘storage_tag’ >>> instead of ‘true’. This wouldn’t require any major logic changes, just the >>> value used to check whether something is a storage tag. >>> >>> It is quite risky for 4.3. However my concern is that if we let this >>> ship with 4.3, then any plugin that wants to use a storage pool detail with >>> the value ‘true’ will make updating the storage tag system MUCH more >>> difficult. As far as I can tell, there is no other way to determine if >>> something is a storage tag than checking if the details table value is >>> ‘true’. If there are other details with the value ‘true’, then we wouldn’t >>> be able to differentiate between them for a DB upgrade between versions. >>> >>> -Chris >>> -- >>> Chris Suich >>> chris.su...@netapp.com >>> NetApp Software Engineer >>> Data Center Platforms – Cloud Solutions >>> Citrix, Cisco & Red Hat >>> >>> On Jan 24, 2014, at 9:53 AM, Mike Tutkowski < >>> mike.tutkow...@solidfire.com> wrote: >>> >>> > I think at some point we need to use a key/value for storage tags such >>> as >>> > the following: >>> > >>> > storageTags=value1,value2,value3 >>> > >>> > The problem with that is you have to parse the value cell each time you >>> > pull it out of the DB. >>> > >>> > That might be too risky of a change, though, for 4.3 at this point. >>> > >>> > >>> > On Fri, Jan 24, 2014 at 5:24 AM, SuichII, Christopher < >>> > chris.su...@netapp.com> wrote: >>> > >>> >> I have found an additional issue related to this. The allocators do >>> >> properly ignore any storage pool details whose value is true that is >>> not >>> >> actually a storage pool. However, the list storage pools API does >>> NOT. When >>> >> creating the StoragePoolResponse, it is still assumed that any >>> storage pool >>> >> detail with the value ‘true’ is a storage tag. >>> >> >>> >> For my plugin targeting 4.3, we create a storage pool detail with a >>> >> true/false value, so this causes a problem with the storage pool UI. >>> >> >>> >> Any thoughts on how to fix this? >>> >> >>> >> -Chris >>> >> -- >>> >> Chris Suich >>> >> chris.su...@netapp.com >>> >> NetApp Software Engineer >>> >> Data Center Platforms – Cloud Solutions >>> >> Citrix, Cisco & Red Hat >>> >> >>> >> On Oct 23, 2013, at 6:43 PM, Alena Prokharchyk < >>> >> alena.prokharc...@citrix.com> wrote: >>> >> >>> >>> Filed >>> >>> >>> >>> https://issues.apache.org/jira/browse/CLOUDSTACK-4942 >>> >>> >>> >>> -Alena. >>> >>> >>> >>> From: Prachi Damle <prachi.da...@citrix.com<mailto: >>> >> prachi.da...@citrix.com>> >>> >>> Date: Wednesday, October 23, 2013 2:04 PM >>> >>> To: Alena Prokharchyk <alena.prokharc...@citrix.com<mailto: >>> >> alena.prokharc...@citrix.com>>, "dev@cloudstack.apache.org<mailto: >>> >> dev@cloudstack.apache.org>" <dev@cloudstack.apache.org<mailto: >>> >> dev@cloudstack.apache.org>> >>> >>> Subject: RE: Tags on storagePool >>> >>> >>> >>> Alena, >>> >>> >>> >>> I don’t know why it was designed this way in first place – a design >>> like >>> >> host_tags where we have separate table to store tags is much better >>> for >>> >> Allocators to work on. >>> >>> >>> >>> It is a bug, but will cause problem only if we land up with situation >>> >> explained below: >>> >>> >>> >>> Given the existing design of storage tags, the Allocators search the >>> >> details table using the name = <tag-provided-in-disk-offering> and >>> value >>> >> =true >>> >>> Thus this will cause a problem in placement only if some other >>> storage >>> >> pool detail happen to have the same ‘name’ as a storage-tag and also a >>> >> value = true. >>> >>> >>> >>> -Prachi >>> >>> >>> >>> From: Alena Prokharchyk >>> >>> Sent: Wednesday, October 23, 2013 1:36 PM >>> >>> To: Prachi Damle; dev@cloudstack.apache.org<mailto: >>> >> dev@cloudstack.apache.org> >>> >>> Subject: Tags on storagePool >>> >>> >>> >>> I came across a potential bug in the way allocators do volumes >>> placement >>> >> on storage, based on storage tags. Prachi, can you please confirm if >>> the >>> >> bug is real. >>> >>> >>> >>> >>> >>> The tags are passed to the createStoragePool API in form of >>> >> tags='tag1,tag2,..': >>> >>> >>> >>> ?command=createStoragePool&...&tags=alena >>> >>> >>> >>> and stored in the storage_pool_details db table as: >>> >>> >>> >>> mysql> select *from storage_pool_details where pool_id=2; >>> >>> +----+---------+-----------+-------+ >>> >>> | id | pool_id | name | value | >>> >>> +----+---------+-----------+-------+ >>> >>> | 2 | 2 | alenatags | true | >>> >>> +----+---------+-----------+-------+ >>> >>> 1 row in set (0.00 sec) >>> >>> >>> >>> >>> >>> Allocator code assumes that everything stored in storage_pool_details >>> >> table, having value=true - is a storage pool tag. And this is >>> incorrect, as >>> >> the storage_pool_details table is used for storing diff kinds of >>> storage >>> >> pool details - not just tags - that can be later used by various >>> cloudStack >>> >> managers. Like for example we save Storage level config parameters in >>> this >>> >> table ( >>> >> >>> https://cwiki.apache.org/confluence/display/CLOUDSTACK/FS+for+Granular+Global+Configuration+Parameters >>> >> ). >>> >>> >>> >>> >>> >>> The correct way to fix it would be - store tags as: >>> >>> >>> >>> +----+---------+-----------+-------+ >>> >>> | id | pool_id | name | value | >>> >>> +----+---------+-----------+-------+ >>> >>> | 2 | 2 | tag | alena | >>> >>> +----+---------+-----------+-------+ >>> >>> >>> >>> >>> >>> and fix StorageManager to retrive all the tags by the "tag" key. We >>> also >>> >> have to fix the DB upgrade, which can be tricky as we will have to >>> figure >>> >> out which detail is a tag. >>> >>> >>> >>> >>> >>> -Alena. >>> >>> >>> >> >>> >> >>> > >>> > >>> > -- >>> > *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> *™*