*** jcru has quit IRC | 00:00 | |
zaneb | SpamapS: the ones that have succeeded should be in UPDATE_COMPLETE; they aren't hard to spot? | 00:01 |
---|---|---|
SpamapS | we could probably even glean that from the event-list | 00:01 |
SpamapS | zaneb: we'd have to go back and change them to something other than UPDATE_COMPLETE after the update finished, or the next update would be fooled. | 00:01 |
zaneb | oh right | 00:02 |
SpamapS | but the event-list ... | 00:02 |
*** arbylee has joined #heat | 00:02 | |
zaneb | you need to walk through the graph until you find one that is UPDATE_FAILED and start there | 00:02 |
zaneb | and after that ignore the status | 00:02 |
SpamapS | zaneb: there will be others on the same level of the graph that want to happen in parallel though. | 00:02 |
SpamapS | unless we don't do updates in parallel | 00:02 |
SpamapS | at which point, we could in fact do just that. | 00:03 |
*** andrew_plunk has joined #heat | 00:03 | |
zaneb | SpamapS: right, you have to do what I said above for every path in the graph | 00:03 |
*** arbylee has quit IRC | 00:04 | |
SpamapS | zaneb: also sometimes the resource that caused the issue is CREATE_FAILED .. but I think that it still works if you take action out of it. | 00:05 |
zaneb | yes, agreed, the action is unimportant | 00:06 |
zaneb | just the status | 00:06 |
zaneb | Things I Don't Want to Read in a Bug Report Under "Reproduction" | 00:07 |
zaneb | #1: "Set your DIB environment variables appropriately" | 00:07 |
zaneb | sdake: ^ any idea which environment variables he meant? | 00:09 |
*** david-lyle has quit IRC | 00:13 | |
*** topol has joined #heat | 00:15 | |
stevebaker | zaneb: probably ELEMENTS_PATH to point at your elements collection http://git.openstack.org/cgit/openstack/diskimage-builder/tree/README.md | 00:16 |
zaneb | thanks, I think it's actually this: https://github.com/openstack/diskimage-builder/blob/master/elements/rhel/README.md | 00:16 |
zaneb | found it in another bug report | 00:16 |
*** zns has quit IRC | 00:17 | |
*** shakayumi has joined #heat | 00:20 | |
*** shakayumi has quit IRC | 00:21 | |
*** shakayumi has joined #heat | 00:21 | |
*** shakayumi has quit IRC | 00:21 | |
*** tspatzier has joined #heat | 00:21 | |
*** openstackgerrit has joined #heat | 00:24 | |
*** arbylee has joined #heat | 00:31 | |
*** cadenzajon_ has quit IRC | 00:31 | |
*** Tross has quit IRC | 00:31 | |
*** Tross has joined #heat | 00:34 | |
*** Tross has quit IRC | 00:34 | |
*** erkules has quit IRC | 00:38 | |
*** pvaneck has quit IRC | 00:38 | |
*** tspatzier has quit IRC | 00:39 | |
*** maxskew__ has joined #heat | 00:39 | |
*** erkules has joined #heat | 00:39 | |
*** pvaneck has joined #heat | 00:39 | |
*** shortstop has quit IRC | 00:40 | |
*** bnemec has quit IRC | 00:40 | |
*** pasquier-s has quit IRC | 00:40 | |
*** openstack has joined #heat | 00:48 | |
*** _jmp_ has joined #heat | 00:49 | |
*** gokrokve has quit IRC | 00:49 | |
*** _jmp_ is now known as Guest15102 | 00:49 | |
*** gokrokve has joined #heat | 00:49 | |
*** maxskew has joined #heat | 00:50 | |
*** nati_uen_ has joined #heat | 00:50 | |
*** chandankumar_ has joined #heat | 00:51 | |
*** bnemec has quit IRC | 00:54 | |
*** pasquier-s has quit IRC | 00:54 | |
*** arbylee has quit IRC | 00:54 | |
*** topol has quit IRC | 00:54 | |
*** Guest76806 has quit IRC | 00:54 | |
*** cody-somerville has quit IRC | 00:54 | |
*** gokrokve has quit IRC | 00:54 | |
*** tspatzier has quit IRC | 00:57 | |
*** bada has quit IRC | 00:58 | |
*** maxskew has quit IRC | 01:00 | |
*** bada has joined #heat | 01:00 | |
*** alexpilotti has quit IRC | 01:00 | |
*** openstack has joined #heat | 01:00 | |
*** giulivo has quit IRC | 01:00 | |
SpamapS | zaneb: this appears to work for simple cases.. Writing tests for the more complex ones requires careful thought though. | 01:03 |
*** dims has quit IRC | 01:03 | |
SpamapS | as with all concurrent things.. testing how it handles all of the things that can happen in all of the orders is the challenge. :-P | 01:03 |
*** julienvey1 has joined #heat | 01:05 | |
*** maxskew has joined #heat | 01:05 | |
*** swygue has quit IRC | 01:05 | |
*** maxskew__ has quit IRC | 01:06 | |
*** jamieh has quit IRC | 01:06 | |
*** skraynev has joined #heat | 01:06 | |
*** cody-somerville has joined #heat | 01:06 | |
*** cody-somerville has quit IRC | 01:06 | |
*** cody-somerville has joined #heat | 01:06 | |
*** bnemec has joined #heat | 01:06 | |
*** pvaneck has quit IRC | 01:06 | |
*** jamieh has joined #heat | 01:07 | |
*** nati_ueno has quit IRC | 01:08 | |
*** chandankumar_ has quit IRC | 01:08 | |
*** chandankumar_ has joined #heat | 01:08 | |
*** pasquier-s has joined #heat | 01:10 | |
*** achampion has joined #heat | 01:14 | |
*** dims has joined #heat | 01:18 | |
*** WinnieTsang has quit IRC | 01:20 | |
*** ramishra has joined #heat | 01:21 | |
SpamapS | well my brain has melted.. :-P | 01:21 |
*** openstack has quit IRC | 01:26 | |
*** openstack has joined #heat | 01:29 | |
*** randallburt is now known as 23LAACT9B | 01:29 | |
*** randallburt has joined #heat | 01:29 | |
*** therve` has joined #heat | 01:29 | |
*** cody-somerville has quit IRC | 01:30 | |
*** daneyon has quit IRC | 01:30 | |
*** andersonvom has quit IRC | 01:30 | |
*** randallburt has quit IRC | 01:30 | |
*** 23LAACT9B has quit IRC | 01:30 | |
*** 23LAACT9B has joined #heat | 01:30 | |
*** larsks has joined #heat | 01:31 | |
*** IgorYozhikov has joined #heat | 01:32 | |
*** gokrokve has joined #heat | 01:35 | |
openstackgerrit | huangtianhua proposed a change to openstack/heat: Fix InternalException raised on stack-show https://review.openstack.org/76429 | 01:35 |
*** lazy_prince is now known as killer_prince | 01:36 | |
openstackgerrit | A change was merged to openstack/heat: Convert AccessKey resource to attributes_schema https://review.openstack.org/76275 | 01:44 |
tango | SpamapS: maybe I can help with writing the unit tests | 01:44 |
SpamapS | tango: I've split it up a bit, and I think I'm on track now.. just have to keep brain from overheating and melting again ;) | 01:45 |
*** nosnos has joined #heat | 01:45 | |
tango | SpamapS: pace yourself :) I have been staring at the update code all day to see how to merge the code for create fail in the stack update code | 01:47 |
*** cody-somerville has joined #heat | 01:47 | |
SpamapS | tango: the thing I wrote before for resuming failed creates still works fine I think | 01:48 |
sdake | zaneb sorry I was out | 01:50 |
tango | SpamapS: that's what I am thinking also, it seems I need to do some preparation to reuse the same template and keeping the action as CREATE instead of UPDATE | 01:50 |
sdake | zaneb it is that readme | 01:50 |
sdake | also you need to overrride IMAGE_something | 01:50 |
zaneb | yep, I got it working, thanks | 01:50 |
sdake | the default is old in dib | 01:50 |
sdake | ya sorry for delay was at folks eating | 01:50 |
*** alexpilotti has quit IRC | 01:50 | |
zaneb | now if I can get mariadb to start I will be able to test it :| | 01:50 |
*** alexpilotti has joined #heat | 01:51 | |
*** pablosan_ has quit IRC | 01:53 | |
*** tango has quit IRC | 01:57 | |
*** pablosan has joined #heat | 01:58 | |
*** guohliu has joined #heat | 02:00 | |
*** fandi has joined #heat | 02:05 | |
*** Tross has joined #heat | 02:09 | |
*** cody-somerville has quit IRC | 02:11 | |
*** erkules_ has joined #heat | 02:20 | |
*** zhiyan_ is now known as zhiyan | 02:21 | |
*** erkules has quit IRC | 02:22 | |
openstackgerrit | huangtianhua proposed a change to openstack/heat: Ensure property 'name' can be updated https://review.openstack.org/74624 | 02:29 |
openstackgerrit | huangtianhua proposed a change to openstack/heat: Fix InternalException raised on stack-show https://review.openstack.org/76429 | 02:37 |
*** arbylee1 has quit IRC | 02:37 | |
*** david-lyle has joined #heat | 02:37 | |
*** yogesh has joined #heat | 02:37 | |
*** gokrokve has quit IRC | 02:42 | |
*** gokrokve has joined #heat | 02:43 | |
*** gokrokve has quit IRC | 02:43 | |
*** dtalton has joined #heat | 02:44 | |
*** spzala_ has quit IRC | 02:44 | |
*** yogesh has quit IRC | 02:45 | |
*** dtalton has quit IRC | 02:46 | |
*** andersonvom has joined #heat | 02:49 | |
*** pablosan has quit IRC | 02:49 | |
*** nati_uen_ has quit IRC | 02:51 | |
sdake | new bitcoin miner on tuesday \o/ ;) | 02:58 |
sdake | and off to bed, night all | 02:58 |
*** killer_prince is now known as lazy_prince | 03:02 | |
*** andersonvom has quit IRC | 03:02 | |
*** daneyon has joined #heat | 03:03 | |
sdake | lifeless ping | 03:04 |
sdake | lifeless nm I'm heading off for the night, I'll catch up with you tomorrow | 03:05 |
sdake | wanted to chat about concoord | 03:05 |
sdake | or perhaps monday since tomorrow is saturday for you :) | 03:06 |
lifeless | sdake: monday i'm in the tripleo sprint in sunnyvale | 03:06 |
lifeless | sdake: but yes, lets | 03:06 |
sdake | real quick, do you mean use concoord in heat, or use concoord in place of heat | 03:06 |
lifeless | the former | 03:06 |
*** daneyon_ has quit IRC | 03:07 | |
lifeless | express [much of] heat's internals in it though | 03:07 |
sdake | wouldn't mistral be a better fit for that long term? | 03:08 |
sdake | I guess I don't knokw what concoord does, need to do some reading :) | 03:08 |
sdake | ok thanks for not giving me a panic attack :) | 03:09 |
sdake | night | 03:09 |
lifeless | sdake: mistral is a workflow engine | 03:11 |
lifeless | sdake: concoord is a consensus + replicated state machine engine | 03:11 |
sdake__ | lifeless - switched computers to nerd-surf | 03:11 |
sdake__ | i see, so like zookeeper ? | 03:11 |
lifeless | except not java , not based on writing files-with-zomg-locking, and not sucking | 03:12 |
sdake__ | does it work ? :) | 03:12 |
lifeless | yes | 03:12 |
lifeless | its based on paxos | 03:12 |
lifeless | which is old and well nown | 03:12 |
lifeless | known | 03:12 |
lifeless | so for instance, here is one of the ideas I have | 03:13 |
lifeless | take multi-engine heat | 03:13 |
lifeless | as a small step | 03:13 |
lifeless | if we stored the state machine for stack updates in concoord | 03:13 |
lifeless | and the engine that was 'master' goes down | 03:13 |
lifeless | the stack update will proceed automatically | 03:13 |
lifeless | because another engine will become master | 03:14 |
sdake__ | I am familiar with paxos | 03:14 |
lifeless | and get called from the local statemachine to carry on | 03:14 |
lifeless | we could have a state machine per stack that is being updated concurrently, delete them when the update is complete | 03:14 |
lifeless | sdake__: [paxos - good, wasn't explaining paxos here - assumed you knew it :) | 03:15 |
sdake__ | I think paxos rocks but it has serious IP issues | 03:15 |
lifeless | oh? | 03:15 |
sdake__ | everytime microsoft writes a paper about it they put their 10+ patents in the paper description | 03:16 |
* sdake__ ughs | 03:16 | |
lifeless | oh | 03:17 |
lifeless | so, I think we'd probably ask the board then if that is an issue | 03:17 |
lifeless | I rather suspect we have enough to balance things | 03:17 |
lifeless | (HP) | 03:17 |
sdake__ | ;) | 03:17 |
sdake__ | well its the board's job to protect promote blah blah :) | 03:18 |
lifeless | so I guess I see a migration strategy of - start by using concoord to select which engine does a given piece of work, then start storing state machines in there to let work be handed off across engine shutdowns etc | 03:18 |
sdake__ | I'd probably be better off if I hadn't read the research papers :( | 03:18 |
lifeless | I see checkpointing workflow kindof things in a DB as orthogonal to this | 03:19 |
lifeless | which is more a way of writing fairly straightforward python that will be replicated and applied once and only once across a cluster for us | 03:19 |
lifeless | sdake__: did you see the http://openreplica.org/ link ? | 03:28 |
lifeless | which is where I found concoord | 03:28 |
lifeless | sdake__: so the thing I *started* looking for was a nice way to initialise the rabbit and galera clusters for TripleO | 03:28 |
sdake__ | looking | 03:28 |
sdake__ | ya there is a thread on our internal list about that topic one of the engineers asked folks about | 03:29 |
lifeless | Jan ? | 03:29 |
sdake__ | yup | 03:29 |
sdake__ | asking how we sort it out in rhel ha | 03:29 |
lifeless | so in the short term we're going to do a hack | 03:29 |
sdake__ | I saw the review | 03:29 |
lifeless | but in the medium/long term I'd like to do something nice | 03:29 |
sdake__ | looks fragile :) | 03:29 |
sdake__ | have you thought about synchronizing via iscsi | 03:30 |
*** arbylee has joined #heat | 03:30 | |
lifeless | e.g. elect a leader from a zero-knowledge-other-than-peers-list and then do the critical section stuff under its direction | 03:30 |
lifeless | sdake__: I hadn't. Now I can't get the image out of my head. | 03:30 |
lifeless | sdake__: eek | 03:30 |
sdake__ | don't like it? :) | 03:30 |
lifeless | sdake__: so, chicken and egg. How do we init the cluster fs the data needs to be on | 03:31 |
lifeless | sdake__: if we don't cluster the fs, we have failure modes if the server it is on glitches on deploy | 03:31 |
sdake__ | don't run an fs on it | 03:32 |
sdake__ | cluster fs requires a dlm in most cases anyway - just use the iscsi block device as a data blob for synchronizing servers | 03:32 |
sdake__ | block 1 = machine 1, block 2 = machine 2 | 03:33 |
sdake__ | init on start | 03:33 |
sdake__ | some cats use storage for cluster membership - its not that hard, the performance just sucks | 03:34 |
sdake__ | even more daring cats use shared storage (eg iscsi device) for messaging | 03:35 |
sdake__ | that is really not ideal :) | 03:35 |
sdake__ | best part is no daemon :) | 03:36 |
sdake__ | shared storage membership is pretty easy peasy with 2pc | 03:37 |
sdake__ | anyway just an idea - maybe crackheaded ;) | 03:38 |
*** 23LAACT9B has quit IRC | 03:38 | |
*** erkules_ is now known as erkules | 03:44 | |
*** chandan_kumar has joined #heat | 03:46 | |
*** radez_g0n3 is now known as radez | 03:47 | |
*** jamieh has quit IRC | 03:48 | |
*** ramishra_ has joined #heat | 03:53 | |
openstackgerrit | A change was merged to openstack/heat: Raise NotFound in software_config_get/software_deployment_get https://review.openstack.org/76369 | 03:53 |
openstackgerrit | A change was merged to openstack/heat: RPC method to fetch deployments metadata https://review.openstack.org/74202 | 03:53 |
*** ramishra has quit IRC | 03:53 | |
openstackgerrit | A change was merged to openstack/heat: REST deployment metadata method https://review.openstack.org/74203 | 03:54 |
*** harlowja is now known as harlowja_away | 03:55 | |
openstackgerrit | A change was merged to openstack/heat: SignalResponder move signed URL deleting to its own method https://review.openstack.org/74205 | 03:55 |
*** cody-somerville has joined #heat | 03:57 | |
*** chandan_kumar has quit IRC | 03:57 | |
*** achampion has quit IRC | 04:08 | |
openstackgerrit | Steve Baker proposed a change to openstack/heat: Change software_config storage of config and io columns https://review.openstack.org/77061 | 04:08 |
openstackgerrit | Steve Baker proposed a change to openstack/heat: Resource type implementations for structured software config https://review.openstack.org/74206 | 04:09 |
openstackgerrit | Steve Baker proposed a change to openstack/heat: OS::Nova::Server support for software config https://review.openstack.org/67625 | 04:09 |
openstackgerrit | Steve Baker proposed a change to openstack/heat: Resource type implementation for software deployment https://review.openstack.org/67624 | 04:09 |
openstackgerrit | Steve Baker proposed a change to openstack/heat: Nova server to ref cloud-config resources in user_data https://review.openstack.org/69238 | 04:09 |
*** radez is now known as radez_g0n3 | 04:10 | |
*** lnxnut has joined #heat | 04:15 | |
*** radez_g0n3 is now known as radez | 04:18 | |
*** radez is now known as radez_g0n3 | 04:22 | |
*** arbylee has quit IRC | 04:24 | |
*** openstack has joined #heat | 04:38 | |
*** erkules has joined #heat | 04:39 | |
*** dims has joined #heat | 04:39 | |
*** jasond`` has joined #heat | 04:39 | |
*** IYozhikov_away has joined #heat | 04:41 | |
*** IgorYozhikov has quit IRC | 04:41 | |
*** larsks has joined #heat | 04:42 | |
*** daneyon_ has joined #heat | 04:42 | |
*** larsks|alt has quit IRC | 04:42 | |
*** daneyon has quit IRC | 04:42 | |
openstackgerrit | Mitsuru Kanabuchi proposed a change to openstack/heat: Implement OS::Neutron::ExtraRoute as /contrib https://review.openstack.org/74899 | 04:43 |
*** DandyPandy_ has quit IRC | 04:43 | |
*** IYozhikov_away has quit IRC | 04:48 | |
*** openstack has quit IRC | 04:48 | |
*** openstack has joined #heat | 04:50 | |
*** vaibhav has joined #heat | 04:51 | |
*** chandan_kumar has joined #heat | 04:54 | |
*** openstack has joined #heat | 05:02 | |
*** david_lyle_ has joined #heat | 05:02 | |
*** ramishra has joined #heat | 05:03 | |
*** bnemec_ has joined #heat | 05:03 | |
*** Tross has joined #heat | 05:03 | |
*** akuznets_ has joined #heat | 05:03 | |
*** john-n-s- has joined #heat | 05:05 | |
*** zhiyan- has joined #heat | 05:06 | |
*** tspatzier has joined #heat | 05:06 | |
*** openstack has quit IRC | 05:10 | |
*** openstack has joined #heat | 05:17 | |
*** openstack has quit IRC | 05:22 | |
*** openstack has joined #heat | 05:29 | |
*** dickson.freenode.net sets mode: +ns | 05:29 | |
*** dickson.freenode.net sets mode: -o openstack | 05:30 | |
-dickson.freenode.net- *** Notice -- TS for #heat changed from 1393565383 to 1332364781 | 05:30 | |
*** dickson.freenode.net sets mode: +cpt-s | 05:30 | |
*** akuznets_ has joined #heat | 05:30 | |
*** zhiyan has joined #heat | 05:30 | |
*** bnemec has joined #heat | 05:30 | |
*** liang has joined #heat | 05:30 | |
*** tspatzier has joined #heat | 05:30 | |
*** john-n-s- has joined #heat | 05:30 | |
*** Tross has joined #heat | 05:30 | |
*** ramishra has joined #heat | 05:30 | |
*** david_lyle_ has joined #heat | 05:30 | |
*** dims_ has joined #heat | 05:30 | |
*** IYozhikov_away has joined #heat | 05:30 | |
*** DandyPandy has joined #heat | 05:30 | |
*** daneyon_ has joined #heat | 05:30 | |
*** larsks has joined #heat | 05:30 | |
*** jasond`` has joined #heat | 05:30 | |
*** erkules has joined #heat | 05:30 | |
*** nosnos_ has joined #heat | 05:30 | |
*** fandi has joined #heat | 05:30 | |
*** guohliu has joined #heat | 05:30 | |
*** therve` has joined #heat | 05:30 | |
*** scroiset1 has joined #heat | 05:30 | |
*** saurabhs1 has joined #heat | 05:30 | |
*** pasquier-s has joined #heat | 05:30 | |
*** skraynev has joined #heat | 05:30 | |
*** maxskew has joined #heat | 05:30 | |
*** julienvey1 has joined #heat | 05:30 | |
*** bada has joined #heat | 05:30 | |
*** chandankumar_ has joined #heat | 05:30 | |
*** Guest15102 has joined #heat | 05:30 | |
*** zpatten has joined #heat | 05:30 | |
*** dteselkin_ has joined #heat | 05:30 | |
*** topol_ has joined #heat | 05:30 | |
*** glucas has joined #heat | 05:30 | |
*** sirushti has joined #heat | 05:30 | |
*** openstackgerrit has joined #heat | 05:30 | |
*** SpamapS has joined #heat | 05:30 | |
*** sgran_ has joined #heat | 05:30 | |
*** sdake__ has joined #heat | 05:30 | |
*** rpothier has joined #heat | 05:30 | |
*** Michalik has joined #heat | 05:30 | |
*** dmakogon_ has joined #heat | 05:30 | |
*** funzo has joined #heat | 05:30 | |
*** blamar has joined #heat | 05:30 | |
*** sballe has joined #heat | 05:30 | |
*** jdag_ has joined #heat | 05:30 | |
*** asalkeld has joined #heat | 05:30 | |
*** jrist has joined #heat | 05:30 | |
*** lazy_prince has joined #heat | 05:30 | |
*** varora has joined #heat | 05:30 | |
*** Slower has joined #heat | 05:30 | |
*** mestery has joined #heat | 05:30 | |
*** sbadia has joined #heat | 05:30 | |
*** grncdr has joined #heat | 05:30 | |
*** FL1SK has joined #heat | 05:30 | |
*** ruhe has joined #heat | 05:30 | |
*** aignatov_ has joined #heat | 05:30 | |
*** sdake has joined #heat | 05:30 | |
*** pscheie_ has joined #heat | 05:30 | |
*** stevebaker has joined #heat | 05:30 | |
*** jpeeler has joined #heat | 05:30 | |
*** rwsu has joined #heat | 05:30 | |
*** sergmelikyan has joined #heat | 05:30 | |
*** ccorrigan has joined #heat | 05:30 | |
*** SergeyLukjanov has joined #heat | 05:30 | |
*** tteggel has joined #heat | 05:30 | |
*** zaneb has joined #heat | 05:30 | |
*** scollier has joined #heat | 05:30 | |
*** mkerrin has joined #heat | 05:30 | |
*** nijaba has joined #heat | 05:30 | |
*** lsmola has joined #heat | 05:30 | |
*** harlowja_away has joined #heat | 05:30 | |
*** wirehead_ has joined #heat | 05:30 | |
*** christophk_ has joined #heat | 05:30 | |
*** Ng has joined #heat | 05:30 | |
*** shardy_afk has joined #heat | 05:30 | |
*** ChanServ has joined #heat | 05:30 | |
*** aliljet has joined #heat | 05:30 | |
*** kevinbenton has joined #heat | 05:30 | |
*** rockstar has joined #heat | 05:30 | |
*** mikal has joined #heat | 05:30 | |
*** radix has joined #heat | 05:30 | |
*** gondoi has joined #heat | 05:30 | |
*** cyli has joined #heat | 05:30 | |
*** samkottler has joined #heat | 05:30 | |
*** russellb has joined #heat | 05:30 | |
*** wendar has joined #heat | 05:30 | |
*** lekha has joined #heat | 05:30 | |
*** zigo has joined #heat | 05:30 | |
*** fungi has joined #heat | 05:30 | |
*** chmouel has joined #heat | 05:30 | |
*** clarkb has joined #heat | 05:30 | |
*** abramley has joined #heat | 05:30 | |
*** pleia2 has joined #heat | 05:30 | |
*** Daviey has joined #heat | 05:30 | |
*** dickson.freenode.net sets mode: +o ChanServ | 05:30 | |
*** mordred has joined #heat | 05:30 | |
*** BLZbubba_ has joined #heat | 05:30 | |
*** lifeless has joined #heat | 05:30 | |
*** lon|gone has joined #heat | 05:30 | |
*** radez_g0n3 has joined #heat | 05:30 | |
*** mnaser has joined #heat | 05:30 | |
*** anteaya has joined #heat | 05:30 | |
*** shadower has joined #heat | 05:30 | |
*** aedocw has joined #heat | 05:30 | |
*** EmilienM has joined #heat | 05:30 | |
*** plomakin_ has joined #heat | 05:30 | |
*** sileht has joined #heat | 05:30 | |
*** dklyle has joined #heat | 05:30 | |
*** PhilK has joined #heat | 05:30 | |
*** brint has joined #heat | 05:30 | |
*** 1JTAAFJP3 has joined #heat | 05:30 | |
*** q3k has joined #heat | 05:30 | |
*** dickson.freenode.net changes topic to "support @ https://ask.openstack.org | developer wiki @ https://wiki.openstack.org/wiki/Heat | development @ https://launchpad.net/heat | logged @ http://eavesdrop.openstack.org/irclogs/%23heat/" | 05:30 | |
*** openstack has quit IRC | 05:34 | |
*** openstack has joined #heat | 05:44 | |
*** IYozhikov_away has quit IRC | 05:49 | |
*** DandyPandy has quit IRC | 05:49 | |
*** jasond`` has quit IRC | 05:49 | |
*** q3k has quit IRC | 05:49 | |
*** bada has quit IRC | 05:49 | |
*** chandankumar_ has quit IRC | 05:49 | |
*** Guest15102 has quit IRC | 05:49 | |
*** zpatten has quit IRC | 05:49 | |
*** dteselkin_ has quit IRC | 05:49 | |
*** glucas has quit IRC | 05:49 | |
*** sirushti has quit IRC | 05:49 | |
*** SpamapS has quit IRC | 05:49 | |
*** sgran_ has quit IRC | 05:49 | |
*** rpothier has quit IRC | 05:49 | |
*** dmakogon_ has quit IRC | 05:49 | |
*** funzo has quit IRC | 05:49 | |
*** sballe has quit IRC | 05:49 | |
*** lazy_prince has quit IRC | 05:49 | |
*** ruhe has quit IRC | 05:49 | |
*** aignatov_ has quit IRC | 05:49 | |
*** sdake has quit IRC | 05:49 | |
*** pscheie_ has quit IRC | 05:49 | |
*** blamar has quit IRC | 05:49 | |
*** jdag_ has quit IRC | 05:49 | |
*** sbadia has quit IRC | 05:49 | |
*** varora has quit IRC | 05:49 | |
*** FL1SK has quit IRC | 05:49 | |
*** harlowja_away has quit IRC | 05:49 | |
*** mkerrin has quit IRC | 05:49 | |
*** dklyle has quit IRC | 05:49 | |
*** PhilK has quit IRC | 05:49 | |
*** brint has quit IRC | 05:49 | |
*** 1JTAAFJP3 has quit IRC | 05:49 | |
*** zhiyan has quit IRC | 05:49 | |
*** tspatzier has quit IRC | 05:49 | |
*** john-n-s- has quit IRC | 05:49 | |
*** dims_ has quit IRC | 05:49 | |
*** daneyon_ has quit IRC | 05:49 | |
*** erkules has quit IRC | 05:49 | |
*** nosnos_ has quit IRC | 05:49 | |
*** guohliu has quit IRC | 05:49 | |
*** scroiset1 has quit IRC | 05:49 | |
*** saurabhs1 has quit IRC | 05:49 | |
*** maxskew has quit IRC | 05:49 | |
*** julienvey1 has quit IRC | 05:49 | |
*** sergmelikyan has quit IRC | 05:49 | |
*** scollier has quit IRC | 05:49 | |
*** ccorrigan has quit IRC | 05:49 | |
*** topol_ has quit IRC | 05:49 | |
*** openstackgerrit has quit IRC | 05:49 | |
*** sdake__ has quit IRC | 05:49 | |
*** asalkeld has quit IRC | 05:49 | |
*** jrist has quit IRC | 05:49 | |
*** Slower has quit IRC | 05:49 | |
*** mestery has quit IRC | 05:49 | |
*** grncdr has quit IRC | 05:49 | |
*** jpeeler has quit IRC | 05:49 | |
*** rwsu has quit IRC | 05:49 | |
*** SergeyLukjanov has quit IRC | 05:49 | |
*** tteggel has quit IRC | 05:49 | |
*** zaneb has quit IRC | 05:49 | |
*** nijaba has quit IRC | 05:49 | |
*** lsmola has quit IRC | 05:49 | |
*** plomakin_ has quit IRC | 05:49 | |
*** aedocw has quit IRC | 05:49 | |
*** shadower has quit IRC | 05:49 | |
*** mnaser has quit IRC | 05:49 | |
*** radez_g0n3 has quit IRC | 05:49 | |
*** lon|gone has quit IRC | 05:49 | |
*** lifeless has quit IRC | 05:49 | |
*** BLZbubba_ has quit IRC | 05:49 | |
*** mordred has quit IRC | 05:49 | |
*** Daviey has quit IRC | 05:49 | |
*** Michalik has quit IRC | 05:49 | |
*** stevebaker has quit IRC | 05:49 | |
*** wirehead_ has quit IRC | 05:49 | |
*** sileht has quit IRC | 05:49 | |
*** EmilienM has quit IRC | 05:49 | |
*** clarkb has quit IRC | 05:49 | |
*** chmouel has quit IRC | 05:49 | |
*** fungi has quit IRC | 05:49 | |
*** zigo has quit IRC | 05:49 | |
*** lekha has quit IRC | 05:49 | |
*** wendar has quit IRC | 05:49 | |
*** russellb has quit IRC | 05:49 | |
*** gondoi has quit IRC | 05:49 | |
*** radix has quit IRC | 05:49 | |
*** mikal has quit IRC | 05:49 | |
*** rockstar has quit IRC | 05:49 | |
*** kevinbenton has quit IRC | 05:49 | |
*** ChanServ has quit IRC | 05:49 | |
*** akuznets_ has quit IRC | 05:49 | |
*** bnemec has quit IRC | 05:49 | |
*** liang has quit IRC | 05:49 | |
*** Tross has quit IRC | 05:49 | |
*** ramishra has quit IRC | 05:49 | |
*** david_lyle_ has quit IRC | 05:49 | |
*** larsks has quit IRC | 05:49 | |
*** fandi has quit IRC | 05:49 | |
*** therve` has quit IRC | 05:49 | |
*** pasquier-s has quit IRC | 05:49 | |
*** skraynev has quit IRC | 05:49 | |
*** anteaya has quit IRC | 05:49 | |
*** pleia2 has quit IRC | 05:49 | |
*** abramley has quit IRC | 05:49 | |
*** samkottler has quit IRC | 05:49 | |
*** cyli has quit IRC | 05:49 | |
*** shardy_afk has quit IRC | 05:49 | |
*** aliljet has quit IRC | 05:49 | |
*** Ng has quit IRC | 05:49 | |
*** christophk_ has quit IRC | 05:49 | |
*** zns has joined #heat | 05:51 | |
*** IgorYozhikov has joined #heat | 05:51 | |
*** cody-somerville has joined #heat | 05:51 | |
*** akuznets_ has joined #heat | 05:51 | |
*** zhiyan has joined #heat | 05:51 | |
*** bnemec has joined #heat | 05:51 | |
*** liang has joined #heat | 05:51 | |
*** tspatzier has joined #heat | 05:51 | |
*** john-n-s- has joined #heat | 05:51 | |
*** Tross has joined #heat | 05:51 | |
*** ramishra has joined #heat | 05:51 | |
*** david_lyle_ has joined #heat | 05:51 | |
*** dims_ has joined #heat | 05:51 | |
*** DandyPandy has joined #heat | 05:51 | |
*** daneyon_ has joined #heat | 05:51 | |
*** larsks has joined #heat | 05:51 | |
*** jasond`` has joined #heat | 05:51 | |
*** erkules has joined #heat | 05:51 | |
*** nosnos_ has joined #heat | 05:51 | |
*** fandi has joined #heat | 05:51 | |
*** guohliu has joined #heat | 05:51 | |
*** therve` has joined #heat | 05:51 | |
*** scroiset1 has joined #heat | 05:51 | |
*** saurabhs1 has joined #heat | 05:51 | |
*** pasquier-s has joined #heat | 05:51 | |
*** skraynev has joined #heat | 05:51 | |
*** maxskew has joined #heat | 05:51 | |
*** julienvey1 has joined #heat | 05:51 | |
*** bada has joined #heat | 05:51 | |
*** chandankumar_ has joined #heat | 05:51 | |
*** Guest15102 has joined #heat | 05:51 | |
*** zpatten has joined #heat | 05:51 | |
*** dteselkin_ has joined #heat | 05:51 | |
*** topol_ has joined #heat | 05:51 | |
*** glucas has joined #heat | 05:51 | |
*** sirushti has joined #heat | 05:51 | |
*** openstackgerrit has joined #heat | 05:51 | |
*** SpamapS has joined #heat | 05:51 | |
*** sgran_ has joined #heat | 05:51 | |
*** sdake__ has joined #heat | 05:51 | |
*** rpothier has joined #heat | 05:51 | |
*** Michalik has joined #heat | 05:51 | |
*** dmakogon_ has joined #heat | 05:51 | |
*** funzo has joined #heat | 05:51 | |
*** blamar has joined #heat | 05:51 | |
*** sballe has joined #heat | 05:51 | |
*** jdag_ has joined #heat | 05:51 | |
*** asalkeld has joined #heat | 05:51 | |
*** jrist has joined #heat | 05:51 | |
*** lazy_prince has joined #heat | 05:51 | |
*** varora has joined #heat | 05:51 | |
*** Slower has joined #heat | 05:51 | |
*** mestery has joined #heat | 05:51 | |
*** sbadia has joined #heat | 05:51 | |
*** grncdr has joined #heat | 05:51 | |
*** FL1SK has joined #heat | 05:51 | |
*** ruhe has joined #heat | 05:51 | |
*** aignatov_ has joined #heat | 05:51 | |
*** sdake has joined #heat | 05:51 | |
*** pscheie_ has joined #heat | 05:51 | |
*** stevebaker has joined #heat | 05:51 | |
*** jpeeler has joined #heat | 05:51 | |
*** rwsu has joined #heat | 05:51 | |
*** sergmelikyan has joined #heat | 05:51 | |
*** ccorrigan has joined #heat | 05:51 | |
*** SergeyLukjanov has joined #heat | 05:51 | |
*** tteggel has joined #heat | 05:51 | |
*** zaneb has joined #heat | 05:51 | |
*** scollier has joined #heat | 05:51 | |
*** mkerrin has joined #heat | 05:51 | |
*** nijaba has joined #heat | 05:51 | |
*** lsmola has joined #heat | 05:51 | |
*** harlowja_away has joined #heat | 05:51 | |
*** wirehead_ has joined #heat | 05:51 | |
*** christophk_ has joined #heat | 05:51 | |
*** Ng has joined #heat | 05:51 | |
*** shardy_afk has joined #heat | 05:51 | |
*** ChanServ has joined #heat | 05:51 | |
*** aliljet has joined #heat | 05:51 | |
*** kevinbenton has joined #heat | 05:51 | |
*** rockstar has joined #heat | 05:51 | |
*** mikal has joined #heat | 05:51 | |
*** radix has joined #heat | 05:51 | |
*** gondoi has joined #heat | 05:51 | |
*** cyli has joined #heat | 05:51 | |
*** samkottler has joined #heat | 05:51 | |
*** russellb has joined #heat | 05:51 | |
*** wendar has joined #heat | 05:51 | |
*** lekha has joined #heat | 05:51 | |
*** zigo has joined #heat | 05:51 | |
*** fungi has joined #heat | 05:51 | |
*** chmouel has joined #heat | 05:51 | |
*** clarkb has joined #heat | 05:51 | |
*** abramley has joined #heat | 05:51 | |
*** dickson.freenode.net sets mode: +o ChanServ | 05:51 | |
*** pleia2 has joined #heat | 05:51 | |
*** Daviey has joined #heat | 05:51 | |
*** mordred has joined #heat | 05:51 | |
*** BLZbubba_ has joined #heat | 05:51 | |
*** lifeless has joined #heat | 05:51 | |
*** lon|gone has joined #heat | 05:51 | |
*** radez_g0n3 has joined #heat | 05:51 | |
*** mnaser has joined #heat | 05:51 | |
*** anteaya has joined #heat | 05:51 | |
*** shadower has joined #heat | 05:51 | |
*** aedocw has joined #heat | 05:51 | |
*** EmilienM has joined #heat | 05:51 | |
*** plomakin_ has joined #heat | 05:51 | |
*** sileht has joined #heat | 05:51 | |
*** dklyle has joined #heat | 05:51 | |
*** PhilK has joined #heat | 05:51 | |
*** brint has joined #heat | 05:51 | |
*** 1JTAAFJP3 has joined #heat | 05:51 | |
*** q3k has joined #heat | 05:51 | |
*** maxskew_ has joined #heat | 06:02 | |
*** maxskew_ has quit IRC | 06:09 | |
*** openstack has quit IRC | 06:09 | |
*** openstack has joined #heat | 06:11 | |
-dickson.freenode.net- [freenode-info] channel trolls and no channel staff around to help? please check with freenode support: http://freenode.net/faq.shtml#gettinghelp | 06:11 | |
*** sirushti is now known as shortstop | 06:18 | |
*** amritanshu_RnD has joined #heat | 06:21 | |
*** zns has quit IRC | 06:21 | |
*** amritanshu_RnD is now known as Guest400 | 06:21 | |
*** tspatzier has quit IRC | 06:22 | |
*** zhiyan is now known as zhiyan_ | 06:29 | |
*** asalkeld_ has quit IRC | 06:32 | |
openstackgerrit | huangtianhua proposed a change to openstack/heat: I18N support for log message and attributes schema https://review.openstack.org/69111 | 06:35 |
openstackgerrit | A change was merged to openstack/heat-cfntools: cfn-signal provides a unique default id https://review.openstack.org/64826 | 06:41 |
openstackgerrit | Rabi Mishra proposed a change to openstack/heat: Allows vip from a different subnet for lbaas resource https://review.openstack.org/77084 | 06:51 |
*** yogesh has joined #heat | 06:52 | |
*** ramishra has joined #heat | 06:55 | |
*** asalkeld has joined #heat | 06:56 | |
ramishra | therve: hello | 06:57 |
ramishra | g'morning all | 06:59 |
*** yogesh_ has joined #heat | 07:02 | |
*** yogesh has quit IRC | 07:03 | |
*** saurabhs1 has left #heat | 07:04 | |
*** nkhare has joined #heat | 07:06 | |
*** jistr has joined #heat | 07:09 | |
openstackgerrit | Kiyohiro Adachi proposed a change to openstack/heat: Remove unused variable https://review.openstack.org/77088 | 07:15 |
*** zhiyan_ is now known as zhiyan | 07:17 | |
*** ramishra has quit IRC | 07:20 | |
*** che-arne has joined #heat | 07:23 | |
*** yogesh_ has quit IRC | 07:26 | |
*** yogesh has joined #heat | 07:27 | |
skraynev | ,orning | 07:28 |
skraynev | s/,orning/morning | 07:29 |
*** saju_m has joined #heat | 07:32 | |
*** sgran_ is now known as sgran | 07:36 | |
*** e0ne has joined #heat | 07:39 | |
*** david_lyle_ has quit IRC | 07:45 | |
*** daneyon_ has quit IRC | 07:47 | |
openstackgerrit | Jenkins proposed a change to openstack/heat: Updated from global requirements https://review.openstack.org/76689 | 07:53 |
*** ifarkas has joined #heat | 07:54 | |
therve` | 'morning | 08:01 |
*** zhiyan is now known as zhiyan_ | 08:07 | |
*** topol_ has quit IRC | 08:12 | |
*** shardy_afk is now known as shardy | 08:17 | |
shardy | morning all | 08:17 |
*** Guest400 has quit IRC | 08:18 | |
*** bvandenh_ has joined #heat | 08:28 | |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: migrate User/AccessKey resources to StackUser base class https://review.openstack.org/72763 | 08:29 |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: StackUser add _delete_keypair function https://review.openstack.org/72762 | 08:29 |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: engine: allow stack_user_project users to retrieve stack https://review.openstack.org/71300 | 08:29 |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: Add test for StackUser._create_keypair https://review.openstack.org/72761 | 08:29 |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: Add config options to specify stack domain admin https://review.openstack.org/76035 | 08:29 |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: StackUser add suspend/resume support https://review.openstack.org/71930 | 08:29 |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: migrate StackUser base class to stack domain users https://review.openstack.org/71210 | 08:29 |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: heat_keystoneclient add delete_stack_domain_user_keypair https://review.openstack.org/71929 | 08:29 |
openstackgerrit | Steven Hardy proposed a change to openstack/heat: Modify stack_user_domain config option to take domain ID https://review.openstack.org/73978 | 08:29 |
*** Guest400 has joined #heat | 08:46 | |
*** yogesh has quit IRC | 09:01 | |
*** jprovazn has joined #heat | 09:03 | |
*** xuhanp has joined #heat | 09:03 | |
*** xuhanp has left #heat | 09:05 | |
*** derekh has joined #heat | 09:12 | |
*** nati_ueno has joined #heat | 09:15 | |
*** sballe_ has joined #heat | 09:19 | |
*** mkollaro has joined #heat | 09:21 | |
*** giulivo has joined #heat | 09:21 | |
*** sballe has quit IRC | 09:21 | |
*** andersonvom has joined #heat | 09:23 | |
*** stannie has joined #heat | 09:24 | |
*** sballe has joined #heat | 09:26 | |
*** jprovazn has quit IRC | 09:27 | |
*** sballe_ has quit IRC | 09:27 | |
*** jprovazn has joined #heat | 09:28 | |
*** jamieh has joined #heat | 09:32 | |
*** andersonvom has quit IRC | 09:34 | |
*** tomek_adamczewsk has joined #heat | 09:35 | |
*** sballe_ has joined #heat | 09:40 | |
*** sballe has quit IRC | 09:40 | |
*** jprovazn has quit IRC | 09:45 | |
*** sballe_ has quit IRC | 09:48 | |
*** saju_m has quit IRC | 09:49 | |
*** saju_m has joined #heat | 09:50 | |
sdake__ | for folks on fedora + devstack, take note of https://bugzilla.redhat.com/show_bug.cgi?id=1027104 | 09:51 |
shardy | sdake__: You're up late! | 09:55 |
shardy | sdake__: and thanks :) | 09:55 |
sdake__ | i slept for about 6 hours | 09:55 |
sdake__ | up early unfortunately | 09:55 |
openstackgerrit | A change was merged to openstack/python-heatclient: "version" section should be required in template https://review.openstack.org/69808 | 10:07 |
openstackgerrit | A change was merged to openstack/heat: Check that 'heat_template_version' is a HOT version https://review.openstack.org/73021 | 10:07 |
*** liang has quit IRC | 10:08 | |
*** bada has quit IRC | 10:08 | |
*** bada has joined #heat | 10:09 | |
*** jistr has quit IRC | 10:12 | |
*** bvandenh_ has quit IRC | 10:22 | |
*** jufeng has joined #heat | 10:26 | |
openstackgerrit | A change was merged to openstack/heat: Fix typo and remove unused code in nova_utils.py https://review.openstack.org/76740 | 10:30 |
openstackgerrit | Rabi Mishra proposed a change to openstack/heat: Allows vip from a different subnet for lbaas resource https://review.openstack.org/77084 | 10:32 |
*** e0ne_ has joined #heat | 10:33 | |
*** jistr has joined #heat | 10:34 | |
*** guohliu has quit IRC | 10:36 | |
*** e0ne has quit IRC | 10:38 | |
*** ramishra has joined #heat | 10:48 | |
*** ramishra_ has joined #heat | 10:49 | |
*** ramishra has quit IRC | 10:49 | |
*** nkhare has quit IRC | 10:57 | |
*** fandi has quit IRC | 11:02 | |
sdake__ | shardy do you think the ordering of : | 11:02 |
sdake__ | cfg.StrOpt('deferred_auth_method', | 11:02 |
sdake__ | choices=['password', 'trusts'], | 11:02 |
sdake__ | default='password', | 11:02 |
sdake__ | help=_('Select deferred auth method, ' | 11:02 |
sdake__ | choices vs default would make any difference? | 11:02 |
*** jamieh has quit IRC | 11:03 | |
shardy | sdake__: choices allows oslo to validate the value, it doesn't set the default | 11:04 |
sdake__ | i get that | 11:04 |
shardy | Oh, can you rephrase your query then pls? :) | 11:04 |
sdake__ | sec let me try something | 11:04 |
*** lsmola has quit IRC | 11:05 | |
*** jamieh has joined #heat | 11:06 | |
sdake__ | so basically I changed the order of those two parameters | 11:06 |
sdake__ | the original code generated a backtrace | 11:06 |
shardy | it did? | 11:07 |
sdake__ | changing the order fixed the problem | 11:07 |
shardy | weird, what version of oslo.cfg do you have? | 11:07 |
sdake__ | 1.2.1 | 11:07 |
sdake__ | I changed the order back to try to reproduce the original | 11:07 |
sdake__ | unfortunately my test cases are locking up | 11:08 |
sdake__ | master did work properly when I ran it after i re-devstacked | 11:09 |
sdake__ | maybe it was some pyc thing | 11:09 |
sdake__ | I don't see how changing the parameters would have any effect | 11:10 |
shardy | me neither, like you say stale pyc maybe | 11:11 |
*** ramishra_ has quit IRC | 11:11 | |
sdake__ | best guess | 11:11 |
sdake__ | when i saved the file it would trigger a pyc regeneration | 11:11 |
sdake__ | shardy there was a keystone v2 client review | 11:16 |
sdake__ | when you get a chance would you mind taking a look | 11:16 |
sdake__ | it looks pretty solid to me | 11:16 |
*** aignatov_ is now known as aignatov | 11:16 | |
sdake__ | but it doesn't implement trusts and I'm not sure what the implications of that are | 11:16 |
shardy | sdake__: sure, IIRC I already reviewed it once | 11:17 |
sdake__ | oh must have missed that | 11:17 |
shardy | been meaning to get back to it :) | 11:17 |
shardy | sooo many reviews.. | 11:17 |
sdake__ | ya our review queue is packed | 11:17 |
sdake__ | I spent 3 hours today going through reviews | 11:17 |
shardy | They can't implement trusts because the OS-TRUST extension is v3 only | 11:17 |
sdake__ | yes i know, I'm just wondering what that breaks from a heat perspective | 11:18 |
shardy | the implications are that you have to use deferred_auth_method=password, which is the default right now, but I'd like to change that soon | 11:18 |
shardy | the main advantage of moving to trusts (other than not storing passwords) is that users won't have to pass a password e.g in the horizon stack-create interface | 11:19 |
shardy | also it gives you much more granular control of what is delegated to the heat service user | 11:19 |
sdake__ | I thought the main advantage was to be able to create users and wcs without admin ? | 11:19 |
shardy | sdake__: No, that's what the instance-users BP implements | 11:19 |
shardy | but that's not using trusts | 11:19 |
sdake__ | so rax will get user based wcs and users with v2? | 11:20 |
shardy | trusts turned out to be a poor solution to the in-instance users problem | 11:20 |
shardy | but it's a really good solution to the deferred auth requirement | 11:20 |
shardy | sdake__: Yes, it should just work the same as what we have in Havana | 11:21 |
sdake__ | ok, I guess I dont have time at the moment to discuss, maybe we can speak after the deadline about it in more detail | 11:21 |
shardy | sdake__: I'm planning a couple of blog posts explaining it all in more detail | 11:21 |
sdake__ | I would just like rax to have a clear picture of what they are getting/not getting with v2 | 11:21 |
sdake__ | cool | 11:21 |
sdake__ | I think your the only cat that understands it in detail :) | 11:22 |
sdake__ | imo makes sense for them to document it in their readme | 11:22 |
shardy | sdake__: I've discussed it with andersonvom and I believe they understand the problems with sticking with v2, but because they're using $not_keystone they don't have any choice atm | 11:22 |
sdake__ | but I was at a loss as to what they should actually put in it | 11:22 |
sdake__ | understood | 11:22 |
shardy | apparently the issue of needing admin is less of an issue with their auth solution, but I'm not aware of why | 11:23 |
sdake__ | I think when we spoke with kebray about it a month or so ago we weren't quite sure what they would be giving up | 11:23 |
sdake__ | at the time I think we thought it was wc, autoscaling and users | 11:24 |
*** ramishra has joined #heat | 11:24 | |
shardy | sdake__: tbh when I started moving everything to v3 I did not realize it would be an issue for rax, otherwise I would have reached out to them and discussed it | 11:24 |
sdake__ | it all worked out fine | 11:24 |
sdake__ | rax had plenty of time to work out a solution | 11:24 |
shardy | The v2 shim should be fine, if they are happy with the Havana auth stuff | 11:24 |
sdake__ | its not like we told em a week before deadline "this isn't going to happen" :) | 11:25 |
sdake__ | or scramble and make a shim | 11:25 |
*** nosnos_ has quit IRC | 11:27 | |
*** ramishra has quit IRC | 11:28 | |
sdake__ | shardy any quick primer on what mock_enforce_setup does | 11:31 |
shardy | sdake__: it stubs the stuff called by the @util.policy_enforce decorator in the API controllers, so you can control the policy enforcement in the test | 11:34 |
shardy | sdake__: basically you just pass the controller method, which should match what's in the policy.json, and the return value for the policy enforcement | 11:35 |
*** jufeng has quit IRC | 11:35 | |
sdake__ | it takes a mock_enforce parameter | 11:35 |
sdake__ | I have changed mock.patch.object to act as a context | 11:36 |
shardy | sdake__: That's provided via the class-level mock.patch | 11:36 |
sdake__ | (eg with mock.patch.object(..) | 11:36 |
shardy | @mock.patch.object(policy.Enforcer, 'enforce') | 11:36 |
shardy | Each test gets the function level mocks then the class level mocks in the argument list | 11:37 |
sdake__ | https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L334 | 11:38 |
shardy | Yup, and mock_enforce comes from: | 11:39 |
shardy | https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L316 | 11:39 |
shardy | just saves decorating every function | 11:39 |
sdake__ | in order to get this test case to work, I have to do something like this: | 11:39 |
sdake__ | def test_index(self, mock_enforce): | 11:39 |
sdake__ | with mock.patch.object(self.controller.rpc_client._client, | 11:39 |
sdake__ | 'call') as mock_call: | 11:39 |
sdake__ | self._mock_enforce_setup(mock_enforce, 'index', True) | 11:39 |
sdake__ | 11:39 | |
sdake__ | sorry for spam | 11:39 |
sdake__ | hopefully its late a nd nbody is around :) | 11:40 |
*** ramishra has joined #heat | 11:40 | |
*** tomek_adamczewsk has quit IRC | 11:40 | |
sdake__ | I guess I dont totally get how that gets connected in with the context manager | 11:40 |
*** tomek_adamczewsk has joined #heat | 11:41 | |
shardy | can't you use the mock.patch.object decorator, like in the existing tests? | 11:41 |
sdake__ | the reason I have to use a context is ._client is created on init of the object | 11:41 |
sdake__ | it is not a function | 11:42 |
shardy | sdake__: Sorry, I'm not quite clear what the question is tbh | 11:43 |
sdake__ | the existing mock.patch.object only works on functions not constructed objects | 11:43 |
sdake__ | how do I get enforce_setup to work with a context manager | 11:43 |
sdake__ | or should it just work as is? | 11:44 |
sdake__ | shardy give me a moment i'll post an updated patch | 11:47 |
openstackgerrit | Steven Dake proposed a change to openstack/heat: Use olso.messaging https://review.openstack.org/72798 | 11:51 |
sdake__ | shardy https://review.openstack.org/#/c/72798/28/heat/tests/test_api_openstack_v1.py | 11:52 |
sdake__ | line 331 | 11:52 |
sdake__ | so as you can see, I use a context manager to patch call | 11:53 |
sdake__ | I cannot use the decorator, because the decorator doesn't work with stuff created in __init__ of the rpc_client object | 11:53 |
*** rpothier has quit IRC | 11:54 | |
sdake__ | .client is not a function but a constructed object | 11:54 |
*** rpothier has joined #heat | 11:55 | |
sdake__ | https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L316 mocks polciy.Enforcer, I assume the enforce call | 11:57 |
sdake__ | and it passed that to the second argument of every stackcontrollertest object? | 11:57 |
sdake__ | rather function | 11:57 |
ramishra | hello eveyone | 11:58 |
sdake__ | morning ramishra | 11:58 |
ramishra | sdake: good morning | 11:58 |
ramishra | sdake: I have a question, what is our approach composite resource properties | 11:59 |
ramishra | sdake: I don't see any validation done for nested peoperties.. it just accepts anything.. | 12:01 |
sdake__ | ramishra I'd like to get into it, but we have 3 days including the weeeknd to get our work done for the i3 blueprints | 12:01 |
sdake__ | and I get the feeling I'm going to need every moment of it | 12:01 |
sdake__ | can you ping on the 4th :) | 12:01 |
ramishra | sdake: np | 12:01 |
ramishra | sdake: sometime later | 12:01 |
*** jufeng has joined #heat | 12:02 | |
sdake__ | plate is empty after the 4th, happy to talk then | 12:02 |
sdake__ | shardy should that test case at line 333 enforce the policy without further changes? | 12:03 |
shardy | ramishra: Have you seen https://bugs.launchpad.net/heat/+bug/1265862 ? | 12:03 |
shardy | sdake__: AFAICS yes, but I'm not a mock expert :) | 12:04 |
shardy | does it work? | 12:04 |
sdake__ | shardy cool - it doesn't work but i wanted to possibly eliminate that part of the problem as I don't understand how it works | 12:05 |
sdake__ | it actually locks up | 12:05 |
sdake__ | shardy so just to be clear, mock_enforce (the 2nd parameter on line 331) comes from https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L316 | 12:06 |
shardy | sdake__: yup, exactly, it's just shorthand for decorating every test function | 12:06 |
sdake__ | cool | 12:07 |
sdake__ | shardy thanks i'll dig around in the test case more, I have a clearer picture of how it works | 12:07 |
sdake__ | I actually ahve alot of these enforce test cases failing | 12:07 |
sdake__ | shardy thanks again - hopefully I wont bug you for awhile again :) | 12:08 |
ramishra | shardy: Hello. this is similar bug around validation of constraints.. but I saw this issue with nested properties.. I was working on the neutron/loadbalancer.py, and the embeded 'vip' from within 'pool' is not validated at all. It just accepts anything.. | 12:08 |
ramishra | shardy: That's why I had suggested to rewrite it.. however, it seems most of the group is not for it in icehouse | 12:09 |
*** sballe has joined #heat | 12:09 | |
shardy | sdake__: tbh I'd be tempted to just put a call function in the EngineClient then you don't have to mess with all the mocking as you can just stub the wrapper function | 12:11 |
*** jistr has quit IRC | 12:11 | |
*** jistr has joined #heat | 12:12 | |
sdake__ | shardy seems unoptimal but if i get jammed up I may do it as a short term thing | 12:13 |
sdake__ | thanks for the suggestion | 12:13 |
shardy | ramishra: if your issue is not resolved by https://review.openstack.org/#/c/69655/ then please raise a bug describing the issue so we can track working out a solution | 12:13 |
* shardy -> lunch | 12:14 | |
sdake__ | shardy I fixed that test case - spacing error | 12:18 |
sdake__ | thanks for helping explain the enforce, now I've got it and understand how it works at a rudimentary level :) | 12:19 |
openstackgerrit | ChangBo Guo(gcb) proposed a change to openstack/heat: Update Oslo wiki link in README https://review.openstack.org/77153 | 12:20 |
openstackgerrit | A change was merged to openstack/heat: Don't install cloud-init on Rackspace images https://review.openstack.org/76993 | 12:22 |
ramishra | shardy: will do thanx | 12:23 |
*** aignatov is now known as aignatov_ | 12:30 | |
*** topol has joined #heat | 12:30 | |
*** jamieh has quit IRC | 12:30 | |
*** jufeng has quit IRC | 12:33 | |
*** aignatov_ is now known as aignatov | 12:36 | |
*** jamieh has joined #heat | 12:36 | |
sdake__ | shardy any idea what mock_format is here: https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L850 | 12:38 |
*** eglynn has joined #heat | 12:42 | |
eglynn | hi folks | 12:42 |
sdake__ | morning eglynn | 12:42 |
sdake__ | or evening in your case I think :) | 12:42 |
eglynn | sdake__: afternoon-ish ;) | 12:42 |
eglynn | sdake__: is this BP expected to make it for icehouse? https://blueprints.launchpad.net/heat/+spec/oslo-messaging | 12:43 |
sdake__ | absolutely | 12:43 |
eglynn | sdake__: cool | 12:43 |
sdake__ | may be a 3 day coding binge but its going to happen | 12:43 |
*** dmakogon_ is now known as denis_makogon | 12:43 | |
sdake__ | beating the test cases into submission now | 12:43 |
sdake__ | I have a working implementation | 12:43 |
sdake__ | have tested all api operations and multiple engine support | 12:44 |
*** ramishra has quit IRC | 12:44 | |
sdake__ | eglynn https://review.openstack.org/72798 if you want to take a look | 12:45 |
eglynn | sdake__: reason I ask is to gauge how much of an outlier ceilometer would be if our switch didn't make it for icehouse | 12:45 |
sdake__ | i think you want to try to make it if possible | 12:45 |
eglynn | sdake__: ... debate is ongoing as to whether to beg an FFE for this | 12:45 |
*** jufeng has joined #heat | 12:47 | |
*** faramir has joined #heat | 12:53 | |
*** jminter has joined #heat | 12:53 | |
*** alexpilotti has joined #heat | 12:54 | |
*** lsmola has joined #heat | 12:55 | |
*** tomek_adamczewsk has quit IRC | 12:56 | |
jminter | hello, could anyone help me with the recommended way to reference pre-existing openstack architectural components in a heat template? | 12:59 |
jminter | example: I want to create a new server, but in an existing network & subnet | 12:59 |
jminter | obviously I can reference the network and subnet by ID within the heat template | 12:59 |
jminter | but if I send the heat template to someone else who has networks with the same friendly name, but different IDs, the template won't work | 12:59 |
jminter | is there a recommended neat way that gets round this - e.g., either is there a heat resource which represents an existing network element which I can instantiate by name, not ID | 12:59 |
jminter | or is there a commonly used script that preprocesses a heat template substituting friendly names for IDs? | 12:59 |
openstackgerrit | A change was merged to openstack/heat: Ensure that the NoCloud data source is loaded https://review.openstack.org/76994 | 13:04 |
openstackgerrit | A change was merged to openstack/python-heatclient: Expand get_file using to template scope https://review.openstack.org/76223 | 13:07 |
*** tomek_adamczewsk has joined #heat | 13:07 | |
*** jufeng has quit IRC | 13:08 | |
shardy | jminter: hi | 13:08 |
jminter | hi shardy | 13:08 |
shardy | jminter: the short answer is atm you have to pass the ID as a parameter into the template | 13:08 |
shardy | jminter: what we need to do is make all the resources capable of looking up the ID by name | 13:09 |
jminter | makes sense | 13:09 |
shardy | like the external gateway in OS::Neutron::Router | 13:09 |
shardy | jminter: feel free to raise bugs upstream in launchpad for each resource you'd like to see lookup by name, and we will look at adding that capability | 13:10 |
jminter | ok | 13:10 |
jminter | in the meantime, is this the sort of thing environment files can help with too - prepopulating name/id mappings for commonly used items? | 13:10 |
shardy | jminter: yes, exactly, you can have an environment file which specifies the ID's | 13:11 |
jminter | e.g. public_net = UUID, private_net = UUID, private_subnet = UUID | 13:11 |
openstackgerrit | A change was merged to openstack/heat: Remove unused output section from test template https://review.openstack.org/75817 | 13:12 |
jminter | shardy: bug per resource, or one bug listing the resources? | 13:12 |
shardy | jminter: one bug is probably fine if that's easier | 13:13 |
jminter | ok, will do! | 13:13 |
jminter | thanks steve | 13:13 |
shardy | jminter: thanks! :) | 13:13 |
sdake__ | shardy sorry to interrupt, any idea where the mock_format parameter originates here: https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L850 | 13:15 |
shardy | sdake__: from the format_stack patch the line above :) | 13:15 |
shardy | the decorator just appends an argument to the list | 13:16 |
*** jdob has joined #heat | 13:18 | |
*** wchrisj has joined #heat | 13:19 | |
*** radez_g0n3 is now known as radez | 13:19 | |
*** Guest15102 is now known as _jmp_ | 13:21 | |
*** faramir has quit IRC | 13:31 | |
*** aweiteka has joined #heat | 13:32 | |
*** rbuilta has joined #heat | 13:33 | |
shardy | jminter: Are you testing on Havana? | 13:35 |
jminter | yes - rdo | 13:35 |
shardy | jminter: digging into it a bit, we added support for looking up network by name for OS::Nova::Server in early icehouse: | 13:35 |
shardy | https://bugs.launchpad.net/heat/+bug/1247019 | 13:35 |
shardy | jminter: there are other places which expect a UUID, but that seems to be the main one you're missing? | 13:36 |
jminter | not clear to me that that enables the floating IP use case | 13:36 |
shardy | https://review.openstack.org/#/c/59796/10/heat/engine/resources/server.py | 13:37 |
*** tspatzier has joined #heat | 13:38 | |
shardy | jminter: Yep, you're right looks like floating_network_id only takes an id | 13:39 |
jminter | atm I'm creating a OS::Neutron::FloatingIP and a OS::Neutron::Port as well as a OS::Nova::Server, which is pretty verbose for a pretty standard use case! | 13:39 |
shardy | jminter: I'll update the bug and hopefully we can work up a todolist of those resources which need updating | 13:39 |
jminter | (although I guess that can be fixed with a custom template resource | 13:39 |
jminter | so as you say, floating_network_id in OS::Neutron::FloatingIP, but also network_id and subnet_id in OS::Neutron::Port | 13:40 |
shardy | yeah abstracting it into a provider template is probably the way to go | 13:40 |
jminter | seems like a pain to have to go around all these resources working out which params need to change | 13:41 |
jminter | wouldn't a model whereby heat "knows" that Neutron::FloatingIP floating_network_id and Neutron::Port network_id both refer to a Neutron::Net object, and having a method on Neutron::Net which resolves an incoming name or uuid be better? | 13:42 |
shardy | jminter: possibly, but in this case there won't be a Neutron::Net resource, because the user is providing the network by name | 13:43 |
shardy | jminter: probably we need to update the neutron base-class with a common lookup helper or something | 13:43 |
jminter | well, there wouldn't be a Neutron::Net resource in the template and created by heat, but it might be a useful feature that heat could build a proxy Neutron::Net resource for pre-existing networks even if they weren't created this time aroudn | 13:45 |
*** ramishra has joined #heat | 13:45 | |
jminter | then you could have a proxy object that you could get parameters from to pass back out of your template | 13:45 |
jminter | regardless of whether you created it or not | 13:45 |
shardy | jminter: the problem with that is if we persist the resource, we'd need to keep track of those we actually own, so we know what to do on update/delete | 13:46 |
shardy | we could create a transient resource just to help do the lookup but that's kinda backwards from how we do everything atm :) | 13:46 |
shardy | jminter: if you actually wanted the network to be picked up and managed by heat, we're working on a feature called stack-adopt, which would make that possible | 13:47 |
*** tspatzier has quit IRC | 13:47 | |
jminter | not quite the same thing, but it sounds good | 13:48 |
*** arbylee has joined #heat | 13:49 | |
*** ramishra has quit IRC | 13:49 | |
*** andersonvom has joined #heat | 13:51 | |
*** arbylee has quit IRC | 13:52 | |
*** blomquisg has joined #heat | 13:54 | |
radix | SpamapS: I just posted a reply to the AutoScalingGroup review | 14:00 |
radix | SpamapS: just wanted to make sure you see it: you can scale Stacks just fine | 14:00 |
*** cody-somerville has quit IRC | 14:00 | |
*** rbuilta has quit IRC | 14:01 | |
*** rbuilta has joined #heat | 14:04 | |
*** jmckind has joined #heat | 14:05 | |
*** dave79 has joined #heat | 14:14 | |
dave79 | Hello | 14:14 |
*** cadenzajon has joined #heat | 14:18 | |
*** jamieh has quit IRC | 14:20 | |
*** saju_m has quit IRC | 14:21 | |
*** jamieh has joined #heat | 14:22 | |
*** sgordon has joined #heat | 14:23 | |
*** sgordon has quit IRC | 14:23 | |
*** sgordon has joined #heat | 14:23 | |
sdake__ | shardy so teh format_stack, how does that actually get converted into mock_format? Should I make the funtion defintion | 14:25 |
shardy | sdake__: each decorator just passes a value to the argument, you could name the arg whatever you want AFAIK | 14:26 |
sdake__ | @mock.patch.object(stacks.stacks_view, 'format_stack') | 14:26 |
sdake__ | def test_preview_stack(self, mock_format, mock_enforce): | 14:26 |
sdake__ | with mock.patch.object(self.controller.rpc_client._client, | 14:26 |
sdake__ | 'call') as mock_call: | 14:26 |
sdake__ | shardy thianks tha tis helpful | 14:26 |
sdake__ | does it pass it in the order the decorators are delcared? | 14:27 |
shardy | sdake__: Yes, well kinda reversed, the decorator nearest the function is the first arg | 14:29 |
sdake__ | sweet that helps alot | 14:29 |
sdake__ | shardy you are teaching me all kinds of stuff about test cases | 14:29 |
shardy | and the class decorator is the same as putting a function decorator at the top of the other decorators for every function | 14:29 |
shardy | sdake__: I can only just use mock myself tbh | 14:30 |
sdake__ | so in this particular case, the ordering of the parameters will come out correclty | 14:30 |
sdake__ | so the class decorator gets executed last then? | 14:31 |
*** Linz has joined #heat | 14:32 | |
sdake__ | shardy I really appreciate the hand holding :) | 14:33 |
shardy | sdake__: yup and np | 14:33 |
*** arbylee has joined #heat | 14:34 | |
*** jasond has joined #heat | 14:35 | |
*** rbuilta1 has joined #heat | 14:38 | |
sdake__ | I keep fixing test cases and the failed test case doesn't go down | 14:39 |
sdake__ | yet the failed test is actually fixed | 14:39 |
*** alexheneveld has joined #heat | 14:40 | |
sdake__ | test case count doesn't go down | 14:40 |
sdake__ | is that normal shardy? | 14:40 |
*** rbuilta has quit IRC | 14:41 | |
*** jcru has joined #heat | 14:42 | |
*** jcru has quit IRC | 14:42 | |
*** jcru has joined #heat | 14:43 | |
jasond | sdake__: it helps if you run the test individually while trying to fix it. eg. python -m testtools.run heat.tests.test_server.ServersTest.test_server_status_resume_no_resource_id | 14:44 |
sdake__ | jasond thanks | 14:45 |
jasond | np | 14:45 |
*** jamieh has quit IRC | 14:45 | |
*** ramishra has joined #heat | 14:46 | |
*** pablosan has joined #heat | 14:46 | |
*** arbylee has quit IRC | 14:46 | |
*** jcru_ has joined #heat | 14:46 | |
*** arbylee has joined #heat | 14:46 | |
sdake__ | jasond ya good suggestion | 14:49 |
*** jcru has quit IRC | 14:50 | |
jasond | pdb even works when you run it with testtools | 14:50 |
*** ramishra has quit IRC | 14:50 | |
jasond | sdake__: can you re-approve this? https://review.openstack.org/#/c/69111/ | 14:51 |
jasond | wasn't sure what the process is for re-approving rebases | 14:51 |
jasond | does it still need 2 +2s? | 14:52 |
*** jamieh has joined #heat | 14:52 | |
SpamapS | radix: ah right, thanks. :) | 14:52 |
sdake__ | jasond needs a +2 and a second +2/+a | 14:52 |
sdake__ | jasond reviewing now | 14:52 |
SpamapS | radix: it was the end of a long string of reviews :) | 14:52 |
SpamapS | radix: which is why I kept it at +0 | 14:52 |
jasond | sdake__: thanks | 14:52 |
radix | hehe | 14:52 |
radix | alrighty | 14:52 |
*** scroiset1 is now known as scroiset | 14:53 | |
radix | what's mike spreitzer's nick again, is it mspreitzer? | 14:53 |
*** jcru_ has quit IRC | 14:55 | |
openstackgerrit | Richard Lee proposed a change to openstack/heat: Restructure contrib/ directories https://review.openstack.org/73417 | 14:55 |
openstackgerrit | Richard Lee proposed a change to openstack/heat: Generate docs for contrib plugins https://review.openstack.org/68751 | 14:55 |
*** alexheneveld has quit IRC | 14:55 | |
shardy | SpamapS: Hi! You have a minute to talk tripleo and trusts? | 14:56 |
*** pablosan is now known as ZZpablosan | 14:56 | |
SpamapS | shardy: I have very few minutes just now.. children are about to awaken. But we can start.. I may go afk abrubtly at any time. :) | 14:57 |
shardy | SpamapS: np ;) | 14:57 |
shardy | https://bugs.launchpad.net/heat/+bug/1286157 | 14:57 |
SpamapS | It is raining heavily though, so that usually keeps them in bed a bit longer. | 14:57 |
sdake__ | jasond enjoy | 14:57 |
shardy | SpamapS: basically I'd like to flip deferred_auth_method to trusts by default, primarily so we can kill the password box in the heat horizon ui (along with it being much more secure) | 14:58 |
SpamapS | shardy: wonderful | 14:58 |
jasond | sdake__: thanks | 14:58 |
shardy | stevebaker pointed out that it may impact tripleo so I wanted to work out what's needed to minimise any breakage :) | 14:58 |
SpamapS | shardy: sounds like we'd just need to assert heat_stack_owner exists at the same time or before that happens. | 14:58 |
shardy | SpamapS: yup, and all users creating heat stacks will need that role | 14:59 |
SpamapS | shardy: how do you handle the situation where stacks exist and are being managed without a trust? | 14:59 |
shardy | SpamapS: atm we don't, my expectation is that you choose one or the other then stick with it | 15:00 |
SpamapS | upgraders from havana might be.. upset at you for that.. ;) | 15:00 |
shardy | If that's impossible, then I'll have to look at options to support passwords for backwards compatibility | 15:00 |
shardy | ugh, yeah of course you are right | 15:00 |
SpamapS | and for instance, our undercloud has stacks that have been alive for months, and need to stay alive ideally forever... | 15:00 |
SpamapS | shardy: should be a small matter of requesting a trust using the auth details you already have right? | 15:01 |
shardy | SpamapS: I actually think it should mostly work, since heat_keystoneclient will just use whatever we find in user_creds | 15:01 |
SpamapS | so you can go userpass->trusts, but not the other way | 15:01 |
shardy | SpamapS: I think probably just use user/pass until the stack is deleted | 15:01 |
SpamapS | shardy: could you even just make a migration tool? | 15:01 |
SpamapS | oh if it still uses user/pass forever that is fine | 15:01 |
*** zns has joined #heat | 15:03 | |
shardy | SpamapS: Ok, cool, well sounds like if I do some upgrade testing tripleo should be good with the change right? | 15:04 |
*** zns has quit IRC | 15:04 | |
SpamapS | shardy: right. :) | 15:05 |
*** zns has joined #heat | 15:05 | |
*** vijendar has joined #heat | 15:07 | |
*** daneyon has joined #heat | 15:07 | |
*** dave79 has quit IRC | 15:08 | |
*** spzala has joined #heat | 15:08 | |
*** Guest400 has quit IRC | 15:10 | |
*** dims_ has quit IRC | 15:11 | |
*** daneyon has quit IRC | 15:15 | |
*** daneyon has joined #heat | 15:16 | |
*** sabeen has joined #heat | 15:18 | |
jminter | hello again, am I right in thinking that in havana, the only way to synchronise elements of a heat template implies: use waitconditions, have admin user, don't use HOT templates as they don't have dependson? | 15:23 |
*** lnxnut has joined #heat | 15:24 | |
*** dims_ has joined #heat | 15:24 | |
*** mestery has quit IRC | 15:25 | |
*** mestery has joined #heat | 15:26 | |
shardy | jminter: basically yes | 15:28 |
jminter | thanks again shardy. I can see ways in which this improves in icehouse for myself, I just wanted to check I wasn't missing something currently | 15:29 |
shardy | jminter: although I thought you could use depends_on, will have to check | 15:29 |
jminter | saw a bug to implement depends_on in icehouse | 15:29 |
shardy | jminter: the main reason not to use HOT is that we've not declared a first stable version yet | 15:29 |
jminter | pity, it's great! | 15:29 |
shardy | jminter: we're planning to for Icehouse, and to be fair plent of folks are already using it | 15:30 |
shardy | we just didn't want to promise to maintain stability before it was reasonably complete | 15:30 |
shardy | jminter: if stability is paramount I'd say use yaml rendered CFN on Havana, or if minor tweaks on upgrade are OK, feel free to use HOT :) | 15:31 |
shardy | (HeatTemplateFormatVersion == yaml rendered CFN json) | 15:32 |
jminter | https://bugs.launchpad.net/heat/+bug/1271008 for hot having no depends_on yet | 15:32 |
jminter | shardy: got it for all of the above, thanks again | 15:33 |
*** chandan_kumar has joined #heat | 15:35 | |
shardy | jminter: np, checkout the hot-software-config and instance-users BP's for details on expected Icehouse improvements :) | 15:35 |
*** david_lyle_ has joined #heat | 15:37 | |
*** jcru has joined #heat | 15:42 | |
*** lindsayk has joined #heat | 15:45 | |
*** Linz has quit IRC | 15:46 | |
*** ramishra has joined #heat | 15:47 | |
*** cfriesen_ has joined #heat | 15:50 | |
*** ramishra has quit IRC | 15:51 | |
*** topol has quit IRC | 15:54 | |
andersonvom | zaneb: you around? | 15:56 |
*** DandyPandy has quit IRC | 15:57 | |
*** tomek_adamczewsk has quit IRC | 15:59 | |
*** ZZpablosan is now known as pablosan | 16:02 | |
zaneb | andersonvom: yes | 16:04 |
andersonvom | zaneb: morning! | 16:04 |
*** skraynev is now known as skraynev_afk | 16:05 | |
andersonvom | zaneb: we had to rebase a patch you approved yesterday (https://review.openstack.org/#/c/68751/). do you have a min to take a look at it? | 16:05 |
zaneb | ok, you should be good to go | 16:07 |
*** funzo has quit IRC | 16:12 | |
*** funzo has joined #heat | 16:13 | |
sdake__ | zaneb question re mock | 16:14 |
sdake__ | is there any way to do the following: | 16:14 |
sdake__ | https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L381 | 16:14 |
zaneb | for the record, I have never written a single mock test in my life :) | 16:14 |
sdake__ | shardy? | 16:14 |
sdake__ | I dont want to use mock.patch.object | 16:15 |
sdake__ | I want to use StubOutWithMock | 16:15 |
zaneb | ah, that I know about | 16:15 |
sdake__ | https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L333 | 16:16 |
shardy | sdake__: You're going to convert test_api_openstack_v1.py to mox? | 16:16 |
zaneb | so yeah, you do StubOutWithMock, then you make the (mock) call that you're expecting later, then you put everything into replay mode | 16:17 |
sdake__ | StubOutWithMock is mox right? | 16:17 |
zaneb | yes | 16:17 |
shardy | sdake__: yeah | 16:17 |
sdake__ | i didn't see https://github.com/openstack/heat/blob/master/heat/tests/test_api_openstack_v1.py#L381 in the documentation | 16:17 |
zaneb | so I'd have to wonder why, since we're supposed to be moving away from mox towards mock | 16:17 |
sdake__ | what the test does is make sure the function is only executed once by the client | 16:17 |
sdake__ | well the main reason is I want to mock out a function in a constructed object | 16:18 |
sdake__ | and I dont want to use a context manager to do it | 16:18 |
shardy | http://docs.python.org/dev/library/unittest.mock | 16:18 |
sdake__ | is there a stuboutwithmock thing that works for mock? | 16:19 |
sdake__ | reading | 16:19 |
sdake__ | i read the mox documentation i think i understand it at a high level | 16:19 |
zaneb | sdake__: so the object is only constructed in the test case | 16:19 |
sdake__ | zaneb precisely | 16:20 |
shardy | sdake__: I would prefer you didn't convert that test from mock to mox if possible | 16:20 |
SpamapS | sdake__: StubOutWithMock is just a handy monkey patcher. | 16:20 |
zaneb | and you don't want to use a context manager because it is an intrusive change to the existing code? | 16:20 |
SpamapS | sdake__: so, fixtures.MonkeyPatch may be all you need. | 16:20 |
sdake__ | i dont like the context manager approach because it makes the test look evil | 16:21 |
zaneb | SpamapS: still need cleanup though presumably? and that probably means a context manager | 16:22 |
sdake__ | the entire test has to be spaced over 4 lines | 16:22 |
zaneb | sdake__: paste? that sounds like a really bad reason on the face of it ;) | 16:23 |
sdake__ | http://paste.fedoraproject.org/81280/36045621 | 16:23 |
sdake__ | line 332 | 16:23 |
andersonvom | zaneb: thanks! | 16:24 |
sdake__ | I guess I need mock to deal with the fact that we want to verify the server only gets called once | 16:24 |
sdake__ | I just want a StubOutwithMock function instead of a context manager :) | 16:24 |
* zaneb doesn't see a problem with that code | 16:24 | |
sdake__ | is there such a beast | 16:24 |
zaneb | sdake__: note that you only need the context manager to cover the part where it will actually be called | 16:25 |
sdake__ | zaneb I guess if you will accept it I wont change it around | 16:25 |
sdake__ | mock_call is used all the way to the end of the function | 16:25 |
zaneb | i.e. you could move line 332 down to line 360 | 16:25 |
zaneb | or 358, rather | 16:26 |
zaneb | the expected = {...} part could go outside too | 16:26 |
sdake__ | I dont really want to refactor the tests more then necessary | 16:27 |
sdake__ | makes it harder to review | 16:28 |
*** randallburt has joined #heat | 16:28 | |
sdake__ | regarding moving line 332 down that isn't possible, self._get('/stacks') calls the wsgi stack controller which triggers an rpc call | 16:28 |
*** chandan_kumar has quit IRC | 16:29 | |
sdake__ | the test verifies that the stack controller only calls into rpc once | 16:29 |
sdake__ | the rpc call is which needs to be mocked | 16:29 |
*** tomek_adamczewsk has joined #heat | 16:29 | |
sdake__ | it also makes sure the wsgi calls the right method in the rpc system | 16:30 |
zaneb | oh, ok | 16:30 |
sdake__ | I guess what I'm looking for is a mock analog to StubOutWithMock :) | 16:30 |
zaneb | but still, you could move a lot of the setup up outside the context manager if you wanted | 16:31 |
sdake__ | zaneb agree, although I dont want to significantly reorganize the test cases | 16:31 |
sdake__ | i'd like people not to have to think "ok this logic got moved aroudn now I have to figure out if its still correct" | 16:31 |
zaneb | sdake__: that exists and it looks like this http://paste.openstack.org/show/70679/ | 16:33 |
zaneb | I don't see how it could be considered better than a context manager though | 16:33 |
sdake__ | zaneb your right that is not better | 16:34 |
sdake__ | ok well I guess I'll stop working on making is beutiful and focus on making it work :) | 16:35 |
zaneb | the difference here is that mox retains a global list of things that it has patched | 16:35 |
sdake__ | i see and mock does not | 16:35 |
zaneb | so you can clean up in TearDown() without knowing anything about the particular test | 16:35 |
zaneb | that's right, mock does not so you have to clean up after each one | 16:36 |
sdake__ | so mock is probably better | 16:36 |
zaneb | yes. and a context manager is the easiest way to make sure that happens | 16:36 |
sdake__ | ok i'm convinced | 16:36 |
zaneb | alternative is to set it up in setUp() and assign mock_call to an instance variable | 16:37 |
zaneb | then clean it up in tearDown() | 16:37 |
sdake__ | context manager seems better then that | 16:37 |
zaneb | that will work assuming all your tests in one test case are mocking the same thing | 16:37 |
zaneb | which should probably be the case here | 16:38 |
sdake__ | yes it is the case | 16:38 |
sdake__ | (I think) | 16:38 |
sdake__ | the test cases also mock policy.Enforcer | 16:39 |
sdake__ | but that is done trough: | 16:39 |
sdake__ | @mock.patch.object(policy.Enforcer, 'enforce') | 16:39 |
sdake__ | class StackControllerTest(ControllerTest, HeatTestCase): | 16:39 |
zaneb | http://paste.openstack.org/show/70682/ | 16:40 |
sdake__ | zaneb thanks for explaining the advantages of the conteext manager | 16:40 |
*** jistr has quit IRC | 16:40 | |
sdake__ | ya that is pretty good but I think I would trust a context manager more then setup and teardown | 16:41 |
sdake__ | but I don't know the specifics of either implementation | 16:41 |
*** lsmola has quit IRC | 16:41 | |
*** pasquier-s has quit IRC | 16:41 | |
sdake__ | atlesat you have given me some ammo to use in the reviews :) | 16:41 |
sdake__ | ta :) | 16:41 |
zaneb | iirc tearDown always gets called (regardless of test result) unless setUp raised an exception | 16:41 |
sdake__ | is it official that all openstack projects should migrate to mock? | 16:42 |
shardy | sdake__: all the threads I've read said new tests should be mock and existing tests can be migrated when convenient | 16:44 |
shardy | we've not really enforced the former though | 16:44 |
sdake__ | we should so we have one system to maintain :) | 16:44 |
shardy | Ha, by the time all the tests get migrated I expect there will be something else folks want to use ;) | 16:45 |
zaneb | lol | 16:45 |
zaneb | I know I wouldn't be pumped about having to rewrite some of the hairier unit tests | 16:45 |
zaneb | they were bad enough the first time | 16:46 |
shardy | zaneb: agree, it's hard enough just keeping them working ;) | 16:46 |
sdake__ | when I get some free time i'll convert the rpc and api tests to mock - seems easy enough | 16:46 |
radix | shardy: and there, you've found the problem with mocks | 16:46 |
shardy | I want to change one config option default and it breaks 600 tests | 16:46 |
radix | well, one of them :) | 16:46 |
*** alexheneveld has joined #heat | 16:46 | |
zaneb | shardy: yah, and I suspect that mock isn't going to make that any easier | 16:46 |
*** ramishra has joined #heat | 16:47 | |
zaneb | we do rely far too heavily on StubOutWithMock though | 16:47 |
zaneb | it's meant to be a last resort | 16:47 |
zaneb | we use it for everything | 16:47 |
radix | it's kind of a disease on the dynamic languages community lately | 16:48 |
shardy | zaneb: how should we be doing it, setting up fixtures? | 16:48 |
*** rbuilta1 has quit IRC | 16:49 | |
zaneb | shardy: in theory you're supposed to make a whole mock object, and pass it in using dependency injection | 16:49 |
shardy | keystone has a much more fixture orientated approach and it's sometimes really hard to figure out where stuff is getting set | 16:49 |
zaneb | but the reality is that we're not really writing unit tests here, more integration tests | 16:49 |
radix | yeah, being able to reuse testing objects is nice. | 16:49 |
radix | instead of having imperative code creating ad-hoc mocks everywhere | 16:49 |
zaneb | and Java-style dependency injection where every method takes 500 parameters is not nice either | 16:49 |
sdake__ | is there a way to print in mock | 16:50 |
sdake__ | or in testtools | 16:50 |
sdake__ | or whatever the hell this thing uses | 16:50 |
radix | sdake__: side effects, probably? | 16:50 |
*** david_lyle_ is now known as david-lyle | 16:50 | |
zaneb | radix: I think you're talking about fakes, but I mean just calling mox.Mock(SomeClass) | 16:50 |
sdake__ | I just want to print out some debugging | 16:50 |
radix | zaneb: oh. | 16:50 |
radix | zaneb: ok. :) | 16:50 |
*** alexheneveld has quit IRC | 16:50 | |
radix | sdake__: you can assign a side effect to a mock call so that it runs a function | 16:51 |
zaneb | sdake__: I usually use a logger, those work | 16:51 |
radix | like, .side_effect = lambda: print("hello") | 16:51 |
shardy | sdake__: I still use nosetests -sx for exactly that reason | 16:51 |
shardy | all the other test running solutions seem to eat stdout | 16:52 |
zaneb | yeah, it would be really nice if testr captured stdout/stderr the same way it does with the logs | 16:52 |
*** rbuilta has joined #heat | 16:52 | |
zaneb | I don't know of any technical reason why it couldn't | 16:52 |
shardy | printing actual output takes away all the magic | 16:53 |
shardy | ;) | 16:53 |
*** rbuilta has quit IRC | 16:54 | |
*** aignatov is now known as aignatov_ | 16:55 | |
sdake__ | shardy how do you select a specific test with nosetests | 16:55 |
shardy | nosetest -sx mytest.py | 16:55 |
sdake__ | that runs every tes tin the file | 16:55 |
sdake__ | I want to run only one test | 16:55 |
therve` | pacakge.module:class.method | 16:57 |
zaneb | isn't it nosetests heat.tests.test_something.TestCase:test_name | 16:58 |
therve` | I think | 16:58 |
sdake__ | i tried that | 16:58 |
sdake__ | I guess I'll try again | 16:58 |
zaneb | therve` could be right, can't remember where the colon goes | 16:59 |
therve` | Yeah me neither :) | 16:59 |
therve` | I use trial, which takes fqdn | 16:59 |
zaneb | it's either before or after the class :) | 16:59 |
*** rbuilta has joined #heat | 16:59 | |
*** rbuilta has quit IRC | 17:00 | |
*** rbuilta has joined #heat | 17:00 | |
sdake__ | before the class | 17:01 |
*** dtalton has joined #heat | 17:01 | |
*** rcleere has joined #heat | 17:01 | |
sdake__ | thanks therve` | 17:01 |
therve` | No problem | 17:02 |
*** dtalton has left #heat | 17:03 | |
*** tomek_adamczewsk has quit IRC | 17:04 | |
*** cadenzajon has quit IRC | 17:06 | |
*** e0ne_ has quit IRC | 17:08 | |
*** e0ne has joined #heat | 17:09 | |
sdake__ | thanks for the hand holding guys I think I'm up to speed on writing tests now :) | 17:09 |
SpamapS | zaneb: so.. thoughts on automatically resuming using the status as I'm poking at it today.. | 17:09 |
*** pablosan has quit IRC | 17:10 | |
*** e0ne has quit IRC | 17:13 | |
SpamapS | zaneb: I'm finding it difficult to determine what resources, at the same level as the failed resource, were completed. It is entirely possible that one went to FAILED before some went to IN_PROGRESS. :-/ | 17:14 |
zaneb | as soon as something fails everything in progress should be cancelled (which will also put it into the failed state) | 17:15 |
zaneb | https://github.com/openstack/heat/blob/master/heat/engine/scheduler.py#L346 | 17:15 |
SpamapS | zaneb: but there may be things, on the same level, that will not have been IN_PROGRESS. | 17:16 |
sdake__ | what does _ mean on the left side of an assignment? | 17:16 |
SpamapS | zaneb: they'll show as UPDATE_COMPLETE if a previous update finished.. | 17:16 |
*** eglynn has quit IRC | 17:17 | |
SpamapS | zaneb: but we'll skip them... | 17:17 |
SpamapS | sdake__: "throw this away" .. but sometimes it means "oops I just screwed up gettext" | 17:17 |
zaneb | lol | 17:17 |
sdake__ | SpamapS the example is | 17:17 |
sdake__ | rpc_call_args, _ = mock_call.call_args | 17:17 |
zaneb | sdake__: it's just a variable name | 17:17 |
SpamapS | it's a convention which collides with use of gettext .. and thus is likely a bad idea. | 17:18 |
zaneb | people use it when they want to throw away the value | 17:18 |
sdake__ | got it | 17:18 |
zaneb | what SpamapS said | 17:18 |
radix | sdake__: basically, that example is equivalent to: "self.assertEqual(len(mock_call.call_args), 2); rpc_call_args = mock_call.call_args[0]" | 17:18 |
*** saurabhs has joined #heat | 17:19 | |
radix | not exactly, of course, a different error will be raised if the number of args is not 2, but that's probably the intention of that test code. | 17:19 |
zaneb | rpc_call_args, who_cares = mock_call.call_args; _ = who_cares; del who_cares | 17:19 |
radix | o.O | 17:20 |
*** Linz has joined #heat | 17:20 | |
zaneb | SpamapS: assuming for the moment that chains of dependencies are completely separate... each chain either completes successfully or has one resource that has failed (on its own or due to cancellation) | 17:21 |
*** Linz has quit IRC | 17:21 | |
zaneb | SpamapS: so you want to ignore the successful ones *until* you find the failed one, and then update everything from there | 17:22 |
*** Linz has joined #heat | 17:22 | |
zaneb | SpamapS: and this can be generalised to an arbitrary DAG, where chains join and split | 17:22 |
zaneb | in theory ;D | 17:23 |
*** randallburt has quit IRC | 17:26 | |
*** arbylee has quit IRC | 17:28 | |
SpamapS | zaneb: so I think you're assuming that the status will go from IN_PROGRESS -> FAILED in the same order that they go from COMPLETED -> IN_PROGRESS .. the DAG is just controlling what we can do next, but the DAG will have chains that have never gone to IN_PROGRESS, and say they are COMPLETED | 17:29 |
SpamapS | zaneb: one possibility is to mark EVERYTHING as having an update in progress first..which would make a failure explicitly fail everything not done yet.. | 17:30 |
*** Tross has quit IRC | 17:31 | |
zaneb | hmmm, I was thinking that anything without dependencies would be started at the same time | 17:31 |
zaneb | but you make a good point, that isn't actually true | 17:31 |
SpamapS | yeah I'm saying in the process of starting them, you may fail | 17:31 |
*** rbuilta has quit IRC | 17:34 | |
*** jamieh has quit IRC | 17:37 | |
*** sgordon has quit IRC | 17:39 | |
*** jdob has quit IRC | 17:39 | |
*** david-lyle has quit IRC | 17:39 | |
*** openstack has joined #heat | 22:51 | |
*** alexpilotti has joined #heat | 22:53 | |
kfox1111_ | cool. :) | 22:54 |
*** lnxnut has joined #heat | 22:54 | |
*** zns has joined #heat | 22:55 | |
zaneb | kfox1111_: do you have a bug id? I'm gonna fix it right now | 23:00 |
*** asalkeld has joined #heat | 23:01 | |
kfox1111_ | https://bugs.launchpad.net/heat-templates/+bug/1286380 | 23:03 |
kfox1111_ | thanks. :) | 23:03 |
*** openstackgerrit has quit IRC | 23:07 | |
*** jmckind has quit IRC | 23:07 | |
*** openstackgerrit has joined #heat | 23:07 | |
sdake | why do we depend on python-heatclient in heat? | 23:09 |
zaneb | sdake: because soon we will do multi-region stacks | 23:10 |
*** spzala has quit IRC | 23:11 | |
*** arbylee has quit IRC | 23:13 | |
*** zns has quit IRC | 23:18 | |
*** jcru has quit IRC | 23:20 | |
*** kfox1111_ is now known as kfox1111 | 23:21 | |
*** daneyon has joined #heat | 23:21 | |
openstackgerrit | Steven Dake proposed a change to openstack/heat: Use olso.messaging https://review.openstack.org/72798 | 23:22 |
sdake | zaneb got it | 23:22 |
sdake | makes sense | 23:22 |
zaneb | w00t | 23:24 |
*** daneyon has quit IRC | 23:24 | |
sdake__ | only 59 more failures to go | 23:25 |
sdake__ | down from 65 :) | 23:25 |
sdake__ | difference being now I know what I'm doing :) | 23:25 |
sdake__ | i feel so confident in my understanding i could actually help others write test cases :) | 23:25 |
sdake__ | learn how that is | 23:25 |
*** zns has joined #heat | 23:27 | |
sdake__ | btw zaneb, don't upgrade f20 setuptools | 23:27 |
sdake__ | its broke | 23:27 |
sdake__ | I think devstack will do this automatically if your prereqs file times out | 23:28 |
sdake__ | yum downgrade fixes it | 23:28 |
zaneb | my laptop is still on F19, so I should be OK I think | 23:29 |
sdake__ | i think they updated f19 too | 23:29 |
sdake__ | for no good reason | 23:29 |
zaneb | oh, good | 23:29 |
zaneb | :/ | 23:30 |
sdake__ | i bitched in bugzilla so hopefully they will fix it | 23:30 |
*** yogesh_ has quit IRC | 23:31 | |
sdake__ | is kargs a special word in python | 23:31 |
zaneb | I installed openstack on F20 yesterday with packstack, and it seems quite broken with selinux on :( | 23:31 |
zaneb | sdake__: no | 23:31 |
sdake__ | try installing with foreman | 23:31 |
*** openstack has quit IRC | 23:36 | |
*** openstack has joined #heat | 23:42 | |
*** giulivo has quit IRC | 23:43 | |
zaneb | how does that make my life _easier_? ;) | 23:43 |
*** lnxnut has quit IRC | 23:43 | |
sdake__ | you will get to see what our customers see :) | 23:43 |
zaneb | RDO/packstack instructions were actually great | 23:43 |
zaneb | except for it not working :-P | 23:43 |
*** lnxnut has joined #heat | 23:43 | |
sdake__ | packstack is on its way out | 23:43 |
sdake__ | probably can just boot that image on master that dib kicks out | 23:43 |
sdake__ | only need to test dib works not rhos works | 23:43 |
*** zns has quit IRC | 23:43 | |
sdake__ | but if you have problems fiel bugs or they wont get fixed | 23:43 |
sdake__ | packstack is focused around puppet - and all that is reused in foreman | 23:43 |
zaneb | yeah, planning on trying it again in VM | 23:43 |
*** erkules has quit IRC | 23:43 | |
zaneb | first time through broke because of another SELinux issue with mariadb, which I already added info on in Bugzilla | 23:43 |
sdake__ | we arepulling the trigger on dib today so knowing if it works soon is good :) | 23:43 |
zaneb | so by the 2nd or third time it was a bit messy | 23:43 |
zaneb | sdake__: I already moved it to VERIFIED | 23:43 |
sdake__ | cool | 23:43 |
sdake__ | i have totally ignored all email today | 23:43 |
sdake__ | not even at my workstation on my laptop | 23:43 |
*** jasond has quit IRC | 23:43 | |
sdake__ | normally bugzilla is first thing i read every day | 23:43 |
sdake__ | say why is type bad | 23:43 |
sdake__ | type() | 23:43 |
sdake__ | the string compare? | 23:43 |
zaneb | it doesn't catch subclasses | 23:43 |
sdake__ | got it | 23:43 |
zaneb | and, worse, in this case, it doesn't catch unicode | 23:43 |
sdake__ | thanks | 23:43 |
zaneb | unicode and str are both subclasses of basestring | 23:43 |
*** dims_ has quit IRC | 23:44 | |
sdake__ | and dict/list are subclass of collections? | 23:44 |
zaneb | technically, no | 23:46 |
zaneb | but they will respond to isinstance as if they were | 23:47 |
zaneb | http://docs.python.org/2/library/collections.html#collections-abstract-base-classes | 23:47 |
zaneb | thanks to http://docs.python.org/2/library/abc.html#abc.ABCMeta.register | 23:48 |
sdake__ | zaneb you know python like I know C | 23:48 |
zaneb | I used to know C | 23:49 |
sdake__ | I am really pro with C | 23:49 |
zaneb | sometimes I wonder how much I would remember | 23:49 |
sdake__ | even if I didn't use it for 10 years, i'd remember everything | 23:49 |
zaneb | lol | 23:49 |
sdake__ | learning python doesn't like semicolons was especially challenging :) | 23:50 |
zaneb | there wasn't much I couldn't tell you about C, say 3 years ago | 23:50 |
*** lindsayk has joined #heat | 23:50 | |
zaneb | I don't know much about trigraphs | 23:50 |
zaneb | everything else | 23:50 |
sdake__ | I am not a C++ wizard | 23:50 |
sdake__ | C++ is a terribly designed language imo :) | 23:50 |
zaneb | I thoroughly agree, and plan never to touch it again | 23:51 |
sdake__ | pyton is actually pretty cool but it has a steep learning curve | 23:51 |
zaneb | I don't think it's steep so much as long | 23:51 |
sdake__ | I struggle to do basic things | 23:51 |
zaneb | it's *very* easy to get started | 23:51 |
zaneb | compared to other langs | 23:51 |
sdake__ | but moving around all kinds of stuff to do oslo messaging is easy - that architecture work | 23:52 |
sdake__ | thats | 23:52 |
*** lnxnut has quit IRC | 23:52 | |
zaneb | but there's a huge amount of stuff you can, and eventually have, to learn | 23:52 |
*** lindsayk has quit IRC | 23:52 | |
*** lindsayk has joined #heat | 23:53 | |
*** dims_ has joined #heat | 23:59 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!