)]}'
{"doc/api_samples/os-instance-actions/v2.16/instance-action-get-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        ],"},{"line_number":20,"context_line":"        \"instance_uuid\": \"b48316c5-71e8-45e4-9884-6c78055b9b13\","},{"line_number":21,"context_line":"        \"message\": \"\","},{"line_number":22,"context_line":"        \"project_id\": \"147\","},{"line_number":23,"context_line":"        \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":24,"context_line":"        \"start_time\": \"2012-12-05T00:00:00.000000\","},{"line_number":25,"context_line":"        \"user_id\": \"789\""}],"source_content_type":"application/json","patch_set":5,"id":"da6ed579_7b564707","line":22,"range":{"start_line":22,"start_character":23,"end_line":22,"end_character":26},"updated":"2016-01-14 22:04:44.000000000","message":"This should actually be a uuid.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e000c217455a4ac34d3c23bd1c4f4f4b51923928","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        ],"},{"line_number":20,"context_line":"        \"instance_uuid\": \"b48316c5-71e8-45e4-9884-6c78055b9b13\","},{"line_number":21,"context_line":"        \"message\": \"\","},{"line_number":22,"context_line":"        \"project_id\": \"147\","},{"line_number":23,"context_line":"        \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":24,"context_line":"        \"start_time\": \"2012-12-05T00:00:00.000000\","},{"line_number":25,"context_line":"        \"user_id\": \"789\""}],"source_content_type":"application/json","patch_set":5,"id":"da6ed579_b63a9697","line":22,"range":{"start_line":22,"start_character":23,"end_line":22,"end_character":26},"in_reply_to":"da6ed579_7b564707","updated":"2016-01-14 22:06:39.000000000","message":"Actually I guess the API doesn\u0027t enforce that they are uuids, this came up in the nova meeting today, so we can\u0027t assume they are, so leaving these as ints is fine.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"        \"project_id\": \"147\","},{"line_number":23,"context_line":"        \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":24,"context_line":"        \"start_time\": \"2012-12-05T00:00:00.000000\","},{"line_number":25,"context_line":"        \"user_id\": \"789\""},{"line_number":26,"context_line":"    }"},{"line_number":27,"context_line":"}"}],"source_content_type":"application/json","patch_set":5,"id":"da6ed579_3b452f45","line":25,"range":{"start_line":25,"start_character":20,"end_line":25,"end_character":23},"updated":"2016-01-14 22:04:44.000000000","message":"Same here.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"}],"doc/api_samples/os-instance-actions/v2.16/instance-actions-list-resp.json":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"            \"action\": \"resize\","},{"line_number":5,"context_line":"            \"instance_uuid\": \"b48316c5-71e8-45e4-9884-6c78055b9b13\","},{"line_number":6,"context_line":"            \"message\": \"\","},{"line_number":7,"context_line":"            \"project_id\": \"842\","},{"line_number":8,"context_line":"            \"request_id\": \"req-25517360-b757-47d3-be45-0e8d2a01b36a\","},{"line_number":9,"context_line":"            \"start_time\": \"2012-12-05T01:00:00.000000\","},{"line_number":10,"context_line":"            \"user_id\": \"789\""}],"source_content_type":"application/json","patch_set":5,"id":"da6ed579_5b958384","line":7,"range":{"start_line":7,"start_character":27,"end_line":7,"end_character":30},"updated":"2016-01-14 22:04:44.000000000","message":"Should be a uuid, same for user_id.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"}],"nova/api/openstack/compute/instance_actions.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"621941e9ba06a1dd5a4e33ea8cdbb95e163c59c1","unresolved":false,"context_lines":[{"line_number":63,"context_line":"            return self._index(context, req, server_id)"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    def _index(self, context, req, server_id):"},{"line_number":66,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":67,"context_line":"        authorize(context, target\u003dinstance)"},{"line_number":68,"context_line":"        actions_raw \u003d self.action_api.actions_get(context, instance)"},{"line_number":69,"context_line":"        actions \u003d [self._format_action(action) for action in actions_raw]"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_b55546c7","line":66,"updated":"2015-12-04 01:39:49.000000000","message":"I think you only want to mutate the context around the get_instance call, not the entire method.","commit_id":"22cca10e4f49816bf9f7f107bfd9d78fb561cb50"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"621941e9ba06a1dd5a4e33ea8cdbb95e163c59c1","unresolved":false,"context_lines":[{"line_number":81,"context_line":"            return self._show(context, req, server_id, id)"},{"line_number":82,"context_line":""},{"line_number":83,"context_line":"    def _show(self, context, req, server_id, id):"},{"line_number":84,"context_line":"        instance \u003d common.get_instance(self.compute_api, context, server_id)"},{"line_number":85,"context_line":"        authorize(context, target\u003dinstance)"},{"line_number":86,"context_line":"        action \u003d self.action_api.action_get_by_request_id(context, instance,"},{"line_number":87,"context_line":"                                                          id)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_755efeea","line":84,"updated":"2015-12-04 01:39:49.000000000","message":"ditto","commit_id":"22cca10e4f49816bf9f7f107bfd9d78fb561cb50"}],"nova/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":154,"context_line":"2.16"},{"line_number":155,"context_line":"----"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  The ``os-instance-actions`` api now returns information from deleted"},{"line_number":158,"context_line":"  instances."}],"source_content_type":"text/x-rst","patch_set":5,"id":"da6ed579_505d6245","line":157,"range":{"start_line":157,"start_character":30,"end_line":157,"end_character":33},"updated":"2016-01-14 22:04:44.000000000","message":"nit: API","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"}],"nova/tests/functional/api/client.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3d933ac15d3b1beef516c5ec2d848b7014f1456d","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def api_get(self, relative_uri, api_version\u003dNone, **kwargs):"},{"line_number":197,"context_line":"        kwargs.setdefault(\u0027check_response_status\u0027, [200])"},{"line_number":198,"context_line":"        if api_version:"},{"line_number":199,"context_line":"            headers \u003d kwargs.setdefault(\u0027headers\u0027, {})"},{"line_number":200,"context_line":"            headers[\u0027X-OpenStack-Nova-API-Version\u0027] \u003d api_version"},{"line_number":201,"context_line":"        return APIResponse(self.api_request(relative_uri, **kwargs))"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def api_post(self, relative_uri, body, api_version\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_ab3ad2cb","line":200,"range":{"start_line":198,"start_character":8,"end_line":200,"end_character":65},"updated":"2016-02-03 12:34:08.000000000","message":"This looks like temporary turning for client. Can we add those into \u0027get_instance_actions\u0027, then we pass headers into api_get. Limit this change into \u0027get_instance_actions\u0027, then we refactor those with better solution later.","commit_id":"d88287ee8a0e0290f6e2dd0d58c422d7c9f86af2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"fc80e85fbd406dd1f204657dcbf78c4200b4f768","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def api_get(self, relative_uri, api_version\u003dNone, **kwargs):"},{"line_number":197,"context_line":"        kwargs.setdefault(\u0027check_response_status\u0027, [200])"},{"line_number":198,"context_line":"        if api_version:"},{"line_number":199,"context_line":"            headers \u003d kwargs.setdefault(\u0027headers\u0027, {})"},{"line_number":200,"context_line":"            headers[\u0027X-OpenStack-Nova-API-Version\u0027] \u003d api_version"},{"line_number":201,"context_line":"        return APIResponse(self.api_request(relative_uri, **kwargs))"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def api_post(self, relative_uri, body, api_version\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_36d70625","line":200,"range":{"start_line":198,"start_character":8,"end_line":200,"end_character":65},"in_reply_to":"5a5ae5dd_723cc593","updated":"2016-02-04 01:59:43.000000000","message":"yea, I missed that. So i\u0027m also fine with this.","commit_id":"d88287ee8a0e0290f6e2dd0d58c422d7c9f86af2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"870ec604ccd8555e9a5a93f633543c6e71d47ada","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"    def api_get(self, relative_uri, api_version\u003dNone, **kwargs):"},{"line_number":197,"context_line":"        kwargs.setdefault(\u0027check_response_status\u0027, [200])"},{"line_number":198,"context_line":"        if api_version:"},{"line_number":199,"context_line":"            headers \u003d kwargs.setdefault(\u0027headers\u0027, {})"},{"line_number":200,"context_line":"            headers[\u0027X-OpenStack-Nova-API-Version\u0027] \u003d api_version"},{"line_number":201,"context_line":"        return APIResponse(self.api_request(relative_uri, **kwargs))"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"    def api_post(self, relative_uri, body, api_version\u003dNone, **kwargs):"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_723cc593","line":200,"range":{"start_line":198,"start_character":8,"end_line":200,"end_character":65},"in_reply_to":"5a5ae5dd_ab3ad2cb","updated":"2016-02-03 15:44:58.000000000","message":"This seems to copy api_post below., which is just fine.","commit_id":"d88287ee8a0e0290f6e2dd0d58c422d7c9f86af2"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"870ec604ccd8555e9a5a93f633543c6e71d47ada","unresolved":false,"context_lines":[{"line_number":208,"context_line":"            kwargs[\u0027body\u0027] \u003d jsonutils.dumps(body)"},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"        if api_version:"},{"line_number":211,"context_line":"            headers[\u0027X-OpenStack-Nova-API-Version\u0027] \u003d api_version"},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"        kwargs.setdefault(\u0027check_response_status\u0027, [200, 202])"},{"line_number":214,"context_line":"        return APIResponse(self.api_request(relative_uri, **kwargs))"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_b2bb1d0e","line":211,"updated":"2016-02-03 15:44:58.000000000","message":"see above.","commit_id":"d88287ee8a0e0290f6e2dd0d58c422d7c9f86af2"}],"nova/tests/functional/api_sample_tests/api_samples/os-instance-actions/v2.16/instance-action-get-resp.json.tpl":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":3,"context_line":"            \"action\": \"%(action)s\","},{"line_number":4,"context_line":"            \"instance_uuid\": \"%(instance_uuid)s\","},{"line_number":5,"context_line":"            \"request_id\": \"%(request_id)s\","},{"line_number":6,"context_line":"            \"user_id\": \"%(integer_id)s\","},{"line_number":7,"context_line":"            \"project_id\": \"%(integer_id)s\","},{"line_number":8,"context_line":"            \"start_time\": \"%(strtime)s\","},{"line_number":9,"context_line":"            \"message\": \"\","}],"source_content_type":"text/x-smarty","patch_set":5,"id":"da6ed579_7011865c","line":6,"range":{"start_line":6,"start_character":26,"end_line":6,"end_character":36},"updated":"2016-01-14 22:04:44.000000000","message":"user_id and project_id are actually uuids. I\u0027m assuming this response is copied from something, but it\u0027s technically not correct.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"}],"nova/tests/functional/api_sample_tests/api_samples/os-instance-actions/v2.16/instance-actions-list-resp.json.tpl":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"            \"action\": \"%(action)s\","},{"line_number":5,"context_line":"            \"instance_uuid\": \"%(uuid)s\","},{"line_number":6,"context_line":"            \"request_id\": \"%(request_id)s\","},{"line_number":7,"context_line":"            \"user_id\": \"%(integer_id)s\","},{"line_number":8,"context_line":"            \"project_id\": \"%(integer_id)s\","},{"line_number":9,"context_line":"            \"start_time\": \"%(strtime)s\","},{"line_number":10,"context_line":"            \"message\": \"\""}],"source_content_type":"text/x-smarty","patch_set":5,"id":"da6ed579_1b186b74","line":7,"range":{"start_line":7,"start_character":26,"end_line":7,"end_character":36},"updated":"2016-01-14 22:04:44.000000000","message":"This would be a uuid, same for project_id.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"}],"nova/tests/functional/api_sample_tests/api_samples/os-instance-actions/v2.16/instance-instance-get-resp.json.tpl":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"        ],"},{"line_number":20,"context_line":"        \"instance_uuid\": \"b48316c5-71e8-45e4-9884-6c78055b9b13\","},{"line_number":21,"context_line":"        \"message\": \"\","},{"line_number":22,"context_line":"        \"project_id\": \"147\","},{"line_number":23,"context_line":"        \"request_id\": \"req-3293a3f1-b44c-4609-b8d2-d81b105636b8\","},{"line_number":24,"context_line":"        \"start_time\": \"2012-12-05T00:00:00.000000\","},{"line_number":25,"context_line":"        \"user_id\": \"789\""}],"source_content_type":"text/x-smarty","patch_set":5,"id":"da6ed579_db6413ba","line":22,"range":{"start_line":22,"start_character":23,"end_line":22,"end_character":26},"updated":"2016-01-14 22:04:44.000000000","message":"Should be a uuid, same for user_id.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"}],"nova/tests/functional/api_sample_tests/test_instance_actions.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":82,"context_line":""},{"line_number":83,"context_line":"        response \u003d self._do_get(\u0027servers/%s/os-instance-actions/%s\u0027 %"},{"line_number":84,"context_line":"                                (fake_uuid, fake_request_id),"},{"line_number":85,"context_line":"                                api_version\u003dself.request_api_version)"},{"line_number":86,"context_line":"        subs \u003d {}"},{"line_number":87,"context_line":"        subs[\u0027action\u0027] \u003d \u0027(reboot)|(resize)\u0027"},{"line_number":88,"context_line":"        subs[\u0027instance_uuid\u0027] \u003d fake_uuid"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_dbbc13bd","line":85,"updated":"2016-01-14 22:04:44.000000000","message":"I thought the base class method was supposed to get the microversion from the testscenario?\n\nhttps://github.com/openstack/nova/blob/master/nova/tests/functional/api_samples_test_base.py#L392\n\nOr something like this?\n\nhttps://github.com/openstack/nova/blob/master/nova/tests/functional/test_server_group.py#L551\n\nWe might need to ask sdague, but I don\u0027t think we need to explicitly pass this in, I thought testscenarios handled it.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class ServerActionsV216SampleJsonTest(ServerActionsSampleJsonTest):"},{"line_number":110,"context_line":"    request_api_version \u003d \u00272.16\u0027"},{"line_number":111,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {})]"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def setUp(self):"},{"line_number":114,"context_line":"        super(ServerActionsV216SampleJsonTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_fb579723","line":111,"range":{"start_line":111,"start_character":4,"end_line":111,"end_character":31},"updated":"2016-01-14 22:04:44.000000000","message":"From looking at other examples, it looks like this should be:\n\nscenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]\n\nBut I probably need sdague to confirm, I think it\u0027s overriding this though:\n\nhttps://github.com/openstack/nova/blob/master/nova/tests/functional/api_sample_tests/api_sample_base.py#L77","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"028ea88622d7b97f10bc1fdba74437d52e4fc473","unresolved":false,"context_lines":[{"line_number":108,"context_line":""},{"line_number":109,"context_line":"class ServerActionsV216SampleJsonTest(ServerActionsSampleJsonTest):"},{"line_number":110,"context_line":"    request_api_version \u003d \u00272.16\u0027"},{"line_number":111,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {})]"},{"line_number":112,"context_line":""},{"line_number":113,"context_line":"    def setUp(self):"},{"line_number":114,"context_line":"        super(ServerActionsV216SampleJsonTest, self).setUp()"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_addfa038","line":111,"range":{"start_line":111,"start_character":4,"end_line":111,"end_character":31},"in_reply_to":"da6ed579_fb579723","updated":"2016-01-14 22:51:04.000000000","message":"See this: https://review.openstack.org/#/c/267853/\n\nThat should help explain how this works a bit, or at least the pattern to follow.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":113,"context_line":"    def setUp(self):"},{"line_number":114,"context_line":"        super(ServerActionsV216SampleJsonTest, self).setUp()"},{"line_number":115,"context_line":""},{"line_number":116,"context_line":"        def fake_get(api, context, instance_uuid, expected_attrs\u003dNone,"},{"line_number":117,"context_line":"                     want_objects\u003dTrue):"},{"line_number":118,"context_line":"            self.assertEqual(\u0027yes\u0027, context.read_deleted)"},{"line_number":119,"context_line":"            return fake_instance.fake_instance_obj("}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_5b94a341","line":116,"range":{"start_line":116,"start_character":12,"end_line":116,"end_character":20},"updated":"2016-01-14 22:04:44.000000000","message":"If we pulled the fake_get method out of the parent class\u0027s setUp method, then we could override it in this class and just have something like this:\n\n  def fake_get(api, context, instance_uuid, expected_attrs\u003dNone,\n               want_objects\u003dTrue):\n      fake_inst \u003d super(ServerActionsV216SampleJsonTest, self).fake_get(\n         api, context, instance_uuid, expected_attrs,\n         want_objects)\n      self.assertEqual(\u0027yes\u0027, context.read_deleted)\n      return fake_inst\n\nThen we wouldn\u0027t need to override setUp in this class, we just override the stub to add the assertion.","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":119,"context_line":"            return fake_instance.fake_instance_obj("},{"line_number":120,"context_line":"                None, **{\u0027uuid\u0027: instance_uuid})"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"        self.stubs.Set(compute_api.API, \u0027get\u0027, fake_get)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_fb19d722","line":122,"range":{"start_line":122,"start_character":8,"end_line":122,"end_character":22},"updated":"2016-01-14 22:04:44.000000000","message":"Use self.stub_out now, see:\n\n3809444a5044c0e76cac8231281a824bed37b9fa","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"870ec604ccd8555e9a5a93f633543c6e71d47ada","unresolved":false,"context_lines":[{"line_number":29,"context_line":""},{"line_number":30,"context_line":""},{"line_number":31,"context_line":"class ServerActionsSampleJsonTest(api_sample_base.ApiSampleTestBaseV21):"},{"line_number":32,"context_line":"    request_api_version \u003d None"},{"line_number":33,"context_line":"    ADMIN_API \u003d True"},{"line_number":34,"context_line":"    extension_name \u003d \u0027os-instance-actions\u0027"},{"line_number":35,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_9ef38d73","line":32,"updated":"2016-02-03 15:44:58.000000000","message":"seems like this should be:\nmicroversion \u003d None\nhttps://github.com/openstack/nova/blob/master/nova/tests/functional/api_sample_tests/test_keypairs.py#L30","commit_id":"d88287ee8a0e0290f6e2dd0d58c422d7c9f86af2"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3d933ac15d3b1beef516c5ec2d848b7014f1456d","unresolved":false,"context_lines":[{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"class ServerActionsV220SampleJsonTest(ServerActionsSampleJsonTest):"},{"line_number":108,"context_line":"    request_api_version \u003d \u00272.20\u0027"},{"line_number":109,"context_line":"    scenarios \u003d [(\u0027v2_20\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":110,"context_line":""},{"line_number":111,"context_line":"    def _fake_get(self, context, instance_uuid, expected_attrs\u003dNone,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a5ae5dd_10031775","line":108,"range":{"start_line":108,"start_character":4,"end_line":108,"end_character":32},"updated":"2016-02-03 12:34:08.000000000","message":"we should write \u0027microversion \u003d \u00272.10\u0027\u0027 at here. there are some change for sample tests recently. you can learn from https://github.com/openstack/nova/blob/master/nova/tests/functional/api_sample_tests/test_keypairs.py#L172","commit_id":"d88287ee8a0e0290f6e2dd0d58c422d7c9f86af2"}],"nova/tests/unit/api/openstack/compute/test_instance_actions.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"621941e9ba06a1dd5a4e33ea8cdbb95e163c59c1","unresolved":false,"context_lines":[{"line_number":256,"context_line":"    @mock.patch.object(db, \u0027actions_get\u0027)"},{"line_number":257,"context_line":"    def test_list_actions_on_deleted(self, mock_actions_get):"},{"line_number":258,"context_line":"        def fake_get_actions(context, uuid):"},{"line_number":259,"context_line":"            self.assertEqual(context.read_deleted, \u0027yes\u0027)"},{"line_number":260,"context_line":"            actions \u003d []"},{"line_number":261,"context_line":"            return actions"},{"line_number":262,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_1570da71","line":259,"updated":"2015-12-04 01:39:49.000000000","message":"nit: the args should be reversed (expected, observed)\n\nIt impacts the output of the error message if this fails.","commit_id":"22cca10e4f49816bf9f7f107bfd9d78fb561cb50"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"621941e9ba06a1dd5a4e33ea8cdbb95e163c59c1","unresolved":false,"context_lines":[{"line_number":269,"context_line":"                                            mock_action_get_by_request_id,"},{"line_number":270,"context_line":"                                            mock_action_events_get):"},{"line_number":271,"context_line":"        def fake_action_get_by_request_id(context, uuid, request_id):"},{"line_number":272,"context_line":"            self.assertEqual(context.read_deleted, \u0027yes\u0027)"},{"line_number":273,"context_line":"            action \u003d models.InstanceAction()"},{"line_number":274,"context_line":"            return action"},{"line_number":275,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_551422f4","line":272,"updated":"2015-12-04 01:39:49.000000000","message":"ditto","commit_id":"22cca10e4f49816bf9f7f107bfd9d78fb561cb50"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"621941e9ba06a1dd5a4e33ea8cdbb95e163c59c1","unresolved":false,"context_lines":[{"line_number":274,"context_line":"            return action"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        def fake_action_events_get(context, action_id):"},{"line_number":277,"context_line":"            self.assertEqual(context.read_deleted, \u0027yes\u0027)"},{"line_number":278,"context_line":"            events \u003d []"},{"line_number":279,"context_line":"            return events"},{"line_number":280,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a740942_552bc230","line":277,"updated":"2015-12-04 01:39:49.000000000","message":"We don\u0027t actually need the context mutated to read instance action events, since those aren\u0027t (soft) deleted, only the instances are.","commit_id":"22cca10e4f49816bf9f7f107bfd9d78fb561cb50"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":259,"context_line":""},{"line_number":260,"context_line":"        def fake_get(api, context, instance_uuid, expected_attrs\u003dNone,"},{"line_number":261,"context_line":"                     want_objects\u003dFalse):"},{"line_number":262,"context_line":"            self.assertEqual(\u0027yes\u0027, context.read_deleted)"},{"line_number":263,"context_line":"            return objects.Instance(uuid\u003dinstance_uuid)"},{"line_number":264,"context_line":""},{"line_number":265,"context_line":"        self.mock_get \u003d mock.patch(\u0027nova.compute.api.API.get\u0027, fake_get)"}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_7bb5e77b","line":262,"range":{"start_line":262,"start_character":12,"end_line":262,"end_character":57},"updated":"2016-01-14 22:04:44.000000000","message":"Can we avoid overriding most of the parent class\u0027s setUp method by just adding this check in the base class\u0027s fake_get and make it conditional on the wsgi_api_version value?","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"3ec7e718cd0f30ea00ca9eab3b934bd98fe3575f","unresolved":false,"context_lines":[{"line_number":265,"context_line":"        self.mock_get \u003d mock.patch(\u0027nova.compute.api.API.get\u0027, fake_get)"},{"line_number":266,"context_line":"        self.mock_get.start()"},{"line_number":267,"context_line":""},{"line_number":268,"context_line":"    def tearDown(self):"},{"line_number":269,"context_line":"        super(InstanceActionsTestV216, self).tearDown()"},{"line_number":270,"context_line":"        self.mock_get.stop()"},{"line_number":271,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"da6ed579_bbf11f6d","line":268,"updated":"2016-01-14 22:04:44.000000000","message":"We don\u0027t use tearDown, use self.addCleanup instead in the setUp method (after calling self.mock_get.start()).","commit_id":"0af466e6a6e557de933f40e551938d7fb881959e"}]}
