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