Tuesday, 2015-08-11

openstackgerritMerged openstack/python-openstackclient: Skip functional test: test_server_up  https://review.openstack.org/21134300:21
*** pm90_ has joined #openstack-sdks00:23
*** pm90_ has quit IRC00:27
*** stevemar has joined #openstack-sdks00:51
*** stevemar has quit IRC00:51
*** stevemar_ has joined #openstack-sdks00:51
*** tobe_ has joined #openstack-sdks01:18
*** pm90_ has joined #openstack-sdks01:25
*** pm90__ has joined #openstack-sdks01:28
*** pm90_ has quit IRC01:31
openstackgerritOpenStack Proposal Bot proposed openstack/python-openstackclient: Updated from global requirements  https://review.openstack.org/21138901:38
*** Yanyanhu has joined #openstack-sdks01:41
*** Yanyanhu has quit IRC01:45
*** Qiming has joined #openstack-sdks01:48
*** isviridov_away is now known as isviridov01:52
*** tobe_ has quit IRC02:05
*** tobe_ has joined #openstack-sdks02:06
*** bknudson has quit IRC02:14
*** pm90__ has quit IRC02:15
*** Yanyan has joined #openstack-sdks02:20
*** jose4183 has joined #openstack-sdks02:20
*** stevemar_ has quit IRC02:29
*** woodster_ has quit IRC02:30
*** stevemar has joined #openstack-sdks02:30
*** tobe_ has quit IRC02:47
*** tobe_ has joined #openstack-sdks02:49
openstackgerritMerged openstack/python-openstackclient: Add release notes for 1.6.0  https://review.openstack.org/21072603:02
*** yunpengl has joined #openstack-sdks03:17
*** yunpengl has quit IRC03:17
*** david-lyle has quit IRC03:21
*** jose4183 has quit IRC03:31
*** britthouser has quit IRC03:38
openstackgerritMerged openstack/python-openstackclient: Updated from global requirements  https://review.openstack.org/21138903:54
*** tobe_ has quit IRC04:12
*** tobe_ has joined #openstack-sdks04:17
*** isviridov is now known as isviridov_away04:23
*** isviridov_away is now known as isviridov04:36
*** david-lyle has joined #openstack-sdks04:40
*** britthouser has joined #openstack-sdks04:41
*** isviridov is now known as isviridov_away05:07
*** Qiming has quit IRC05:09
openstackgerritJamie Lennox proposed openstack/python-openstackclient: Use correct domain to find project  https://review.openstack.org/21142205:35
stevemarjamielennox: thanks for the find05:37
jamielennoxstevemar: was gildub - who really should hang out here05:38
stevemarjamielennox: yeah, he's been helpful05:38
stevemarjamielennox: you tried it out?05:38
stevemarjamielennox: just as i'm proposing a new osc release too :)05:38
jamielennoxstevemar: fixes it for me, i'm just looking to see if there's any level of tests around that05:39
jamielennoxcause i'll quickly add one but not a whole file05:39
stevemarjamielennox: doubtful...05:39
stevemartheres this https://github.com/openstack/python-openstackclient/blob/master/openstackclient/tests/identity/v3/test_role.py#L31505:40
jamielennoxstevemar: what's the release timeframe?05:43
*** isviridov_away is now known as isviridov05:43
stevemarjamielennox: tomorrow :P https://review.openstack.org/#/c/211415/05:44
stevemari'll approve the patch, looks cut and dry05:44
jamielennoxstevemar: there looks like there are similar tests05:44
stevemari'll make a functional test for it, i find it far less annoying (and more beneficial) to create function tests for osc05:45
jamielennoxoh, but there's no sense of domains in there at all05:45
jamielennoxstevemar: osc role add has --inherited - is that just the hierarchical team getting ahead of themselves?05:46
stevemarjamielennox: yep05:46
*** gildub has joined #openstack-sdks05:47
stevemarjamielennox: i've been letting the heirarchal stuff in, since it's in the client side05:47
stevemarand presumably the server side too05:47
jamielennoxgildub: so i'd ignore inheritted, in future we will allow sub-projects05:47
jamielennoxit's not a thing yet and i'll be really surprised if it is for Liberty05:47
gildubjamielennox, ah cool, that's sounds good, since there is no way to see if the flag has been set05:48
jamielennoxgildub: there's an OSC release tomorrow so that patch should go in05:48
stevemarjamielennox: are you aware of the new /releases repo?05:48
stevemarits pretty neat05:48
jamielennoxstevemar: gildub is doing the puppet identity v3 work so hits all these edge cases first05:48
jamielennoxstevemar: don't think so05:49
stevemargildub: ah very cool05:49
gildubjamielennox, thanks, re the release05:49
jamielennoxgildub: it's all stevemar05:49
jamielennoxand terrylhowe but he goes to bed at a reasonable time05:49
gildubstevemar, hi, I think I know you through some of the bugs I created with OSC ;)05:50
* jamielennox sounds like his mum 05:50
gildubor maybe his dad?05:50
stevemargildub: thanks for all the bug reports :)05:50
jamielennoxaudibly more so, just he wouldn't have cared05:50
gildubstevemar, no worries and thanks for your help!05:51
jamielennoxstevemar: i propose an OS_FUTURE env variable so that things like --inheritted don't show up unless you know that they're not currently relevant05:59
jamielennoxprobably OSC_FUTURE05:59
jamielennoxthat way we could stop doing this dance of needing it for testing but it not being a released feature yet06:00
stevemarjamielennox: we could06:00
stevemarwhat else but --inherited would use it?06:00
jamielennoxwell --parent on project is the obvious one06:01
jamielennoxbut i feel like there must be new resource types for a bunch of projects06:01
jamielennoxanyway, just a though06:01
stevemartechnically that can be used now, just not sure how useful it is06:01
stevemarjust playing devils advocate :)06:02
jamielennoxi think technically --inherited works as well it just doesn't do anything06:02
jamielennoxbut i mean there's like 3 discussions of new api versions coming06:02
jamielennoxthough i guess they are hidden already as you need to opt into your api version06:03
stevemarjamielennox: who's chatting about new api versions?06:03
jamielennoxironic was06:04
jamielennoxthere's always a thread on -dev about some project06:04
stevemarjamielennox: we need another one of the big projects to buy into osc :(06:10
stevemari was hoping cinder would be the second project, but they just keep motoring away on their own cli06:10
jamielennoxstevemar: honestly i think puppet is a big enough one06:11
jamielennoxit at least validates that it's useful across all projects06:11
jamielennoxbut yes, you just need to get another ptl on board06:12
jamielennoxthingee would probably do it06:12
stevemari've heard from some of our customer facing folks that they really like the concept06:12
stevemarjamielennox: yep06:12
jamielennoxotherwise glance06:12
stevemarjamielennox: was gonna bug him and jbryant about it06:12
jamielennoxi thought glance was flavio but apparently not, so i don't know who that is06:13
stevemarthat's another, sigmavirus24 is familiar enough with the project06:13
jamielennoxstevemar: a todo for a while now of mine is to make a client cookie cutter06:13
stevemarjamielennox: it's nikhil komawar06:13
jamielennoxand i think it would help if we cleaned up the OSC client interface, had a proper abc base class06:14
jamielennox+ docs06:14
stevemarjamielennox: i think the trouble with glance is that dtroyer has his own idea about the optimizations he wants to see, and they may not be 1:1 with glance CLI06:16
jamielennoxglanceclient is very opinionated06:16
stevemarfor cinder, we have v1 and v2 support now for most of their resources06:16
jamielennoxit's one of those ones that is strongly integrated between the client and the CLI06:16
stevemarcinder/glance/keystone would be nice to have06:17
jamielennoxfor example there is a bug in eventlet 0.17.3 which is what RHEL ships that means SSL validation doesn't work06:17
jamielennoxturns out that glanceclient does an opportunistic import eventlet except06:18
jamielennoxwhich is enough for eventlet to monkeypatch SSL06:18
jamielennoxso i came across this because i couldn't make OSC do SSL validation06:18
jamielennoxbecause OSC -> glanceclient -> eventlet06:18
stevemarreferring to: https://github.com/openstack/python-glanceclient/blob/471276568908e237083c848222d3101e7b64908e/glanceclient/common/https.py#L38-L5306:19
jamielennoxeven though wtf why is eventlet anywhere near this06:19
stevemaryeah, thats my initial reaction06:19
jamielennoxi can see what they are doing and technically it should be ok because they are only testing if it's available06:19
jamielennoxbut global patching etc06:20
jamielennoxand so it killed OSC06:20
jamielennoxi got glanceclient to take a session i'm just waiting for a release which i'm told is any day now06:20
jamielennoxfun fact, jsonrpclib depends on xmlrpclib06:22
jamielennox /ragequit06:22
*** ParsectiX has joined #openstack-sdks06:24
stevemarjamielennox: yep... https://github.com/joshmarshall/jsonrpclib/blob/master/jsonrpclib/jsonrpc.py#L51-L5406:25
stevemarjamielennox: https://twitter.com/bigjools_/status/63097053037232128006:25
jamielennoxoh - xmlrpclib is part of core python?06:26
jamielennoxmaybe that's not so bad06:26
jamielennoxi mean bad that it's part of core python, but not bad for a dep06:27
*** Qiming has joined #openstack-sdks06:37
stevemarjamielennox: seems like it's core06:42
*** Qiming has quit IRC06:42
stevemarjamielennox: why do have an assignment backend for ldap06:43
stevemarwho thought this was a good idea06:43
jamielennoxstevemar: despite my team i have always done my best to do nothing with ldap06:44
stevemarjamielennox: try to keep it that way06:44
*** Qiming has joined #openstack-sdks06:45
openstackgerritGilles Dubreuil proposed openstack/python-openstackclient: Use correct domain to find project  https://review.openstack.org/21142206:49
stevemargildub: you just booted the change out of the gate06:50
gildubstevemar, oh, sorry, wasn't the rebase needed?06:51
stevemargildub: nah, not in this case06:51
gildubstevemar, I shouldn't have tried to help then :(06:51
stevemargildub: its all good :)06:52
gildubstevemar, but why not rebase?06:52
stevemargildub: whatever version of master you had was good enough, none of that changes between remote master and local master had affected that file06:54
gildubstevemar, I see, actually it was jamielennox git tree06:55
stevemargildub: damn jamielennox07:08
stevemarjamielennox: thanks for replying on the ML about the websso stuff07:08
stevemarjamielennox: yes you07:08
jamielennoxoh, yea i got into a bit of an email frenzy the last few days, sent a few i probably shouldn't07:09
stevemarjamielennox: https://review.openstack.org/#/c/209941/07:09
stevemari'll chat with you about it tomorrow probably07:09
stevemarmaybe we can make a few tweaks to it for the liberty release07:09
stevemaranyway, it's *way* past my bed time07:10
stevemarsee you tomorrow07:10
*** stevemar has quit IRC07:10
*** stevemar has joined #openstack-sdks07:11
*** Qiming has quit IRC07:11
*** stevemar has quit IRC07:13
*** heyongli has quit IRC07:22
*** Qiming has joined #openstack-sdks07:28
*** Qiming has quit IRC07:44
*** gildub has quit IRC07:46
*** markus_z has joined #openstack-sdks07:48
*** heyongli has joined #openstack-sdks08:09
*** boris-42 has quit IRC08:10
*** stevemar has joined #openstack-sdks08:13
*** heyongli has quit IRC08:14
*** stevemar has quit IRC08:16
*** heyongli has joined #openstack-sdks08:17
*** heyongli has quit IRC08:22
*** isviridov is now known as isviridov_away08:24
*** isviridov_away is now known as isviridov08:24
*** isviridov is now known as isviridov_away08:26
*** heyongli has joined #openstack-sdks08:31
*** heyongli has quit IRC08:36
*** heyongli has joined #openstack-sdks08:45
*** heyongli has quit IRC08:50
*** heyongli has joined #openstack-sdks08:56
*** heyongli has quit IRC09:02
*** heyongli has joined #openstack-sdks09:05
*** heyongli has quit IRC09:12
*** heyongli has joined #openstack-sdks09:17
*** heyongli has quit IRC09:22
*** heyongli has joined #openstack-sdks09:28
*** heyongli has quit IRC09:34
*** heyongli has joined #openstack-sdks09:38
*** Yanyan has quit IRC09:46
*** Qiming has joined #openstack-sdks09:47
*** heyongli has quit IRC09:50
*** heyongli has joined #openstack-sdks09:55
*** heyongli has quit IRC10:03
*** heyongli has joined #openstack-sdks10:05
*** stevemar has joined #openstack-sdks10:15
*** stevemar has quit IRC10:18
*** heyongli has quit IRC10:31
*** heyongli has joined #openstack-sdks10:34
*** heyongli has quit IRC10:46
*** heyongli has joined #openstack-sdks10:50
*** heyongli has quit IRC10:55
*** heyongli has joined #openstack-sdks10:56
*** heyongli has quit IRC11:10
*** heyongli has joined #openstack-sdks11:11
*** heyongli has quit IRC11:16
*** heyongli has joined #openstack-sdks11:19
*** heyongli has quit IRC11:29
*** heyongli has joined #openstack-sdks11:31
*** heyongli has quit IRC11:36
*** tobe_ has quit IRC11:50
*** tobe_ has joined #openstack-sdks11:52
*** tobe_ has quit IRC11:57
*** openstackgerrit_ has joined #openstack-sdks12:02
*** heyongli has joined #openstack-sdks12:10
*** heyongli has quit IRC12:19
*** heyongli has joined #openstack-sdks12:29
*** bnemec has joined #openstack-sdks12:30
*** heyongli has quit IRC12:34
*** pm90_ has joined #openstack-sdks12:50
*** openstackgerrit_ has quit IRC12:51
*** pm90__ has joined #openstack-sdks12:55
*** openstackgerrit_ has joined #openstack-sdks12:56
*** pm90_ has quit IRC12:58
*** heyongli has joined #openstack-sdks13:06
*** heyongli has quit IRC13:12
*** zz_steveortiz is now known as steveortiz13:12
*** petertr7_away is now known as petertr713:17
openstackgerritMerged openstack/python-openstackclient: Use correct domain to find project  https://review.openstack.org/21142213:18
*** heyongli has joined #openstack-sdks13:29
*** david-lyle has quit IRC13:36
*** jose4183 has joined #openstack-sdks13:47
*** heyongli has quit IRC13:51
*** jose4183 has quit IRC13:52
*** jose4183 has joined #openstack-sdks13:52
*** openstackgerrit_ has quit IRC13:55
*** openstackgerrit_ has joined #openstack-sdks13:56
*** heyongli has joined #openstack-sdks13:58
*** heyongli has quit IRC14:03
*** ParsectiX has quit IRC14:13
*** sigmavirus24_awa is now known as sigmavirus2414:15
*** stevemar has joined #openstack-sdks14:16
*** openstackgerrit_ has quit IRC14:17
*** openstackgerrit_ has joined #openstack-sdks14:18
*** stevemar has quit IRC14:20
*** openstackgerrit_ has quit IRC14:31
*** stevemar has joined #openstack-sdks14:38
briancurtinterrylhowe: fyi something is up with object_store.create_object on both py2 and py3. whenever i fix this i might want to do it as 0.6.214:39
briancurtin(whatever is happening messes up the logger as well, which is not good)14:41
briancurtinhah, if you do create_container(..., container=actual_container_instance), the repr of actual_container_instance gets inserted into the URL, not the ID of it14:49
briancurtiner, create_object14:49
*** pm90__ has quit IRC14:57
terrylhoweweird briancurtin15:01
terrylhowewe could really use some automated functional tests for that stuff15:03
terrylhowebriancurtin: my foreign key fix out there might fix that15:03
briancurtinterrylhowe: yeah, i looked into that, but i needed to find a different approach than the classSetUp or whatever. object_store needs a lot finer grained control to not actually start with anything for each test15:04
*** pm90_ has joined #openstack-sdks15:04
*** Qiming_ has joined #openstack-sdks15:04
terrylhowewell, creating containers and objects is not that expensive, so the setup and tear down wouldn’t be as big a deal15:05
terrylhoweI have a task card to come back and fix that, but I’d found maybe the same problem there15:06
*** Qiming has quit IRC15:07
*** pm90__ has joined #openstack-sdks15:07
*** pm90_ has quit IRC15:10
briancurtinterrylhowe: i'd rather solve that by making the base_path "/servers/%(id)s/metadata" and switching on how we send it through interpolation. if we have an instance, just send it through - it already handles dictionaries. if we just have an id, then do blah % {"id": id} and then it'd work fine15:13
briancurtinmixing up old and new style string interpolation/formatting is going to be a hassle15:13
terrylhowewell, either way, I think there is some good stuff to pull out of that foreign key thing like the path_args property to resource15:14
terrylhowemaybe at least15:15
*** david-lyle has joined #openstack-sdks15:15
*** etoews has joined #openstack-sdks15:25
*** jose4183 has quit IRC15:26
*** jose4183 has joined #openstack-sdks15:27
*** jose4183 has quit IRC15:29
*** jose4183 has joined #openstack-sdks15:34
terrylhowehey looks like osc 1.6.0 is out, woot stevemar15:37
stevemarterrylhowe: yep! let's hope we don't break everything15:39
terrylhowethanks for working through that new process15:39
stevemarterrylhowe: it was super easy15:41
*** woodster_ has joined #openstack-sdks15:47
*** petertr7 is now known as petertr7_away15:48
*** Qiming_ has quit IRC15:48
*** rm_work is now known as rm_work|away15:49
*** bnemec has quit IRC15:51
stevemarterrylhowe: and with some awesome UX fixes too :)15:53
*** bnemec has joined #openstack-sdks16:02
*** openstackgerrit_ has joined #openstack-sdks16:08
*** beekneemech has joined #openstack-sdks16:12
*** bnemec has quit IRC16:13
stevemarso i dont think we broke anyone...16:18
*** ig0r_ has joined #openstack-sdks16:20
*** beekneemech is now known as bnemec16:26
*** steveortiz is now known as zz_steveortiz16:42
etoewsterrylhowe: i'm looking at https://review.openstack.org/#/c/193793/5/openstack/resource.py16:44
etoewsand i'm wondering if we should change wait_for_status to wait_for_status(session, resource, interval, wait, status, failures) so the params align with wait_for_delete16:44
*** markus_z has quit IRC16:46
terrylhowekind of like it, kind of don’t etoews like it for consistency don’t like it because status and failures are related to resource16:48
*** ig0r_ has quit IRC16:48
terrylhoweno real strong feeling either way16:48
etoewsi see what you mean. i'll mull it over a bit.16:49
*** petertr7_away is now known as petertr716:53
*** zz_steveortiz is now known as steveortiz16:55
*** steveortiz is now known as zz_steveortiz17:09
*** boris-42 has joined #openstack-sdks17:32
openstackgerritTerry Howe proposed openstack/python-openstackclient: Allow custom log levels for other loggers  https://review.openstack.org/21168217:32
openstackgerritTerry Howe proposed openstack/python-openstackclient: Add a logging option to configuration show command  https://review.openstack.org/21168417:34
*** bknudson has joined #openstack-sdks17:47
*** zz_steveortiz is now known as steveortiz17:53
*** bnemec has quit IRC18:01
*** openstackgerrit_ has quit IRC18:06
*** bnemec has joined #openstack-sdks18:06
openstackgerritMerged stackforge/python-openstacksdk: Add wait for delete method  https://review.openstack.org/19379318:16
*** ig0r_ has joined #openstack-sdks18:17
*** ig0r_ has quit IRC18:18
*** ig0r_ has joined #openstack-sdks18:27
briancurtinSDK meeting in 10 minutes in #openstack-meeting-318:50
*** rm_work|away is now known as rm_work18:54
*** ig0r_ has quit IRC18:59
*** ig0r_ has joined #openstack-sdks19:03
*** petertr7 is now known as petertr7_away19:07
openstackgerritMerged stackforge/python-openstacksdk: Claim no messages correctly  https://review.openstack.org/19622119:09
*** petertr7_away is now known as petertr719:11
*** annegentle has joined #openstack-sdks19:12
*** zandubalm123 has joined #openstack-sdks19:13
zandubalm123 when using the openstack i am not able to authenticate: i get following error: Unable to establish connection to http://ipaddr:5000/v2.0/tokens19:14
*** annegentle has quit IRC19:14
zandubalm123though if I use CURL curl -i 'https://ipaddr:5000/v2.0/tokens' -X POST -H "Content-Type: application/json" -H "Accept: application/json" -H "User-Agent: python-novaclient" -d '{"auth": { "passwordCredentials": {"username": "username", "password": "password"}}}19:15
zandubalm123 this works19:16
zandubalm123 the difference that I see is that the ipaddr that I call in the curl is using https19:16
zandubalm123and the one the openstack cli client is calling is the http19:16
zandubalm123 how can I resolve this?19:16
*** annegentle has joined #openstack-sdks19:16
zandubalm123annegentle: any inputs why it may be not working with the python-openstackclient19:34
stevemarzandubalm123: can you try a command like 'openstack project list --debug' and paste the output to openstack's paste site19:35
annegentlezandubalm123: sorry had to drop away for a minute, stevemar in #openstack it seemed to be a problem with https but perhaps that was a red herring19:43
zandubalm123sure will try19:43
stevemarannegentle: damn those red herrings, thats what i was thinking too... we'll see what zandubalm123 produces, the --debug output should help a lot19:46
openstackgerritTerry Howe proposed openstack/python-openstackclient: WIP Create configuration class  https://review.openstack.org/20706719:54
stevemarzandubalm123: ahhh windows, haven't tested it out there in a while :)19:55
openstackgerritTerry Howe proposed openstack/python-openstackclient: Create log configuration class  https://review.openstack.org/21129119:55
openstackgerritTerry Howe proposed openstack/python-openstackclient: Allow debug to be set in configuration file  https://review.openstack.org/21129319:56
openstackgerritTerry Howe proposed openstack/python-openstackclient: Rename context.py to logs.py  https://review.openstack.org/21129519:56
openstackgerritTerry Howe proposed openstack/python-openstackclient: Rename context.py to logs.py  https://review.openstack.org/21129519:56
openstackgerritTerry Howe proposed openstack/python-openstackclient: Allow custom log levels for other loggers  https://review.openstack.org/21168219:56
*** ig0r_ has quit IRC19:58
stevemarzandubalm123: i think its still an http(s) problem... http://paste.openstack.org/show/412605/20:02
stevemari think your identity endpoints are not using https?20:03
*** ig0r_ has joined #openstack-sdks20:07
*** petertr7 is now known as petertr7_away20:22
zandubalm123stevemar: so how can I resolve this?20:22
*** morgan_503 is now known as morgan_40420:23
stevemarzandubalm123: http://paste.openstack.org/show/412609/20:28
stevemarzandubalm123: follow the steps there, for each endpoint (internal, admin, public)20:29
stevemaror just manually edit the database, it's icky but quick20:29
*** petertr7_away is now known as petertr720:29
zandubalm123stevemar: i do not have access to the admin console.20:36
*** steveortiz is now known as zz_steveortiz20:39
openstackgerritTerry Howe proposed openstack/python-openstackclient: Add tests for volume quota set  https://review.openstack.org/21174820:41
stevemarzandubalm123: shouldn't need access to the admin console, just the admin token (or the database that stores the endpoints)20:48
zandubalm123stevemar: do you need to know something from the access list?20:49
zandubalm123this is the api endpoint for the Identity:https://keystone.ipaddr:5000/v2.020:51
*** ig0r_ has quit IRC20:58
*** morgan_404 is now known as morgan_41021:04
*** morgan_410 is now known as morgan_40421:05
*** petertr7 is now known as petertr7_away21:07
*** zandubalm123 has quit IRC21:13
*** annegentle has quit IRC21:37
*** stevemar has quit IRC21:59
*** stevemar has joined #openstack-sdks22:00
*** stevemar has quit IRC22:03
*** dguerri` is now known as dguerri22:03
openstackgerritDavide Guerri proposed openstack/os-client-config: Use the correct auth_plugin for token authentication  https://review.openstack.org/21177322:55
*** gildub has joined #openstack-sdks22:58
*** bnemec has quit IRC22:59
*** dguerri is now known as dguerri`23:06
*** sigmavirus24 is now known as sigmavirus24_awa23:15
*** morgan_404 has quit IRC23:29
*** pm90_ has joined #openstack-sdks23:30
*** morganfainberg has joined #openstack-sdks23:31
*** morganfainberg is now known as morgan_40423:32
*** pm90__ has quit IRC23:33
*** Caleb-- has quit IRC23:34
*** Caleb-- has joined #openstack-sdks23:41
*** rm_work is now known as rm_work|away23:46
openstackgerritEverett Toews proposed stackforge/python-openstacksdk: Image import  https://review.openstack.org/19931823:48
*** Qiming has joined #openstack-sdks23:52
*** david-lyle has quit IRC23:58
*** david-lyle has joined #openstack-sdks23:58

Generated by irclog2html.py 2.14.0 by Marius Gedminas - find it at mg.pov.lt!