)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"8c71f0c516b94b848ec1085c973eee17f61acb27","unresolved":false,"context_lines":[{"line_number":21,"context_line":"  and nova quota-class-update CLIs and API bindings."},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"Part of blueprint deprecate-file-injection"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"Change-Id: Id13e3eac3ef87d429454042ac7046e865774ff8e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":9,"id":"7f96bb07_47ad2fe7","line":24,"updated":"2018-01-17 12:08:09.000000000","message":"Please, next time add a ref for nova\u0027s change.\n\nIa89eeb6725459c35369e8f790f68ad9180bd3aba","commit_id":"038cfdd5b3395acbf483dc982cae3eba34ddf1c5"}],"novaclient/exceptions.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c0e7d7af2b4f8a1f2cfd4c9aa4232b30c0f2b7bb","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            self.message \u003d ("},{"line_number":49,"context_line":"                \"\u0027%(name)s\u0027 argument is only allowed since microversion \""},{"line_number":50,"context_line":"                \"%(start)s.\" % {\"name\": argument_name, \"start\": start_version})"},{"line_number":51,"context_line":"        super(UnsupportedAttribute, self).__init__(self.message)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class CommandError(Exception):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_5f675eb8","line":51,"updated":"2017-12-18 18:05:10.000000000","message":"This is needed so we can do things like:\n\n  self.assertIn(\u0027files\u0027, six.text_type(ex))\n\non this type of exception.","commit_id":"8d5d482f1a2592fa3da37185f5e2e2a89b195964"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"eb269b7be58399c31a37af0cc39cbdee662c61ed","unresolved":false,"context_lines":[{"line_number":48,"context_line":"            self.message \u003d ("},{"line_number":49,"context_line":"                \"\u0027%(name)s\u0027 argument is only allowed since microversion \""},{"line_number":50,"context_line":"                \"%(start)s.\" % {\"name\": argument_name, \"start\": start_version})"},{"line_number":51,"context_line":"        super(UnsupportedAttribute, self).__init__(self.message)"},{"line_number":52,"context_line":""},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"class CommandError(Exception):"}],"source_content_type":"text/x-python","patch_set":7,"id":"7f96bb07_91d0eaf9","line":51,"updated":"2018-01-11 20:25:14.000000000","message":"As discussed on IRC, needed because six.text_type(exc) needs it.","commit_id":"3c959f9fce58afffd5d65cc20191573f00bfc9b5"}],"novaclient/tests/unit/fixture_data/limits.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c0e7d7af2b4f8a1f2cfd4c9aa4232b30c0f2b7bb","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    \"\"\"Fixture data for the 2.57 microversion where personality files are"},{"line_number":86,"context_line":"    deprecated."},{"line_number":87,"context_line":"    \"\"\""},{"line_number":88,"context_line":"    absolute \u003d {"},{"line_number":89,"context_line":"        \"maxTotalRAMSize\": 51200,"},{"line_number":90,"context_line":"        \"maxServerMeta\": 5"},{"line_number":91,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_bf0b0ad3","line":88,"range":{"start_line":88,"start_character":4,"end_line":88,"end_character":12},"updated":"2017-12-18 18:05:10.000000000","message":"maxImageMeta isn\u0027t included here because that was deprecated in 2.38.","commit_id":"8d5d482f1a2592fa3da37185f5e2e2a89b195964"}],"novaclient/tests/unit/fixture_data/quotas.py":[{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"0df762fb069596fc0b26955f82a105f266f07d98","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_quota(self, tenant_id\u003d\u0027test\u0027):"},{"line_number":54,"context_line":"        return {"},{"line_number":55,"context_line":"            \u0027tenant_id\u0027: tenant_id,"},{"line_number":56,"context_line":"            \u0027metadata_items\u0027: 1,"},{"line_number":57,"context_line":"            \u0027injected_file_content_bytes\u0027: 1,"},{"line_number":58,"context_line":"            \u0027injected_file_path_bytes\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf8cb3f7_b5284f86","line":55,"range":{"start_line":55,"start_character":13,"end_line":55,"end_character":22},"updated":"2017-12-25 07:44:39.000000000","message":"ditto","commit_id":"5428acd471127d2b4ad12076b81cb9ea9fb44532"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"027d927b8f5b8e45a40ed3ef7390263201241b47","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"    def test_quota(self, tenant_id\u003d\u0027test\u0027):"},{"line_number":54,"context_line":"        return {"},{"line_number":55,"context_line":"            \u0027tenant_id\u0027: tenant_id,"},{"line_number":56,"context_line":"            \u0027metadata_items\u0027: 1,"},{"line_number":57,"context_line":"            \u0027injected_file_content_bytes\u0027: 1,"},{"line_number":58,"context_line":"            \u0027injected_file_path_bytes\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_7a6654f0","line":55,"range":{"start_line":55,"start_character":13,"end_line":55,"end_character":22},"in_reply_to":"bf8cb3f7_b5284f86","updated":"2018-01-02 14:57:19.000000000","message":"Done","commit_id":"5428acd471127d2b4ad12076b81cb9ea9fb44532"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"0df762fb069596fc0b26955f82a105f266f07d98","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_quota(self, tenant_id\u003d\u0027test\u0027):"},{"line_number":78,"context_line":"        return {"},{"line_number":79,"context_line":"            \u0027tenant_id\u0027: tenant_id,"},{"line_number":80,"context_line":"            \u0027metadata_items\u0027: 1,"},{"line_number":81,"context_line":"            \u0027ram\u0027: 1,"},{"line_number":82,"context_line":"            \u0027instances\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"bf8cb3f7_d502b309","line":79,"range":{"start_line":79,"start_character":13,"end_line":79,"end_character":22},"updated":"2017-12-25 07:44:39.000000000","message":"It should be \u0027id\u0027.","commit_id":"5428acd471127d2b4ad12076b81cb9ea9fb44532"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"5236852d1ab2e3fad8c93275d0794fc60896ffcf","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_quota(self, tenant_id\u003d\u0027test\u0027):"},{"line_number":78,"context_line":"        return {"},{"line_number":79,"context_line":"            \u0027tenant_id\u0027: tenant_id,"},{"line_number":80,"context_line":"            \u0027metadata_items\u0027: 1,"},{"line_number":81,"context_line":"            \u0027ram\u0027: 1,"},{"line_number":82,"context_line":"            \u0027instances\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_bad05c52","line":79,"range":{"start_line":79,"start_character":13,"end_line":79,"end_character":22},"in_reply_to":"9f91af0f_5a6910bc","updated":"2018-01-02 15:04:03.000000000","message":"Actually this looks like a separate bug which also affects the python API binding code:\n\nhttps://github.com/openstack/python-novaclient/blob/852bd46805098e03fdd85a83ccbeec403bfb4836/novaclient/v2/quotas.py#L23\n\nSo I\u0027d like to fix that separately.","commit_id":"5428acd471127d2b4ad12076b81cb9ea9fb44532"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"027d927b8f5b8e45a40ed3ef7390263201241b47","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"    def test_quota(self, tenant_id\u003d\u0027test\u0027):"},{"line_number":78,"context_line":"        return {"},{"line_number":79,"context_line":"            \u0027tenant_id\u0027: tenant_id,"},{"line_number":80,"context_line":"            \u0027metadata_items\u0027: 1,"},{"line_number":81,"context_line":"            \u0027ram\u0027: 1,"},{"line_number":82,"context_line":"            \u0027instances\u0027: 1,"}],"source_content_type":"text/x-python","patch_set":6,"id":"9f91af0f_5a6910bc","line":79,"range":{"start_line":79,"start_character":13,"end_line":79,"end_character":22},"in_reply_to":"bf8cb3f7_d502b309","updated":"2018-01-02 14:57:19.000000000","message":"Done","commit_id":"5428acd471127d2b4ad12076b81cb9ea9fb44532"}],"novaclient/tests/unit/v2/test_limits.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"11a2c2e48864528a1524214d9a10d17baeb38ab2","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"    client_fixture_class \u003d client.V1"},{"line_number":25,"context_line":"    data_fixture_class \u003d data.Fixture"},{"line_number":26,"context_line":"    supports_image_meta \u003d True   # 2.38 deprecates maxImageMeta"},{"line_number":27,"context_line":"    supports_personality \u003d True  # 2.57 deprecates maxPersonality*"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def test_get_limits(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"df87a7cf_5fd43ee9","line":26,"range":{"start_line":26,"start_character":37,"end_line":26,"end_character":39},"updated":"2017-12-18 18:12:21.000000000","message":"2.39 actually:\n\nhttps://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id35","commit_id":"8d5d482f1a2592fa3da37185f5e2e2a89b195964"}],"novaclient/tests/unit/v2/test_servers.py":[{"author":{"_account_id":24711,"name":"Jackie Truong","email":"jacklyn.truong@jhuapl.edu","username":"jackie-truong"},"change_message_id":"fcfe01e3d4370619e3c6ec644f81a63c2fc1544f","unresolved":false,"context_lines":[{"line_number":1624,"context_line":""},{"line_number":1625,"context_line":"class ServersV257Test(ServersV256Test):"},{"line_number":1626,"context_line":"    \"\"\"Tests the servers python API bindings with microversion 2.57 where"},{"line_number":1627,"context_line":"    personality files are deprecated and the userdata kwarg is added to"},{"line_number":1628,"context_line":"    rebuild."},{"line_number":1629,"context_line":"    \"\"\""},{"line_number":1630,"context_line":"    api_version \u003d \"2.57\""},{"line_number":1631,"context_line":"    supports_files \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"df87a7cf_8cecc6f4","line":1628,"range":{"start_line":1627,"start_character":37,"end_line":1628,"end_character":11},"updated":"2017-12-19 16:52:00.000000000","message":"How is this being tested?","commit_id":"f18624eaf3413a92e368d65577ff4c1d08d68cee"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"c374760079cfde6512d4a6b2bf58b941b6eef783","unresolved":false,"context_lines":[{"line_number":1624,"context_line":""},{"line_number":1625,"context_line":"class ServersV257Test(ServersV256Test):"},{"line_number":1626,"context_line":"    \"\"\"Tests the servers python API bindings with microversion 2.57 where"},{"line_number":1627,"context_line":"    personality files are deprecated and the userdata kwarg is added to"},{"line_number":1628,"context_line":"    rebuild."},{"line_number":1629,"context_line":"    \"\"\""},{"line_number":1630,"context_line":"    api_version \u003d \"2.57\""},{"line_number":1631,"context_line":"    supports_files \u003d False"}],"source_content_type":"text/x-python","patch_set":5,"id":"bf8cb3f7_a88fadca","line":1628,"range":{"start_line":1627,"start_character":37,"end_line":1628,"end_character":11},"in_reply_to":"df87a7cf_8cecc6f4","updated":"2017-12-22 16:46:50.000000000","message":"Good point. I removed the test I had in here because it was redundant with the CLI tests I have which go through the same code paths.\n\nhttps://review.openstack.org/#/c/528128/5/novaclient/tests/unit/v2/test_shell.py@1581\n\nI could remove this part of the docstring to avoid confusion.","commit_id":"f18624eaf3413a92e368d65577ff4c1d08d68cee"},{"author":{"_account_id":24711,"name":"Jackie Truong","email":"jacklyn.truong@jhuapl.edu","username":"jackie-truong"},"change_message_id":"4d6de68ba59f30cff74fa5e28d694c59f607f861","unresolved":false,"context_lines":[{"line_number":1622,"context_line":"        self.assertIn(\u0027host\u0027, six.text_type(ex))"},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":""},{"line_number":1625,"context_line":"class ServersV257Test(ServersV256Test):"},{"line_number":1626,"context_line":"    \"\"\"Tests the servers python API bindings with microversion 2.57 where"},{"line_number":1627,"context_line":"    personality files are deprecated."},{"line_number":1628,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f91af0f_b3fac23f","line":1625,"updated":"2018-01-02 23:35:53.000000000","message":"Can we add tests for userdata being specified during rebuild?","commit_id":"3c959f9fce58afffd5d65cc20191573f00bfc9b5"},{"author":{"_account_id":24711,"name":"Jackie Truong","email":"jacklyn.truong@jhuapl.edu","username":"jackie-truong"},"change_message_id":"1ceace790972d4d372dc6848351cb497de55d501","unresolved":false,"context_lines":[{"line_number":1622,"context_line":"        self.assertIn(\u0027host\u0027, six.text_type(ex))"},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":""},{"line_number":1625,"context_line":"class ServersV257Test(ServersV256Test):"},{"line_number":1626,"context_line":"    \"\"\"Tests the servers python API bindings with microversion 2.57 where"},{"line_number":1627,"context_line":"    personality files are deprecated."},{"line_number":1628,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f91af0f_0c181b73","line":1625,"in_reply_to":"9f91af0f_378450b1","updated":"2018-01-03 19:23:00.000000000","message":"Got it. Thanks for the explanation.","commit_id":"3c959f9fce58afffd5d65cc20191573f00bfc9b5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3abe86fdd5b72d0ed549d9d5008a8828aeb99634","unresolved":false,"context_lines":[{"line_number":1622,"context_line":"        self.assertIn(\u0027host\u0027, six.text_type(ex))"},{"line_number":1623,"context_line":""},{"line_number":1624,"context_line":""},{"line_number":1625,"context_line":"class ServersV257Test(ServersV256Test):"},{"line_number":1626,"context_line":"    \"\"\"Tests the servers python API bindings with microversion 2.57 where"},{"line_number":1627,"context_line":"    personality files are deprecated."},{"line_number":1628,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"9f91af0f_378450b1","line":1625,"in_reply_to":"9f91af0f_b3fac23f","updated":"2018-01-03 14:50:21.000000000","message":"Those are handled in the shell tests, which would just be duplicated here. The shell tests go through the API binding code and the fakes module.","commit_id":"3c959f9fce58afffd5d65cc20191573f00bfc9b5"}]}
