*** daneyon has joined #openstack-ansible | 00:00 | |
*** karimb has quit IRC | 00:04 | |
*** daneyon has quit IRC | 00:08 | |
*** spotz_zzz is now known as spotz | 00:11 | |
*** abitha has quit IRC | 00:29 | |
*** spotz is now known as spotz_zzz | 00:30 | |
*** harlowja has joined #openstack-ansible | 00:30 | |
*** daneyon has joined #openstack-ansible | 00:32 | |
*** tnarg has quit IRC | 00:34 | |
*** tnarg has joined #openstack-ansible | 00:35 | |
*** tnarg has quit IRC | 00:40 | |
*** harlowja has quit IRC | 01:06 | |
*** rebase has joined #openstack-ansible | 01:15 | |
*** harlowja has joined #openstack-ansible | 01:22 | |
*** harlowja has quit IRC | 01:28 | |
*** harlowja has joined #openstack-ansible | 01:28 | |
*** harlowja has quit IRC | 01:52 | |
*** tlian has quit IRC | 01:53 | |
*** sdake has quit IRC | 01:55 | |
*** rebase has quit IRC | 02:04 | |
*** gouthamr has quit IRC | 02:28 | |
*** tlian has joined #openstack-ansible | 02:33 | |
*** tlian has quit IRC | 02:47 | |
*** daneyon has quit IRC | 02:59 | |
*** rackertom has quit IRC | 03:06 | |
*** rackertom has joined #openstack-ansible | 03:10 | |
*** sdake has joined #openstack-ansible | 03:29 | |
*** elo has joined #openstack-ansible | 03:37 | |
*** sdake_ has joined #openstack-ansible | 03:48 | |
*** sdake has quit IRC | 03:51 | |
*** sdake_ has quit IRC | 03:59 | |
*** sdake has joined #openstack-ansible | 04:01 | |
*** rebase has joined #openstack-ansible | 04:17 | |
*** elo has quit IRC | 04:20 | |
*** elo has joined #openstack-ansible | 04:34 | |
*** sawangpongm has joined #openstack-ansible | 04:58 | |
*** daneyon has joined #openstack-ansible | 04:59 | |
*** sdake has quit IRC | 04:59 | |
*** daneyon has quit IRC | 05:14 | |
*** mhayden has quit IRC | 05:18 | |
*** mhayden has joined #openstack-ansible | 05:19 | |
*** sdake has joined #openstack-ansible | 05:20 | |
*** sawangpongm has quit IRC | 05:35 | |
*** sdake_ has joined #openstack-ansible | 05:47 | |
*** elo has quit IRC | 05:51 | |
*** sdake has quit IRC | 05:51 | |
*** phiche1 has joined #openstack-ansible | 05:56 | |
*** openstack has joined #openstack-ansible | 06:05 | |
-cameron.freenode.net- [freenode-info] if you're at a conference and other people are having trouble connecting, please mention it to staff: http://freenode.net/faq.shtml#gettinghelp | 06:05 | |
*** rebase has quit IRC | 06:09 | |
*** rebase has joined #openstack-ansible | 06:15 | |
*** ashishb has joined #openstack-ansible | 06:15 | |
*** sdake_ has quit IRC | 06:45 | |
*** sdake has joined #openstack-ansible | 06:45 | |
*** phiche1 has quit IRC | 06:52 | |
*** rebase has quit IRC | 06:54 | |
*** openstackgerrit has quit IRC | 07:01 | |
*** openstackgerrit has joined #openstack-ansible | 07:02 | |
*** ashishb has quit IRC | 07:04 | |
*** ashishb has joined #openstack-ansible | 07:05 | |
*** sdake has quit IRC | 07:05 | |
*** harlowja has joined #openstack-ansible | 07:14 | |
*** openstack has joined #openstack-ansible | 07:20 | |
*** sdake has joined #openstack-ansible | 07:25 | |
*** harlowja has quit IRC | 07:38 | |
*** sdake has quit IRC | 07:42 | |
*** javeriak has joined #openstack-ansible | 07:45 | |
*** javeriak has quit IRC | 08:05 | |
*** ashishb has quit IRC | 08:05 | |
*** javeriak has joined #openstack-ansible | 08:06 | |
*** kukacz has joined #openstack-ansible | 08:07 | |
*** fawadkhaliq has joined #openstack-ansible | 08:13 | |
*** mpavone has joined #openstack-ansible | 08:15 | |
*** mpavone has quit IRC | 08:16 | |
*** ashishb has joined #openstack-ansible | 08:17 | |
*** rebase has joined #openstack-ansible | 08:24 | |
*** rebase has quit IRC | 08:24 | |
*** fawadkhaliq has quit IRC | 08:25 | |
*** javeriak has quit IRC | 08:45 | |
*** karimb has joined #openstack-ansible | 08:57 | |
*** tnarg has joined #openstack-ansible | 09:05 | |
*** ashishb has quit IRC | 09:07 | |
*** javeriak has joined #openstack-ansible | 09:10 | |
*** ashishb has joined #openstack-ansible | 09:15 | |
*** javeriak_ has joined #openstack-ansible | 09:20 | |
*** javeriak has quit IRC | 09:23 | |
*** javeriak has joined #openstack-ansible | 09:33 | |
*** javeriak_ has quit IRC | 09:35 | |
*** tiagogomes has joined #openstack-ansible | 09:42 | |
tiagogomes | morning | 09:43 |
---|---|---|
*** dolphm has quit IRC | 09:50 | |
tiagogomes | Sometimes when I deploy from scratch, I get some not route to hosts errors (although I can ping the containers when I try it). Has anyone seen this? | 09:50 |
*** gcivitella has joined #openstack-ansible | 09:50 | |
*** dolphm has joined #openstack-ansible | 09:51 | |
*** neillc has quit IRC | 09:51 | |
*** matt___ has quit IRC | 09:52 | |
*** mattoliverau has quit IRC | 09:52 | |
*** sigmavirus24_awa has quit IRC | 09:52 | |
*** eglute_s has quit IRC | 09:52 | |
*** mattoliverau has joined #openstack-ansible | 09:52 | |
*** jhesketh has quit IRC | 09:52 | |
*** matt___ has joined #openstack-ansible | 09:52 | |
mattt | tiagogomes: yeah we see that sort of failure in the gate all the time :( | 09:52 |
*** neillc has joined #openstack-ansible | 09:52 | |
tiagogomes | mattt oh, do you why it happens? Is there a way to avoid it to happen? | 09:53 |
*** jhesketh has joined #openstack-ansible | 09:53 | |
*** eglute has joined #openstack-ansible | 09:53 | |
*** b3rnard0 has quit IRC | 09:54 | |
*** sigmavirus24_awa has joined #openstack-ansible | 09:54 | |
*** b3rnard0 has joined #openstack-ansible | 09:56 | |
*** javeriak has quit IRC | 10:03 | |
*** gparaskevas has joined #openstack-ansible | 10:06 | |
*** elo has joined #openstack-ansible | 10:26 | |
*** elo has quit IRC | 10:26 | |
openstackgerrit | azher ullah khan proposed openstack/openstack-ansible: Invalid reference of glance https://review.openstack.org/240501 | 10:32 |
*** javeriak has joined #openstack-ansible | 10:36 | |
*** javeriak has quit IRC | 11:06 | |
*** javeriak has joined #openstack-ansible | 11:08 | |
*** javeriak_ has joined #openstack-ansible | 11:10 | |
*** javeriak has quit IRC | 11:12 | |
*** javeriak has joined #openstack-ansible | 11:14 | |
*** javeriak_ has quit IRC | 11:15 | |
*** sawangpongm has joined #openstack-ansible | 11:30 | |
*** gparaskevas has quit IRC | 11:34 | |
*** ashishb has quit IRC | 11:48 | |
*** sawangpongm has quit IRC | 11:51 | |
*** skamithi14 has joined #openstack-ansible | 11:54 | |
*** skamithi13 has quit IRC | 11:56 | |
*** javeriak has quit IRC | 11:59 | |
mgariepy | good morning everyone | 12:06 |
*** alejandrito has joined #openstack-ansible | 12:18 | |
*** ashishb has joined #openstack-ansible | 12:21 | |
*** alejandrito has quit IRC | 12:29 | |
*** sdake has joined #openstack-ansible | 12:36 | |
*** sdake has quit IRC | 12:50 | |
*** skamithi14 has quit IRC | 12:54 | |
*** mpavone has joined #openstack-ansible | 12:56 | |
*** mpavone has quit IRC | 12:56 | |
*** skamithi13 has joined #openstack-ansible | 13:03 | |
*** gouthamr has joined #openstack-ansible | 13:07 | |
*** skamithi13 has quit IRC | 13:07 | |
*** ashishb has quit IRC | 13:14 | |
*** tlian has joined #openstack-ansible | 13:52 | |
*** Mudpuppy has joined #openstack-ansible | 13:57 | |
*** Mudpuppy has quit IRC | 14:08 | |
*** jimchou has joined #openstack-ansible | 14:27 | |
*** sigmavirus24_awa is now known as sigmavirus24 | 14:30 | |
*** k_stev has joined #openstack-ansible | 14:38 | |
*** Mudpuppy has joined #openstack-ansible | 14:43 | |
*** _hanhart has joined #openstack-ansible | 14:48 | |
*** _hanhart has quit IRC | 14:50 | |
*** Mudpuppy has quit IRC | 14:56 | |
*** gparaskevas has joined #openstack-ansible | 14:56 | |
openstackgerrit | Matt Thompson proposed openstack/openstack-ansible: Update neutron_migrations_facts https://review.openstack.org/240560 | 15:07 |
openstackgerrit | Merged openstack/openstack-ansible: Invalid reference of glance https://review.openstack.org/240501 | 15:11 |
*** greg_a has joined #openstack-ansible | 15:11 | |
openstackgerrit | Matt Thompson proposed openstack/openstack-ansible: Update neutron_migrations_facts https://review.openstack.org/240560 | 15:14 |
*** mattronix has joined #openstack-ansible | 15:17 | |
openstackgerrit | Matt Thompson proposed openstack/openstack-ansible: [WIP] Update neutron_migrations_facts https://review.openstack.org/240560 | 15:18 |
*** ysm has joined #openstack-ansible | 15:20 | |
*** greg_a has quit IRC | 15:20 | |
*** Mudpuppy has joined #openstack-ansible | 15:21 | |
*** ashishb has joined #openstack-ansible | 15:25 | |
*** greg_a has joined #openstack-ansible | 15:26 | |
openstackgerrit | Matt Thompson proposed openstack/openstack-ansible: [WIP] Update neutron_migrations_facts https://review.openstack.org/240560 | 15:32 |
*** kukacz has quit IRC | 15:58 | |
*** mgoddard_ has joined #openstack-ansible | 15:58 | |
*** mgoddard has quit IRC | 15:58 | |
*** javeriak has joined #openstack-ansible | 16:01 | |
*** mgoddard__ has joined #openstack-ansible | 16:05 | |
*** mgoddard_ has quit IRC | 16:08 | |
*** javeriak_ has joined #openstack-ansible | 16:24 | |
*** javeriak has quit IRC | 16:24 | |
*** jwagner_away is now known as jwagner | 16:24 | |
*** k_stev has quit IRC | 16:32 | |
*** k_stev1 has joined #openstack-ansible | 16:32 | |
*** alop has joined #openstack-ansible | 16:33 | |
*** k_stev1 has quit IRC | 16:34 | |
*** CheKoLyN has joined #openstack-ansible | 16:35 | |
*** mgoddard__ has quit IRC | 16:35 | |
*** mgoddard has joined #openstack-ansible | 16:35 | |
*** vdo has quit IRC | 16:38 | |
*** javeriak has joined #openstack-ansible | 16:41 | |
*** ashishb has quit IRC | 16:41 | |
*** javeriak_ has quit IRC | 16:43 | |
*** gparaskevas has quit IRC | 16:46 | |
*** k_stev has joined #openstack-ansible | 16:50 | |
*** javeriak has quit IRC | 16:51 | |
*** greg_a has quit IRC | 16:53 | |
*** jwitko has joined #openstack-ansible | 16:55 | |
*** etoews has joined #openstack-ansible | 16:59 | |
etoews | does osa have a demo user ala devstack or you need to create one post playbook run? | 17:01 |
*** gcivitella has quit IRC | 17:01 | |
*** gouthamr has quit IRC | 17:01 | |
Sam-I-Am | etoews: it has one if you run tempest | 17:05 |
Sam-I-Am | at least thats how it was last i looked | 17:05 |
etoews | i'd rather not run tempest. i want to use osa for client tool testing but don't want to use admin user for anything. | 17:06 |
etoews | if need be i imagine i can use the utils container to run the keystone client (or osc) to create a demo user. just thought there might be something in there already. still new to osa. | 17:07 |
Sam-I-Am | etoews: it includes an admin account by default, but no demo unless you tempest it... which also happens to create an image and networks for you | 17:07 |
etoews | Sam-I-Am: well that's sounding more useful. how do i even tempest? do you have links to osa+tempest docs? | 17:08 |
Sam-I-Am | etoews: check out scripts/run-tempest.sh | 17:10 |
etoews | will do. thx. | 17:11 |
*** ysm has quit IRC | 17:24 | |
*** karimb has quit IRC | 17:24 | |
*** ysm has joined #openstack-ansible | 17:31 | |
*** abitha has joined #openstack-ansible | 17:36 | |
*** tiagogomes has quit IRC | 17:40 | |
*** greg_a has joined #openstack-ansible | 17:43 | |
jwitko | Hey is there any sort of "change log" between openstack-ansible releases? | 17:47 |
*** ashishb has joined #openstack-ansible | 18:14 | |
*** ysm has quit IRC | 18:32 | |
*** karimb has joined #openstack-ansible | 18:34 | |
*** karimb_ has joined #openstack-ansible | 18:45 | |
*** karimb_ has quit IRC | 18:46 | |
*** karimb_ has joined #openstack-ansible | 18:46 | |
*** karimb has quit IRC | 18:48 | |
*** gouthamr has joined #openstack-ansible | 18:58 | |
*** gouthamr_ has joined #openstack-ansible | 18:59 | |
*** javeriak has joined #openstack-ansible | 19:01 | |
*** gouthamr has quit IRC | 19:03 | |
*** karimb_ has quit IRC | 19:16 | |
*** javeriak_ has joined #openstack-ansible | 19:20 | |
*** javeriak has quit IRC | 19:20 | |
*** javeriak has joined #openstack-ansible | 19:26 | |
*** grumpycatt has quit IRC | 19:29 | |
*** javeriak_ has quit IRC | 19:30 | |
*** grumpycatt has joined #openstack-ansible | 19:36 | |
*** ysm has joined #openstack-ansible | 19:37 | |
*** gouthamr_ has quit IRC | 19:45 | |
*** javeriak has quit IRC | 19:48 | |
*** k_stev has quit IRC | 19:51 | |
*** jimchou has quit IRC | 19:52 | |
*** k_stev has joined #openstack-ansible | 19:53 | |
*** greg_a has quit IRC | 19:55 | |
*** greg_a has joined #openstack-ansible | 19:59 | |
*** ashishb has quit IRC | 20:08 | |
*** ysm has quit IRC | 20:14 | |
*** ysm has joined #openstack-ansible | 20:16 | |
jwitko | hey all when doing an os-nova-install.yml upgrade | 20:41 |
jwitko | I am seeing the following error on the 11.2.4 release of the openstack-ansible playbook | 20:42 |
jwitko | TASK: [Set nova management address (is_metal)] ******************************** | 20:42 |
jwitko | One or more undefined variables: 'dict object' has no attribute u'br-mgmt' | 20:42 |
jwitko | looks like between 11.2.3 and 11.2.4 I might need to regenerate my inventory? | 20:45 |
*** karimb has joined #openstack-ansible | 20:50 | |
jwitko | Sam-I-Am, is this a known thing? | 20:53 |
jwitko | odyssey4me any hints? | 21:06 |
jwitko | 11.2.4 is searching for ""{{ hostvars[inventory_hostname][management_bridge]['ipv4']['address'] }}"" | 21:06 |
jwitko | but that doesn't even come close to existing | 21:06 |
cloudnull | Jwitko are you still seeing that issue ? | 21:28 |
cloudnull | https://github.com/openstack/openstack-ansible/blob/master/playbooks/os-nova-install.yml#L117 | 21:28 |
cloudnull | ^ that should be setting the bridge interface | 21:28 |
jwitko | cloudnull, so i think i found the issue | 21:29 |
jwitko | ok: [oss-comp04] => { | 21:29 |
jwitko | "var": { | 21:29 |
jwitko | "management_bridge": "br-mgmt" | 21:29 |
jwitko | } | 21:29 |
jwitko | } | 21:29 |
jwitko | thats a debug of "management_bridge" | 21:29 |
jwitko | the replcae "-", "_" is not working | 21:29 |
cloudnull | Oh... Hum. | 21:29 |
jwitko | also | 21:29 |
jwitko | there is no "ansible_" in front of it | 21:30 |
jwitko | as with the previous step | 21:30 |
jwitko | its looking for this | 21:30 |
jwitko | "ansible_br_mgmt": { | 21:30 |
jwitko | "ipv4": { | 21:30 |
jwitko | "address": "10.97.37.35", | 21:30 |
jwitko | but what its actually searching for is this | 21:30 |
jwitko | management_address: "{{ hostvars[inventory_hostname][management_bridge]['ipv4']['address'] }}" | 21:30 |
jwitko | so its doing "br-mgmt", according to that debug | 21:31 |
cloudnull | Ln:117 should combine ansible_ and the bridge name. | 21:31 |
jwitko | oh you're right | 21:31 |
jwitko | apparently its not doiung that either | 21:31 |
jwitko | is my ansible version too low? | 21:31 |
jwitko | ansible 1.9.2 | 21:31 |
cloudnull | Version of ansible ? | 21:31 |
cloudnull | I wouldn't think so. | 21:31 |
jwitko | up[dated to 1.9.3 | 21:32 |
*** greg_a has quit IRC | 21:32 | |
jwitko | no difference | 21:33 |
cloudnull | As for change log , all of that is in launchpad | 21:33 |
cloudnull | https://launchpad.net/openstack-ansible/kilo/11.2.4 | 21:33 |
cloudnull | Just FYI | 21:34 |
cloudnull | Is the task being skipped ? | 21:35 |
jwitko | cloudnull, no not being skipped | 21:35 |
jwitko | oh shit i lied | 21:35 |
jwitko | it is being skipped | 21:35 |
jwitko | ok that makes sense | 21:35 |
jwitko | because i wondering | 21:35 |
jwitko | hostvars[inventory_hostname]['container_networks']['container_address']['bridge'] | 21:35 |
jwitko | that is not correct | 21:36 |
jwitko | that should be | 21:36 |
jwitko | hostvars[inventory_hostname]['container_networks']['management_address']['bridge'] | 21:36 |
cloudnull | So in your inventory you don't have container_address but you do management_ ? | 21:37 |
jwitko | i'm using 11.2.4 for the first time, used 11.2.3 previously | 21:39 |
jwitko | not sure if that makes a different | 21:39 |
cloudnull | Greenfield? | 21:39 |
jwitko | Sorry? | 21:39 |
cloudnull | It shouldn't make a difference. | 21:39 |
jwitko | http://paste.openstack.org/show/477726/ | 21:39 |
jwitko | that is one of the servers for example | 21:39 |
cloudnull | Is it a new deployment or an upgrade from an existing one ? | 21:39 |
jwitko | container_address exists but its not a dictionary as the code is showing it to be | 21:39 |
jwitko | cloudnull, upgrade from existing one. previous was 11.2.3 | 21:40 |
cloudnull | OK. This is a bug. Not something you've done wrong. Its a naming assumption. | 21:41 |
*** ysm has quit IRC | 21:42 | |
jwitko | do some people have container_address: as a dict? | 21:42 |
jwitko | or should it simple be "management_address" in place of "container_address" ? | 21:42 |
cloudnull | Yes. | 21:42 |
jwitko | yes to which | 21:42 |
cloudnull | ;-) | 21:43 |
jwitko | i switched "container_address" out for "management_address" and its working now | 21:43 |
cloudnull | We should simply take the bridge name from the user config value. | 21:43 |
cloudnull | https://github.com/openstack/openstack-ansible/blob/master/etc/openstack_deploy/openstack_user_config.yml.aio#L17 | 21:43 |
cloudnull | Instead of attempting to detect it off of an assumed name. | 21:44 |
cloudnull | Because the name of the dict could literally be anything. | 21:44 |
jwitko | true | 21:45 |
jwitko | can I submit a pull request right to the repo? | 21:45 |
jwitko | or is that ignored | 21:45 |
cloudnull | Itd need to go through gerrit. | 21:45 |
cloudnull | PRS to github aren't tracked. | 21:45 |
cloudnull | http://docs.openstack.org/infra/git-review/installation.html | 21:46 |
cloudnull | If you could send a PR to resolve that it'd be awesome. Most of us are still in Tokyo and are traveling back home today so it may be a bit before we get to it. | 21:47 |
cloudnull | I'm on my mobile right now w/ no network to the laptop. | 21:48 |
*** tlian has quit IRC | 21:48 | |
jwitko | sure will do | 21:49 |
*** ysm has joined #openstack-ansible | 21:50 | |
*** gouthamr has joined #openstack-ansible | 21:58 | |
*** ysm has quit IRC | 22:01 | |
*** jwagner is now known as jwagner_away | 22:05 | |
logan2 | jwitko: looks like your config is slightly different (my compute nodes don't have mgmt bridge) but I had a similar issue with that task earlier this week where it was failing to fall back to the ansible_ssh_host if no bridge was configured https://bugs.launchpad.net/openstack-ansible/+bug/1508517 | 22:09 |
openstack | Launchpad bug 1508517 in openstack-ansible "nova fails to deploy on hosts without container_networks set" [Undecided,New] | 22:09 |
cloudnull | ++ logan2 it'd be great to get that resolved too. | 22:15 |
cloudnull | I've got to run, last day in Tokyo and am going to do a bit of running about before I fly home. | 22:16 |
cloudnull | Bbl have a good one all. | 22:16 |
openstackgerrit | Matt Thompson proposed openstack/openstack-ansible: [WIP] Update neutron_migrations_facts https://review.openstack.org/240560 | 22:16 |
mattt | cloudnull: have a safe flight back ! | 22:17 |
mattt | ^^^ commited, thanks sigmavirus24 | 22:17 |
* sigmavirus24 didn't do anything :X | 22:17 | |
*** alop has quit IRC | 22:24 | |
*** k_stev has quit IRC | 22:26 | |
sigmavirus24 | hm, I'm failing to find how pip is installed in the containers... I have a container that seems to have been made sans pip | 22:32 |
mattt | sigmavirus24: pip_lock_down pulls in pip_install | 22:40 |
mattt | sigmavirus24: and i think each os playbook in playbooks/ pulls in pip_lock_down | 22:40 |
mattt | something like that? | 22:40 |
sigmavirus24 | yeah | 22:40 |
sigmavirus24 | I found that | 22:40 |
logan2 | playbooks/roles/pip_install | 22:40 |
sigmavirus24 | It's in meta/main.yml | 22:40 |
sigmavirus24 | as a dependency | 22:40 |
logan2 | yeah lxc_hosts pulls in pip_install | 22:40 |
sigmavirus24 | Doing a third party role is tricky but it just comes down to making sure that it's in the playbook so the role itself doesn't depend on OSA | 22:41 |
sigmavirus24 | Thanks mattt and logan2 | 22:41 |
mattt | np | 22:42 |
sigmavirus24 | And a problem with the config_template plugin | 22:45 |
sigmavirus24 | Bleh | 22:45 |
sigmavirus24 | I'll just go eat dinner | 22:45 |
logan2 | i had problems with config_template until I realiized i wanted template instead (fairly new to ansible) | 22:48 |
*** CheKoLyN has quit IRC | 23:19 | |
*** mancdaz has quit IRC | 23:25 | |
*** fawadkhaliq has joined #openstack-ansible | 23:28 | |
*** gouthamr has quit IRC | 23:39 | |
sigmavirus24 | logan2: I actually want config_template though | 23:41 |
sigmavirus24 | Found the culprit though | 23:44 |
sigmavirus24 | Was using the wrong var name for the config_overrides parameter | 23:44 |
*** tnarg has quit IRC | 23:46 | |
logan2 | ah | 23:47 |
sigmavirus24 | github.com/sigmavirus24/openstack-ansible-searchlight logan2 | 23:48 |
sigmavirus24 | (If you want to follow along at home) | 23:49 |
logan2 | interesting looking @ the git clone/pip install stuff. i am working on building projectcalico roles and it would be nice to deploy some of their stuff from git instead of apt packages | 23:55 |
sigmavirus24 | logan2: it's not that bad | 23:58 |
logan2 | no looks quite simple really | 23:58 |
sigmavirus24 | My friend used to work on calico | 23:58 |
Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!