)]}'
{"nova/conf/database.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"92bb96a74a21bdd68caf6fc39c6143adaf66966e","unresolved":false,"context_lines":[{"line_number":98,"context_line":"# NOTE(cdent): See the note above on api_db_opts. The same issues"},{"line_number":99,"context_line":"# apply here."},{"line_number":100,"context_line":"placement_db_opts \u003d ["},{"line_number":101,"context_line":"    cfg.StrOpt(\u0027connection\u0027,"},{"line_number":102,"context_line":"               default\u003dNone,"},{"line_number":103,"context_line":"               help\u003d\u0027The SQLAlchemy connection string to use to connect to \u0027"},{"line_number":104,"context_line":"                    \u0027the Placement API database. If None, the API database is \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_f87439fe","line":101,"updated":"2016-08-08 22:09:06.000000000","message":"Should any new options added to Nova conform to the config option guidelines [0]? I know the rest of this doc hasn\u0027t been updated yet, but...\n\n[0] https://wiki.openstack.org/wiki/ConfigOptionsConsistency","commit_id":"b8de3b9207ea19c6458f45dad6e9f5127e765cdd"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"3fc1b47245a6b10ea6f2d1d11ab832e743ac997f","unresolved":false,"context_lines":[{"line_number":98,"context_line":"# NOTE(cdent): See the note above on api_db_opts. The same issues"},{"line_number":99,"context_line":"# apply here."},{"line_number":100,"context_line":"placement_db_opts \u003d ["},{"line_number":101,"context_line":"    cfg.StrOpt(\u0027connection\u0027,"},{"line_number":102,"context_line":"               default\u003dNone,"},{"line_number":103,"context_line":"               help\u003d\u0027The SQLAlchemy connection string to use to connect to \u0027"},{"line_number":104,"context_line":"                    \u0027the Placement API database. If None, the API database is \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_a48b961d","line":101,"in_reply_to":"9ad45d7e_323c16e2","updated":"2016-08-09 14:32:54.000000000","message":"@Chris: The standard is also described at [1] (needs an update though). For these DB options I\u0027d recommend to rebase onto [2] and call the \"enrich_help_text\" method for the placement_db_opts. You\u0027ll see in that change how I\u0027ve done it.\n\n[1] http://docs.openstack.org/developer/nova/code-review.html#config-options\n[2] https://review.openstack.org/#/c/320043/2/nova/conf/database.py@110","commit_id":"b8de3b9207ea19c6458f45dad6e9f5127e765cdd"},{"author":{"_account_id":6849,"name":"Roman Podoliaka","email":"roman.podoliaka@gmail.com","username":"rpodolyaka"},"change_message_id":"166954aac4d0eaec8fca2db14834cd8865f6850b","unresolved":false,"context_lines":[{"line_number":98,"context_line":"# NOTE(cdent): See the note above on api_db_opts. The same issues"},{"line_number":99,"context_line":"# apply here."},{"line_number":100,"context_line":"placement_db_opts \u003d ["},{"line_number":101,"context_line":"    cfg.StrOpt(\u0027connection\u0027,"},{"line_number":102,"context_line":"               default\u003dNone,"},{"line_number":103,"context_line":"               help\u003d\u0027The SQLAlchemy connection string to use to connect to \u0027"},{"line_number":104,"context_line":"                    \u0027the Placement API database. If None, the API database is \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_5b739115","line":101,"in_reply_to":"9ad45d7e_a48b961d","updated":"2016-08-09 15:43:45.000000000","message":"Done","commit_id":"b8de3b9207ea19c6458f45dad6e9f5127e765cdd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7e8e7648efca454ce25522ab523bf8724289e396","unresolved":false,"context_lines":[{"line_number":98,"context_line":"# NOTE(cdent): See the note above on api_db_opts. The same issues"},{"line_number":99,"context_line":"# apply here."},{"line_number":100,"context_line":"placement_db_opts \u003d ["},{"line_number":101,"context_line":"    cfg.StrOpt(\u0027connection\u0027,"},{"line_number":102,"context_line":"               default\u003dNone,"},{"line_number":103,"context_line":"               help\u003d\u0027The SQLAlchemy connection string to use to connect to \u0027"},{"line_number":104,"context_line":"                    \u0027the Placement API database. If None, the API database is \u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_323c16e2","line":101,"in_reply_to":"9ad45d7e_f87439fe","updated":"2016-08-09 10:11:50.000000000","message":"I don\u0027t really know what the standards are here (can I still claim \"I\u0027m new here!\"?). Can you be more specific about what you want?\n\nOr maybe Roman knows and can make this fix?","commit_id":"b8de3b9207ea19c6458f45dad6e9f5127e765cdd"},{"author":{"_account_id":11303,"name":"Markus Zoeller (markus_z)","email":"mzoeller@linux.vnet.ibm.com","username":"mzoeller"},"change_message_id":"92e868d85acd33f5acce532102482f04d66764a0","unresolved":false,"context_lines":[{"line_number":107,"context_line":"]  # noqa"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":""},{"line_number":110,"context_line":"def enrich_help_text(alt_db_opts):"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def get_db_opts():"},{"line_number":113,"context_line":"        for group_name, db_opts in oslo_db_options.list_opts():"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad45d7e_dcbab609","line":110,"range":{"start_line":110,"start_character":4,"end_line":110,"end_character":20},"updated":"2016-08-10 07:56:52.000000000","message":"JFYI: I have to update my change series due to review comments and took the chance to update this method as you did here.","commit_id":"ec5bc145daad223bdba185a7837effe9eaf89752"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"ec275e412a1d13a52f38a8d1f208adc1d25a25ea","unresolved":false,"context_lines":[{"line_number":127,"context_line":""},{"line_number":128,"context_line":"placement_db_group \u003d cfg.OptGroup(\u0027placement_database\u0027,"},{"line_number":129,"context_line":"                                  title\u003d\u0027Placement API database options\u0027,"},{"line_number":130,"context_line":"                                  help\u003d\u0027\u0027\u0027"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The *Placement API Database* is a separate database which is used for the new"},{"line_number":133,"context_line":"placement-api service. In Ocata release (14.0.0) this database is optional: if"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad45d7e_32c0442a","line":130,"range":{"start_line":130,"start_character":39,"end_line":130,"end_character":42},"updated":"2016-08-10 15:08:39.000000000","message":"I know it\u0027s nitpicky, but please use triple double quotes. And no blank line, please.","commit_id":"ec5bc145daad223bdba185a7837effe9eaf89752"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e5c1e51f728ae508932c6fd11340afdde3dcb7ea","unresolved":false,"context_lines":[{"line_number":128,"context_line":"placement_db_group \u003d cfg.OptGroup(\u0027placement_database\u0027,"},{"line_number":129,"context_line":"                                  title\u003d\u0027Placement API database options\u0027,"},{"line_number":130,"context_line":"                                  help\u003d\u0027\u0027\u0027"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"The *Placement API Database* is a separate database which is used for the new"},{"line_number":133,"context_line":"placement-api service. In Ocata release (14.0.0) this database is optional: if"},{"line_number":134,"context_line":"connection option is not set, api database will be used instead.  However, this"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad45d7e_cabfac5e","line":131,"updated":"2016-08-09 16:16:03.000000000","message":"empty blank line needed here?","commit_id":"ec5bc145daad223bdba185a7837effe9eaf89752"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"e5c1e51f728ae508932c6fd11340afdde3dcb7ea","unresolved":false,"context_lines":[{"line_number":134,"context_line":"connection option is not set, api database will be used instead.  However, this"},{"line_number":135,"context_line":"is not recommended, as it implies a potentially lengthy data migration in the"},{"line_number":136,"context_line":"future. Operators are advised to use a separate database for Placement API from"},{"line_number":137,"context_line":"the start."},{"line_number":138,"context_line":"\u0027\u0027\u0027)"},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"# TODO(rpodolyaka): see the notes on help messages on api_db_opts above, those"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad45d7e_2ab76887","line":137,"updated":"2016-08-09 16:16:03.000000000","message":"++","commit_id":"ec5bc145daad223bdba185a7837effe9eaf89752"}],"nova/db/sqlalchemy/api.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"92bb96a74a21bdd68caf6fc39c6143adaf66966e","unresolved":false,"context_lines":[{"line_number":111,"context_line":"    api_context_manager.configure(**_get_db_conf(conf.api_database))"},{"line_number":112,"context_line":"    if conf.placement_database.connection is None:"},{"line_number":113,"context_line":"        conf.placement_database \u003d conf.api_database"},{"line_number":114,"context_line":"    placement_context_manager.configure("},{"line_number":115,"context_line":"        **_get_db_conf(conf.placement_database))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"def create_context_manager(connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_58bc656c","line":115,"range":{"start_line":114,"start_character":0,"end_line":115,"end_character":48},"updated":"2016-08-08 22:09:06.000000000","message":"Oh, that\u0027s ugly! How about this instead:\n\n    cpd \u003d conf.placement_database\n    placement_context_manager.configure(**_get_db_conf(cpd))","commit_id":"b8de3b9207ea19c6458f45dad6e9f5127e765cdd"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"2690048652323c610b541c7c8767a31bb2738222","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    if conf.placement_database.connection is None:"},{"line_number":113,"context_line":"        conf.placement_database \u003d conf.api_database"},{"line_number":114,"context_line":"    placement_context_manager.configure("},{"line_number":115,"context_line":"        **_get_db_conf(conf.placement_database))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"def create_context_manager(connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_328fa4cd","line":115,"in_reply_to":"9ad45d7e_350a4022","updated":"2016-08-10 15:07:19.000000000","message":"Gotta disagree. Seeing the line starting with ** is jarring. Since we have a 79-char limit, these tricks are the price we pay for such a limit with long, expressive names.","commit_id":"b8de3b9207ea19c6458f45dad6e9f5127e765cdd"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"7e8e7648efca454ce25522ab523bf8724289e396","unresolved":false,"context_lines":[{"line_number":112,"context_line":"    if conf.placement_database.connection is None:"},{"line_number":113,"context_line":"        conf.placement_database \u003d conf.api_database"},{"line_number":114,"context_line":"    placement_context_manager.configure("},{"line_number":115,"context_line":"        **_get_db_conf(conf.placement_database))"},{"line_number":116,"context_line":""},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"def create_context_manager(connection\u003dNone):"}],"source_content_type":"text/x-python","patch_set":10,"id":"9ad45d7e_350a4022","line":115,"in_reply_to":"9ad45d7e_58bc656c","updated":"2016-08-09 10:11:50.000000000","message":"Oh, that\u0027s uglier! ;)\n\nAssignment for the sake of formatting can make great sense, but in this case the original sin seems milder than the fix.","commit_id":"b8de3b9207ea19c6458f45dad6e9f5127e765cdd"}],"nova/db/sqlalchemy/api_models.py":[{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6c0f76c9555cf766c72c1ab6b678d235a590ca9b","unresolved":false,"context_lines":[{"line_number":365,"context_line":"    # shared DBs cases."},{"line_number":366,"context_line":"    __table__ \u003d API_BASE.metadata.tables[\u0027aggregates\u0027]"},{"line_number":367,"context_line":"    __mapper_args__ \u003d {"},{"line_number":368,"context_line":"        \u0027exclude_properties\u0027: [\u0027name\u0027]"},{"line_number":369,"context_line":"    }"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"    resource_providers \u003d orm.relationship("}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad45d7e_8202023d","line":368,"updated":"2016-08-08 14:28:07.000000000","message":"neat. :)","commit_id":"2674f6fdb30809da277e1468acb80456aba955f5"}],"releasenotes/notes/placement-database-5aa94ece29eab820.yaml":[{"author":{"_account_id":14819,"name":"Timofey Durakov","email":"timofei.nd@gmail.com","username":"tdurakov"},"change_message_id":"da358f83673d7569c84a5b28eda03002cdf85bfa","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    nova.conf to configure a separate database for use with the placement"},{"line_number":7,"context_line":"    API. This is available so that deployers can choose to avoid an eventual"},{"line_number":8,"context_line":"    migration when the placement API becomes an independent service."},{"line_number":9,"context_line":"    "},{"line_number":10,"context_line":"    The default setting is `None` meaning that the existing settings for"},{"line_number":11,"context_line":"    the `api_database` will be used."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9ad45d7e_8473374d","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":4},"updated":"2016-08-08 12:37:04.000000000","message":"nit: remove this","commit_id":"fb915a64b636262b96486b41a331b7c51f78c63e"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"3c3f0feb1a41f46c5fd561bd6c4329f8e7cada71","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    nova.conf to configure a separate database for use with the placement"},{"line_number":7,"context_line":"    API. This is available so that deployers can choose to avoid an eventual"},{"line_number":8,"context_line":"    migration when the placement API becomes an independent service."},{"line_number":9,"context_line":"    "},{"line_number":10,"context_line":"    The default setting is `None` meaning that the existing settings for"},{"line_number":11,"context_line":"    the `api_database` will be used."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-yaml","patch_set":8,"id":"9ad45d7e_3fc7f246","line":9,"in_reply_to":"9ad45d7e_8473374d","updated":"2016-08-08 12:53:00.000000000","message":"Done","commit_id":"fb915a64b636262b96486b41a331b7c51f78c63e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6c0f76c9555cf766c72c1ab6b678d235a590ca9b","unresolved":false,"context_lines":[{"line_number":13,"context_line":"    If `connection` is set in the `placement_database` group this will be"},{"line_number":14,"context_line":"    used as the connection URL for the placement database. Before launching"},{"line_number":15,"context_line":"    the placement API service, the `nova-manage placement sync` command"},{"line_number":16,"context_line":"    must be run to create the necessary tables."}],"source_content_type":"text/x-yaml","patch_set":9,"id":"9ad45d7e_22ed168c","line":16,"updated":"2016-08-08 14:28:07.000000000","message":"I would actually go further in this reno note and say that something to the effect of:\n\n We recommend setting the placement_database.connection setting to a non-None\n value in order to ease upgrade and migration of Nova in Ocata. Although we\n leave the default value of this setting to None -- in order to not break any\n deployments that use continuous delivery models -- setting this to a non-None\n value now will avoid a potentially lengthy data migration in the future.","commit_id":"2674f6fdb30809da277e1468acb80456aba955f5"}]}
