)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ca108b61bf3c8be41ec5f3c6bcf5f236a7c79081","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add designate-status command for upgrade checks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This checks for duplicate entries in the service_statuses table."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Related-Bug: 1768824"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_f21ad679","line":9,"updated":"2018-10-15 15:29:06.000000000","message":"For context, I would reference: I307a8f7dd8b8a83effa447a846db3288efa32dba","commit_id":"3a495c6662c5ac3ec6833a77f1e75ac861760f28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be0c1bbdd1e46f58c84264c5680e5789fe769dec","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add designate-status command for upgrade checks"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This checks for duplicate entries in the service_statuses table."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Related-Bug: 1768824"},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3f79a3b5_2d6233a8","line":9,"in_reply_to":"3f79a3b5_f21ad679","updated":"2018-10-15 15:41:44.000000000","message":"Done","commit_id":"3a495c6662c5ac3ec6833a77f1e75ac861760f28"}],"designate/tests/unit/test_upgrade_checks.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d860d99eb78005deac244e581c6ceaccd56da694","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from designate.cmd import status"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class TestDuplicateServiceStatus(base.BaseTestCase):"},{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super(TestDuplicateServiceStatus, self).setUp()"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_cd25bfaf","line":21,"updated":"2018-10-15 15:34:52.000000000","message":"Need 2 blank lines.","commit_id":"3a495c6662c5ac3ec6833a77f1e75ac861760f28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d860d99eb78005deac244e581c6ceaccd56da694","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from designate.cmd import status"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"class TestDuplicateServiceStatus(base.BaseTestCase):"},{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super(TestDuplicateServiceStatus, self).setUp()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @mock.patch(\u0027sqlalchemy.select\u0027)"},{"line_number":26,"context_line":"    @mock.patch(\u0027sqlalchemy.Table\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_ad1e435b","line":23,"range":{"start_line":22,"start_character":4,"end_line":23,"end_character":55},"updated":"2018-10-15 15:34:52.000000000","message":"Looks unnecessary.","commit_id":"3a495c6662c5ac3ec6833a77f1e75ac861760f28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d860d99eb78005deac244e581c6ceaccd56da694","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super(TestDuplicateServiceStatus, self).setUp()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @mock.patch(\u0027sqlalchemy.select\u0027)"},{"line_number":26,"context_line":"    @mock.patch(\u0027sqlalchemy.Table\u0027)"},{"line_number":27,"context_line":"    @mock.patch(\u0027sqlalchemy.MetaData\u0027)"},{"line_number":28,"context_line":"    @mock.patch(\u0027designate.sqlalchemy.session.get_engine\u0027)"},{"line_number":29,"context_line":"    def test_success(self, mock_get_engine, mock_metadata, mock_table,"},{"line_number":30,"context_line":"                     mock_select):"},{"line_number":31,"context_line":"        engine \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_2d58f322","line":28,"range":{"start_line":25,"start_character":4,"end_line":28,"end_character":58},"updated":"2018-10-15 15:34:52.000000000","message":"Ideally you\u0027d put some fake table data in a test database and not rely on mocks for testing this in case your sqla is wrong. The problem with that is you\u0027d have to either stop the schema migrations from going past 100_unique_service_status.py or drop the unique constraint for the purposes of this test so you could create duplicate entries in the DB. I\u0027m not sure how easy either of those are in designate tests though.","commit_id":"3a495c6662c5ac3ec6833a77f1e75ac861760f28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be0c1bbdd1e46f58c84264c5680e5789fe769dec","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    def setUp(self):"},{"line_number":23,"context_line":"        super(TestDuplicateServiceStatus, self).setUp()"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @mock.patch(\u0027sqlalchemy.select\u0027)"},{"line_number":26,"context_line":"    @mock.patch(\u0027sqlalchemy.Table\u0027)"},{"line_number":27,"context_line":"    @mock.patch(\u0027sqlalchemy.MetaData\u0027)"},{"line_number":28,"context_line":"    @mock.patch(\u0027designate.sqlalchemy.session.get_engine\u0027)"},{"line_number":29,"context_line":"    def test_success(self, mock_get_engine, mock_metadata, mock_table,"},{"line_number":30,"context_line":"                     mock_select):"},{"line_number":31,"context_line":"        engine \u003d mock.Mock()"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f79a3b5_ed2e7b40","line":28,"range":{"start_line":25,"start_character":4,"end_line":28,"end_character":58},"in_reply_to":"3f79a3b5_2d58f322","updated":"2018-10-15 15:41:44.000000000","message":"Here is an example test from nova which drops a unique constraint for testing duplicates:\n\nhttps://github.com/openstack/nova/blob/396156eb13521a0e7af4488a8cd4693aa65a0da2/nova/tests/unit/db/test_sqlalchemy_migration.py#L53\n\nThis is a test that runs a specific database schema migration script:\n\nhttps://github.com/openstack/nova/blob/396156eb13521a0e7af4488a8cd4693aa65a0da2/nova/tests/unit/db/test_sqlalchemy_migration.py#L192\n\nBut that\u0027s not really what we\u0027d need here...so the former example is probably best.","commit_id":"3a495c6662c5ac3ec6833a77f1e75ac861760f28"}],"doc/source/cli/designate-status.rst":[{"author":{"_account_id":6928,"name":"Ben Nemec","email":"openstack@nemebean.com","username":"bnemec"},"change_message_id":"a117be2294fdba690148b3050108c130359a4ab9","unresolved":false,"context_lines":[{"line_number":53,"context_line":"------------------------------"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"``designate-status upgrade check``"},{"line_number":56,"context_line":"  Performs a release-specific readiness check before restarting services with"},{"line_number":57,"context_line":"  new code. This command expects to have complete configuration and access"},{"line_number":58,"context_line":"  to the database."},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"  **Return Codes**"}],"source_content_type":"text/x-rst","patch_set":5,"id":"3f79a3b5_2655891f","line":57,"range":{"start_line":56,"start_character":53,"end_line":57,"end_character":11},"updated":"2018-12-07 21:50:31.000000000","message":"I\u0027m going to tweak this wording since the Designate upgrade check actually needs to happen before db sync.","commit_id":"9991fc1500b1b5397eb341af0879be86150520fc"}],"setup.cfg":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d860d99eb78005deac244e581c6ceaccd56da694","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    designate-agent \u003d designate.cmd.agent:main"},{"line_number":64,"context_line":"    designate-worker \u003d designate.cmd.worker:main"},{"line_number":65,"context_line":"    designate-producer \u003d designate.cmd.producer:main"},{"line_number":66,"context_line":"    designate-status \u003d designate.cmd.status:main"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"designate.api.admin.extensions \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"3f79a3b5_cd813f4f","line":66,"updated":"2018-10-15 15:34:52.000000000","message":"Should have CLI docs for the new command:\n\nhttps://docs.openstack.org/designate/latest/cli\n\nAnd probably reference it from here too:\n\nhttps://docs.openstack.org/designate/latest/admin/upgrades/index.html","commit_id":"3a495c6662c5ac3ec6833a77f1e75ac861760f28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"be0c1bbdd1e46f58c84264c5680e5789fe769dec","unresolved":false,"context_lines":[{"line_number":63,"context_line":"    designate-agent \u003d designate.cmd.agent:main"},{"line_number":64,"context_line":"    designate-worker \u003d designate.cmd.worker:main"},{"line_number":65,"context_line":"    designate-producer \u003d designate.cmd.producer:main"},{"line_number":66,"context_line":"    designate-status \u003d designate.cmd.status:main"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"designate.api.admin.extensions \u003d"}],"source_content_type":"text/x-ttcn-cfg","patch_set":4,"id":"3f79a3b5_6d1a6b18","line":66,"in_reply_to":"3f79a3b5_cd813f4f","updated":"2018-10-15 15:41:44.000000000","message":"(10:37:05 AM) mugsie: we have https://docs.openstack.org/designate/latest/admin/designate-manage.html and then other docs for the client else where\n(10:37:15 AM) mugsie: but it needs to be moved to the new layout","commit_id":"3a495c6662c5ac3ec6833a77f1e75ac861760f28"}]}
