19:00:06 <NobodyCam> #startmeeting Ironic 19:00:07 <openstack> Meeting started Mon Oct 14 19:00:06 2013 UTC and is due to finish in 60 minutes. The chair is NobodyCam. Information about MeetBot at http://wiki.debian.org/MeetBot. 19:00:08 <NobodyCam> #chair devananda 19:00:08 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 19:00:11 <openstack> The meeting name has been set to 'ironic' 19:00:12 <openstack> Current chairs: NobodyCam devananda 19:00:20 <NobodyCam> Welcome everyone to the Ironic meeting. The agenda can ofc be found at: 19:00:23 <NobodyCam> #link https://wiki.openstack.org/wiki/Meetings/Ironic#Agenda_for_next_meeting 19:00:34 <NobodyCam> #toplic Greetings, roll-call and announcements 19:00:34 <NobodyCam> Who's here for the Ironic Meeting? 19:00:38 <dkehn> ping 19:00:46 <devananda> \o 19:00:49 <romcheg> \o 19:00:52 <yuriyz> here 19:01:06 <NobodyCam> Hi all 19:01:15 <NobodyCam> the only announcement I have is no new news on hoodies 19:01:17 <lucasagomes> hi 19:01:23 <NobodyCam> they are still in progress 19:01:44 <romcheg> NobodyCam: Is there still a change to get one for yuriyz? 19:02:08 <NobodyCam> yes we thing we are getting >= 20 19:02:17 <romcheg> cool 19:02:32 <GheRivero> o/ 19:02:37 <NobodyCam> any other announcements 19:02:45 <NobodyCam> hey welcome GheRivero 19:02:51 <NobodyCam> (and lucasagomes0 19:03:05 <linggao> and me 19:03:14 <NobodyCam> oh sorry linggao 19:03:22 <NobodyCam> (/me didnt see you) 19:03:24 <devananda> no announcement from me 19:03:29 <NobodyCam> ok then 19:03:29 <linggao> np, I was quiet. 19:03:31 <NobodyCam> #topic Hong Kong design summit paper talks 19:03:41 <NobodyCam> Ok I had a action item for a slot to discuss the summit papers so here it is :) 19:03:44 <NobodyCam> These are our current papers: (All great submissions) 19:03:46 <NobodyCam> #link http://summit.openstack.org/cfp/details/57 19:03:49 <NobodyCam> #link http://summit.openstack.org/cfp/details/97 19:03:51 <NobodyCam> #link http://summit.openstack.org/cfp/details/108 19:03:52 <NobodyCam> (sorry of the bulk paste) 19:03:55 <NobodyCam> #link http://summit.openstack.org/cfp/details/112 19:03:57 <NobodyCam> #link http://summit.openstack.org/cfp/details/139 19:04:00 <NobodyCam> #link http://summit.openstack.org/cfp/details/183 19:04:08 <devananda> so 19:04:15 <devananda> we have 5 slots 19:04:30 <devananda> i've already moved the talk about exposign IPMI polling for Ceilometer to the Ceilometer track 19:05:10 <devananda> and will be merging one or two of the above proposals 19:05:37 <devananda> but all the ideas have been great, and there's still a few weeks if anyone has more 19:05:41 <NobodyCam> 108 and 97 could go toghether 19:05:51 <devananda> yep 19:06:25 <devananda> and parts of 183 (scaling) could possibly be moved into 112 (HA) 19:06:34 <devananda> to make the talks a little more focused 19:06:45 * NobodyCam likes ghe's 19:07:06 <devananda> that's it from me -- any questions or feedback? 19:07:41 <NobodyCam> we can post coments on each paper 19:08:11 <NobodyCam> ok moving on then 19:08:14 <NobodyCam> #topic Outstanding, in-progress or Action Item updates 19:08:15 <NobodyCam> From the Agenda: 19:08:29 <NobodyCam> devananda to write framework for noav-ironic driver 19:08:29 <NobodyCam> lucasagomes to add CLI docs to ironic developer doc pages 19:08:29 <NobodyCam> romcheg to propose a non-gating job to -infra 19:08:29 <NobodyCam> romcheg to add python-ironicclient to devstack install scripts 19:08:29 <NobodyCam> devananda to think about a Transifex project for Ironic 19:08:32 <NobodyCam> romcheg looking at Ukrainian and Russian transifex translations 19:08:34 <NobodyCam> romcheg Check how i18n conplient we are 19:08:37 <NobodyCam> (again sorry) 19:09:04 <lucasagomes> yea will put on my todo list, I didn't do that yet 19:09:15 <lucasagomes> i've to make some changes on the CLI as well 19:09:16 <NobodyCam> devananda: I will bring up the nova review in client section 19:10:02 <NobodyCam> any updates on the Transifex stuff? 19:10:06 <devananda> ah! yes 19:10:22 <devananda> I think clarkb said it's all set up and ready for us to propose jobs 19:10:35 <lucasagomes> sweet :) 19:10:37 <linggao> Are we at the stage where we can use ironic to deploy a baremetal node yet? If true, then we need to have a doc for how to do it. 19:10:38 <NobodyCam> w00t 19:10:45 <romcheg> I'm still trying to catch up with devstack and waiting until all blockers got merged to test tempest before submitting a job to infra 19:10:49 <lucasagomes> I was thinking about the translation I can translate it to brazilian portuguese as well 19:11:04 <linggao> I am eager to see such a doc so that I can play it in my cluster. 19:11:20 <devananda> linggao: not yet. it can turn power on/off to a node today. but deploy is untested, and doing it properly still requires the nova driver (not yet written) 19:11:37 <NobodyCam> also I maybe not the right topic but I hear nova client is gating in python3 on 19:11:43 <romcheg> by blockers I mean a fix with the policy and a problem with the time which is already merged 19:12:26 <linggao> devananda, should we have a doc that we keep updating, that way the folks can play with the existing functions. 19:12:32 <lucasagomes> NobodyCam, afaik we were too, but we stopped cause of the dependency on the keystone client 19:12:42 <NobodyCam> ya 19:12:43 <lucasagomes> well it's there but it's non-voting in the moment 19:12:45 <linggao> Now I can only play with the unit test cases 19:13:31 <devananda> romcheg: i'll take a look at the policy changes you just psoted after the meeting 19:13:47 <devananda> romcheg: assuming those are good and land today, anything else blockign the tempest patch (https://review.openstack.org/#/c/48109/) ? 19:13:47 <NobodyCam> we are doing much better on time then I had thought we would be 19:14:15 <romcheg> devananda: thanks. Yes, it looks like it's the only blocker now 19:14:26 <NobodyCam> :) 19:14:32 <linggao> devananda, even how some of you setup your cluster for testing the APIs etc. 19:14:34 <devananda> romcheg: great! I'll do that toady :) 19:14:39 <romcheg> Thanks 19:14:50 <NobodyCam> anything else on open / action items 19:14:57 <devananda> regardign i18n compliance, do we have an open bug report? 19:15:12 <devananda> that seems like something we could take off of romcheg's plate and let anyone else tackle in parallel 19:15:20 <NobodyCam> linggao: are you using devstack or dib for testing 19:15:46 <lucasagomes> splitting work is always good, I don't think we have a bug open 19:15:48 * lucasagomes checking 19:15:56 <NobodyCam> I though we had vage bug for it 19:16:07 <NobodyCam> lol 19:16:08 <linggao> NobodyCam, I just use testr for now. But in the middle of setting up using devstack. 19:16:14 <anyone_else> anyone_else will be happy to help 19:16:35 <NobodyCam> oh to good romcheg 19:16:51 <devananda> lucasagomes: we have a few folks getting up to speed (linggao and rloo) and even splitting some of the API work out might be good for them 19:16:59 <NobodyCam> linggao: the walk thurs do work 19:17:19 <NobodyCam> linggao: https://wiki.openstack.org/wiki/Ironic 19:17:25 <lucasagomes> devananda, indeed, martyntaylor's also working on the api 19:17:45 <lucasagomes> I can def map somethings that needs to be done in the API 19:17:51 <devananda> linggao: as far as my test env, i have a seed VM and an ironic VM which is running all the services in it. 19:17:52 <linggao> NobodyCam, thanks. I'll follow that doc. 19:18:03 <NobodyCam> lucasagomes: # action??? 19:18:10 <lucasagomes> NobodyCam, could be :) 19:18:21 <devananda> linggao: so i am testing in that "ironic vm" when i need to run things outside of venv 19:18:24 <linggao> devananda, lucusagomes, yes. I am willing to take more works. 19:18:32 <linggao> Please assign me something. 19:18:40 <devananda> linggao: thanks! 19:18:42 <lucasagomes> np 19:19:03 <NobodyCam> #action map somethings that needs to be done in the API 19:19:07 <NobodyCam> gah 19:19:17 <NobodyCam> #action lucasagomes map somethings that needs to be done in the API 19:19:22 <romcheg> lucasagomes: what about bookmark links? 19:19:32 <lucasagomes> that's one :) 19:19:32 <devananda> #action devananda to update ironic wiki tripleo walkthrough to include "how to update code in the undercloud" 19:19:47 <lucasagomes> bookmark links currently are retuning 404 19:19:55 <lucasagomes> if u wanna take a look at it linggao 19:20:04 <NobodyCam> devananda: ^^^ with rebuilding 19:20:14 <devananda> NobodyCam: withOUT rebuilding the undercloud 19:20:37 <NobodyCam> sounds like a adhoc script that would be cool 19:20:48 <devananda> NobodyCam: i've got it so that I ssh into undercloud, sudo su -, cd $somepath, git review -d ###, service ironic-conductor restart 19:20:49 <NobodyCam> updateironic.sh 19:20:52 <devananda> something like that 19:20:55 <linggao> lucasagomes, what do you want me to take a look? 19:21:01 <NobodyCam> nice 19:21:03 <NobodyCam> :) 19:21:22 <NobodyCam> #topic Integration and testing 19:21:32 <romcheg> lucasagomes, linggao: should bokmark links return redirects to the latest version of the API or just resources? 19:21:37 <NobodyCam> should catch up the topic 19:21:38 <lucasagomes> linggao, the API generates some bookmarks links, currently they are not working 19:21:51 <lucasagomes> we talk in the API topic about it 19:21:55 <lucasagomes> sorry NobodyCam 19:21:58 <linggao> lucasagomes, sure. I'll take a look. 19:21:59 <NobodyCam> lol 19:22:28 <NobodyCam> I think we covered the devstack issue so moving on thru 19:22:51 <NobodyCam> #topic Python-IronicClient 19:23:04 <linggao> I'm finishing up removing of the mox from the unit testcases with rloo. 19:23:16 <NobodyCam> WOW this is suck a awesome review to see :) 19:23:18 <NobodyCam> #link https://review.openstack.org/#/c/51328/ 19:23:24 <linggao> we'll free of mox very soon. 19:23:29 <lucasagomes> ironic client... there's one thing needed which is blocking the ironic driver on nova 19:23:32 <NobodyCam> linggao: oops 19:23:36 <lucasagomes> which is access nodes->ports 19:23:45 <lucasagomes> like GET /nodes/<uuid>/ports 19:24:03 <linggao> NobodyCam, np. I am slow at typing. 19:24:08 <lucasagomes> another neat feature that needs to be added is multi operations when creating a patch to a resource 19:24:08 <NobodyCam> :) 19:24:18 <NobodyCam> (so is /me) 19:24:20 <lucasagomes> like add,remove,replace in the same CLI cmd 19:24:40 <lucasagomes> and documentation 19:24:40 <NobodyCam> lucasagomes: client needs driver-list too 19:24:50 <lucasagomes> NobodyCam, yea but that's needed in Ironic first 19:24:55 <NobodyCam> :) 19:25:08 <devananda> lucasagomes: i would put multi-operation-in-cli pretty low on the priority list, fwiw 19:25:28 <devananda> lucasagomes: validate-on-create would basically solve the current need for that 19:25:44 <lucasagomes> devananda, indeed, and we need to talk about it on the API topic 19:26:09 <devananda> lucasagomes: and if, at some point, we have a driver update that makes it require different fields, we'd need to tag a db migration in the same patch 19:26:17 <devananda> i haven't mentioned that before :) 19:26:38 <NobodyCam> :-p 19:26:46 <devananda> but basically, we should try not to break nodes that might currently be working when we change a driver's required fields 19:27:15 <NobodyCam> do we have anything on how to do a db change? 19:27:25 <lucasagomes> yea, well I was thinking about the required fields, actually I've a patch in gerrit that makes driver/driver_info required at node creation 19:27:30 <lucasagomes> its WIP 19:27:31 <devananda> NobodyCam: there are db migrations already in the tree. just follow the patterns 19:27:37 <NobodyCam> :) 19:27:41 <lucasagomes> it works but it's kinda hacky 19:28:01 <lucasagomes> cause the way that TaskManager works, we need to create the node before and then validate it 19:28:08 <devananda> yea 19:28:10 <lucasagomes> if validation fails we delete that node 19:28:18 <NobodyCam> anything else on the cli 19:28:32 <NobodyCam> lucasagomes: ieek 19:28:38 <lucasagomes> NobodyCam, not really, we are already talking about the API hehe 19:28:46 <NobodyCam> #topic API discussion 19:28:51 <NobodyCam> :-p 19:29:03 <lucasagomes> devananda, also, should properties be required? 19:29:04 <NobodyCam> ieek was for the delete comment 19:29:18 <lucasagomes> NobodyCam, yea :( I know 19:29:29 <lucasagomes> that's why I got me thinking about the validation at creation time 19:29:51 <devananda> lucasagomes: rather than API:create, RPC:validate, if fails: API:delete 19:30:11 <devananda> lucasagomes: what about moving all the create logic into the conductor? 19:30:29 <devananda> lucasagomes: and passign the dict over RPC. the return over RPC would either be a node obj or an exception 19:30:42 <lucasagomes> devananda, will look a bit better, but we still need to create the node in the db first 19:31:04 <lucasagomes> cause of the taskmanager rigth? it puts some flags on the db 19:31:08 <devananda> yep 19:31:18 <NobodyCam> also we talked about restarting. what would happen if someone created a node then removed the driver and restarted 19:31:51 <devananda> lucasagomes: could also create an empty node in the db, then validate the whole dataset 19:32:18 <devananda> lucasagomes: rather than risk that a node with data in the db could linger ,if the api crashed during validation 19:32:25 <lucasagomes> devananda, yea... but another thing about having it as required is the size of the CLI to create a node 19:32:28 <devananda> (not great either way -- an empty node is bad, too) 19:32:35 <devananda> lucasagomes: true 19:32:44 <lucasagomes> NobodyCam, hmmmmmmmmmmm it will fail when he tries to deploy/powerupa node 19:32:53 <lucasagomes> NobodyCam, cause there's validations at the start of each of those actions 19:32:58 <devananda> lucasagomes: then we don't require nodes to have valid data for update. 19:33:06 <lucasagomes> NobodyCam, and if the driver is not there it's going to fail anyway :D 19:33:18 <lucasagomes> devananda, that's what I was thinking about 19:33:30 <lucasagomes> after starting coding, I thought that it would be a pain to people to create a node 19:33:42 <lucasagomes> if all those fields are required 19:34:07 <lucasagomes> devananda, you know what would be good, if we have someway to trigger the validation 19:34:21 <lucasagomes> like after u input all the data but before deploying/powering up 19:34:28 * devananda face-palms 19:34:36 <NobodyCam> node.validate() 19:34:43 <lucasagomes> from the api 19:34:43 <devananda> it's actually going to be impossible to validate driver.deploy at node creation time 19:35:07 <devananda> since nova won't populate the details for a deploy until someone actually creates a nova instance and spawn()s it 19:35:10 <devananda> so 19:35:12 <devananda> yes 19:35:17 <devananda> we have to allow update on invalid data sets 19:35:20 <lucasagomes> devananda, a-ha! 19:35:31 <lucasagomes> right 19:35:36 <lucasagomes> I will remove the validations from update 19:35:43 <lucasagomes> #action :) 19:35:51 <lucasagomes> devananda, also, chassis_id, required or not? 19:35:59 <devananda> #action lucasagomes to remove validation from API update method 19:36:05 <lucasagomes> it's required for ports so I think it makes sense to be on nodes as well 19:36:35 <devananda> lucasagomes: yea. even if in a small deploy, someone just creates one dummy chassis to hold all their nodes 19:36:44 <devananda> i think it's fair that we say node.chassis_id NOT NULL 19:36:46 <lucasagomes> so we have a consistent workflow to create the resources 1. create chassis 2. create the node for the chassis 3. create the ports for the nodes 19:36:56 <lucasagomes> devananda, +1 19:37:09 <NobodyCam> yea +1 19:37:18 <devananda> 4. populate node's driver info (for the power driver) 19:37:22 <GheRivero> +1 19:37:39 <lucasagomes> :) yea 19:37:41 <devananda> so in terms of manually triggering a driver.interface.validate() 19:37:50 <devananda> we may want to expose which interfaces pass/fail 19:38:22 <lucasagomes> devananda, yea, i gotta think how we are exposing that tho 19:38:31 <devananda> eg, GET /nodes/xxx/validate might return {'power': True, 'deploy': False, 'console': NotSupported} 19:38:34 <devananda> or something 19:38:50 <lucasagomes> sounds reasonable for me 19:39:07 <lucasagomes> at least the user are more secure to press the "deploy button" 19:39:11 <lucasagomes> if he does validate it first 19:39:25 <NobodyCam> yea 19:39:56 <NobodyCam> is that all for api? 19:40:08 <devananda> as far as prioritization, i dont think we need that for the nova driver 19:40:35 <devananda> and users shouldn't be starting a deploy from the CLI :) 19:40:49 <NobodyCam> :) 19:40:51 <devananda> but it will probably be useful in troubleshooting, etc, at some point 19:40:57 <devananda> so #lowpriority, IMO 19:41:01 <NobodyCam> shouldn't or can not 19:41:25 <lucasagomes> oh yea... and won't take much time to implement as well... anyhoo 19:41:43 <lucasagomes> off the top of my head we don't have anything else for the API (unless we want to talk about vendor_passthru) 19:41:53 <devananda> NobodyCam: well. users will be able to do anything the API service exposes if they write their own clients (which they eventually will) 19:42:35 <NobodyCam> devananda: ahh but not thru the ironic-cli 19:42:41 <devananda> so I say "shouldn't" :) 19:42:46 <NobodyCam> thru the api 19:43:06 <NobodyCam> hehheh 19:43:13 <devananda> the CLI is just what we choose to give as a reference to users, to enable adoption and usage of the API. 19:43:21 <devananda> it's not going to be the only client 19:43:24 <NobodyCam> vp or move on 18 minutes 19:43:37 <devananda> nothing on vp from me 19:43:49 <lucasagomes> vp?! 19:43:59 <NobodyCam> vender-passthru 19:44:02 <lucasagomes> ahh 19:44:03 <lucasagomes> lol 19:44:08 <NobodyCam> #topic Java Driver 19:44:08 <NobodyCam> so not sure anyone saw my post over theweekend.. comes down to x10 is out InSte0n 19:44:11 <NobodyCam> is what is out now. I see how to get insteon working in linux. 19:44:16 <lucasagomes> yea I'm waiting for HK to talk more about vp 19:44:36 <NobodyCam> any q/c on coffee driver? 19:45:02 <lucasagomes> does it make cappuccino?? 19:45:11 <devananda> :-D 19:45:20 <NobodyCam> it could if you had a cappuccino maker 19:45:26 <lucasagomes> sweet 19:45:43 <NobodyCam> ok then 19:45:45 <NobodyCam> #topic Food for Thought / Open Discussion 19:46:00 <NobodyCam> open floor 19:46:05 <lucasagomes> devananda, how are we exposing nodes/<uuid>/ports on the CLI? 19:46:07 <NobodyCam> all question welcome 19:46:15 <lucasagomes> node-port-list <node uuid> ? 19:46:32 <devananda> hrm.... nova boot image=cappuchino flavor=twelve_ounce 19:46:35 <devananda> sorry, distracted by coffee :) 19:46:41 <lucasagomes> lol 19:46:42 <NobodyCam> lol 19:46:43 <lucasagomes> it's cool 19:46:52 <yuriyz> How inform deploy ramdisk of ironic's api url? 19:47:03 <yuriyz> kernel param? 19:47:18 <NobodyCam> yuriyz: thats what we do now 19:47:40 <NobodyCam> humm /me checking 19:47:40 <linggao> A simple question on the CLI, will the ironic CLI be exposed through nova? 19:48:00 <linggao> You may have disscussed this before. 19:48:09 <devananda> lucasagomes: that works. or what about: ironic list-ports [<node>] 19:48:24 <lucasagomes> linggao, nova will have a driver that will be written using the ironic cli libs (which the cli uses as well) 19:48:34 <devananda> linggao: ironic has its own API endpoint 19:48:55 <lucasagomes> linggao, https://review.openstack.org/#/c/51328/ 19:49:02 <devananda> linggao: i am writing a noav driver that will use python-ironicclient library and talk to ironic API enpoint 19:49:19 <linggao> devananda, lucuasagomes, I see. thanks 19:49:20 <devananda> linggao: and the cloud admin can also use ironic CLI to talk to the ironic API endpoint, eg. to enroll nodes, check status of things, etc 19:49:34 <lucasagomes> devananda, list-ports [<node>] sounds good 19:49:37 <lucasagomes> reusing the command 19:49:40 <linggao> I see. 19:49:46 <devananda> linggao: but to manage a deploy, user will still call nova 19:50:06 <devananda> linggao: eg, nova boot --flavor ironic.large --image ubuntu13.04 ... 19:50:31 <devananda> linggao: and nova scheduler will know that ironic.large flavor type should be routed to a nova-compute node that is configured with the 'ironic' driver 19:50:40 <lucasagomes> devananda, but hmmmm it's not very explicit, I mean node-port-list at least says ur listing the ports on that node 19:50:43 <devananda> then nova-compute's ironic driver will do the work of deploy, power, etc 19:50:52 <linggao> davananda, I see. but can they also boot up a node using ironic CLI directly? 19:50:53 <lucasagomes> devananda, I would stick to node-port-list sounds more comprehensible 19:50:57 <lucasagomes> looks* 19:51:13 <devananda> lucasagomes: node-ports-list is certainly clearer, yes 19:51:22 <lucasagomes> cool 19:51:35 <devananda> linggao: well. no. 19:51:42 <linggao> ok 19:51:52 <devananda> linggao: technically, anything that nova will do to ironic, a user could also do manually 19:52:04 <devananda> linggao: but it would be difficult and is certainly not the "right" thing to do 19:52:18 <devananda> linggao: when deploying openstack with ironic, Nova should manage the deployment process. 19:52:31 <linggao> davananda, thanks 19:52:41 <linggao> anothe question 19:52:45 <linggao> console 19:53:17 <linggao> Should we feedback the console from ipmi to nova? 19:53:21 <devananda> linggao: yes 19:53:45 <devananda> linggao: nova alraedy has an API for exposign console. we should interoperate with that as much as possible 19:54:13 <NobodyCam> yuriyz: https://github.com/openstack/diskimage-builder/blob/master/elements/ramdisk/extra-data.d/scripts/init#L41 19:54:14 <devananda> linggao: general rule -- don't reinvent the wheel. so if another service in openstack already does it, we should just use that 19:54:30 <NobodyCam> lol moved sense I last looked 19:55:01 <NobodyCam> 5 minute bell 19:55:02 <linggao> davananda, like we talked on the ironic channel, I can look into it. I think currently nova gets the console from the vn hypervisors 19:55:37 <linggao> davananda, vn/vm 19:56:08 <linggao> davananda, not sue it can get console for baremetal yet. 19:56:29 <devananda> linggao: yes. one difference -- nova-compute is running on same host with vm hypervisor. bare metal console is on a network (eg, serial port or SOL interface) 19:56:45 <devananda> linggao: so we may need to d osomething like run a SOL proxy on the ironic-conductor or nova-compute host 19:57:22 <devananda> and teach nova to return that 19:57:32 <linggao> devananda, yes, we need have that path set up. 19:57:33 <NobodyCam> should I ask about the xcat way of doing it 19:57:40 <NobodyCam> sol that is 19:58:00 <devananda> linggao: you may also want to see how this was done for the initial nova-baremetal driver. 19:58:18 <devananda> they had some support for SOL, but I did not get it to work 19:58:28 <NobodyCam> no I 19:58:32 <linggao> xCAT has a command called rcons, it gets the console through ipmitool 19:58:56 <NobodyCam> two minuts 19:59:17 <linggao> but jbhonso is writing code to get it from native IPMI. 19:59:27 <NobodyCam> let move anything open back to our home channel 19:59:37 <NobodyCam> Great meeting guys 19:59:45 <devananda> yea, time's up! thanks everyone -- let's continue in #ironic 19:59:50 <NobodyCam> last word: 19:59:51 <lucasagomes> :) thank you all 19:59:56 <NobodyCam> #endmeeting