I agree...we should fix it in 4.4.

Would you write up a JIRA ticket for it, Chris?

Thanks!


On Mon, Jan 27, 2014 at 12:26 PM, SuichII, Christopher <
chris.su...@netapp.com> wrote:

> I suspect the reason you don’t have this problem is that you don’t have
> any storage pool details whose value is ‘true’. That is the only case where
> this problem arises.
>
> I think we do have a problem differentiating, though. If you list all of
> the storage tags for a storage pool, then any storage pool details whose
> value is ‘true’ will be assumed to be a storage tag. The only way around
> this problem I see is to cross reference the results there with all of the
> storage tags from disk offerings, and if you find a storage pool detail
> that doesn’t match a disk offering storage tag, then assume it isn’t a
> storage tag.
>
> Unfortunately it sounds like this is way out of scope for 4.3. I think we
> need to start thinking about how we can fix this issue moving forward now
> that there will be plugins out there impacted by this.
>
> -Chris
> --
> Chris Suich
> chris.su...@netapp.com
> NetApp Software Engineer
> Data Center Platforms – Cloud Solutions
> Citrix, Cisco & Red Hat
>
> On Jan 27, 2014, at 2:21 PM, Marcus Sorensen <shadow...@gmail.com> wrote:
>
> > I'm ok with whatever. It does seem like we have the ability to
> > differentiate real storage tags from details, since we can list/edit
> > those storage tags (I don't see all of my details showing up in the UI
> > when I look at the tags for my primary storage), though I'm not
> > immediately sure why or how at the moment. I think this affects Mike
> > the most, since he's shipping a plugin to customers. I can just look
> > at whatever changes are made and update my pools manually, if need be.
> >
> > On Mon, Jan 27, 2014 at 11:43 AM, Mike Tutkowski
> > <mike.tutkow...@solidfire.com> wrote:
> >> I agree...it certainly is not an ideal situation.
> >>
> >> Have you assessed the risk involved with changing storage tags from
> using
> >> true as a value to using something like storage_tag as a value?
> >>
> >> If so, do you feel it is an acceptable amount of risk for 4.3 now that
> we
> >> have already begun spinning up RC builds?
> >>
> >> Thanks
> >>
> >>
> >> On Mon, Jan 27, 2014 at 8:40 AM, SuichII, Christopher <
> >> chris.su...@netapp.com> wrote:
> >>
> >>> I think my only real concern with working around it in this manner is
> that
> >>> once a fix is applied, we now have a bunch of settings that do not
> conform
> >>> to the true/false pattern. In order to migrate them from using t/f,
> yes/no
> >>> or enabled/disabled back to using true/false, we would have to write
> some
> >>> kind of DB upgrade/migration in our plugin to update these values. In
> >>> addition, I would have to change the ConfigKey from being a boolean to
> a
> >>> string and then back to a boolean once a solution is implemented. It is
> >>> just some technical debt that would pile up for plugins with a pretty
> nasty
> >>> fix down the road.
> >>>
> >>> -Chris
> >>> --
> >>> Chris Suich
> >>> chris.su...@netapp.com
> >>> NetApp Software Engineer
> >>> Data Center Platforms – Cloud Solutions
> >>> Citrix, Cisco & Red Hat
> >>>
> >>> On Jan 27, 2014, at 10:33 AM, Mike Tutkowski <
> mike.tutkow...@solidfire.com>
> >>> wrote:
> >>>
> >>>> It is a problem, but I think - at the moment - only NetApp, SolidFire,
> >>> and
> >>>> Marcus have storage plug-ins.
> >>>>
> >>>> We could document this issue and the easy workaround of not using true
> >>> and
> >>>> false as a value and try to address it in 4.4.
> >>>>
> >>>>
> >>>> On Mon, Jan 27, 2014 at 7:53 AM, SuichII, Christopher <
> >>>> chris.su...@netapp.com> wrote:
> >>>>
> >>>>> Any final thoughts on this? Letting this go into 4.3 could
> potentially
> >>>>> cause issues with anyone using the configuration system for plugins
> in
> >>> 4.3.
> >>>>>
> >>>>> -Chris
> >>>>> --
> >>>>> Chris Suich
> >>>>> chris.su...@netapp.com
> >>>>> NetApp Software Engineer
> >>>>> Data Center Platforms – Cloud Solutions
> >>>>> Citrix, Cisco & Red Hat
> >>>>>
> >>>>> On Jan 24, 2014, at 3:34 PM, SuichII, Christopher <
> >>> chris.su...@netapp.com>
> >>>>> wrote:
> >>>>>
> >>>>>> This is the approach we’ll have to take if we can’t fix this in
> 4.3. It
> >>>>> certainly works, but it isn’t ideal.
> >>>>>>
> >>>>>> Does anyone else have any thoughts on the impact this might have to
> >>> 4.3?
> >>>>>>
> >>>>>> -Chris
> >>>>>> --
> >>>>>> Chris Suich
> >>>>>> chris.su...@netapp.com
> >>>>>> NetApp Software Engineer
> >>>>>> Data Center Platforms – Cloud Solutions
> >>>>>> Citrix, Cisco & Red Hat
> >>>>>>
> >>>>>> On Jan 24, 2014, at 10:11 AM, Mike Tutkowski <
> >>>>> mike.tutkow...@solidfire.com> wrote:
> >>>>>>
> >>>>>>> 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>
> >>>>>>> *™*
> >>>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>> --
> >>>> *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