)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1ea7d078eb757f64891f33c750abbe4b95c39cbb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Microversion 2.59 - Migrations list pagination"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add optional parameters \u0027limit\u0027, \u0027marker\u0027 and \u0027changes-since\u0027 to the"},{"line_number":10,"context_line":"os-migrations endpoints for pagaination."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  /os-migrations?limit\u003d{limit}\u0026marker\u003d{migrations_uuid}"},{"line_number":13,"context_line":"  /os-migrations?changes-since\u003d{changes-since}"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f96bb07_d182f2c8","line":10,"range":{"start_line":10,"start_character":28,"end_line":10,"end_character":39},"updated":"2018-01-11 20:39:13.000000000","message":"pagination","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Microversion 2.59 - Migrations list pagination"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Add optional parameters \u0027limit\u0027, \u0027marker\u0027 and \u0027changes-since\u0027 to the"},{"line_number":10,"context_line":"os-migrations endpoints for pagaination."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"  /os-migrations?limit\u003d{limit}\u0026marker\u003d{migrations_uuid}"},{"line_number":13,"context_line":"  /os-migrations?changes-since\u003d{changes-since}"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"7f96bb07_996d659a","line":10,"range":{"start_line":10,"start_character":28,"end_line":10,"end_character":39},"in_reply_to":"7f96bb07_d182f2c8","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"}],"novaclient/tests/unit/v2/test_migrations.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d8bac0236ec6d727acdef342071dc0698268bcc9","unresolved":false,"context_lines":[{"line_number":82,"context_line":"            self.assertTrue(hasattr(m, \u0027uuid\u0027))"},{"line_number":83,"context_line":""},{"line_number":84,"context_line":"    def test_list_migrations_with_limit_marker_params(self):"},{"line_number":85,"context_line":"        marker \u003d \u002712140183-c814-4ddf-8453-6df43028aa67\u0027"},{"line_number":86,"context_line":"        params \u003d {\u0027limit\u0027: 10,"},{"line_number":87,"context_line":"                  \u0027marker\u0027: marker,"},{"line_number":88,"context_line":"                  \u0027changes_since\u0027: \u00272012-02-29T06:23:22\u0027}"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f96bb07_ba75acce","line":85,"range":{"start_line":85,"start_character":18,"end_line":85,"end_character":54},"updated":"2018-01-22 14:37:17.000000000","message":"I might be taking this too literally, but normally I think this would result in a MarkerNotFound error because the fake migrations don\u0027t have a uuid with this value. The fakes don\u0027t really handle the limit or marker params, so this is just showing that they are passed through to the server.\n\nThe shell tests test the same thing really, so I\u0027m not sure if we should even have this test, but I guess it\u0027s OK.","commit_id":"ede4d78ecf4fcf00efdfcbd6c5f6bfb7d99aa3b3"}],"novaclient/tests/unit/v2/test_shell.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a13dde974cdcf10ac558db8c424313242716dea","unresolved":false,"context_lines":[{"line_number":3189,"context_line":"            \u0027GET\u0027, \u0027/os-migrations?changes-since\u003d2016-02-29T06%3A23%3A22\u0027)"},{"line_number":3190,"context_line":""},{"line_number":3191,"context_line":"    def test_migration_list_with_changes_since_invalid_value_v259(self):"},{"line_number":3192,"context_line":"        self.assertRaises(exceptions.CommandError, self.run_command,"},{"line_number":3193,"context_line":"                          \u0027migration-list --changes-since 0123456789\u0027,"},{"line_number":3194,"context_line":"                          api_version\u003d\u00272.59\u0027)"},{"line_number":3195,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_f726feb7","line":3192,"updated":"2018-01-11 21:07:05.000000000","message":"Assert that the CommandError has \"Invalid changes-since value\" in the message.","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":3189,"context_line":"            \u0027GET\u0027, \u0027/os-migrations?changes-since\u003d2016-02-29T06%3A23%3A22\u0027)"},{"line_number":3190,"context_line":""},{"line_number":3191,"context_line":"    def test_migration_list_with_changes_since_invalid_value_v259(self):"},{"line_number":3192,"context_line":"        self.assertRaises(exceptions.CommandError, self.run_command,"},{"line_number":3193,"context_line":"                          \u0027migration-list --changes-since 0123456789\u0027,"},{"line_number":3194,"context_line":"                          api_version\u003d\u00272.59\u0027)"},{"line_number":3195,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_a418341d","line":3192,"in_reply_to":"7f96bb07_f726feb7","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d8bac0236ec6d727acdef342071dc0698268bcc9","unresolved":false,"context_lines":[{"line_number":3060,"context_line":"                          cmd, api_version\u003d\u00272.58\u0027)"},{"line_number":3061,"context_line":""},{"line_number":3062,"context_line":"    def test_migration_list_limit_marker_v259(self):"},{"line_number":3063,"context_line":"        self.run_command(\u0027migration-list --limit 10 \u0027"},{"line_number":3064,"context_line":"                         \u0027--marker %s\u0027 % FAKE_UUID_1,"},{"line_number":3065,"context_line":"                         api_version\u003d\u00272.59\u0027)"},{"line_number":3066,"context_line":"        self.assert_called("}],"source_content_type":"text/x-python","patch_set":12,"id":"7f96bb07_6d49ac5e","line":3063,"updated":"2018-01-22 14:37:17.000000000","message":"Would be good to assert that there is a UUID column in the output of the command.","commit_id":"ede4d78ecf4fcf00efdfcbd6c5f6bfb7d99aa3b3"}],"novaclient/v2/migrations.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7f40fc4cbc3e3a9953a77e5c5e00692545a62fbd","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            opts[\u0027instance_uuid\u0027] \u003d instance_uuid"},{"line_number":49,"context_line":"        if marker:"},{"line_number":50,"context_line":"            opts[\u0027marker\u0027] \u003d marker"},{"line_number":51,"context_line":"        if limit:"},{"line_number":52,"context_line":"            opts[\u0027changes-since\u0027] \u003d changes_since"},{"line_number":53,"context_line":"        # Transform the dict to a sequence of two-element tuples in fixed"},{"line_number":54,"context_line":"        # order, then the encoded string will be consistent in Python 2\u00263."},{"line_number":55,"context_line":"        new_opts \u003d sorted(opts.items(), key\u003dlambda x: x[0])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_e2ee0db3","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":49},"updated":"2017-10-30 06:35:01.000000000","message":"It should be as follows:\n\n        if limit:\n            opts[\u0027limit\u0027] \u003d limit\n        if changes_since:\n            opts[\u0027changes-since\u0027] \u003d changes_since","commit_id":"a9350c12e5ba68d493cd45e4c0ca95d8a1ed7c2a"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"be33a81b3943abea2a44d4e7b3f11f3370884f4e","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            opts[\u0027instance_uuid\u0027] \u003d instance_uuid"},{"line_number":49,"context_line":"        if marker:"},{"line_number":50,"context_line":"            opts[\u0027marker\u0027] \u003d marker"},{"line_number":51,"context_line":"        if limit:"},{"line_number":52,"context_line":"            opts[\u0027changes-since\u0027] \u003d changes_since"},{"line_number":53,"context_line":"        # Transform the dict to a sequence of two-element tuples in fixed"},{"line_number":54,"context_line":"        # order, then the encoded string will be consistent in Python 2\u00263."},{"line_number":55,"context_line":"        new_opts \u003d sorted(opts.items(), key\u003dlambda x: x[0])"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_c2bc316e","line":52,"range":{"start_line":51,"start_character":0,"end_line":52,"end_character":49},"in_reply_to":"3f4b6375_e2ee0db3","updated":"2017-10-30 06:48:32.000000000","message":"Thanks for your review, actually I feel shy about this.: )","commit_id":"a9350c12e5ba68d493cd45e4c0ca95d8a1ed7c2a"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1ea7d078eb757f64891f33c750abbe4b95c39cbb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"class MigrationManager(base.ManagerWithFind):"},{"line_number":30,"context_line":"    resource_class \u003d Migration"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _list_base(self, host\u003dNone, status\u003dNone, cell_name\u003dNone,"},{"line_number":33,"context_line":"                   instance_uuid\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":34,"context_line":"                   changes_since\u003dNone):"},{"line_number":35,"context_line":"        opts \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_915f8a40","line":32,"range":{"start_line":32,"start_character":49,"end_line":32,"end_character":58},"updated":"2018-01-11 20:39:13.000000000","message":"We shouldn\u0027t support cell_name anymore, it was deprecated in Pike:\n\nhttps://review.openstack.org/#/c/439141/\n\nAnd the CLI code was removed in queens:\n\nI5d11eda2a6b35de98f0484492f597a87df882013\n\nBut didn\u0027t update the python API code.","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"class MigrationManager(base.ManagerWithFind):"},{"line_number":30,"context_line":"    resource_class \u003d Migration"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _list_base(self, host\u003dNone, status\u003dNone, cell_name\u003dNone,"},{"line_number":33,"context_line":"                   instance_uuid\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":34,"context_line":"                   changes_since\u003dNone):"},{"line_number":35,"context_line":"        opts \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_a4ed94f0","line":32,"range":{"start_line":32,"start_character":49,"end_line":32,"end_character":58},"in_reply_to":"7f96bb07_915f8a40","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a13dde974cdcf10ac558db8c424313242716dea","unresolved":false,"context_lines":[{"line_number":29,"context_line":"class MigrationManager(base.ManagerWithFind):"},{"line_number":30,"context_line":"    resource_class \u003d Migration"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _list_base(self, host\u003dNone, status\u003dNone, cell_name\u003dNone,"},{"line_number":33,"context_line":"                   instance_uuid\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":34,"context_line":"                   changes_since\u003dNone):"},{"line_number":35,"context_line":"        opts \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_dcb76986","line":32,"range":{"start_line":32,"start_character":49,"end_line":32,"end_character":58},"in_reply_to":"7f96bb07_915f8a40","updated":"2018-01-11 21:07:05.000000000","message":"Rebase on top of this change:\n\nhttps://review.openstack.org/#/c/532972/","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"class MigrationManager(base.ManagerWithFind):"},{"line_number":30,"context_line":"    resource_class \u003d Migration"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _list_base(self, host\u003dNone, status\u003dNone, cell_name\u003dNone,"},{"line_number":33,"context_line":"                   instance_uuid\u003dNone, marker\u003dNone, limit\u003dNone,"},{"line_number":34,"context_line":"                   changes_since\u003dNone):"},{"line_number":35,"context_line":"        opts \u003d {}"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_990245b4","line":32,"range":{"start_line":32,"start_character":49,"end_line":32,"end_character":58},"in_reply_to":"7f96bb07_dcb76986","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a13dde974cdcf10ac558db8c424313242716dea","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        migrations list than that represented by this migration UUID"},{"line_number":80,"context_line":"        (optional)."},{"line_number":81,"context_line":"        :param limit: maximum number of migrations to return (optional)."},{"line_number":82,"context_line":"        :param changes_since: only return migrations updated after (optional)."},{"line_number":83,"context_line":"        \"\"\""},{"line_number":84,"context_line":"        return self._list_base(host\u003dhost, status\u003dstatus,"},{"line_number":85,"context_line":"                               cell_name\u003dcell_name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_1c4cf19c","line":82,"updated":"2018-01-11 21:07:05.000000000","message":"Point out this has to be in ISO format?","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":79,"context_line":"        migrations list than that represented by this migration UUID"},{"line_number":80,"context_line":"        (optional)."},{"line_number":81,"context_line":"        :param limit: maximum number of migrations to return (optional)."},{"line_number":82,"context_line":"        :param changes_since: only return migrations updated after (optional)."},{"line_number":83,"context_line":"        \"\"\""},{"line_number":84,"context_line":"        return self._list_base(host\u003dhost, status\u003dstatus,"},{"line_number":85,"context_line":"                               cell_name\u003dcell_name,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_19287532","line":82,"in_reply_to":"7f96bb07_1c4cf19c","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"}],"novaclient/v2/shell.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a13dde974cdcf10ac558db8c424313242716dea","unresolved":false,"context_lines":[{"line_number":5222,"context_line":"    actions \u003d cs.instance_action.list(server, marker\u003dargs.marker,"},{"line_number":5223,"context_line":"                                      limit\u003dargs.limit,"},{"line_number":5224,"context_line":"                                      changes_since\u003dargs.changes_since)"},{"line_number":5225,"context_line":"    # TODO(yikun): Output a \"Marker\" column if there is a next link?"},{"line_number":5226,"context_line":"    utils.print_list(actions,"},{"line_number":5227,"context_line":"                     [\u0027Action\u0027, \u0027Request_ID\u0027, \u0027Message\u0027, \u0027Start_Time\u0027,"},{"line_number":5228,"context_line":"                      \u0027Updated_At\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_dc13e965","line":5225,"range":{"start_line":5225,"start_character":4,"end_line":5225,"end_character":68},"updated":"2018-01-11 21:07:05.000000000","message":"Should have a TODO like this in do_migration_list for 2.59 also.","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":5222,"context_line":"    actions \u003d cs.instance_action.list(server, marker\u003dargs.marker,"},{"line_number":5223,"context_line":"                                      limit\u003dargs.limit,"},{"line_number":5224,"context_line":"                                      changes_since\u003dargs.changes_since)"},{"line_number":5225,"context_line":"    # TODO(yikun): Output a \"Marker\" column if there is a next link?"},{"line_number":5226,"context_line":"    utils.print_list(actions,"},{"line_number":5227,"context_line":"                     [\u0027Action\u0027, \u0027Request_ID\u0027, \u0027Message\u0027, \u0027Start_Time\u0027,"},{"line_number":5228,"context_line":"                      \u0027Updated_At\u0027],"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_1984f50b","line":5225,"range":{"start_line":5225,"start_character":4,"end_line":5225,"end_character":68},"in_reply_to":"7f96bb07_dc13e965","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a13dde974cdcf10ac558db8c424313242716dea","unresolved":false,"context_lines":[{"line_number":5268,"context_line":""},{"line_number":5269,"context_line":""},{"line_number":5270,"context_line":"def _print_migrations(cs, migrations):"},{"line_number":5271,"context_line":"    fields \u003d [\u0027Source Node\u0027, \u0027Dest Node\u0027, \u0027Source Compute\u0027, \u0027Dest Compute\u0027,"},{"line_number":5272,"context_line":"              \u0027Dest Host\u0027, \u0027Status\u0027, \u0027Instance UUID\u0027, \u0027Old Flavor\u0027,"},{"line_number":5273,"context_line":"              \u0027New Flavor\u0027, \u0027Created At\u0027, \u0027Updated At\u0027]"},{"line_number":5274,"context_line":""},{"line_number":5275,"context_line":"    def old_flavor(migration):"},{"line_number":5276,"context_line":"        return migration.old_instance_type_id"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_5c2ef9a5","line":5273,"range":{"start_line":5271,"start_character":4,"end_line":5273,"end_character":55},"updated":"2018-01-11 21:07:05.000000000","message":"For microversion\u003e\u003d2.59 we should include the migration uuid in the output, because users will need that for the marker.","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":5268,"context_line":""},{"line_number":5269,"context_line":""},{"line_number":5270,"context_line":"def _print_migrations(cs, migrations):"},{"line_number":5271,"context_line":"    fields \u003d [\u0027Source Node\u0027, \u0027Dest Node\u0027, \u0027Source Compute\u0027, \u0027Dest Compute\u0027,"},{"line_number":5272,"context_line":"              \u0027Dest Host\u0027, \u0027Status\u0027, \u0027Instance UUID\u0027, \u0027Old Flavor\u0027,"},{"line_number":5273,"context_line":"              \u0027New Flavor\u0027, \u0027Created At\u0027, \u0027Updated At\u0027]"},{"line_number":5274,"context_line":""},{"line_number":5275,"context_line":"    def old_flavor(migration):"},{"line_number":5276,"context_line":"        return migration.old_instance_type_id"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_e4707c75","line":5273,"range":{"start_line":5271,"start_character":4,"end_line":5273,"end_character":55},"in_reply_to":"7f96bb07_5c2ef9a5","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a13dde974cdcf10ac558db8c424313242716dea","unresolved":false,"context_lines":[{"line_number":5336,"context_line":"    metavar\u003d\u0027\u003cmarker\u003e\u0027,"},{"line_number":5337,"context_line":"    default\u003dNone,"},{"line_number":5338,"context_line":"    help\u003d_(\u0027The last migration of the previous page; displays list of \u0027"},{"line_number":5339,"context_line":"           \u0027migrations after \"marker\".\u0027))"},{"line_number":5340,"context_line":"@utils.arg("},{"line_number":5341,"context_line":"    \u0027--limit\u0027,"},{"line_number":5342,"context_line":"    dest\u003d\u0027limit\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_fc4a657e","line":5339,"updated":"2018-01-11 21:07:05.000000000","message":"Note that the marker is the migration UUID.","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":5336,"context_line":"    metavar\u003d\u0027\u003cmarker\u003e\u0027,"},{"line_number":5337,"context_line":"    default\u003dNone,"},{"line_number":5338,"context_line":"    help\u003d_(\u0027The last migration of the previous page; displays list of \u0027"},{"line_number":5339,"context_line":"           \u0027migrations after \"marker\".\u0027))"},{"line_number":5340,"context_line":"@utils.arg("},{"line_number":5341,"context_line":"    \u0027--limit\u0027,"},{"line_number":5342,"context_line":"    dest\u003d\u0027limit\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_e41e3c0b","line":5339,"in_reply_to":"7f96bb07_fc4a657e","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a13dde974cdcf10ac558db8c424313242716dea","unresolved":false,"context_lines":[{"line_number":5355,"context_line":"    help\u003d_(\u0027List only migrations changed after a certain point of time. \u0027"},{"line_number":5356,"context_line":"           \u0027The provided time should be an ISO 8061 formatted time. \u0027"},{"line_number":5357,"context_line":"           \u0027ex 2016-03-04T06:27:59Z .\u0027))"},{"line_number":5358,"context_line":"def do_migration_list(cs, args):"},{"line_number":5359,"context_line":"    \"\"\"Print a list of migrations.\"\"\""},{"line_number":5360,"context_line":"    if args.changes_since:"},{"line_number":5361,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_3c1f6d6d","line":5358,"range":{"start_line":5358,"start_character":4,"end_line":5358,"end_character":21},"updated":"2018-01-11 21:07:05.000000000","message":"Like do_instance_action_list, leave a todo in here about outputting some kind of next link for the next page?","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":5355,"context_line":"    help\u003d_(\u0027List only migrations changed after a certain point of time. \u0027"},{"line_number":5356,"context_line":"           \u0027The provided time should be an ISO 8061 formatted time. \u0027"},{"line_number":5357,"context_line":"           \u0027ex 2016-03-04T06:27:59Z .\u0027))"},{"line_number":5358,"context_line":"def do_migration_list(cs, args):"},{"line_number":5359,"context_line":"    \"\"\"Print a list of migrations.\"\"\""},{"line_number":5360,"context_line":"    if args.changes_since:"},{"line_number":5361,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":8,"id":"7f96bb07_598a7d1b","line":5358,"range":{"start_line":5358,"start_character":4,"end_line":5358,"end_character":21},"in_reply_to":"7f96bb07_3c1f6d6d","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"eeb50466e45c4019d5b9fa3d6e8784795a948eb6","unresolved":false,"context_lines":[{"line_number":5285,"context_line":""},{"line_number":5286,"context_line":"    # Insert migrations UUID after ID"},{"line_number":5287,"context_line":"    if cs.api_version \u003e\u003d api_versions.APIVersion(\"2.59\"):"},{"line_number":5288,"context_line":"        fields.insert(0, \"UUID\")"},{"line_number":5289,"context_line":""},{"line_number":5290,"context_line":"    if cs.api_version \u003e\u003d api_versions.APIVersion(\"2.23\"):"},{"line_number":5291,"context_line":"        fields.insert(0, \"Id\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f96bb07_7c0cf93a","line":5288,"updated":"2018-01-12 15:47:12.000000000","message":"I would like to see the shell test assert that the uuid is actually in the output as expected. This likely means you need to modify the os-migrations fakes to return a uuid when microversion\u003e\u003d2.59, but that\u0027s pretty simple to add.","commit_id":"345b3ba6ceffe79195a2ae9759e132077c3ab7d4"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"e218b29f6c31cef39c1de0e6d9d160b3ddb34527","unresolved":false,"context_lines":[{"line_number":5285,"context_line":""},{"line_number":5286,"context_line":"    # Insert migrations UUID after ID"},{"line_number":5287,"context_line":"    if cs.api_version \u003e\u003d api_versions.APIVersion(\"2.59\"):"},{"line_number":5288,"context_line":"        fields.insert(0, \"UUID\")"},{"line_number":5289,"context_line":""},{"line_number":5290,"context_line":"    if cs.api_version \u003e\u003d api_versions.APIVersion(\"2.23\"):"},{"line_number":5291,"context_line":"        fields.insert(0, \"Id\")"}],"source_content_type":"text/x-python","patch_set":10,"id":"7f96bb07_29f026fe","line":5288,"in_reply_to":"7f96bb07_7c0cf93a","updated":"2018-01-16 09:32:52.000000000","message":"Done.\nI modify the os-migrations fakes in here:\nhttps://review.openstack.org/#/c/516168/12/novaclient/tests/unit/v2/fakes.py@2052\n\nand check uuid after 2.59 version:\nhttps://review.openstack.org/#/c/516168/12/novaclient/tests/unit/v2/test_migrations.py@82","commit_id":"345b3ba6ceffe79195a2ae9759e132077c3ab7d4"}],"releasenotes/notes/microversion-v2_54-4160c852d7d8812d.yaml":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7f40fc4cbc3e3a9953a77e5c5e00692545a62fbd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added microversion v2.54 which introduces pagination support for migration"},{"line_number":4,"context_line":"    with the help of new optional parameters \u0027limit\u0027, \u0027marker\u0027 and"},{"line_number":5,"context_line":"    \u0027changes-since\u0027."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3f4b6375_22230508","line":4,"range":{"start_line":4,"start_character":54,"end_line":4,"end_character":62},"updated":"2017-10-30 06:35:01.000000000","message":"ditto","commit_id":"a9350c12e5ba68d493cd45e4c0ca95d8a1ed7c2a"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7f40fc4cbc3e3a9953a77e5c5e00692545a62fbd","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added microversion v2.54 which introduces pagination support for migration"},{"line_number":4,"context_line":"    with the help of new optional parameters \u0027limit\u0027, \u0027marker\u0027 and"},{"line_number":5,"context_line":"    \u0027changes-since\u0027."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3f4b6375_820cf994","line":4,"range":{"start_line":4,"start_character":45,"end_line":4,"end_character":52},"updated":"2017-10-30 06:35:01.000000000","message":"nit: ``limit`` would be better.","commit_id":"a9350c12e5ba68d493cd45e4c0ca95d8a1ed7c2a"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"be33a81b3943abea2a44d4e7b3f11f3370884f4e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added microversion v2.54 which introduces pagination support for migration"},{"line_number":4,"context_line":"    with the help of new optional parameters \u0027limit\u0027, \u0027marker\u0027 and"},{"line_number":5,"context_line":"    \u0027changes-since\u0027."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3f4b6375_a2c135e7","line":4,"range":{"start_line":4,"start_character":54,"end_line":4,"end_character":62},"in_reply_to":"3f4b6375_22230508","updated":"2017-10-30 06:48:32.000000000","message":"Done","commit_id":"a9350c12e5ba68d493cd45e4c0ca95d8a1ed7c2a"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"be33a81b3943abea2a44d4e7b3f11f3370884f4e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added microversion v2.54 which introduces pagination support for migration"},{"line_number":4,"context_line":"    with the help of new optional parameters \u0027limit\u0027, \u0027marker\u0027 and"},{"line_number":5,"context_line":"    \u0027changes-since\u0027."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3f4b6375_82b6398a","line":4,"range":{"start_line":4,"start_character":45,"end_line":4,"end_character":52},"in_reply_to":"3f4b6375_820cf994","updated":"2017-10-30 06:48:32.000000000","message":"Done","commit_id":"a9350c12e5ba68d493cd45e4c0ca95d8a1ed7c2a"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"7f40fc4cbc3e3a9953a77e5c5e00692545a62fbd","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added microversion v2.54 which introduces pagination support for migration"},{"line_number":4,"context_line":"    with the help of new optional parameters \u0027limit\u0027, \u0027marker\u0027 and"},{"line_number":5,"context_line":"    \u0027changes-since\u0027."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3f4b6375_e21ccdc2","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":19},"updated":"2017-10-30 06:35:01.000000000","message":"ditto","commit_id":"a9350c12e5ba68d493cd45e4c0ca95d8a1ed7c2a"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"be33a81b3943abea2a44d4e7b3f11f3370884f4e","unresolved":false,"context_lines":[{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - Added microversion v2.54 which introduces pagination support for migration"},{"line_number":4,"context_line":"    with the help of new optional parameters \u0027limit\u0027, \u0027marker\u0027 and"},{"line_number":5,"context_line":"    \u0027changes-since\u0027."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"3f4b6375_42b0418c","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":19},"in_reply_to":"3f4b6375_e21ccdc2","updated":"2017-10-30 06:48:32.000000000","message":"Done","commit_id":"a9350c12e5ba68d493cd45e4c0ca95d8a1ed7c2a"}],"releasenotes/notes/microversion-v2_59-4160c852d7d8812d.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3a13dde974cdcf10ac558db8c424313242716dea","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for microversion v2.58 which introduces pagination support"},{"line_number":5,"context_line":"    for migrations with the help of new optional parameters ``limit``,"},{"line_number":6,"context_line":"    ``marker``, and also adds the new filter ``changes-since``. Users can use"},{"line_number":7,"context_line":"    ``changes-since`` filter to filter the results based on the last time the"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_7c041518","line":4,"range":{"start_line":4,"start_character":38,"end_line":4,"end_character":40},"updated":"2018-01-11 21:07:05.000000000","message":"59","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"},{"author":{"_account_id":20722,"name":"Yikun Jiang","email":"yikunkero@gmail.com","username":"yikunkero"},"change_message_id":"2e489f62285b542a320bf5ac2b979acd18596beb","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - |"},{"line_number":4,"context_line":"    Added support for microversion v2.58 which introduces pagination support"},{"line_number":5,"context_line":"    for migrations with the help of new optional parameters ``limit``,"},{"line_number":6,"context_line":"    ``marker``, and also adds the new filter ``changes-since``. Users can use"},{"line_number":7,"context_line":"    ``changes-since`` filter to filter the results based on the last time the"}],"source_content_type":"text/x-yaml","patch_set":8,"id":"7f96bb07_84f098cb","line":4,"range":{"start_line":4,"start_character":38,"end_line":4,"end_character":40},"in_reply_to":"7f96bb07_7c041518","updated":"2018-01-12 07:23:04.000000000","message":"Done","commit_id":"48424e19aa4dcff9d3c9908f3d5d7630f80a8aa3"}]}
