)]}'
{"cinder/db/sqlalchemy/api.py":[{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"4bfd80f416577ef645564d4da954502511c5ea2c","unresolved":false,"context_lines":[{"line_number":455,"context_line":"        models.ServiceVersion,"},{"line_number":456,"context_line":"        session\u003dsession).\\"},{"line_number":457,"context_line":"        filter_by(service_id\u003dservice_id).\\"},{"line_number":458,"context_line":"        first()"},{"line_number":459,"context_line":"    if not result:"},{"line_number":460,"context_line":"        raise exception.ServiceNotFound(service_id\u003dservice_id)"},{"line_number":461,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_4ecaf86f","line":458,"updated":"2015-07-27 13:00:04.000000000","message":"It\u0027s against convention to use \u0027/\u0027 for line continuation. I suggest using \u0027()\u0027 instead. Thanks!","commit_id":"dd42866be2ef5abd800ac22b89b2c9c5009cb475"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"06781e27b8069b5d4ea49fbd836e710f6527bfba","unresolved":false,"context_lines":[{"line_number":455,"context_line":"        models.ServiceVersion,"},{"line_number":456,"context_line":"        session\u003dsession).\\"},{"line_number":457,"context_line":"        filter_by(service_id\u003dservice_id).\\"},{"line_number":458,"context_line":"        first()"},{"line_number":459,"context_line":"    if not result:"},{"line_number":460,"context_line":"        raise exception.ServiceNotFound(service_id\u003dservice_id)"},{"line_number":461,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_ae637c19","line":458,"in_reply_to":"3a50d1a3_4ecaf86f","updated":"2015-07-27 13:06:42.000000000","message":"If you look at L413, it is used there as well as throughout this code.  You CANNOT use () here as far as I know.","commit_id":"dd42866be2ef5abd800ac22b89b2c9c5009cb475"},{"author":{"_account_id":16708,"name":"Kendall Nelson","display_name":"Kendall (diablo_rojo)","email":"kennelson11@gmail.com","username":"kjnelson"},"change_message_id":"953752745f7c6137545636d6ff28170a5ac9380f","unresolved":false,"context_lines":[{"line_number":455,"context_line":"        models.ServiceVersion,"},{"line_number":456,"context_line":"        session\u003dsession).\\"},{"line_number":457,"context_line":"        filter_by(service_id\u003dservice_id).\\"},{"line_number":458,"context_line":"        first()"},{"line_number":459,"context_line":"    if not result:"},{"line_number":460,"context_line":"        raise exception.ServiceNotFound(service_id\u003dservice_id)"},{"line_number":461,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_d19a1d6e","line":458,"in_reply_to":"3a50d1a3_ae637c19","updated":"2015-07-27 16:05:57.000000000","message":"\"Cannot\" as in it doesn\u0027t work? or \"Cannot\" as in it isn\u0027t allowed? Just looking for some clarification","commit_id":"dd42866be2ef5abd800ac22b89b2c9c5009cb475"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"9261f50835bdb00795e76e19cbbf9c74996e7d08","unresolved":false,"context_lines":[{"line_number":455,"context_line":"        models.ServiceVersion,"},{"line_number":456,"context_line":"        session\u003dsession).\\"},{"line_number":457,"context_line":"        filter_by(service_id\u003dservice_id).\\"},{"line_number":458,"context_line":"        first()"},{"line_number":459,"context_line":"    if not result:"},{"line_number":460,"context_line":"        raise exception.ServiceNotFound(service_id\u003dservice_id)"},{"line_number":461,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"3a50d1a3_9166d527","line":458,"in_reply_to":"3a50d1a3_d19a1d6e","updated":"2015-07-27 16:18:59.000000000","message":"Cannot as in it does not work - foo.(bar) does not work.  You could do:\nresult \u003d (model_query(\n        context,\n        models.ServiceVersion,\n        session\u003dsession).\n        filter_by(service_id\u003dservice_id).\n        first())\n\nBut since the other methods here use the same convention, I am going to stick with consistency.","commit_id":"dd42866be2ef5abd800ac22b89b2c9c5009cb475"}],"cinder/db/sqlalchemy/migrate_repo/versions/051_add_service_version.py":[{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"10b028954d1831bab9ad6315e2c3d70303f52da9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    try:"},{"line_number":46,"context_line":"        service_versions.create()"},{"line_number":47,"context_line":"    except Exception:"},{"line_number":48,"context_line":"        LOG.error(_LE(\"Table |%s| not created!\"), repr(service_versions))"},{"line_number":49,"context_line":"        raise"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_a7e088fb","line":48,"updated":"2015-07-27 10:30:33.000000000","message":"Please remove logging from migration","commit_id":"3167483f63dc85ae8732731d6de891fd6eb39239"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"f28ed25419582e73593bb1da11364443f90cbfd6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"    try:"},{"line_number":46,"context_line":"        service_versions.create()"},{"line_number":47,"context_line":"    except Exception:"},{"line_number":48,"context_line":"        LOG.error(_LE(\"Table |%s| not created!\"), repr(service_versions))"},{"line_number":49,"context_line":"        raise"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_982b66eb","line":48,"in_reply_to":"3a50d1a3_a7e088fb","updated":"2015-07-27 12:28:02.000000000","message":"Done","commit_id":"3167483f63dc85ae8732731d6de891fd6eb39239"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"10b028954d1831bab9ad6315e2c3d70303f52da9","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    try:"},{"line_number":58,"context_line":"        service_versions.drop()"},{"line_number":59,"context_line":"    except Exception:"},{"line_number":60,"context_line":"        LOG.error(_LE(\"serviceversions table not dropped\"))"},{"line_number":61,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_07f29cd2","line":60,"updated":"2015-07-27 10:30:33.000000000","message":"same","commit_id":"3167483f63dc85ae8732731d6de891fd6eb39239"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"f28ed25419582e73593bb1da11364443f90cbfd6","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    try:"},{"line_number":58,"context_line":"        service_versions.drop()"},{"line_number":59,"context_line":"    except Exception:"},{"line_number":60,"context_line":"        LOG.error(_LE(\"serviceversions table not dropped\"))"},{"line_number":61,"context_line":"        raise"}],"source_content_type":"text/x-python","patch_set":1,"id":"3a50d1a3_b82e62f8","line":60,"in_reply_to":"3a50d1a3_07f29cd2","updated":"2015-07-27 12:28:02.000000000","message":"Done","commit_id":"3167483f63dc85ae8732731d6de891fd6eb39239"}],"cinder/db/sqlalchemy/models.py":[{"author":{"_account_id":2243,"name":"John Griffith","email":"john.griffith8@gmail.com","username":"john-griffith"},"change_message_id":"af6984b8221b5371f66eda983420ddb53bfcc015","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    __tablename__ \u003d \u0027service_versions\u0027"},{"line_number":77,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":78,"context_line":"    service_id \u003d Column(String(255))  # service + hostname"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    # Current version is what the service is running now (i.e. minimum)"},{"line_number":81,"context_line":"    # Available version is what the service can support (i.e. max)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_f33659b3","line":78,"updated":"2015-08-11 01:55:56.000000000","message":"I think this need to be more explicit, I\u0027m assuming you mean the form we use already for services \u003chost-name\u003e or \u003chostname\u003e@\u003cbackend-name\u003e","commit_id":"748ef685a8c56ac2c47131e55f932818569a8524"},{"author":{"_account_id":8247,"name":"Thang Pham","email":"thang.g.pham@gmail.com","username":"thang.pham"},"change_message_id":"3a6c08088a5b9922947683abcea8efdd837b884e","unresolved":false,"context_lines":[{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    __tablename__ \u003d \u0027service_versions\u0027"},{"line_number":77,"context_line":"    id \u003d Column(Integer, primary_key\u003dTrue)"},{"line_number":78,"context_line":"    service_id \u003d Column(String(255))  # service + hostname"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    # Current version is what the service is running now (i.e. minimum)"},{"line_number":81,"context_line":"    # Available version is what the service can support (i.e. max)"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a4dcd0f_dacb0952","line":78,"in_reply_to":"1a4dcd0f_f33659b3","updated":"2015-08-11 15:06:02.000000000","message":"Not really.  I mean \"service:hostname\", e.g. cinder-volume:fake_hostname.  According to Duncan (https://etherpad.openstack.org/p/duncant-on-versioned-things), we do not have a single point of truth about what services are running.  Not everything puts an entry in the service table (need to check c-api, c-bak, c-shed).","commit_id":"748ef685a8c56ac2c47131e55f932818569a8524"}]}
