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