16:01:09 <schwicke> #startmeeting hierarchical_multitenancy
16:01:10 <openstack> Meeting started Fri Jun 19 16:01:09 2015 UTC and is due to finish in 60 minutes.  The chair is schwicke. Information about MeetBot at http://wiki.debian.org/MeetBot.
16:01:11 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote.
16:01:14 <openstack> The meeting name has been set to 'hierarchical_multitenancy'
16:01:18 <schwicke> Hi all!
16:01:21 <raildo> hi schwicke :)
16:01:34 <schwicke> nice to see you back1
16:01:35 <ericksonsantos> Hi :)
16:01:52 <schwicke> Sorry I had to drop out for a while for various personal and professional reasons
16:01:54 <schwicke> :)
16:02:08 <raildo> schwicke, nice to see you back too :)
16:02:11 <belmoreira> o/
16:02:21 <vilobhmm> hello all
16:02:24 <schwicke> hi, Belmiro! Good to have you here as well
16:02:28 <sajeesh> hi raildo
16:02:34 <sajeesh> hi belmiro
16:02:36 <schwicke> Hi, Raildo, Vilob!
16:02:45 <sajeesh> hi vilob
16:02:57 <vilobhmm> hello schwicke! hi sajeesh ! :)
16:03:07 <vilobhmm> so if we have everyone should we start
16:03:11 <raildo> hey sajeesh
16:03:13 <sajeesh> ok
16:03:17 <schwicke> I had circulated a set of topics to be discussed. I didn't get much feedback so lets just start
16:03:32 <schwicke> #topic  Default quota patch - root level project gets default values set in cinder.conf
16:03:46 <vilobhmm> schwicke : I am working on these changes
16:03:57 <schwicke> the question here was if we can do the same for nova
16:04:00 <vilobhmm> will get the patch out EOD
16:04:09 <schwicke> great!
16:04:14 <ericksonsantos> nice
16:04:20 <schwicke> this is for cinder, isn't it ?
16:04:20 <sajeesh> schwicke it is done and I have uploaded the patch
16:04:34 <schwicke> very good. So that can be ticket off.
16:04:42 <sajeesh> I mean in nova , it is done
16:04:55 <schwicke> sajeesh: very good!
16:05:04 <vilobhmm> https://review.openstack.org/151677
16:05:07 <ericksonsantos> Did you solve your problem vilobhmm ?
16:05:08 <sajeesh> thanks...please review it
16:05:11 <vilobhmm> patch is nova under review
16:05:52 <sajeesh> yes
16:06:07 <sajeesh> https://review.openstack.org/#/c/149828/
16:06:25 <vilobhmm> ericsonsantos : I think just adding a classification of whether a project is a sub-project or not is not sufficient IMHO https://github.com/openstack/cinder/blob/master/cinder/quota.py#L106
16:06:51 <vilobhmm> sajeesh's default quota patch : https://review.openstack.org/151677
16:06:59 <vilobhmm> sajessh's nested quota driver patch : https://review.openstack.org/149828
16:07:18 <vilobhmm> so i have a question to raildo, eric, sajeesh
16:07:27 <vilobhmm> so how do you guys go about testing the changes
16:07:28 <sajeesh> that has to be abandoned...I think so
16:07:58 <ericksonsantos> I think that is the wrong approach
16:08:10 <ericksonsantos> as I have commented on the patch
16:08:28 <vilobhmm> are you talking about https://review.openstack.org/151677  erissonsantos
16:08:37 <ericksonsantos> vilobhmm, yes
16:09:00 <vilobhmm> yes sajeesh I think https://review.openstack.org/#/c/151677/13/nova/quota.py won;t fly
16:09:16 <sajeesh> yes of course
16:09:27 <vilobhmm> what we need to do is keep the default values same and see if we have a sub-project and then reset the values to zero as mentioned in the spec IMHO
16:09:44 <raildo> vilobhmm, you mean test the quota code? The last time that I had tested was running tox, since there is some bugs in the all patches, and I can't put this in a devstack or something like that.
16:09:45 <vilobhmm> please correct me if wrong
16:10:10 <sajeesh> Vilobh, I have done like that in my new patch , https://review.openstack.org/#/c/149828/
16:10:12 <ericksonsantos> vilobhmm, yes, I do think so
16:10:32 <vilobhmm> raildo : thanks :) will come back to it in a while …. right now just focussing on https://review.openstack.org/151677
16:11:07 <vilobhmm> sajeesh even with https://review.openstack.org/#/c/149828/16/nova/db/sqlalchemy/api.py IMHO you need more
16:11:20 <sajeesh> erickson , please check https://review.openstack.org/#/c/149828/. In that I have implemented the above said use case
16:11:23 <raildo> vilobhmm, hum... I don't like this idea, since the current default values correspond to a single project, if we get this default values and divide to a hierarchy, you will have few resources for each subprojects
16:11:28 <vilobhmm> as in the quota_create query you will need to update the allocated field which will be part of nova.quotas
16:12:03 <sajeesh> raildo, default values can be made higher
16:12:10 <vilobhmm> sajeesh : will check it out! Thanks for all the efforts !
16:12:55 <sajeesh> vilobh, it is not  just api.py...more have been done
16:13:00 <ericksonsantos> raildo, I think that approach is more safe
16:13:04 <ericksonsantos> for now
16:13:07 <raildo> sajeesh, the questions is, how much higher? I don't know how... I prefer just set to zero and the ops will decide this.
16:13:08 <sajeesh> yes
16:13:14 <vilobhmm> ericsansantos : +1
16:13:36 <vilobhmm> raildo : you mean 0 even for the ROOT project ?
16:14:02 <vilobhmm> and then the respective admin does a nova quota-update to update the quota for the resp project ?
16:14:30 <vilobhmm> but this idea didn't go well when sajeesh tried to convince the same to nova folks….sajeesh is that true ?
16:14:37 <ericksonsantos> sajeesh, i'll take a look at it
16:14:39 <raildo> vilobhmm, yeap
16:14:41 <sajeesh> yes
16:15:27 <sajeesh> raildo, when there is no heirarchy the NestedQuotaDriver should exactly work like the DbQuotaDriver
16:15:46 <schwicke> sorry, I had a networking problem and dropped out
16:15:57 <raildo> sajeesh, hum...
16:15:59 <vilobhmm> so do we have a conclusion on this that atleast for root project we let the default  values be as it is whereas for sub-projects set it to 0
16:16:00 <sajeesh> for that root projects should have default quota values
16:16:07 <sajeesh> that is one reason
16:16:25 <vilobhmm> and then let the admin update the quota for resp sub projects
16:16:32 <vilobhmm> sajeesh : agree!
16:17:04 <schwicke> ok, can we agree on this then ? I can't see anything wrong with that
16:17:10 <belmoreira> raildo: it will not be easy to merge this if you change current behaviour
16:17:14 <sajeesh> the other one is that , the test cases of many other api s other than quota are written by expecting from finite default quota values
16:17:44 <ericksonsantos> belmoreira ++
16:17:46 <vilobhmm> true
16:17:56 <vilobhmm> belmoreira : +1
16:18:10 <vilobhmm> sajeesh's email to community explaining the same problem https://www.mail-archive.com/openstack-dev@lists.openstack.org/msg53030.html
16:18:11 <sajeesh> belmoreira:++1
16:18:24 <raildo> belmoreira, I don't want to change the behaviour, I just think that the current default quotas are not enough to a hierarchy, but I'm ok with that, this is not a big problem
16:19:11 <schwicke> I  agree that it does not look too nice to have to distinguish the root project from any other projects. On the other hand, it is already kind of a bit special, isn't it ?
16:19:13 <sajeesh> values can be changed based on the scale of the organization
16:19:26 <vilobhmm> raildo : I agree the default are not enough but they can be changed IMHO using quota-update once the project is created
16:19:32 <vilobhmm> sajeesh : true
16:19:34 <sajeesh> yes , it is
16:20:13 <vilobhmm> so if we agree on this nova, cinder can take the same route and we can keep the functionality unified
16:20:30 <schwicke> sounds good to me
16:20:31 <sajeesh> vilob +1
16:20:32 <ericksonsantos> vilobhmm, so, we can do the same on cinder
16:20:37 <schwicke> vilob: +1
16:20:55 <schwicke> I wonder if we need to update the BP for this
16:21:11 <vilobhmm> schwicke : the blueprint/spec already says that
16:21:17 <schwicke> ok
16:21:21 <vilobhmm> we shoudl be good here
16:21:46 <schwicke> #agreed: the root project should have default quota values and children set the default quota to zero
16:21:57 <vilobhmm> perfect !
16:22:09 <schwicke> #agreed: we take the same approach for cinder and for nova
16:22:18 <schwicke> Let's move on then
16:22:27 <sajeesh> ok
16:22:40 <schwicke> #topic: writing unit tests
16:22:55 <schwicke> where are we with this ?
16:23:01 <vilobhmm> Update : from cinder perspective I have not started it yet
16:23:08 <schwicke> ok
16:23:13 <vilobhmm> will need help here
16:23:20 <vilobhmm> to move the patch quickly ahead
16:23:27 <schwicke> vilobhmm: you mean the unit tests for cinder?
16:23:29 <sajeesh> shwicke we have solve the issue with mocking keystone calls
16:23:34 <vilobhmm> ericsansantos has been very kind in providing help
16:23:50 <sajeesh> yes, thanks erickson
16:23:56 <vilobhmm> schwicke : yes writing unit test for the nested quota driver changes
16:24:17 <ericksonsantos> :)
16:24:22 <ericksonsantos> sajeesh, how did you do that?
16:24:38 <schwicke> let'smake that an action item then
16:24:59 <schwicke> #action write unit tests for cinder
16:25:01 <sajeesh> sorry...we have to solve the issue...I missed "to solve " :-)
16:25:17 <schwicke> yes, next on the list
16:25:29 <schwicke> what is the status of the unit tests for nova then ?
16:25:48 <ericksonsantos> sajeesh, oh, I see
16:25:59 <sajeesh> mocking keystone call is the road block
16:26:20 <schwicke> #topic mocking keystone call
16:26:23 <sajeesh> I am planning to take advice from the community,by sending a mail
16:27:11 <belmoreira> sajeesh: please do
16:27:14 <vilobhmm> sajeesh : is there any place in nova code where they have done it before that we can use as a reference i will check in cinder code
16:27:16 <sajeesh> ok
16:27:17 <ericksonsantos> About the keystone calls, why don't you check if the specified project is a subproject
16:27:28 <raildo> i recommend take a look in the nova and cinder tests. I believe that exists tests when they need to mock a keystone client, to request something in Keystone
16:27:30 <sajeesh> vilob, no..
16:27:31 <ericksonsantos> (make a keystone call in order to know if the project has a parent_id)
16:27:39 <vilobhmm> raildo : +1
16:27:47 <ericksonsantos> on the controller level and provide this information to the configured quota driver?
16:28:13 <sajeesh> raildo, they are mocking at the begining of the api call , not in the middle
16:28:24 <ericksonsantos> sajeesh, we can do that too
16:28:39 <ericksonsantos> we only need to change the approach, I guess
16:28:55 <sajeesh> erickson, at controller won't it be having some other implications
16:29:11 <ericksonsantos> sajeesh, can you explain?
16:29:33 <sajeesh> I am also not sure of it
16:29:56 <sajeesh> that was why I had thought of taking advice from nova core
16:30:05 <ericksonsantos> I think if we make keystone calls at the controller level we can mock it on functional tests
16:30:31 <vilobhmm> ericksonsantos : If you can give some kind of a reference it should be useful IMHO
16:30:35 <ericksonsantos> and we just have to pass to the configured quota driver what it needs to know (if the project is a subproject, for example)
16:30:42 <sajeesh> yes
16:32:15 <ericksonsantos> so do you agree on that?
16:32:20 <belmoreira> I think it doesn't hurt asking in the mailing list. It also exposes the code for future review
16:32:37 <sajeesh> belmoreira ++
16:32:42 <schwicke> belmoreira +1
16:32:42 <raildo> just to say that the other services don't access keystone directly, in other words, nova and cinder have to use the keystone client for that.
16:32:47 <vilobhmm> belmoreira: + 1
16:33:28 <belmoreira> raildo: yes, that is my major concern
16:33:39 <schwicke> sajeesh: can you draft a mail to the mailing list then ?
16:33:52 <sajeesh> yes ..surely
16:33:52 <vilobhmm> raildo : true…as part of https://review.openstack.org/#/c/149828/16/nova/api/openstack/compute/contrib/quotas.py I see that is already done…
16:34:28 <vilobhmm> sajeesh is using from keystoneclient.v3 import client
16:34:28 <vilobhmm> to use keystone client to access keystone from nova IMHO
16:35:13 <vilobhmm> and the approach should be same for unit test as well nova->keystoneclient->keystone
16:35:25 <vilobhmm> mocked may be
16:35:55 <vilobhmm> so we agree that sajeesh will send out an email …lets move to next topic
16:36:23 <schwicke> #agreed Sajeesh will contact the mailing list to get advice on the keystone call
16:36:46 <sajeesh> one more thing ...only the test code is failing , otherwise code is working fine and all the use cases in the bp has been implemented
16:36:46 <schwicke> #action Sajeesh contact the mailing list to get advice on the keystone call
16:37:05 <schwicke> ok
16:37:29 <vilobhmm> sajeesh : awesome !
16:37:30 <schwicke> I had "synchronisation of quota changes in sub-projects with Nova" on my original topic list
16:37:39 <schwicke> which is essentially the keystone calls we just discussed.
16:37:43 <schwicke> so let's move on
16:37:48 <sajeesh> :-)
16:37:55 <schwicke> #topic code availability and merging of patches
16:38:16 <ericksonsantos> sajeesh, so you've tested on devstack?
16:38:29 <sajeesh> erickson ,yes
16:38:35 <ericksonsantos> sajeesh, nice
16:38:51 <vilobhmm> cool
16:38:56 <sajeesh> Can you please test it ?
16:39:06 <ericksonsantos> sajeesh, sure
16:39:18 <sajeesh> thanks
16:39:29 <vilobhmm> Update for Cinder
16:39:49 <vilobhmm> 1. Seeing weird gate errors here https://review.openstack.org/#/c/185704/ otherwise this should get merged soon
16:39:52 <schwicke> #action ericksonsantos will test the code
16:39:58 <vilobhmm> have enough +1, +2
16:40:35 <vilobhmm> 2. Will send out code for default quota values based on what we agreed on in today meeting i.e root gets default sub-project gets 0
16:40:58 <schwicke> ok
16:41:36 <schwicke> #action vilobhmm will update cinder code with agreed items from this meeting
16:41:55 <schwicke> Sajeesh has already uploaded the latest code, right ?
16:42:00 <sajeesh> yes
16:42:01 <vilobhmm> 3. I am on a family trip from Jun 24 - July 7th will work remotely as an when I get time…but I am commited to finshing my work on nested quota driver implementation..
16:42:08 <raildo> vilobhmm,  migrate.exceptions.ScriptError: You can only have one Python script per version, but you have: /home/jenkins/workspace/gate-cinder-python27/cinder/db/sqlalchemy/migrate_repo/versions/047_add_allocated_in_quotas.py and /home/jenkins/workspace/gate-cinder-python27/cinder/db/sqlalchemy/migrate_repo/versions/047_add_per_volume_quota.py
16:42:23 <raildo> vilobhmm, you need to do rebase on your patch
16:42:35 <vilobhmm> need to update the version of the table then
16:42:51 <raildo> vilobhmm, yes
16:42:54 <vilobhmm> raildo : thanks for pointing that out….thats what happens when the reviews take longer :)
16:43:02 <sajeesh> :)
16:43:15 <schwicke> want me to action item that /
16:43:16 <schwicke> ?
16:43:25 <ericksonsantos> vilobhmm, I can help you with that if you want to
16:43:25 <vilobhmm> so if all all  can chip in for the review when i post it in next 1 hour for https://review.openstack.org/#/c/185704/ that will be helpful
16:44:16 <vilobhmm> eriksonsantos : I will get it rolling in next hour…please review it if you can….thank you!
16:44:26 <ericksonsantos> vilobhmm, ok
16:44:48 <schwicke> #action all: review next update of https://review.openstack.org/#/c/185704/ asap
16:44:51 <vilobhmm> schwicke : thats it from my side
16:44:58 <schwicke> ok
16:45:00 <vilobhmm> as in cinder nested quota driver
16:45:13 <vilobhmm> schwicke : thanks :)
16:45:47 <sajeesh> schwicke: thanks a lot :-)
16:45:51 <schwicke> so I think we are through with that as well
16:46:07 <vilobhmm> and I will review all the patches that sajeesh will post so that we can move quicker..
16:46:23 <schwicke> one thing is still not 100% clear to me: where are we with the unit test writing for the hierarchical quota in nova ?
16:46:28 <sajeesh> vilobh thanks....I will review yours
16:47:00 <vilobhmm> sajeesh : thanks!
16:47:07 <sajeesh> schwicke, we have to solve the keystone issue
16:47:15 <schwicke> ok, sure.
16:47:41 <schwicke> #topic AOB
16:47:43 <sajeesh> then only we can proceed with the unit tests
16:48:14 <vilobhmm> schwicke : If we have covered all the topic I would like to have an open question for the team
16:48:15 <schwicke> so let's see what the community says. I also think we should review next Friday.
16:48:26 <vilobhmm> sure
16:48:32 <sajeesh> yes
16:48:43 <schwicke> vilobhmm: please go ahead!
16:49:53 <vilobhmm> so sajeesh more specifically to you…since you tested the code on devstack….how dis you structure your policy.json and how did you make sure that the nova quota commands that you use ; make sue of the keystone v3 api ?
16:51:03 <sajeesh> while testing the api calls , I use keystone v3 token token only
16:51:19 <vilobhmm> ok
16:51:31 <vilobhmm> but how did you structure your policy.json
16:51:36 <raildo> and looking in the policy.json, you need a admin role
16:51:41 <sajeesh> nova policy engine will take care of it
16:51:44 <vilobhmm> because for token scoping that changes needs to be there
16:51:52 <raildo> https://github.com/openstack/nova/blob/master/etc/nova/policy.json#L108
16:51:58 <ericksonsantos> vilobhmm, ++
16:52:21 <sajeesh> I have changed the policy rules
16:52:39 <vilobhmm> I don't see a change for policy.json here…do they need to here https://review.openstack.org/#/c/149828/16 ?
16:52:44 <vilobhmm> raildo : sure
16:52:50 <vilobhmm> thanks for the link
16:53:17 <sajeesh> vilob it is a different change
16:53:29 <vilobhmm> alrite then
16:53:38 <vilobhmm> that makes sense
16:53:45 <sajeesh> you can traverse the dependancy chain and find it
16:54:20 <vilobhmm> sajeesh : if you can point me to that change it will be ncie
16:54:35 <sajeesh> https://review.openstack.org/#/c/182522/
16:54:51 <vilobhmm> cool
16:55:12 <vilobhmm> thats it from my side…thank you all…I think this meeting was really helpful !
16:55:18 <vilobhmm> nice to meet you all ! :)
16:55:24 <schwicke> nice to meet you!
16:55:32 <schwicke> so let's meet again in a week from now!
16:55:44 <raildo> see you next week :)
16:55:45 <sajeesh> ok
16:55:50 <schwicke> let's try to gain some speed. The sooner we contact the comunity the better
16:55:55 <schwicke> ncie week end!
16:55:58 <sajeesh> Good Bye all
16:56:01 <ericksonsantos> see you
16:56:01 <vilobhmm> sure..you too !
16:56:02 <ericksonsantos> :)
16:56:06 <schwicke> #endmeeting