)]}'
{"keystoneauth1/_utils.py":[{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"02576624ce8a35242f562ce627ad523af3172700","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    delta \u003d datetime.timedelta(**timedelta_kwargs)"},{"line_number":75,"context_line":"    return now - delta"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"def get_is_windows_linux_subsystem():"},{"line_number":78,"context_line":"    try:"},{"line_number":79,"context_line":"        with open(\u0027/proc/version\u0027, \u0027r\u0027) as f:"},{"line_number":80,"context_line":"            is_windows_linux_subsystem \u003d \u0027microsoft\u0027 in f.read().lower()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_a3e45b3b","line":77,"range":{"start_line":77,"start_character":4,"end_line":77,"end_character":34},"updated":"2016-08-19 17:49:01.000000000","message":"You don\u0027t need to prefix with get, just:\nis_windows_linux_subsystem()","commit_id":"529655a10dac6f8aedaded83f2edc55f608e1b27"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8851e4adf75b69a514aa83be006662c127cc240c","unresolved":false,"context_lines":[{"line_number":74,"context_line":"    delta \u003d datetime.timedelta(**timedelta_kwargs)"},{"line_number":75,"context_line":"    return now - delta"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"def get_is_windows_linux_subsystem():"},{"line_number":78,"context_line":"    try:"},{"line_number":79,"context_line":"        with open(\u0027/proc/version\u0027, \u0027r\u0027) as f:"},{"line_number":80,"context_line":"            is_windows_linux_subsystem \u003d \u0027microsoft\u0027 in f.read().lower()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_e3677323","line":77,"range":{"start_line":77,"start_character":4,"end_line":77,"end_character":34},"in_reply_to":"1ac06dbe_a3e45b3b","updated":"2016-08-19 18:06:13.000000000","message":"++","commit_id":"529655a10dac6f8aedaded83f2edc55f608e1b27"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"02576624ce8a35242f562ce627ad523af3172700","unresolved":false,"context_lines":[{"line_number":78,"context_line":"    try:"},{"line_number":79,"context_line":"        with open(\u0027/proc/version\u0027, \u0027r\u0027) as f:"},{"line_number":80,"context_line":"            is_windows_linux_subsystem \u003d \u0027microsoft\u0027 in f.read().lower()"},{"line_number":81,"context_line":"    except:"},{"line_number":82,"context_line":"        is_windows_linux_subsystem \u003d False"},{"line_number":83,"context_line":"    return is_windows_linux_subsystem"},{"line_number":84,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_83c4bf92","line":81,"range":{"start_line":81,"start_character":4,"end_line":81,"end_character":11},"updated":"2016-08-19 17:49:01.000000000","message":"Shouldn\u0027t you expect a specific error and catch that here?","commit_id":"529655a10dac6f8aedaded83f2edc55f608e1b27"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"02576624ce8a35242f562ce627ad523af3172700","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        is_windows_linux_subsystem \u003d False"},{"line_number":83,"context_line":"    return is_windows_linux_subsystem"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"is_windows_linux_subsystem \u003d get_is_windows_linux_subsystem()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_833affcb","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":61},"updated":"2016-08-19 17:49:01.000000000","message":"Why is this needed?","commit_id":"529655a10dac6f8aedaded83f2edc55f608e1b27"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"8851e4adf75b69a514aa83be006662c127cc240c","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        is_windows_linux_subsystem \u003d False"},{"line_number":83,"context_line":"    return is_windows_linux_subsystem"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"is_windows_linux_subsystem \u003d get_is_windows_linux_subsystem()"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_a3a73b4e","line":85,"range":{"start_line":85,"start_character":0,"end_line":85,"end_character":61},"in_reply_to":"1ac06dbe_833affcb","updated":"2016-08-19 18:06:13.000000000","message":"so we just compute it once, save it here, and reference it it in the session","commit_id":"529655a10dac6f8aedaded83f2edc55f608e1b27"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"2eb8a63e4e5f86de327807eefceb660a799595b8","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    return is_windows_linux_subsystem"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"is_windows_linux_subsystem \u003d is_windows_linux_subsystem()"}],"source_content_type":"text/x-python","patch_set":5,"id":"1ac06dbe_358fef24","line":88,"range":{"start_line":88,"start_character":0,"end_line":88,"end_character":26},"updated":"2016-08-19 23:33:04.000000000","message":"so this is somewhat of a nit, but i\u0027m not a fan of defining a function and then overriding the function with the same name.\n\nIf you just remove the def line you can save it on the module directly.","commit_id":"2977ac1e2e7c213f089856b1f78da497e7bbc5d3"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"9615b1e83e2af07c13cc979636db86590a4333f3","unresolved":false,"context_lines":[{"line_number":78,"context_line":"# Detect if running on the Windows Subsystem for Linux\"\"\""},{"line_number":79,"context_line":"try:"},{"line_number":80,"context_line":"    with open(\u0027/proc/version\u0027, \u0027r\u0027) as f:"},{"line_number":81,"context_line":"        is_windows_linux_subsystem \u003d \u0027microsoft\u0027 in f.read().lower()"},{"line_number":82,"context_line":"except IOError:"},{"line_number":83,"context_line":"    is_windows_linux_subsystem \u003d False"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ac06dbe_11a72b50","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":34},"updated":"2016-08-22 13:13:44.000000000","message":"Why can\u0027t we simply check that os.name \u003d\u003d \u0027nt\u0027 ? I guess that will return a value indicating a Linux-based system in the Windows Subsystem for Linux...","commit_id":"aaa5248d6a72e13ce76ba10cef4bdd0574b031fc"},{"author":{"_account_id":21065,"name":"Alexander Oughton","email":"alex@oughton.me.uk","username":"alexoughton"},"change_message_id":"5ad6463ab88984cfa720cf90d2c2c7b63b351b24","unresolved":false,"context_lines":[{"line_number":78,"context_line":"# Detect if running on the Windows Subsystem for Linux\"\"\""},{"line_number":79,"context_line":"try:"},{"line_number":80,"context_line":"    with open(\u0027/proc/version\u0027, \u0027r\u0027) as f:"},{"line_number":81,"context_line":"        is_windows_linux_subsystem \u003d \u0027microsoft\u0027 in f.read().lower()"},{"line_number":82,"context_line":"except IOError:"},{"line_number":83,"context_line":"    is_windows_linux_subsystem \u003d False"}],"source_content_type":"text/x-python","patch_set":6,"id":"1ac06dbe_a739b943","line":81,"range":{"start_line":81,"start_character":8,"end_line":81,"end_character":34},"in_reply_to":"1ac06dbe_11a72b50","updated":"2016-08-22 13:38:40.000000000","message":"os.name is returning \"posix\" on WSL. Microsoft are going for full binary compatibility, so almost everything is returning as it would on a \"real\" Linux system.","commit_id":"aaa5248d6a72e13ce76ba10cef4bdd0574b031fc"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"1018f8f0535e4d218acc98d00f05b6849581996b","unresolved":false,"context_lines":[{"line_number":75,"context_line":"    return now - delta"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":""},{"line_number":78,"context_line":"# Detect if running on the Windows Subsystem for Linux\"\"\""},{"line_number":79,"context_line":"try:"},{"line_number":80,"context_line":"    with open(\u0027/proc/version\u0027, \u0027r\u0027) as f:"},{"line_number":81,"context_line":"        is_windows_linux_subsystem \u003d \u0027microsoft\u0027 in f.read().lower()"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_6bc92c26","line":78,"range":{"start_line":78,"start_character":11,"end_line":78,"end_character":12},"updated":"2016-08-22 22:19:14.000000000","message":"nit: trailing \"\"\"","commit_id":"f623f8bfc0f4465e7f881d5ad5690ef47b826156"}],"keystoneauth1/session.py":[{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"87b63d5921a7466f66d2ddb1c8de94a01810990b","unresolved":false,"context_lines":[{"line_number":893,"context_line":"                    (socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 60)"},{"line_number":894,"context_line":"                ]"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"            #Windows subsystem for Linux does not support this feature"},{"line_number":897,"context_line":"            if hasattr(socket, \u0027TCP_KEEPCNT\u0027) and not (os.path.isfile(\u0027/proc/version\u0027) and \u0027Microsoft\u0027 in open(\u0027/proc/version\u0027).read()):"},{"line_number":898,"context_line":"                socket_options +\u003d ["},{"line_number":899,"context_line":"                    # Set the maximum number of keep-alive probes"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_1fc954ad","line":896,"range":{"start_line":896,"start_character":12,"end_line":896,"end_character":30},"updated":"2016-08-18 20:39:05.000000000","message":"you need a space after the comment, pep8 test will complain","commit_id":"5220a70e80704e4e7b6cfe4a21f3581c6aebbadc"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"87b63d5921a7466f66d2ddb1c8de94a01810990b","unresolved":false,"context_lines":[{"line_number":894,"context_line":"                ]"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"            #Windows subsystem for Linux does not support this feature"},{"line_number":897,"context_line":"            if hasattr(socket, \u0027TCP_KEEPCNT\u0027) and not (os.path.isfile(\u0027/proc/version\u0027) and \u0027Microsoft\u0027 in open(\u0027/proc/version\u0027).read()):"},{"line_number":898,"context_line":"                socket_options +\u003d ["},{"line_number":899,"context_line":"                    # Set the maximum number of keep-alive probes"},{"line_number":900,"context_line":"                    (socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 4),"}],"source_content_type":"text/x-python","patch_set":2,"id":"3ac371cc_bf6120ab","line":897,"range":{"start_line":897,"start_character":12,"end_line":897,"end_character":135},"updated":"2016-08-18 20:39:05.000000000","message":"pep8 style checks have an 80 character limit, gotta bump this one down","commit_id":"5220a70e80704e4e7b6cfe4a21f3581c6aebbadc"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"63bd20e7ca66e15745a913d3da2d25666dcbd875","unresolved":false,"context_lines":[{"line_number":894,"context_line":"                ]"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"            # Windows subsystem for Linux does not support this feature"},{"line_number":897,"context_line":"            if hasattr(socket, \u0027TCP_KEEPCNT\u0027) and not ("},{"line_number":898,"context_line":"                os.path.isfile(\u0027/proc/version\u0027) and"},{"line_number":899,"context_line":"                \u0027Microsoft\u0027 in open(\u0027/proc/version\u0027).read()"},{"line_number":900,"context_line":"            ):"},{"line_number":901,"context_line":"                socket_options +\u003d ["},{"line_number":902,"context_line":"                    # Set the maximum number of keep-alive probes"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_ba4dae9b","line":899,"range":{"start_line":897,"start_character":46,"end_line":899,"end_character":59},"updated":"2016-08-18 21:09:19.000000000","message":"this is a pretty nasty way to check, is there nothing more convenient with standard python lib, or is WSL too new","commit_id":"9361c8e540030b8efc339df1f6fbff398481ee5d"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"ac816510018e66b70d88798fed38fc223b996e4d","unresolved":false,"context_lines":[{"line_number":894,"context_line":"                ]"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"            # Windows subsystem for Linux does not support this feature"},{"line_number":897,"context_line":"            if hasattr(socket, \u0027TCP_KEEPCNT\u0027) and not ("},{"line_number":898,"context_line":"                os.path.isfile(\u0027/proc/version\u0027) and"},{"line_number":899,"context_line":"                \u0027Microsoft\u0027 in open(\u0027/proc/version\u0027).read()"},{"line_number":900,"context_line":"            ):"},{"line_number":901,"context_line":"                socket_options +\u003d ["},{"line_number":902,"context_line":"                    # Set the maximum number of keep-alive probes"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_9d2422c7","line":899,"range":{"start_line":897,"start_character":46,"end_line":899,"end_character":59},"in_reply_to":"3ac371cc_0a9d8d59","updated":"2016-08-19 02:14:31.000000000","message":"++ with defining something we can reference in utils, it\u0027ll save us the effort of recalculating it every time","commit_id":"9361c8e540030b8efc339df1f6fbff398481ee5d"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"dc0dc60dd12a9febdb0fa2038d0ffcfd290b2c76","unresolved":false,"context_lines":[{"line_number":894,"context_line":"                ]"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"            # Windows subsystem for Linux does not support this feature"},{"line_number":897,"context_line":"            if hasattr(socket, \u0027TCP_KEEPCNT\u0027) and not ("},{"line_number":898,"context_line":"                os.path.isfile(\u0027/proc/version\u0027) and"},{"line_number":899,"context_line":"                \u0027Microsoft\u0027 in open(\u0027/proc/version\u0027).read()"},{"line_number":900,"context_line":"            ):"},{"line_number":901,"context_line":"                socket_options +\u003d ["},{"line_number":902,"context_line":"                    # Set the maximum number of keep-alive probes"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_0a9d8d59","line":899,"range":{"start_line":897,"start_character":46,"end_line":899,"end_character":59},"in_reply_to":"3ac371cc_36d0b6c9","updated":"2016-08-18 23:58:25.000000000","message":"ok, that\u0027s reasonable. \n\nFrom an implementation perspective i would like to move this into _utils.py and run it once, either on import or on first request. so like \n\n_utils.py: \n\n    try:\n        with open(\u0027/proc/version\u0027, \u0027r\u0027) as f: \n            is_windows_linux_subsystem \u003d \u0027microsoft\u0027 in f.read().lower()\n    except: \n        is_windows_linux_subsystem \u003d False\n\nthen here: \n \n    if hasattr(socket, \u0027TCP_KEEPCNT\u0027) and not _utils.is_windows_linux_subsystem:\n\nI would expect a contribution like this would be useful in oslo.utils, however ksa doesn\u0027t rely on oslo.utils so we would have to replicate it anyway.","commit_id":"9361c8e540030b8efc339df1f6fbff398481ee5d"},{"author":{"_account_id":21065,"name":"Alexander Oughton","email":"alex@oughton.me.uk","username":"alexoughton"},"change_message_id":"1733d69b33d938c96e8fa7ccd2e327febdad9d3f","unresolved":false,"context_lines":[{"line_number":894,"context_line":"                ]"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"            # Windows subsystem for Linux does not support this feature"},{"line_number":897,"context_line":"            if hasattr(socket, \u0027TCP_KEEPCNT\u0027) and not ("},{"line_number":898,"context_line":"                os.path.isfile(\u0027/proc/version\u0027) and"},{"line_number":899,"context_line":"                \u0027Microsoft\u0027 in open(\u0027/proc/version\u0027).read()"},{"line_number":900,"context_line":"            ):"},{"line_number":901,"context_line":"                socket_options +\u003d ["},{"line_number":902,"context_line":"                    # Set the maximum number of keep-alive probes"}],"source_content_type":"text/x-python","patch_set":3,"id":"1ac06dbe_d4fcb340","line":899,"range":{"start_line":897,"start_character":46,"end_line":899,"end_character":59},"in_reply_to":"3ac371cc_9d2422c7","updated":"2016-08-19 16:07:17.000000000","message":"Yep, I can see how that makes a lot of sense. Working on this now.","commit_id":"9361c8e540030b8efc339df1f6fbff398481ee5d"},{"author":{"_account_id":21065,"name":"Alexander Oughton","email":"alex@oughton.me.uk","username":"alexoughton"},"change_message_id":"9aeadc796d42f0912ebad1ab538d87c822d99612","unresolved":false,"context_lines":[{"line_number":894,"context_line":"                ]"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"            # Windows subsystem for Linux does not support this feature"},{"line_number":897,"context_line":"            if hasattr(socket, \u0027TCP_KEEPCNT\u0027) and not ("},{"line_number":898,"context_line":"                os.path.isfile(\u0027/proc/version\u0027) and"},{"line_number":899,"context_line":"                \u0027Microsoft\u0027 in open(\u0027/proc/version\u0027).read()"},{"line_number":900,"context_line":"            ):"},{"line_number":901,"context_line":"                socket_options +\u003d ["},{"line_number":902,"context_line":"                    # Set the maximum number of keep-alive probes"}],"source_content_type":"text/x-python","patch_set":3,"id":"3ac371cc_36d0b6c9","line":899,"range":{"start_line":897,"start_character":46,"end_line":899,"end_character":59},"in_reply_to":"3ac371cc_ba4dae9b","updated":"2016-08-18 22:28:51.000000000","message":"Too new, I\u0027d say. WSL uses a standard Ubuntu 14.04 image, and does its best to look \"like Linux\". A couple of responses from Microsoft have stated that the only way to detect WSL at this time is to grep /proc. https://github.com/Microsoft/BashOnWindows/issues/423 https://github.com/Microsoft/BashOnWindows/issues/844","commit_id":"9361c8e540030b8efc339df1f6fbff398481ee5d"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"02576624ce8a35242f562ce627ad523af3172700","unresolved":false,"context_lines":[{"line_number":893,"context_line":"                    (socket.IPPROTO_TCP, socket.TCP_KEEPIDLE, 60)"},{"line_number":894,"context_line":"                ]"},{"line_number":895,"context_line":""},{"line_number":896,"context_line":"            # Windows subsystem for Linux does not support this feature"},{"line_number":897,"context_line":"            if (hasattr(socket, \u0027TCP_KEEPCNT\u0027) and"},{"line_number":898,"context_line":"                not utils.is_windows_linux_subsystem"},{"line_number":899,"context_line":"            ):"},{"line_number":900,"context_line":"                socket_options +\u003d ["},{"line_number":901,"context_line":"                    # Set the maximum number of keep-alive probes"},{"line_number":902,"context_line":"                    (socket.IPPROTO_TCP, socket.TCP_KEEPCNT, 4),"}],"source_content_type":"text/x-python","patch_set":4,"id":"1ac06dbe_235ceb24","line":899,"range":{"start_line":896,"start_character":11,"end_line":899,"end_character":14},"updated":"2016-08-19 17:49:01.000000000","message":"Unit tests?","commit_id":"529655a10dac6f8aedaded83f2edc55f608e1b27"}]}
