)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Co-Authored-By: Grzegorz Grasza \u003cgrzegorz.grasza@intel.com\u003e"},{"line_number":13,"context_line":"Partially implements: bp removed-as-of-mitaka"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Depends-On: Ibffacd26700c4344e3adfad121dfba811027354d"},{"line_number":16,"context_line":"Change-Id: I963d94bbd188dbb6eba68623a42c5bc3f2289da4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"7a5de9d1_effc5874","line":15,"updated":"2016-02-02 16:53:26.000000000","message":"eventlet is non-voting so no need for this.","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":12,"context_line":"Co-Authored-By: Grzegorz Grasza \u003cgrzegorz.grasza@intel.com\u003e"},{"line_number":13,"context_line":"Partially implements: bp removed-as-of-mitaka"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Depends-On: Ibffacd26700c4344e3adfad121dfba811027354d"},{"line_number":16,"context_line":"Change-Id: I963d94bbd188dbb6eba68623a42c5bc3f2289da4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":19,"id":"5a5ae5dd_e838d53f","line":15,"in_reply_to":"7a5de9d1_effc5874","updated":"2016-02-09 08:27:00.000000000","message":"Done","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"}],"doc/source/configuration.rst":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":934,"context_line":"Configuration"},{"line_number":935,"context_line":"^^^^^^^^^^^^^"},{"line_number":936,"context_line":""},{"line_number":937,"context_line":"To enable SSL modify the ``etc/keystone.conf`` file under the ``[ssl]``"},{"line_number":938,"context_line":"section. The following is an SSL configuration example using the included"},{"line_number":939,"context_line":"sample certificates:"},{"line_number":940,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a5de9d1_4fcb2c1f","line":937,"updated":"2016-02-02 16:53:26.000000000","message":"You don\u0027t do any of this to enable SSL when running keystone under apache / uwsgi / whatever. Apache on a distro typically provides a default certificate that you override for which there\u0027s already plenty of docs.\n\nThis section now describes how to generate a certificate using keystone-manage ssl_setup , which is useless without eventlet support.","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":934,"context_line":"Configuration"},{"line_number":935,"context_line":"^^^^^^^^^^^^^"},{"line_number":936,"context_line":""},{"line_number":937,"context_line":"To enable SSL modify the ``etc/keystone.conf`` file under the ``[ssl]``"},{"line_number":938,"context_line":"section. The following is an SSL configuration example using the included"},{"line_number":939,"context_line":"sample certificates:"},{"line_number":940,"context_line":""}],"source_content_type":"text/x-rst","patch_set":19,"id":"5a5ae5dd_68738516","line":937,"in_reply_to":"7a5de9d1_4fcb2c1f","updated":"2016-02-09 08:27:00.000000000","message":"i think we can clean this up in another patch, once we decide the fate of the ssl_setup command","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":946,"context_line":"    valid_days\u003d3650"},{"line_number":947,"context_line":"    cert_subject\u003d/C\u003dUS/ST\u003dUnset/L\u003dUnset/O\u003dUnset/CN\u003dlocalhost"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"* ``enable``: True enables SSL. Defaults to False."},{"line_number":950,"context_line":"* ``certfile``: Path to Keystone public certificate file."},{"line_number":951,"context_line":"* ``keyfile``: Path to Keystone private certificate file. If the private key is"},{"line_number":952,"context_line":"  included in the certfile, the keyfile may be omitted."}],"source_content_type":"text/x-rst","patch_set":19,"id":"7a5de9d1_cfd71cbe","line":949,"updated":"2016-02-02 16:53:26.000000000","message":"these are gone.","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ed6646467bcdf7faedf6af9189806ea52028a0c0","unresolved":false,"context_lines":[{"line_number":934,"context_line":"Configuration"},{"line_number":935,"context_line":"^^^^^^^^^^^^^"},{"line_number":936,"context_line":""},{"line_number":937,"context_line":"To enable SSL modify the ``etc/keystone.conf`` file under the ``[ssl]``"},{"line_number":938,"context_line":"section. The following is an SSL configuration example using the included"},{"line_number":939,"context_line":"sample certificates:"},{"line_number":940,"context_line":""}],"source_content_type":"text/x-rst","patch_set":28,"id":"dae33548_de3c9de4","line":937,"updated":"2016-02-16 15:37:24.000000000","message":"To enable SSL you should configure Apache to use SSL. None of this applies anymore.","commit_id":"38e0a600fc49a503e4d50d0730dcab5f3332db1b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"28eed0b65cf6653553d167ca771fa3bd784144d2","unresolved":false,"context_lines":[{"line_number":934,"context_line":"Configuration"},{"line_number":935,"context_line":"^^^^^^^^^^^^^"},{"line_number":936,"context_line":""},{"line_number":937,"context_line":"To enable SSL modify the ``etc/keystone.conf`` file under the ``[ssl]``"},{"line_number":938,"context_line":"section. The following is an SSL configuration example using the included"},{"line_number":939,"context_line":"sample certificates:"},{"line_number":940,"context_line":""}],"source_content_type":"text/x-rst","patch_set":28,"id":"1a122d0e_051ef562","line":937,"in_reply_to":"dae33548_de3c9de4","updated":"2016-04-17 04:10:53.000000000","message":"i reworked this a bit, but i\u0027ll propose another patch that rips the SSL generation out","commit_id":"38e0a600fc49a503e4d50d0730dcab5f3332db1b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ed6646467bcdf7faedf6af9189806ea52028a0c0","unresolved":false,"context_lines":[{"line_number":946,"context_line":"    valid_days\u003d3650"},{"line_number":947,"context_line":"    cert_subject\u003d/C\u003dUS/ST\u003dUnset/L\u003dUnset/O\u003dUnset/CN\u003dlocalhost"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"* ``enable``: True enables SSL. Defaults to False."},{"line_number":950,"context_line":"* ``certfile``: Path to Keystone public certificate file."},{"line_number":951,"context_line":"* ``keyfile``: Path to Keystone private certificate file. If the private key is"},{"line_number":952,"context_line":"  included in the certfile, the keyfile may be omitted."}],"source_content_type":"text/x-rst","patch_set":28,"id":"dae33548_7e675125","line":949,"updated":"2016-02-16 15:37:24.000000000","message":"These options are gone.","commit_id":"38e0a600fc49a503e4d50d0730dcab5f3332db1b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"28eed0b65cf6653553d167ca771fa3bd784144d2","unresolved":false,"context_lines":[{"line_number":946,"context_line":"    valid_days\u003d3650"},{"line_number":947,"context_line":"    cert_subject\u003d/C\u003dUS/ST\u003dUnset/L\u003dUnset/O\u003dUnset/CN\u003dlocalhost"},{"line_number":948,"context_line":""},{"line_number":949,"context_line":"* ``enable``: True enables SSL. Defaults to False."},{"line_number":950,"context_line":"* ``certfile``: Path to Keystone public certificate file."},{"line_number":951,"context_line":"* ``keyfile``: Path to Keystone private certificate file. If the private key is"},{"line_number":952,"context_line":"  included in the certfile, the keyfile may be omitted."}],"source_content_type":"text/x-rst","patch_set":28,"id":"1a122d0e_e51ad96d","line":949,"in_reply_to":"dae33548_7e675125","updated":"2016-04-17 04:10:53.000000000","message":"Done","commit_id":"38e0a600fc49a503e4d50d0730dcab5f3332db1b"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ed6646467bcdf7faedf6af9189806ea52028a0c0","unresolved":false,"context_lines":[{"line_number":973,"context_line":""},{"line_number":974,"context_line":".. code-block:: bash"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"    $ keystone-manage ssl_setup"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"This will create a private key, a public key and a certificate that will be"},{"line_number":979,"context_line":"used to encrypt communications with keystone. In the event that a Certificate"}],"source_content_type":"text/x-rst","patch_set":28,"id":"dae33548_89baddbe","line":976,"updated":"2016-02-16 15:37:24.000000000","message":"Is this change supposed to be getting rid of this?","commit_id":"38e0a600fc49a503e4d50d0730dcab5f3332db1b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"28eed0b65cf6653553d167ca771fa3bd784144d2","unresolved":false,"context_lines":[{"line_number":973,"context_line":""},{"line_number":974,"context_line":".. code-block:: bash"},{"line_number":975,"context_line":""},{"line_number":976,"context_line":"    $ keystone-manage ssl_setup"},{"line_number":977,"context_line":""},{"line_number":978,"context_line":"This will create a private key, a public key and a certificate that will be"},{"line_number":979,"context_line":"used to encrypt communications with keystone. In the event that a Certificate"}],"source_content_type":"text/x-rst","patch_set":28,"id":"1a122d0e_45262dbb","line":976,"in_reply_to":"dae33548_89baddbe","updated":"2016-04-17 04:10:53.000000000","message":"refer to above","commit_id":"38e0a600fc49a503e4d50d0730dcab5f3332db1b"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"9b64e09f14502c1b148fd17aaf3d70b680a56746","unresolved":false,"context_lines":[{"line_number":22,"context_line":"   :maxdepth: 1"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"   man/keystone-manage"},{"line_number":25,"context_line":"   man/keystone-all"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Once Keystone is installed, it is configured via a primary configuration file"},{"line_number":28,"context_line":"(``etc/keystone.conf``), a PasteDeploy configuration file"}],"source_content_type":"text/x-rst","patch_set":33,"id":"1a122d0e_0087d5d7","line":25,"range":{"start_line":25,"start_character":3,"end_line":25,"end_character":19},"updated":"2016-04-18 17:37:59.000000000","message":"is this still needed?","commit_id":"99f7c83d8dd4848848870621ffec0cbff8d3a612"}],"etc/default_catalog.templates":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# config for templated.Catalog, using camelCase because I don\u0027t want to do"},{"line_number":2,"context_line":"# translations for keystone compat"},{"line_number":3,"context_line":"catalog.RegionOne.identity.publicURL \u003d http://localhost:5000/v2.0"},{"line_number":4,"context_line":"catalog.RegionOne.identity.adminURL \u003d http://localhost:35357/v2.0"},{"line_number":5,"context_line":"catalog.RegionOne.identity.internalURL \u003d http://localhost:35357/v2.0"},{"line_number":6,"context_line":"catalog.RegionOne.identity.name \u003d Identity Service"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"7a5de9d1_ef10d85b","line":3,"updated":"2016-02-02 16:53:26.000000000","message":"Don\u0027t we still need to support this? Otherwise this change isn\u0027t backwards compatible.","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# config for templated.Catalog, using camelCase because I don\u0027t want to do"},{"line_number":2,"context_line":"# translations for keystone compat"},{"line_number":3,"context_line":"catalog.RegionOne.identity.publicURL \u003d http://localhost:5000/v2.0"},{"line_number":4,"context_line":"catalog.RegionOne.identity.adminURL \u003d http://localhost:35357/v2.0"},{"line_number":5,"context_line":"catalog.RegionOne.identity.internalURL \u003d http://localhost:35357/v2.0"},{"line_number":6,"context_line":"catalog.RegionOne.identity.name \u003d Identity Service"}],"source_content_type":"application/octet-stream","patch_set":19,"id":"5a5ae5dd_681ce5c1","line":3,"in_reply_to":"7a5de9d1_ef10d85b","updated":"2016-02-09 08:27:00.000000000","message":"i\u0027ll revert this change","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"}],"keystone/catalog/backends/sql.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":283,"context_line":"                  empty dict."},{"line_number":284,"context_line":""},{"line_number":285,"context_line":"        \"\"\""},{"line_number":286,"context_line":"        substitutions \u003d dict(itertools.chain(CONF.items()))"},{"line_number":287,"context_line":"        substitutions.update({\u0027user_id\u0027: user_id})"},{"line_number":288,"context_line":"        silent_keyerror_failures \u003d []"},{"line_number":289,"context_line":"        if tenant_id:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_44eeccb5","line":286,"updated":"2015-11-30 14:58:38.000000000","message":"no need for itertools.chain since there\u0027s only 1.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":339,"context_line":"        :returns: A list representing the service catalog or an empty list"},{"line_number":340,"context_line":""},{"line_number":341,"context_line":"        \"\"\""},{"line_number":342,"context_line":"        d \u003d dict(itertools.chain(CONF.items()))"},{"line_number":343,"context_line":"        d.update({\u0027user_id\u0027: user_id})"},{"line_number":344,"context_line":"        silent_keyerror_failures \u003d []"},{"line_number":345,"context_line":"        if tenant_id:"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_e477c006","line":342,"updated":"2015-11-30 14:58:38.000000000","message":"no need for itertools.chain since there\u0027s only 1. (there\u0027s a few of these, I won\u0027t comment on every one.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c31bb065139184d26c5b61882ed444d5a5db1382","unresolved":false,"context_lines":[{"line_number":276,"context_line":""},{"line_number":277,"context_line":"        \"\"\""},{"line_number":278,"context_line":"        substitutions \u003d dict(CONF.items())"},{"line_number":279,"context_line":"        substitutions.update(core.WHITELISTED_PROPERTIES_DEFAULTS)"},{"line_number":280,"context_line":"        substitutions.update({\u0027user_id\u0027: user_id})"},{"line_number":281,"context_line":"        silent_keyerror_failures \u003d []"},{"line_number":282,"context_line":"        if tenant_id:"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_2969f7be","line":279,"updated":"2016-02-10 15:03:36.000000000","message":"this needs to be the configured values not some defaults.","commit_id":"bc64a130fb43a6eb6cca6471e530f9297f8aec30"}],"keystone/catalog/core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":38,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":39,"context_line":"WHITELISTED_PROPERTIES \u003d ["},{"line_number":40,"context_line":"    \u0027tenant_id\u0027, \u0027user_id\u0027,"},{"line_number":41,"context_line":"    \u0027compute_host\u0027,"},{"line_number":42,"context_line":"    \u0027public_endpoint\u0027, \u0027admin_endpoint\u0027, ]"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"# This is a general cache region for catalog administration (CRUD operations)."}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a458d88b","line":41,"updated":"2015-11-30 14:58:38.000000000","message":"didn\u0027t we get rid of compute_host? I thought it was deprecated.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":37,"context_line":"CONF \u003d cfg.CONF"},{"line_number":38,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":39,"context_line":"WHITELISTED_PROPERTIES \u003d ["},{"line_number":40,"context_line":"    \u0027tenant_id\u0027, \u0027user_id\u0027, \u0027public_endpoint\u0027, \u0027admin_endpoint\u0027,"},{"line_number":41,"context_line":"]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# This is a general cache region for catalog administration (CRUD operations)."}],"source_content_type":"text/x-python","patch_set":19,"id":"7a5de9d1_ea1e865e","line":40,"updated":"2016-02-02 16:53:26.000000000","message":"removing compute_port is not backwards compatible.","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":37,"context_line":"CONF \u003d cfg.CONF"},{"line_number":38,"context_line":"LOG \u003d log.getLogger(__name__)"},{"line_number":39,"context_line":"WHITELISTED_PROPERTIES \u003d ["},{"line_number":40,"context_line":"    \u0027tenant_id\u0027, \u0027user_id\u0027, \u0027public_endpoint\u0027, \u0027admin_endpoint\u0027,"},{"line_number":41,"context_line":"]"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"# This is a general cache region for catalog administration (CRUD operations)."}],"source_content_type":"text/x-python","patch_set":19,"id":"5a5ae5dd_88da81e8","line":40,"in_reply_to":"7a5de9d1_ea1e865e","updated":"2016-02-09 08:27:00.000000000","message":"i undid this change","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c31bb065139184d26c5b61882ed444d5a5db1382","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    \u0027compute_host\u0027: \u00270.0.0.0\u0027,      # nosec : same reason as above."},{"line_number":53,"context_line":"    \u0027admin_port\u0027: 35357,"},{"line_number":54,"context_line":"    \u0027public_port\u0027: 5000,"},{"line_number":55,"context_line":"    \u0027public_endpoint\u0027: None,"},{"line_number":56,"context_line":"    \u0027admin_endpoint\u0027: None"},{"line_number":57,"context_line":"}"},{"line_number":58,"context_line":""}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_0953dbe2","line":55,"updated":"2016-02-10 15:03:36.000000000","message":"public_endpoint and admin_endpoint need to be configurable.","commit_id":"bc64a130fb43a6eb6cca6471e530f9297f8aec30"}],"keystone/common/config.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":312,"context_line":"                        \u0027global and token caching are enabled.\u0027,"},{"line_number":313,"context_line":"                   deprecated_opts\u003d[cfg.DeprecatedOpt("},{"line_number":314,"context_line":"                       \u0027revocation_cache_time\u0027, group\u003d\u0027token\u0027)]),"},{"line_number":315,"context_line":"    ],"},{"line_number":316,"context_line":"    \u0027ssl\u0027: ["},{"line_number":317,"context_line":"        cfg.StrOpt(\u0027ca_key\u0027,"},{"line_number":318,"context_line":"                   default\u003d\u0027/etc/keystone/ssl/private/cakey.pem\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_a4b45882","line":315,"updated":"2015-11-30 14:58:38.000000000","message":"should be able to get rid of this whole section.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                   default\u003d\u0027/C\u003dUS/ST\u003dUnset/L\u003dUnset/O\u003dUnset/CN\u003dlocalhost\u0027,"},{"line_number":328,"context_line":"                   help\u003d\u0027SSL certificate subject (auto generated \u0027"},{"line_number":329,"context_line":"                        \u0027certificate).\u0027),"},{"line_number":330,"context_line":"        cfg.StrOpt(\u0027certfile\u0027,"},{"line_number":331,"context_line":"                   default\u003d\u0027/etc/keystone/ssl/certs/keystone.pem\u0027,"},{"line_number":332,"context_line":"                   deprecated_name\u003d\u0027certfile\u0027, deprecated_group\u003d\u0027ssl\u0027,"},{"line_number":333,"context_line":"                   deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_44e1ec99","line":330,"updated":"2015-11-30 14:58:38.000000000","message":"what\u0027s up with this?","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"b1fd00a610cf19b3fcfb6b012fd807ebc509224d","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                   default\u003d\u0027/C\u003dUS/ST\u003dUnset/L\u003dUnset/O\u003dUnset/CN\u003dlocalhost\u0027,"},{"line_number":328,"context_line":"                   help\u003d\u0027SSL certificate subject (auto generated \u0027"},{"line_number":329,"context_line":"                        \u0027certificate).\u0027),"},{"line_number":330,"context_line":"        cfg.StrOpt(\u0027certfile\u0027,"},{"line_number":331,"context_line":"                   default\u003d\u0027/etc/keystone/ssl/certs/keystone.pem\u0027,"},{"line_number":332,"context_line":"                   deprecated_name\u003d\u0027certfile\u0027, deprecated_group\u003d\u0027ssl\u0027,"},{"line_number":333,"context_line":"                   deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_90e62015","line":330,"in_reply_to":"9a8ffd7b_44e1ec99","updated":"2015-11-30 18:34:47.000000000","message":"yeah, not sure why these were added back, we shouldn\u0027t need these","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"940c388932a3bd32cf2edb3eaeb3500500bd63ec","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                   default\u003d\u0027/C\u003dUS/ST\u003dUnset/L\u003dUnset/O\u003dUnset/CN\u003dlocalhost\u0027,"},{"line_number":328,"context_line":"                   help\u003d\u0027SSL certificate subject (auto generated \u0027"},{"line_number":329,"context_line":"                        \u0027certificate).\u0027),"},{"line_number":330,"context_line":"        cfg.StrOpt(\u0027certfile\u0027,"},{"line_number":331,"context_line":"                   default\u003d\u0027/etc/keystone/ssl/certs/keystone.pem\u0027,"},{"line_number":332,"context_line":"                   deprecated_name\u003d\u0027certfile\u0027, deprecated_group\u003d\u0027ssl\u0027,"},{"line_number":333,"context_line":"                   deprecated_for_removal\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_d5755132","line":330,"in_reply_to":"9a8ffd7b_90e62015","updated":"2015-12-01 12:03:20.000000000","message":"ok, I\u0027m removing the ssl generation code","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                        \u0027certificate).\u0027),"},{"line_number":330,"context_line":"        cfg.StrOpt(\u0027certfile\u0027,"},{"line_number":331,"context_line":"                   default\u003d\u0027/etc/keystone/ssl/certs/keystone.pem\u0027,"},{"line_number":332,"context_line":"                   deprecated_name\u003d\u0027certfile\u0027, deprecated_group\u003d\u0027ssl\u0027,"},{"line_number":333,"context_line":"                   deprecated_for_removal\u003dTrue,"},{"line_number":334,"context_line":"                   help\u003d\u0027Path of the certfile for SSL. For non-production \u0027"},{"line_number":335,"context_line":"                   \u0027environments, you may be interested in using \u0027"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_44f80c4a","line":332,"updated":"2015-11-30 14:58:38.000000000","message":"this obviously doesn\u0027t apply.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                   deprecated_opts\u003d[cfg.DeprecatedOpt("},{"line_number":330,"context_line":"                       \u0027revocation_cache_time\u0027, group\u003d\u0027token\u0027)]),"},{"line_number":331,"context_line":"    ],"},{"line_number":332,"context_line":"    \u0027ssl\u0027: ["},{"line_number":333,"context_line":"        cfg.StrOpt(\u0027ca_key\u0027,"},{"line_number":334,"context_line":"                   default\u003d\u0027/etc/keystone/ssl/private/cakey.pem\u0027,"},{"line_number":335,"context_line":"                   help\u003d\u0027Path of the CA key file for SSL.\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"7a5de9d1_6a4a9657","side":"PARENT","line":332,"updated":"2016-02-02 16:53:26.000000000","message":"aren\u0027t these all used by keystone-manage ssl_setup?","commit_id":"543707bbac1063aaa6dd14a7a57e1aab9123dec3"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":329,"context_line":"                   deprecated_opts\u003d[cfg.DeprecatedOpt("},{"line_number":330,"context_line":"                       \u0027revocation_cache_time\u0027, group\u003d\u0027token\u0027)]),"},{"line_number":331,"context_line":"    ],"},{"line_number":332,"context_line":"    \u0027ssl\u0027: ["},{"line_number":333,"context_line":"        cfg.StrOpt(\u0027ca_key\u0027,"},{"line_number":334,"context_line":"                   default\u003d\u0027/etc/keystone/ssl/private/cakey.pem\u0027,"},{"line_number":335,"context_line":"                   help\u003d\u0027Path of the CA key file for SSL.\u0027),"}],"source_content_type":"text/x-python","patch_set":19,"id":"5a5ae5dd_8801213c","side":"PARENT","line":332,"in_reply_to":"7a5de9d1_6a4a9657","updated":"2016-02-09 08:27:00.000000000","message":"i reverted this change","commit_id":"543707bbac1063aaa6dd14a7a57e1aab9123dec3"},{"author":{"_account_id":5707,"name":"Henry Nash","email":"henryn@linux.vnet.ibm.com","username":"henry-nash"},"change_message_id":"9e041ffe91cbcec67c6efd5682bede39533a1ad0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"_DEPRECATE_EVENTLET_MSG \u003d (\u0027Support for running keystone under eventlet has \u0027"},{"line_number":53,"context_line":"                           \u0027been removed in the N release. These options \u0027"},{"line_number":54,"context_line":"                           \u0027remain for backwards compatibility because they \u0027"},{"line_number":55,"context_line":"                           \u0027are use for URL substitutions.\u0027)"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"FILE_OPTIONS \u003d {"},{"line_number":58,"context_line":"    None: ["}],"source_content_type":"text/x-python","patch_set":33,"id":"1a122d0e_00a35550","line":55,"range":{"start_line":55,"start_character":32,"end_line":55,"end_character":35},"updated":"2016-04-18 17:51:30.000000000","message":"nit: s/use/used/","commit_id":"99f7c83d8dd4848848870621ffec0cbff8d3a612"}],"keystone/common/environment/eventlet_server.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":190,"context_line":"        logger \u003d log.getLogger(\u0027eventlet.wsgi.server\u0027)"},{"line_number":191,"context_line":""},{"line_number":192,"context_line":"        try:"},{"line_number":193,"context_line":"            eventlet.wsgi.server("},{"line_number":194,"context_line":"                socket, application, log\u003dEventletFilteringLogger(logger),"},{"line_number":195,"context_line":"                debug\u003dFalse, keepalive\u003dNone, socket_timeout\u003dNone)"},{"line_number":196,"context_line":"        except greenlet.GreenletExit:  # nosec"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_847354e7","line":193,"updated":"2015-11-30 14:58:38.000000000","message":"removing eventlet support means removing this.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"}],"keystone/common/openssl.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        try:"},{"line_number":66,"context_line":"            # OpenSSL 1.0 and newer support default_md \u003d default,"},{"line_number":67,"context_line":"            # older versions do not"},{"line_number":68,"context_line":"            openssl_ver \u003d subprocess.Popen(  # nosec"},{"line_number":69,"context_line":"                [\u0027openssl\u0027, \u0027version\u0027],"},{"line_number":70,"context_line":"                stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":71,"context_line":"            if \"OpenSSL 0.\" in openssl_ver:"}],"source_content_type":"text/x-python","patch_set":19,"id":"7a5de9d1_2a36deb4","line":68,"updated":"2016-02-02 16:53:26.000000000","message":"use of nosec requires an explanation why this is safe. This applies to the other uses of # nosec.\n\nalso, why is this changing from check_output to Popen?","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        try:"},{"line_number":66,"context_line":"            # OpenSSL 1.0 and newer support default_md \u003d default,"},{"line_number":67,"context_line":"            # older versions do not"},{"line_number":68,"context_line":"            openssl_ver \u003d subprocess.Popen(  # nosec"},{"line_number":69,"context_line":"                [\u0027openssl\u0027, \u0027version\u0027],"},{"line_number":70,"context_line":"                stdout\u003dsubprocess.PIPE).stdout.read()"},{"line_number":71,"context_line":"            if \"OpenSSL 0.\" in openssl_ver:"}],"source_content_type":"text/x-python","patch_set":19,"id":"5a5ae5dd_6854e520","line":68,"in_reply_to":"7a5de9d1_2a36deb4","updated":"2016-02-09 08:27:00.000000000","message":"Done","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"ed6646467bcdf7faedf6af9189806ea52028a0c0","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def __init__(self, keystone_user, keystone_group, rebuild\u003dFalse):"},{"line_number":252,"context_line":"        super(ConfigurePKI, self).__init__(CONF.signing, keystone_user,"},{"line_number":253,"context_line":"                                           keystone_group, rebuild\u003drebuild)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"BaseCertificateConfigure.sslconfig \u003d \"\"\""},{"line_number":257,"context_line":"# OpenSSL configuration file."}],"source_content_type":"text/x-python","patch_set":28,"id":"dae33548_4969f58a","line":254,"updated":"2016-02-16 15:37:24.000000000","message":"Did we get rid of keystone-manage ssl_setup? If so there\u0027s a bunch of other things that should be removed in the config docs...","commit_id":"38e0a600fc49a503e4d50d0730dcab5f3332db1b"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"28eed0b65cf6653553d167ca771fa3bd784144d2","unresolved":false,"context_lines":[{"line_number":251,"context_line":"    def __init__(self, keystone_user, keystone_group, rebuild\u003dFalse):"},{"line_number":252,"context_line":"        super(ConfigurePKI, self).__init__(CONF.signing, keystone_user,"},{"line_number":253,"context_line":"                                           keystone_group, rebuild\u003drebuild)"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":""},{"line_number":256,"context_line":"BaseCertificateConfigure.sslconfig \u003d \"\"\""},{"line_number":257,"context_line":"# OpenSSL configuration file."}],"source_content_type":"text/x-python","patch_set":28,"id":"1a122d0e_aa09ce33","line":254,"in_reply_to":"dae33548_4969f58a","updated":"2016-04-17 04:10:53.000000000","message":"we can get rid of that in another patch, may have to deprecate, but it\u0027s pointless without eventlet... so maybe just remove it","commit_id":"38e0a600fc49a503e4d50d0730dcab5f3332db1b"}],"keystone/common/wsgi.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"c31bb065139184d26c5b61882ed444d5a5db1382","unresolved":false,"context_lines":[{"line_number":817,"context_line":"            if context:"},{"line_number":818,"context_line":"                url \u003d Application.base_url(context, \u0027public\u0027)"},{"line_number":819,"context_line":"            else:"},{"line_number":820,"context_line":"                url \u003d \u0027http://localhost\u0027"},{"line_number":821,"context_line":"        else:"},{"line_number":822,"context_line":"            substitutions \u003d dict(CONF.items())"},{"line_number":823,"context_line":"            url \u003d url % substitutions"}],"source_content_type":"text/x-python","patch_set":24,"id":"3a57f1b5_699fef03","line":820,"updated":"2016-02-10 15:03:36.000000000","message":"This isn\u0027t going to result in a valid endpoint now, since keystone doesn\u0027t listen on http://localhost","commit_id":"bc64a130fb43a6eb6cca6471e530f9297f8aec30"}],"keystone/tests/unit/catalog/test_core.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class FormatUrlTests(unit.BaseTestCase):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def test_successful_formatting(self):"},{"line_number":26,"context_line":"        url_template \u003d (\u0027http://server:9090/$(tenant_id)s/$(user_id)s\u0027)"},{"line_number":27,"context_line":"        values \u003d {\u0027tenant_id\u0027: \u0027A\u0027, \u0027user_id\u0027: \u0027B\u0027}"},{"line_number":28,"context_line":"        actual_url \u003d core.format_url(url_template, values)"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"7a5de9d1_6a75b630","line":26,"updated":"2016-02-02 16:53:26.000000000","message":"having to change the test is showing that this patch isn\u0027t backwards-compatible.","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":23,"context_line":"class FormatUrlTests(unit.BaseTestCase):"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    def test_successful_formatting(self):"},{"line_number":26,"context_line":"        url_template \u003d (\u0027http://server:9090/$(tenant_id)s/$(user_id)s\u0027)"},{"line_number":27,"context_line":"        values \u003d {\u0027tenant_id\u0027: \u0027A\u0027, \u0027user_id\u0027: \u0027B\u0027}"},{"line_number":28,"context_line":"        actual_url \u003d core.format_url(url_template, values)"},{"line_number":29,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"5a5ae5dd_bc122257","line":26,"in_reply_to":"7a5de9d1_6a75b630","updated":"2016-02-09 08:27:00.000000000","message":"reverted","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"}],"keystone/tests/unit/ksfixtures/appserver.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":70,"context_line":""},{"line_number":71,"context_line":"    def tearDown(self):"},{"line_number":72,"context_line":"        super(AppServer, self).tearDown()"},{"line_number":73,"context_line":"        cms.set_subprocess(subprocess)"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":"    def _setup_SSL_if_requested(self):"},{"line_number":76,"context_line":"        # TODO(dstanek): fix environment.Server to take a SSLOpts instance"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_b8079817","line":73,"updated":"2015-11-30 14:58:38.000000000","message":"use self.addCleanup() rather than overriding tearDown.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"}],"keystone/tests/unit/test_cert_setup.py":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        self.assertTrue(os.path.exists(CONF.signing.ca_certs))"},{"line_number":92,"context_line":"        self.assertTrue(os.path.exists(CONF.signing.keyfile))"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    def test_create_ssl_certs(self, rebuild\u003dFalse):"},{"line_number":95,"context_line":"        ssl \u003d openssl.ConfigureSSL(None, None, rebuild\u003drebuild)"},{"line_number":96,"context_line":"        ssl.run()"},{"line_number":97,"context_line":"        self.assertTrue(os.path.exists(CONF.ssl.ca_certs))"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a8ffd7b_58478c4b","line":94,"updated":"2015-11-30 14:58:38.000000000","message":"with the removal of eventlet there\u0027s no need to support creating ssl certs anymore.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"}],"releasenotes/notes/eventlet-removal-50e168e35cad83a0.yaml":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Eventlet, along with keystone-all command is removed."},{"line_number":4,"context_line":"upgrade:"},{"line_number":5,"context_line":"  - Removed ssl, eventlet_server and eventlet_server_ssl configuration"},{"line_number":6,"context_line":"    sections. Variables present in those sections, like public_port or"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"7a5de9d1_aa25ee0a","line":3,"range":{"start_line":3,"start_character":20,"end_line":3,"end_character":45},"updated":"2016-02-02 16:53:26.000000000","message":"change to \"with the keystone-all command\"","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"prelude: \u003e"},{"line_number":3,"context_line":"    Eventlet, along with keystone-all command is removed."},{"line_number":4,"context_line":"upgrade:"},{"line_number":5,"context_line":"  - Removed ssl, eventlet_server and eventlet_server_ssl configuration"},{"line_number":6,"context_line":"    sections. Variables present in those sections, like public_port or"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"5a5ae5dd_3c81524e","line":3,"range":{"start_line":3,"start_character":20,"end_line":3,"end_character":45},"in_reply_to":"7a5de9d1_aa25ee0a","updated":"2016-02-09 08:27:00.000000000","message":"Done","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"}],"test-requirements.txt":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"301201f1e6c99e8bd079d2e4d38f8b91967fb21b","unresolved":false,"context_lines":[{"line_number":29,"context_line":"testrepository\u003e\u003d0.0.18"},{"line_number":30,"context_line":"testtools\u003e\u003d1.4.0"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# eventlet still needed for keystoneclient tests"},{"line_number":33,"context_line":"eventlet\u003e\u003d0.17.4"},{"line_number":34,"context_line":"greenlet\u003e\u003d0.3.2"},{"line_number":35,"context_line":""}],"source_content_type":"text/plain","patch_set":4,"id":"9a8ffd7b_b8247860","line":32,"updated":"2015-11-30 14:58:38.000000000","message":"let\u0027s just get rid of the keystoneclient tests.","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"},{"author":{"_account_id":14250,"name":"Grzegorz Grasza","email":"xek@redhat.com","username":"xek"},"change_message_id":"940c388932a3bd32cf2edb3eaeb3500500bd63ec","unresolved":false,"context_lines":[{"line_number":29,"context_line":"testrepository\u003e\u003d0.0.18"},{"line_number":30,"context_line":"testtools\u003e\u003d1.4.0"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"# eventlet still needed for keystoneclient tests"},{"line_number":33,"context_line":"eventlet\u003e\u003d0.17.4"},{"line_number":34,"context_line":"greenlet\u003e\u003d0.3.2"},{"line_number":35,"context_line":""}],"source_content_type":"text/plain","patch_set":4,"id":"9a8ffd7b_356a9d1b","line":32,"in_reply_to":"9a8ffd7b_b8247860","updated":"2015-12-01 12:03:20.000000000","message":"ok","commit_id":"406ffed15c03241cd8a7587dc48ec2766ef11749"}],"tox.ini":[{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d2e1a5ee91157a351e9cce569b0e86a60b51d838","unresolved":false,"context_lines":[{"line_number":54,"context_line":"      keystone/tests/unit/test_sql_livetest.py \\"},{"line_number":55,"context_line":"      keystone/tests/unit/test_sql_upgrade.py \\"},{"line_number":56,"context_line":"      keystone/tests/unit/tests/test_core.py \\"},{"line_number":57,"context_line":"      keystone/tests/unit/tests/test_utils.py \\"},{"line_number":58,"context_line":"      keystone/tests/unit/test_token_bind.py \\"},{"line_number":59,"context_line":"      keystone/tests/unit/test_token_provider.py \\"},{"line_number":60,"context_line":"      keystone/tests/unit/test_url_middleware.py \\"}],"source_content_type":"text/x-properties","patch_set":19,"id":"7a5de9d1_0ad522b8","line":57,"updated":"2016-02-02 16:53:26.000000000","message":"no need to add these since the directory is already included below.","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"},{"author":{"_account_id":6482,"name":"Steve Martinelli","email":"s.martinelli@gmail.com","username":"stevemar"},"change_message_id":"543e05fdb4d1adaab450ebcff9e9c370c0d886a9","unresolved":false,"context_lines":[{"line_number":54,"context_line":"      keystone/tests/unit/test_sql_livetest.py \\"},{"line_number":55,"context_line":"      keystone/tests/unit/test_sql_upgrade.py \\"},{"line_number":56,"context_line":"      keystone/tests/unit/tests/test_core.py \\"},{"line_number":57,"context_line":"      keystone/tests/unit/tests/test_utils.py \\"},{"line_number":58,"context_line":"      keystone/tests/unit/test_token_bind.py \\"},{"line_number":59,"context_line":"      keystone/tests/unit/test_token_provider.py \\"},{"line_number":60,"context_line":"      keystone/tests/unit/test_url_middleware.py \\"}],"source_content_type":"text/x-properties","patch_set":19,"id":"5a5ae5dd_9c8c0681","line":57,"in_reply_to":"7a5de9d1_0ad522b8","updated":"2016-02-09 08:27:00.000000000","message":"Done","commit_id":"fdd2d48e21a4539f390095fef98a187451889c2e"}]}
