18:01:53 #startmeeting keystone 18:01:54 Meeting started Tue Apr 22 18:01:53 2014 UTC and is due to finish in 60 minutes. The chair is dolphm. Information about MeetBot at http://wiki.debian.org/MeetBot. 18:01:55 hi all 18:01:55 Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 18:01:58 The meeting name has been set to 'keystone' 18:02:34 alright, i was waiting on sched.org... but that looks like it's going to take more than a couple minutes... 18:02:39 anyway: 18:02:42 #topic Icehouse released! 18:02:49 w00t! 18:02:52 \(◎o◎)/ 18:03:04 woot woot 18:03:18 #link http://lists.openstack.org/pipermail/openstack-announce/2014-April/000225.html 18:03:21 Great job! Congrats!!! 18:03:36 Lot of great stuff in icehouse 18:03:45 woohoo! 18:03:52 "Thanks to the hundreds of people who contributed to this development cycle and helped in making this release great!" <-- i can't echo that enough! 18:04:32 Here's a special thank you to our own Atlas. Three cheers for the PTL. Well done, dolphm 18:04:39 ++ 18:04:40 good stuff! 18:04:42 +++++ 18:04:46 +++ 18:04:49 it's been surprisingly quiet on the bug front, so i'm hesitantly excited about that too :P 18:04:52 Great job dolphm!!! 18:04:56 +++++ 18:04:56 ayoung: danke 18:05:07 +++ 18:05:38 ++ 18:05:44 ++ 18:05:54 more fun stuff... 18:05:57 #topic Design summit schedule 18:06:06 #link http://junodesignsummit.sched.org/ 18:06:30 i *just* pushed a tentative schedule to sched.org a few minutes ago, so the keystone track should appear there at some point ^ 18:07:08 in the mean time, it looks something like this: 18:07:09 #link http://i.imgur.com/Mglw49y.png 18:07:36 8 sessions? 18:07:48 this is very much a first draft: timeslots WILL be shuffled, etc 18:07:54 bknudson: yes 18:08:02 bknudson: one fewer than previous summits due to the cross-project tack 18:08:04 track* 18:08:22 dolphm, looks good 18:08:34 more reason to schedule a mid-cycle hackfest 18:08:43 nkinder_: ++ 18:08:51 in San Antonio. Bring the pace pciante salsa 18:08:59 ..get a rope 18:09:00 ++ 18:09:03 we should also be a bit more organized for topics outside of formal design sessions 18:09:23 just look for dolphm at the developer's lounge 18:09:26 mid-cycle fun again! 18:09:28 yeah, there are some topics that would be nice to discuss that aren't in the sessions 18:09:34 gyee: you should be able to look for a keystone flag or something :) 18:09:42 gyee: not sure how it's all going to work yet 18:09:44 grease him with beer, money, or whatever 18:09:50 gyee, whiskey 18:09:52 those breakfast burritos were good. I hope the lamb food truck is there this time 18:09:57 if we're going to discuss service catalog we should consider what we're going to do with templated catalog 18:10:05 bknudson, ++++ 18:10:07 since it seems to be getting left behind 18:10:14 morganfainberg ++ 18:10:15 Leav it behind 18:10:21 bknudson, i'm kindof for making it disappear. 18:10:43 how do we know there arent folks relying on it? 18:10:45 it can easily be supported by SQL, or a KVS impl, so why keep a readonly, hard coded version? 18:10:46 bknudson, its suboptimal on many fronts. 18:10:46 bknudson, catalog is a big elephant we need to tackle 18:10:48 morganfainberg, bknudson: does anyone use it? 18:10:57 dstanek, unfortunately we do 18:11:12 * ayoung is visualizing gyee tackling an elephant. It is quite entertaining. 18:11:23 dstanek, but it caused us major issues so we will move off it as soon as possible 18:11:27 dstanek, we deprecate, and see if anyone shouts 18:11:28 topol: lack of bug reports, for starters. we're aware of issues that our users don't seem to care about 18:11:29 you can't get a v3 token using the templated catalog now 18:11:47 ayoung, I mean elephant in the room, american thing, you don't want me to translate into other language 18:12:03 i'd be happy to fix it if there are users 18:12:06 WE NEED V2 /V3 INTEROP OR WE WILL NEVER GET PEOPLE TO V3 18:12:28 this sounds like a ML topic to me 18:12:31 ayoung: i suspect that will be a significant topic for the client session 18:12:33 ++ 18:12:34 probably x-posted to operators 18:12:53 dolphm, wasn't there a miniscule patch that did the "chop v.20" off the endpoints? 18:13:02 ayoung: that landed 18:13:10 ayoung: i think it's in 0.7.0 18:13:13 ayoung: it got merged - it doesn't really cover everything though 18:13:15 Ah...I was looking for it. Good. 18:13:16 preferably I'd like that mail to be out there before we hit the summit so we have some information 18:13:17 if needed i can write that email up. 18:13:24 jamielennox, I realize, but its a start 18:13:55 jamielennox, what critical is missing? 18:14:00 morganfainberg: i'd like to tackle that v2 deprecation bp in the next coupld weeks 18:14:15 I mean, aside from support for other services....anything specific to Keystone> 18:14:16 ? 18:14:22 https://review.openstack.org/#/c/81146/ 18:14:23 dolphm, yeah good plan 18:14:33 dolphm in any of the federated sessions can we discuss audit support for federated environments? 18:14:50 topol, i thiink the answer is "we should emit audit for it" 18:15:03 topol: i think it's a given that we'll need to emit the appropriate audit notifications -- what is there to discuss? 18:15:05 topol, and anyone who complains about it is probably wrong 18:15:07 ah, it's been a while - i can't find the dependant one 18:15:22 OK, so handle the details via blueprints. Thats cool 18:15:25 dolphm, there are a bunch of sessions marked as unreviewed, should those be considered rejected? 18:15:46 topol, yep, it would be silly not to do audit 18:15:57 stevemar: likely, yes - unless i meant to merge something and didn't. i updated the statuses of as few as possible in a flurry right before this meeting 18:15:59 jamielennox, starrring that one... 18:16:13 dolphm, cool 18:16:30 ayoung: there are a couple in my client list to do with discovery, version-less auth etc 18:16:40 the one i can't find is version-less endpoints in the catalog 18:16:44 it should dep on that one 18:16:57 As an aside, has using gerrit for blueprints been previously discussed at all? (nova started doing this recently) 18:17:13 I think that led into a discussion about storyboard 18:17:24 I was creating an specification to add quotas for users/projects by domain in the blueprint tenants-users-quotas 18:18:32 what do you think about this blueprint? 18:18:36 jamielennox, is the discovery mechanism a standard or something we came up with 18:19:05 gyee: it's something that is close to standard (which is possibly worse) 18:19:24 gyee: we forked it from nova - and made changes, other projects either did the same or came up with there own 18:19:43 jamielennox, I think TC should take on this one 18:19:49 this blueprint is in the path to get parity on quota management with AWS 18:19:52 nkinder_: yes 18:19:53 as it has wider impact 18:20:08 gyee: i did a spec a while ago https://wiki.openstack.org/wiki/VersionDiscovery 18:20:23 gyee: ++ 18:20:32 gyee: publicised as much as i could and was well received - but who knows if people look at it 18:20:53 gyee: the problem is no one will change because they all need backwards compat 18:21:12 jamielennox: the only opposition i recall is that there's an IETF draft of something similar? 18:21:21 or at the very least we need to support older versions pre-changed because we can't afford to wait for them all to standardize 18:21:28 dolphm, really an IETF draft? 18:21:47 dolphm: not an IETF thing - there's a json-home spec which one of the new projects is using 18:21:51 morganfainberg: well there's a few, but one actually has some traction IIRC 18:21:54 ah. 18:22:03 dolphm: url? 18:22:08 #link http://tools.ietf.org/html/draft-nottingham-json-home-02 18:22:13 not sure if that's the latest 18:22:17 AFAIK no-one is actually converting anything though 18:22:26 jamielennox: thanks, i couldn't remember the name 18:22:51 #link https://github.com/otto-de/jsonhome 18:22:54 this is something the TC should weigh in on and specify a direction to take since it needs to be consistent across projects 18:23:04 draft 3! 18:23:05 #link http://tools.ietf.org/html/draft-nottingham-json-home-03 18:23:13 morganfainberg: i don't disagree - but we can't wait for that 18:23:46 jamielennox, we may not be able to wait, but we can at least get that up for consideration with the new TC convening soon 18:23:51 jamielennox, wait for a consistent approach, or go alone and risk retrofit later? :) 18:23:52 ++ 18:24:15 jamielennox, if we have a clear direction, we can figure out where we're headed and how to best get there 18:24:16 gyee, or make keystoneclient own the service catalog and just solve it for everyone 18:24:18 gyee: this is client side, we are always going to have to support older versions 18:24:25 retrofitting protocol is much difficult 18:24:32 ayoung, ++ 18:24:41 ayoung: that is the plan 18:24:46 ayoung, we should absolutely own the SC in either case 18:24:51 and policy 18:25:11 if anything this means that at least all discovery should come from one place so it should be easier to convert people later 18:25:11 ayoung lost me -- this doesn't have much to do with the catalog... 18:25:15 ayoung, that is a slightly different topic...but don't disagree. 18:25:34 ayoung, lets table the policy bit from this convo, it's not directly relevant 18:26:26 sure 18:26:31 for comparison dtroyer has a similar discovery mechanism in OSC and (i think it's new again) in -SDK 18:26:50 anything that expects to work across projects is going to have a really bastardized/hacky discovery mechanism 18:27:16 jamielennox, ok so i come back to we need the TC to set the direciton then work to get from here to there -- however hacky it is. 18:27:35 jamielennox, but making another standard..... 18:27:36 morganfainberg, amen, brother 18:27:46 jamielennox, wait isn't there an XKCD about standards. 18:27:53 morganfainberg: right - but that's a future direction. we don't get to wait for interop until the TC makes all projects convert to a standard 18:28:16 jamielennox, then what is TC for? 18:28:24 can't we do both? Start consulting with the TC, but let them know we need to forge ahead? 18:28:30 ceremonial? 18:28:32 nkinder_, ++ 18:28:34 we might get at least some early guidance 18:28:36 i honestly couldn't care less what the format is, we need to get people moving to v3 and that doesn't happen until we can do discovery 18:28:43 lets provide them with a solution 18:28:46 nkinder_, i think we can get an answer on where we are doing and work towards it without interop 18:29:07 yes, we might serve as the model for the standard if we start working with the TC from the outset 18:29:11 the wiki i linked earlier was the most common elements of nova/keystone/glance etc the older projects 18:29:25 the projects that were going to find it most difficult to change 18:29:30 I think what jamielennox was driving towards works for the majority of the services. The ones it doesn't work for are one-offs anyway 18:29:41 and will require specific fixes that are not generalizable 18:29:46 nkinder_, we should get the TC involved before we get too deep into the impl so we don't end up with yet-another-standard 18:29:57 i suspect nottingham's proposal was at least in part a result of his time spent working in/around openstack 18:30:05 morganfainberg: this is not creating a standard - it's reacting to existing standards 18:30:38 jamielennox, please make sure the relevant reviews have keystone-core +nkinder set as reviewers 18:30:40 dolphm: i didn't think he had anything to do with openstack 18:30:55 jamielennox, and if we go create an implementation to solve that... without clear direction that this is the way going forward, we have created another "standard" that the new system needs to support 18:31:15 dolphm: the way i read it it was related to the json-api stuff, but it's been a while 18:31:18 jamielennox: http://www.mnot.net/personal/resume.html 18:31:24 jamielennox, i'm not saying don't do the work, i'm saying concurrently involve the TC so we know where we need to eventually land and we don't write ourselves into a corner reacting to the current situation 18:31:25 would it be worth an email on the mailing list to see if anyone still uses the templated catalog? 18:31:42 just to do a little cya for us if we pull it? 18:31:45 topol, yes. x-posted to operators list as well 18:31:58 morganfainberg will you handle that? 18:32:17 topol, yeah was planning on it once the meeting was done since no one responded to my earlier question 18:32:24 cool 18:32:31 json-home appears to be a document format - what does that have to do with discovery? 18:32:37 So...we should make a concerted push on all client issues in the lull between now and the summit 18:32:43 morganfainberg: awesome 18:32:45 topol, just going to ask for metrics on use not indicate we're trying to remove it. 18:32:52 aside from discovery....thkns for the help thus far on comporessed tokens 18:32:53 topol, don't want to induce panic 18:32:58 morganfainberg: sure, that's what i tried to do with that wiki page - but client still claims compatability with like essex clouds so we are going to have to react to the current 18:33:09 https://review.openstack.org/#/q/status:open+project:openstack/python-keystoneclient,n,z quite a few there still 18:33:14 it's more about navigating hypermedia to navigate the API - similar to what html provides 18:33:26 jamielennox, and thats fine. lets get this on the agenda for the TC first thing and start the work now. 18:33:51 jamielennox, we can put some compat stuff in as needed for the old deployments 18:34:23 https://review.openstack.org/#/c/81166/ revocation API needs to be in the client before it is usable. 18:34:34 ayoung: ++ 18:34:45 ayoung, +++++ 18:35:20 one other topic that would be nice to discuss at the design summit is keystone scalability/performance 18:35:28 morganfainberg, nice. good to not induce panic. 18:35:40 jamielennox's client patches https://review.openstack.org/#/q/status:open+project:openstack/python-keystoneclient+owner:jamielennox,n,z 18:35:42 nkinder_, it doesn't do either well atm :( 18:35:42 nkinder_: absolutely, and i'm sure we will 18:35:45 nkinder_, that is plan for the POD/Dev Lounge 18:35:46 I was talking with someone last week who has a large delpoyment, and keystone is the performance bottleneck 18:36:06 https://review.openstack.org/#/c/74599/ that was the heart of the discussion, right? 18:36:07 ayoung: on the up side that list is the shortest it's been in a while 18:36:07 Ok, great. I know the ephemeral token work is a part of it, but it would be good to outline a plan for other areas too 18:36:19 nkinder_, 18:36:28 nkinder_, yep, and expanding caching, working on improving SQL performance etc 18:36:46 nkinder_, lots of things to do 18:36:48 stevemar: that was my first response, followed by reducing the token validity period :) 18:37:01 a rally person was in openstack-keystone the other day discussing how they can post their results for perf tests 18:37:13 nkinder_, do they have any profiling data? 18:37:21 ayoung: we can get some I'm sure 18:37:27 and are they on anything modern, or is this an essex setup? 18:37:37 once thing mentioned was scaling across cores (not just for keystone) 18:37:37 (RHOS 4 I assume) 18:37:41 ayoung: havana 18:37:45 bknudson, yeah i want to sync up w/ the rally guys and get that info going in (probably on the checks) 18:38:31 nkinder_, so, is the bottleneck calling Keystone from Horizon (list users etc) or token request and verification? Are they using UUID tokens? 18:38:37 Or PKI 18:38:57 RHOS4 == Havana for the rest of the team 18:39:15 ayoung, ah yes. 18:39:22 5 will be Icehouse and so on 18:39:40 ayoung: spinning up hundreds/thousands of new instances at once 18:39:49 interesting.... 18:39:50 I would discuss a bp to add quotas for the # of projects/users created by domain 18:39:53 ayoung: this was >1000 pyhsical systems 18:39:56 #topic open discussion 18:39:58 nkinder_, that is not exclusively a keystone issue but it's def related. 18:40:11 scripted? Are they reusing tokens or getting a new one for each op? 18:40:15 nkinder_, we have had similar complaints (smaller hypervisor counts) 18:40:17 I was wondering if we could discuss https://bugs.launchpad.net/python-keystoneclient/+bug/1287301 18:40:19 Launchpad bug 1287301 in python-keystoneclient "Keystone client token cache doesn't respect revoked tokens" [Medium,In progress] 18:40:24 morganfainberg: sure, other areas are problems too (nova scaling across cpus, etc.) 18:40:29 nkinder_, yep 18:40:38 bknudson: looking 18:41:05 nkinder_, they were scripted against the API directly but similar issues, adding neutron in causes more pain (due to token issuance insanity) 18:41:07 gyee is gone...he's the one that held up https://bugs.launchpad.net/python-keystoneclient/+bug/1287301 18:41:17 so the proposed fix was, I think, to check both the token cache AND the revocation list 18:41:20 I still don't understand his concern 18:41:25 I think he's wrong 18:41:28 whereas before it was checking only the token cache 18:41:45 bknudson, that was my understanding 18:41:55 bknudson: i was under the impression that became a non-issue 18:41:57 which doesn't seem like a terrible thing to do 18:42:09 I would discuss a bp to add quotas for the # of projects/users created by domain in https://blueprints.launchpad.net/keystone/+spec/tenants-users-quotas 18:42:22 well, the revocation cache and the token cache were changed to have the same timeout 18:42:43 so maybe it is a non-issue? 18:43:17 sjcazzol_: i think this or something similar has been raised before 18:43:17 bknudson, i think it is worth revisiting. 18:43:20 bknudson, yeah, his concern seems ill-=placed. I PMed him and his response still puzzles me 18:43:29 sjcazzol_: it's open discussion, feel free 18:43:50 sjcazzol_, i know there is demand from my company's customers for something like that (when we move to domains) 18:44:13 "If you really want to do it right, get rid of revocation_cache_time and come 18:44:13 up with a lightweight daemon process to listen on the revocation events and update the cache accordingly. Similar to how Certmonger monitoring the certificate status and perform automatic renewal." 18:44:16 sjcazzol_, so please :) lets discuss it! 18:44:43 sjcazzol_: and from memory there are two problems 1 there is no standard quotaing method in keystone or openstack 2. why? users are cheap 18:44:51 sjcazzol_, how are you going to distribute global quotas, and how are you going to enforce? 18:44:51 ayoung: I can see the desire to have some kind of notification... maybe revocation events makes it a non-issue 18:45:00 jamielennox, it's project quotas 18:45:03 bknudson, regardless...he's wrong 18:45:03 jamielennox, not users. 18:45:14 morganfainberg: users per project 18:45:22 jamielennox, oh wait did i misread it? 18:45:28 jamielennox, ah 18:45:32 users per domain, users per project 18:45:45 sjcazzol_, i'm in support of working on a quota of projects per domain 18:45:50 sjcazzol, but i don't see a value to users per domain? 18:46:02 bknudson, cache is to keep from doing a validation again, but a revocation event timeout (or revocation list) still needs to be checked. It doesn't render the cache useless. 18:46:03 morganfainberg: is it just a billing thing? 18:46:20 jamielennox, less billing more they allow anyone to create projects on demand 18:46:25 I suppose you could prevent someone from adding 1M users that way 18:46:29 jamielennox, they would like to limit it because a project can consume a network 18:46:34 jamielennox, etc. 18:46:46 jamielennox, so you can give them a domain and they get X projects to play with 18:47:10 ayoung, you have a question for me, sorry I have a shitty connection here 18:47:15 jamielennox, dev, stage, prod, prod2, etc but not 1000 projects 18:47:16 gyee, yeah 18:47:26 jamielennox, you can make a policy saying "no don't do that" or you can enforce "you get X projects" 18:47:40 gyee, can you please unblock https://bugs.launchpad.net/python-keystoneclient/+bug/1287301 18:47:46 Launchpad bug 1287301 in python-keystoneclient "Keystone client token cache doesn't respect revoked tokens" [Medium,In progress] 18:47:49 gyee: https://review.openstack.org/#/c/78241/ 18:47:53 I think you are wrong in that it does not invalidate the value of the cache 18:48:00 morganfainberg: fair enough, it'd be nice if this stuff was a bit more generic across openstack 18:48:05 jamielennox, yeah 18:48:23 cache in this case will prevent a popen openssl cms call 18:48:25 morganfainberg: i wouldn't prefer not to have a whole quotaing system within keystone 18:48:27 that one doesn't *fix* the problem completely 18:48:31 since https://review.openstack.org/#/c/78241/ is abandoned, may not be able to re-do 18:48:41 and you still want to check that the token is not revoked separate from cached timeout 18:48:51 jamielennox, ++ consistent quota system would be nice. but i don't think we have anything like that yet* 18:48:51 jamielennox: is that a +1 for a standalone quota service? :D 18:48:56 we can resubmit in a different reviewid if needs be 18:49:06 dolphm: i think i +1ed that a while ago 18:49:09 morganfainberg: there is actually an abandoned standalone quota service 18:49:11 morganfainberg, what about to have quotas for user but per project instead of domain? 18:49:13 jamielennox: probably so 18:49:22 bknudson we can have infra restore a review 18:49:23 ayoung, best we can do is reverse the order between revocation cache and token cache 18:49:31 ? 18:49:36 gyee: reverse the check? 18:49:41 order of checks* 18:49:42 dolphm, yes 18:49:44 gyee, that makes no sense 18:49:46 sjcazzol_, i don't see a value to limiting the number of users in that regard, what is the value / usecase? 18:49:47 sjcazzol_, users are cheap. 18:49:56 right now token_cache_time have priority over revocation_cache_time 18:50:05 we pull the token out of memcached first, check against the revocation list second 18:50:10 that patch, if implemented correct, will reverse the order 18:50:24 currently we're not checking revocation list if it's in the cache 18:50:25 and that's it, but its still not real time 18:50:28 gyee, if we hit the cache, no popen call 18:50:45 gyee, avoiding popen would be good? 18:50:49 gyee, doesn't mean we shouldn't also check revocation list 18:51:24 morganfainberg, yes, it's only helpful if token_cache_time is much greater than revocation_cache_time 18:51:32 gyee, oh i see, no popen is needed if we check TRL first 18:51:35 right now they are both default at 300 seconds 18:51:45 both those cache times are configurable. 18:51:56 lemme unblock, but that's just an half-ass solution 18:52:05 morganfainberg, I think it should be to avoid performance issues 18:52:30 sjcazzol_, i would argue that limitation is premature optimisation 18:52:40 if you want real time check, implement a lightweight process to listen on revocation events and update the cache 18:52:59 similar to certmonger 18:53:30 morganfainberg, yes 18:53:31 gyee, sure. better solution, but we should make things incrementally better if we can as well. 18:53:53 gyee: also a standalone service on every machine with auth_token is a big ask 18:54:13 jamielennox, no 18:54:22 gyee, you mean thread, right? 18:54:29 memcached is usually running in a ring 18:54:32 ayoung, thread/process same thing right? 18:54:34 you just need one process 18:54:35 jamielennox: on every machine? 18:54:45 ayoung, when you involve external (memcache) kvs for the cache 18:54:46 ayoung, this isn't in-mem 18:54:47 morganfainberg, also it could be used to charge extra money in case a domain is requesting more users/projects 18:55:01 its like token_flush. 18:55:08 dolphm: i guess it depends on where memcache is 18:55:22 but i'm guessing for auth_token it's largely just on the same machine 18:55:24 ayoung, can't unblock, patch is abandon 18:55:32 revoation list fetch could easily be done external to the flow, but it would not make a difference. 18:55:33 author needs to restore it first I guess 18:55:36 I'd like to briefly discuss the keystone security info wiki pages while we still have a few minutes (or we can take it to #openstack-keystone afterwards) 18:55:49 gyee, NP. so long as you agree in principal to the direction, we can create a new review if necessary 18:56:13 I've added a new security info page for keystone in Juno now that Icehouse has been released 18:56:20 ayoung, I don't agree with the current impl, but its some improvement nevertheless 18:56:23 sjcazzol_, sure, lets work on figuring out quota stuff and we can implement as many/few quota implements then (argue about the individual ones) 18:56:40 jamielennox: ah, i thought you were referring to another web service 18:56:46 nkinder_, awesome! 18:56:49 I added a new section at the bottom to cover security items that have changed since the previous release 18:56:54 I asked on -infra if https://review.openstack.org/#/c/78241/ could be restored. 18:57:03 gyee: leave a comment that you'll unblock when the author restores? 18:57:04 https://wiki.openstack.org/wiki/Security/Juno/Keystone#Notable_changes_since_Icehouse 18:57:12 dolphm, sure 18:57:35 We have a few things in progress that I called out there (and the LDAP hashing patch that landed) 18:57:49 i hear we might have a new gerrit soon™, and i think cores will be able to restore patches for their project from abandoned 18:57:53 gyee: https://review.openstack.org/#/c/78241/ is restored now 18:57:53 gyee, I think you are caluclating wrong 18:57:59 this showed up at some point: 18:58:00 #link http://junodesignsummit.sched.org/overview/type/keystone 18:58:04 design summit schedule ^ 18:58:12 (TENTATIVE) 18:58:24 cache time of 300 starts when token is validated. Revocation cache time is every 300 regardless. They do not necessarily align 18:58:25 also, time's up 18:58:28 looks like I don't have to show up until wed 18:58:34 bknudson, hehe 18:58:42 bknudson: cross-project tracks tuesday 18:58:45 bknudsonm there are cross project things on tuesday 18:58:55 #endmeeting