)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"25cfac2f3a6cc1131bdd964ce6e1895739e1e0e9","unresolved":false,"context_lines":[{"line_number":14,"context_line":"APIImpact"},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I6ed777ff637254b4b79417008f9055dd19fc7405"},{"line_number":18,"context_line":"Implements: blueprint inject-nmi"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3a50d1a3_6714479f","line":17,"updated":"2015-07-29 12:04:45.000000000","message":"If the commit message contains\n\n Depends-on: I5029331750d54796251f78d77c727f283945f49c\n\n, this patch is not merged until the corresponding nova-spec patch is merged.\nThat will be helpful for getting enough reviews on this patch because we don\u0027t need to check the spec is approved.","commit_id":"eb984acb8e2e9fc7fd818a38ca6e395bce63000a"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"32d28620d31bcf55e5999934d5af0a004d760696","unresolved":false,"context_lines":[{"line_number":14,"context_line":"APIImpact"},{"line_number":15,"context_line":"DocImpact"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I6ed777ff637254b4b79417008f9055dd19fc7405"},{"line_number":18,"context_line":"Implements: blueprint inject-nmi"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"3a50d1a3_6b4c11c8","line":17,"in_reply_to":"3a50d1a3_6714479f","updated":"2015-07-29 13:15:35.000000000","message":"Done","commit_id":"eb984acb8e2e9fc7fd818a38ca6e395bce63000a"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bbe8774f7114e747550bf70f8580e9a64daf4299","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add a REST API to trigger crash dump in an instance."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous two patches add trigger_crash_dump() API to compute"},{"line_number":10,"context_line":"and cell. This patch adds the REST API to nova. It is used to"},{"line_number":11,"context_line":"trigger crash dump in an instance."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"da6ed579_ec187677","line":9,"range":{"start_line":9,"start_character":13,"end_line":9,"end_character":24},"updated":"2016-01-14 03:24:08.000000000","message":"s/two patches/patch/ because we skipped cell patch.","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"2d3cf9df0039483406dedd00d8c44b19dc97e13d","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add a REST API to trigger crash dump in an instance."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous two patches add trigger_crash_dump() API to compute"},{"line_number":10,"context_line":"and cell. This patch adds the REST API to nova. It is used to"},{"line_number":11,"context_line":"trigger crash dump in an instance."},{"line_number":12,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"da6ed579_9b01ed07","line":9,"range":{"start_line":9,"start_character":13,"end_line":9,"end_character":24},"in_reply_to":"da6ed579_ec187677","updated":"2016-01-14 07:04:23.000000000","message":"Done","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"bbe8774f7114e747550bf70f8580e9a64daf4299","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add a REST API to trigger crash dump in an instance."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous two patches add trigger_crash_dump() API to compute"},{"line_number":10,"context_line":"and cell. This patch adds the REST API to nova. It is used to"},{"line_number":11,"context_line":"trigger crash dump in an instance."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6ed777ff637254b4b79417008f9055dd19fc7405"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"da6ed579_4c074218","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":8},"updated":"2016-01-14 03:24:08.000000000","message":"we need to remove this \"and cell\".","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"2d3cf9df0039483406dedd00d8c44b19dc97e13d","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add a REST API to trigger crash dump in an instance."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The previous two patches add trigger_crash_dump() API to compute"},{"line_number":10,"context_line":"and cell. This patch adds the REST API to nova. It is used to"},{"line_number":11,"context_line":"trigger crash dump in an instance."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Change-Id: I6ed777ff637254b4b79417008f9055dd19fc7405"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":39,"id":"da6ed579_5b07f517","line":10,"range":{"start_line":10,"start_character":0,"end_line":10,"end_character":8},"in_reply_to":"da6ed579_4c074218","updated":"2016-01-14 07:04:23.000000000","message":"Done","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"}],"doc/api_samples/servers/server-action-trigger-crash-dump.json":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9e620a8a3df93aed2fe2cc0b2ef3a179e70022df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"trigger_crash_dump\" : null"},{"line_number":3,"context_line":"}"}],"source_content_type":"application/json","patch_set":31,"id":"fa69d971_a51663a5","line":2,"range":{"start_line":2,"start_character":24,"end_line":2,"end_character":25},"updated":"2016-01-08 05:18:46.000000000","message":"nit: unnecessary space between \"trigger_crash_dump\" and : for valid JSON format.","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39869cef582091d7a7d187c14bde58fd24c3b3d4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"trigger_crash_dump\" : null"},{"line_number":3,"context_line":"}"}],"source_content_type":"application/json","patch_set":31,"id":"fa69d971_75725a13","line":2,"range":{"start_line":2,"start_character":24,"end_line":2,"end_character":25},"in_reply_to":"fa69d971_a51663a5","updated":"2016-01-08 07:14:16.000000000","message":"Done","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"a28e0048c05cd3c9e369cb40c621170f0a249007","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"trigger_crash_dump\": null"},{"line_number":3,"context_line":"}"}],"source_content_type":"application/json","patch_set":39,"id":"da6ed579_5812a40a","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":1},"updated":"2016-01-14 01:23:39.000000000","message":"we need to put this file under doc/api_samples/servers/\u003cmicroversion\u003e/ like doc/api_samples/servers/v2.9/server-get-resp.json","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"df831dbdcabbe46ee6cd9746e6dc5c09df717f6e","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"trigger_crash_dump\": null"},{"line_number":3,"context_line":"}"}],"source_content_type":"application/json","patch_set":39,"id":"da6ed579_78068887","line":3,"range":{"start_line":1,"start_character":0,"end_line":3,"end_character":1},"in_reply_to":"da6ed579_5812a40a","updated":"2016-01-14 01:33:33.000000000","message":"Done","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"}],"nova/api/openstack/api_version_request.py":[{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"40093abc04cd2bfa733e309513834930a1d66a92","unresolved":false,"context_lines":[{"line_number":66,"context_line":"# Note(cyeoh): This only applies for the v2.1 API once microversions"},{"line_number":67,"context_line":"# support is fully merged. It does not affect the V2 API."},{"line_number":68,"context_line":"_MIN_API_VERSION \u003d \"2.1\""},{"line_number":69,"context_line":"_MAX_API_VERSION \u003d \"2.15\""},{"line_number":70,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_12048d13","line":69,"range":{"start_line":69,"start_character":19,"end_line":69,"end_character":25},"updated":"2016-01-12 02:38:07.000000000","message":"s/2.15/2.16","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df5dd49de67fb9e43e27383f7bdd783ebaa8200e","unresolved":false,"context_lines":[{"line_number":66,"context_line":"# Note(cyeoh): This only applies for the v2.1 API once microversions"},{"line_number":67,"context_line":"# support is fully merged. It does not affect the V2 API."},{"line_number":68,"context_line":"_MIN_API_VERSION \u003d \"2.1\""},{"line_number":69,"context_line":"_MAX_API_VERSION \u003d \"2.15\""},{"line_number":70,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_1279ed93","line":69,"updated":"2016-01-12 02:49:09.000000000","message":"you forget update the MAX API version. There should be \"2.16\"","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"197a87f61f5dcf284227dc5521544e28a318603c","unresolved":false,"context_lines":[{"line_number":66,"context_line":"# Note(cyeoh): This only applies for the v2.1 API once microversions"},{"line_number":67,"context_line":"# support is fully merged. It does not affect the V2 API."},{"line_number":68,"context_line":"_MIN_API_VERSION \u003d \"2.1\""},{"line_number":69,"context_line":"_MAX_API_VERSION \u003d \"2.15\""},{"line_number":70,"context_line":"DEFAULT_API_VERSION \u003d _MIN_API_VERSION"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_d23fd5d4","line":69,"in_reply_to":"da6ed579_1279ed93","updated":"2016-01-12 03:22:53.000000000","message":"Done","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"}],"nova/api/openstack/compute/plugins/v3/servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d5277f5edb692e87116d74d28fbff6b2208708ce","unresolved":false,"context_lines":[{"line_number":1132,"context_line":""},{"line_number":1133,"context_line":"    @wsgi.Controller.api_version(\"2.7\")"},{"line_number":1134,"context_line":"    @wsgi.response(202)"},{"line_number":1135,"context_line":"    @extensions.expected_errors((400, 404, 409))"},{"line_number":1136,"context_line":"    @wsgi.action(\u0027inject_nmi\u0027)"},{"line_number":1137,"context_line":"    def _inject_nmi(self, req, id, body):"},{"line_number":1138,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_5aed228d","line":1135,"updated":"2015-07-16 22:46:36.000000000","message":"there isn\u0027t any exception for return 400","commit_id":"299ce42d60f8d903fa6f76f64dbdd952f6174e28"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"d5277f5edb692e87116d74d28fbff6b2208708ce","unresolved":false,"context_lines":[{"line_number":1139,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":1140,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":1141,"context_line":"        authorize(context, instance, \u0027inject_nmi\u0027)"},{"line_number":1142,"context_line":"        LOG.info(_LI(\u0027inject nmi to instance\u0027), instance\u003dinstance)"},{"line_number":1143,"context_line":"        try:"},{"line_number":1144,"context_line":"            self.compute_api.inject_nmi(context, instance)"},{"line_number":1145,"context_line":"        except exception.InstanceInvalidState as state_error:"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a41bdd9_3ad5beb8","line":1142,"updated":"2015-07-16 22:46:36.000000000","message":"this info is useless","commit_id":"299ce42d60f8d903fa6f76f64dbdd952f6174e28"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"936f227cc46d7ebb755cd5885f2f143457f31832","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"    @wsgi.response(202)"},{"line_number":1134,"context_line":"    @extensions.expected_errors((404, 409))"},{"line_number":1135,"context_line":"    @wsgi.action(\u0027inject_nmi\u0027)"},{"line_number":1136,"context_line":"    def _inject_nmi(self, req, id, body):"},{"line_number":1137,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""},{"line_number":1138,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":1139,"context_line":"        instance \u003d self._get_instance(context, id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_6efed46c","line":1136,"updated":"2015-07-27 13:01:45.000000000","message":"I think we still need json-schema for input body, to avoid some extra data user can put in.","commit_id":"c27d9d7762b9402eba874b7a0411a865c789d7ec"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"9059bfd7ac2358f0a360b8374da11689313abb21","unresolved":false,"context_lines":[{"line_number":1133,"context_line":"    @wsgi.response(202)"},{"line_number":1134,"context_line":"    @extensions.expected_errors((404, 409))"},{"line_number":1135,"context_line":"    @wsgi.action(\u0027inject_nmi\u0027)"},{"line_number":1136,"context_line":"    def _inject_nmi(self, req, id, body):"},{"line_number":1137,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""},{"line_number":1138,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":1139,"context_line":"        instance \u003d self._get_instance(context, id)"}],"source_content_type":"text/x-python","patch_set":5,"id":"3a50d1a3_d25202de","line":1136,"in_reply_to":"3a50d1a3_6efed46c","updated":"2015-07-28 07:10:05.000000000","message":"Done","commit_id":"c27d9d7762b9402eba874b7a0411a865c789d7ec"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ec7976aa9881b1862409cbc4ba69c27fb8578fe5","unresolved":false,"context_lines":[{"line_number":1130,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":"    @wsgi.Controller.api_version(\"2.10\")"},{"line_number":1133,"context_line":"    @wsgi.response(202)"},{"line_number":1134,"context_line":"    @extensions.expected_errors((400, 404, 409))"},{"line_number":1135,"context_line":"    @wsgi.action(\u0027inject_nmi\u0027)"},{"line_number":1136,"context_line":"    @validation.schema(schema_servers.inject_nmi, min_version\u003d\u00272.10\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_4e9f9f03","line":1133,"updated":"2015-08-04 06:58:06.000000000","message":"inject_nmi is sync call as https://review.openstack.org/#/c/202605/13/nova/compute/rpcapi.py\n\n\nWe should clear first what expect inject_nmi is sync or async call","commit_id":"6640e83b509ddd9f7ea1b542103de7760e32c67b"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"6f19c072207c9640cd8eb834af5509c06730c1b7","unresolved":false,"context_lines":[{"line_number":1130,"context_line":"            raise webob.exc.HTTPConflict(explanation\u003de.format_message())"},{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":"    @wsgi.Controller.api_version(\"2.10\")"},{"line_number":1133,"context_line":"    @wsgi.response(202)"},{"line_number":1134,"context_line":"    @extensions.expected_errors((400, 404, 409))"},{"line_number":1135,"context_line":"    @wsgi.action(\u0027inject_nmi\u0027)"},{"line_number":1136,"context_line":"    @validation.schema(schema_servers.inject_nmi, min_version\u003d\u00272.10\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_8e31270e","line":1133,"in_reply_to":"1a4dcd0f_4e9f9f03","updated":"2015-08-04 06:58:48.000000000","message":"missing some explain: 202 for async call. 200 for sync call","commit_id":"6640e83b509ddd9f7ea1b542103de7760e32c67b"}],"nova/api/openstack/compute/schemas/servers.py":[{"author":{"_account_id":12175,"name":"Eli Qiao","email":"qiaoliyong@gmail.com","username":"Eli"},"change_message_id":"bc6c01c28a8e718de5600cc3b7fe3a23d18b0e9e","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":167,"context_line":"    \u0027properties\u0027: {"},{"line_number":168,"context_line":"        \u0027trigger_crash_dump\u0027: {"},{"line_number":169,"context_line":"            \u0027type\u0027: \u0027null\u0027"},{"line_number":170,"context_line":"        }"},{"line_number":171,"context_line":"    },"},{"line_number":172,"context_line":"    \u0027required\u0027: [\u0027trigger_crash_dump\u0027],"}],"source_content_type":"text/x-python","patch_set":40,"id":"da6ed579_49004b66","line":169,"range":{"start_line":169,"start_character":19,"end_line":169,"end_character":26},"updated":"2016-01-15 08:17:57.000000000","message":"hi, I think you need to use parameter_types.none\nrefer follow links for examples.\n\nhttps://github.com/openstack/nova/blob/master/doc/api_samples/os-fixed-ips/fixedip-post-req.json#L2\nhttps://github.com/openstack/nova/blob/master/nova/api/openstack/compute/schemas/fixed_ips.py#L22","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"a1fb0a64b23114dc9493a54eba5e60a10a64a699","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":167,"context_line":"    \u0027properties\u0027: {"},{"line_number":168,"context_line":"        \u0027trigger_crash_dump\u0027: {"},{"line_number":169,"context_line":"            \u0027type\u0027: \u0027null\u0027"},{"line_number":170,"context_line":"        }"},{"line_number":171,"context_line":"    },"},{"line_number":172,"context_line":"    \u0027required\u0027: [\u0027trigger_crash_dump\u0027],"}],"source_content_type":"text/x-python","patch_set":40,"id":"da6ed579_4749c18d","line":169,"range":{"start_line":169,"start_character":19,"end_line":169,"end_character":26},"in_reply_to":"da6ed579_3db98bcc","updated":"2016-01-18 01:40:38.000000000","message":"Hi Eli, Alex,\n\nThanks for your advices. So let\u0027s keep it null here.","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"fc3fe8eef50f080aecbc248847d7b9ff5a4d12a7","unresolved":false,"context_lines":[{"line_number":166,"context_line":"    \u0027type\u0027: \u0027object\u0027,"},{"line_number":167,"context_line":"    \u0027properties\u0027: {"},{"line_number":168,"context_line":"        \u0027trigger_crash_dump\u0027: {"},{"line_number":169,"context_line":"            \u0027type\u0027: \u0027null\u0027"},{"line_number":170,"context_line":"        }"},{"line_number":171,"context_line":"    },"},{"line_number":172,"context_line":"    \u0027required\u0027: [\u0027trigger_crash_dump\u0027],"}],"source_content_type":"text/x-python","patch_set":40,"id":"da6ed579_3db98bcc","line":169,"range":{"start_line":169,"start_character":19,"end_line":169,"end_character":26},"in_reply_to":"da6ed579_49004b66","updated":"2016-01-15 10:30:38.000000000","message":"I don\u0027t think so. I thought parameter_types.none is used for suck old api like fixedip, they don\u0027t have restrict validation before. I think we just use null at here looks ok for me","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"}],"nova/api/openstack/compute/servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bfc86b13a7b5d930b163638aa8ea72ef4aa7254d","unresolved":false,"context_lines":[{"line_number":1165,"context_line":"    @wsgi.response(202)"},{"line_number":1166,"context_line":"    @extensions.expected_errors((400, 404, 409))"},{"line_number":1167,"context_line":"    @wsgi.action(\u0027trigger_crash_dump\u0027)"},{"line_number":1168,"context_line":"    @validation.schema(schema_servers.trigger_crash_dump, min_version\u003d\u00272.15\u0027)"},{"line_number":1169,"context_line":"    def _action_trigger_crash_dump(self, req, id, body):"},{"line_number":1170,"context_line":"        \"\"\"Trigger crash dump in an instance\"\"\""},{"line_number":1171,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_7eab59d7","line":1168,"range":{"start_line":1168,"start_character":58,"end_line":1168,"end_character":69},"updated":"2016-01-07 11:52:23.000000000","message":"This is needless. This schema will only be used for this action. We need specify min_version and max_version, when this action is used for multiple version.","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39869cef582091d7a7d187c14bde58fd24c3b3d4","unresolved":false,"context_lines":[{"line_number":1165,"context_line":"    @wsgi.response(202)"},{"line_number":1166,"context_line":"    @extensions.expected_errors((400, 404, 409))"},{"line_number":1167,"context_line":"    @wsgi.action(\u0027trigger_crash_dump\u0027)"},{"line_number":1168,"context_line":"    @validation.schema(schema_servers.trigger_crash_dump, min_version\u003d\u00272.15\u0027)"},{"line_number":1169,"context_line":"    def _action_trigger_crash_dump(self, req, id, body):"},{"line_number":1170,"context_line":"        \"\"\"Trigger crash dump in an instance\"\"\""},{"line_number":1171,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_552f16a1","line":1168,"range":{"start_line":1168,"start_character":58,"end_line":1168,"end_character":69},"in_reply_to":"fa69d971_7eab59d7","updated":"2016-01-08 07:14:16.000000000","message":"But, if the latest version becomes 2.16, do we need this parameter ?  If so, I think we should keep it here.","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bfc86b13a7b5d930b163638aa8ea72ef4aa7254d","unresolved":false,"context_lines":[{"line_number":1171,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":1172,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":1173,"context_line":"        authorize(context, instance, \u0027trigger_crash_dump\u0027)"},{"line_number":1174,"context_line":"        LOG.debug(\u0027Triggering crash dump in instance.\u0027, instance\u003dinstance)"},{"line_number":1175,"context_line":"        try:"},{"line_number":1176,"context_line":"            self.compute_api.trigger_crash_dump(context, instance)"},{"line_number":1177,"context_line":"        except exception.InstanceInvalidState as state_error:"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_b3702ade","line":1174,"updated":"2016-01-07 11:52:23.000000000","message":"I think we have enough debug log in wsgi layer. So this is useless.","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39869cef582091d7a7d187c14bde58fd24c3b3d4","unresolved":false,"context_lines":[{"line_number":1171,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":1172,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":1173,"context_line":"        authorize(context, instance, \u0027trigger_crash_dump\u0027)"},{"line_number":1174,"context_line":"        LOG.debug(\u0027Triggering crash dump in instance.\u0027, instance\u003dinstance)"},{"line_number":1175,"context_line":"        try:"},{"line_number":1176,"context_line":"            self.compute_api.trigger_crash_dump(context, instance)"},{"line_number":1177,"context_line":"        except exception.InstanceInvalidState as state_error:"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_351b8282","line":1174,"in_reply_to":"fa69d971_a5f2e36d","updated":"2016-01-08 07:14:16.000000000","message":"Done","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9e620a8a3df93aed2fe2cc0b2ef3a179e70022df","unresolved":false,"context_lines":[{"line_number":1171,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"},{"line_number":1172,"context_line":"        instance \u003d self._get_instance(context, id)"},{"line_number":1173,"context_line":"        authorize(context, instance, \u0027trigger_crash_dump\u0027)"},{"line_number":1174,"context_line":"        LOG.debug(\u0027Triggering crash dump in instance.\u0027, instance\u003dinstance)"},{"line_number":1175,"context_line":"        try:"},{"line_number":1176,"context_line":"            self.compute_api.trigger_crash_dump(context, instance)"},{"line_number":1177,"context_line":"        except exception.InstanceInvalidState as state_error:"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_a5f2e36d","line":1174,"in_reply_to":"fa69d971_b3702ade","updated":"2016-01-08 05:18:46.000000000","message":"Yep, right. +1 for removing this Log.debug.","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df5dd49de67fb9e43e27383f7bdd783ebaa8200e","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"    @wsgi.Controller.api_version(\"2.16\")"},{"line_number":1165,"context_line":"    @wsgi.response(202)"},{"line_number":1166,"context_line":"    @extensions.expected_errors((400, 404, 409))"},{"line_number":1167,"context_line":"    @wsgi.action(\u0027trigger_crash_dump\u0027)"},{"line_number":1168,"context_line":"    def _action_trigger_crash_dump(self, req, id, body):"},{"line_number":1169,"context_line":"        \"\"\"Trigger crash dump in an instance\"\"\""},{"line_number":1170,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_d25b552d","line":1167,"updated":"2016-01-12 02:49:09.000000000","message":"sorry, It must be my comment was unclear.\n\nActually I mean we write like this @validation.schema(schema_servers.trigger_crash_dump)\n\nJust remove the parameter min_version","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"197a87f61f5dcf284227dc5521544e28a318603c","unresolved":false,"context_lines":[{"line_number":1164,"context_line":"    @wsgi.Controller.api_version(\"2.16\")"},{"line_number":1165,"context_line":"    @wsgi.response(202)"},{"line_number":1166,"context_line":"    @extensions.expected_errors((400, 404, 409))"},{"line_number":1167,"context_line":"    @wsgi.action(\u0027trigger_crash_dump\u0027)"},{"line_number":1168,"context_line":"    def _action_trigger_crash_dump(self, req, id, body):"},{"line_number":1169,"context_line":"        \"\"\"Trigger crash dump in an instance\"\"\""},{"line_number":1170,"context_line":"        context \u003d req.environ[\u0027nova.context\u0027]"}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_7513735d","line":1167,"in_reply_to":"da6ed579_d25b552d","updated":"2016-01-12 03:22:53.000000000","message":"Oh, my mistake. I didn\u0027t understand it well. :)\n\nThx.","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"}],"nova/api/openstack/rest_api_version_history.rst":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"459733066d44bd6fac641587ed7f26395ad1ac35","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  A new API for injecting an NMI to an instance is added::"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    POST /servers/\u003cuuid\u003e/action"},{"line_number":110,"context_line":"    {"},{"line_number":111,"context_line":"      \"inject_nmi\": null"},{"line_number":112,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a50d1a3_aa51c131","line":109,"updated":"2015-07-29 08:28:33.000000000","message":"http://specs.openstack.org/openstack/nova-specs/specs/liberty/approved/inject-nmi.html#rest-api-impact is saying here should be PUT. but by comparing the other action APIs, they are using POST, so the corresponding nova-spec seems wrong.\nSorry for missing this point on nova-spec review.\n\nWe need to fix nova-spec also for here.","commit_id":"2bbf2d5a972e30d8a331c75912cac54b5a957ad5"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"a577002a589e804d48c3d36ad8b5c07f00ebe745","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  A new API for injecting an NMI to an instance is added::"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    POST /servers/\u003cuuid\u003e/action"},{"line_number":110,"context_line":"    {"},{"line_number":111,"context_line":"      \"inject_nmi\": null"},{"line_number":112,"context_line":"    }"}],"source_content_type":"text/x-rst","patch_set":7,"id":"3a50d1a3_8c1dfa74","line":109,"in_reply_to":"3a50d1a3_aa51c131","updated":"2015-07-29 11:56:48.000000000","message":"Sorry for my misdescription.\nI submitted a patch for fixing the spec.\n\nhttps://review.openstack.org/#/c/207004/","commit_id":"2bbf2d5a972e30d8a331c75912cac54b5a957ad5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f91bfb5c4e8f0c53f46864d7485656e51703b66a","unresolved":false,"context_lines":[{"line_number":101,"context_line":"---"},{"line_number":102,"context_line":"  Add \u0027mks\u0027 protocol and \u0027webmks\u0027 type for remote consoles."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"2.9"},{"line_number":105,"context_line":"---"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"  A new API for injecting an NMI to an instance is added::"}],"source_content_type":"text/x-rst","patch_set":9,"id":"3a50d1a3_ece0e5ce","line":104,"updated":"2015-07-30 22:00:48.000000000","message":"2.9 is effectively taken at this point by this approved patch in the pipeline for gating:\n\nhttps://review.openstack.org/#/c/70485/","commit_id":"14db073626ffb0780a5c3a2649d877c915206aa3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df5dd49de67fb9e43e27383f7bdd783ebaa8200e","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  A new API for triggering crash dump in an instance is added::"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    POST /servers/\u003cuuid\u003e/action"},{"line_number":160,"context_line":"    {"},{"line_number":161,"context_line":"      \"trigger_crash_dump\": null"},{"line_number":162,"context_line":"    }"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  This operation does not return a response body."},{"line_number":165,"context_line":""}],"source_content_type":"text/x-rst","patch_set":35,"id":"da6ed579_f28e9926","line":162,"range":{"start_line":159,"start_character":4,"end_line":162,"end_character":5},"updated":"2016-01-12 02:49:09.000000000","message":"looks like we need write request body and detail at here. Maybe just text is enough, just like other notes.","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"197a87f61f5dcf284227dc5521544e28a318603c","unresolved":false,"context_lines":[{"line_number":156,"context_line":""},{"line_number":157,"context_line":"  A new API for triggering crash dump in an instance is added::"},{"line_number":158,"context_line":""},{"line_number":159,"context_line":"    POST /servers/\u003cuuid\u003e/action"},{"line_number":160,"context_line":"    {"},{"line_number":161,"context_line":"      \"trigger_crash_dump\": null"},{"line_number":162,"context_line":"    }"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  This operation does not return a response body."},{"line_number":165,"context_line":""}],"source_content_type":"text/x-rst","patch_set":35,"id":"da6ed579_15523714","line":162,"range":{"start_line":159,"start_character":4,"end_line":162,"end_character":5},"in_reply_to":"da6ed579_f28e9926","updated":"2016-01-12 03:22:53.000000000","message":"Done","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df5dd49de67fb9e43e27383f7bdd783ebaa8200e","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  This operation does not return a response body."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"  Triggering crash dump is done by injecting an NMI into the instance. Behavior"},{"line_number":167,"context_line":"  of an instance after receiving an NMI depends on the configuration of the"},{"line_number":168,"context_line":"  instance OS. So NMI should be configured for triggering the kernel crash"},{"line_number":169,"context_line":"  dump in instance OS."}],"source_content_type":"text/x-rst","patch_set":35,"id":"da6ed579_b28101fe","line":166,"range":{"start_line":166,"start_character":35,"end_line":166,"end_character":51},"updated":"2016-01-12 02:49:09.000000000","message":"Does this describe is KVM specific? I think we should describe API more generic without any specific hypervisor detail.","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"197a87f61f5dcf284227dc5521544e28a318603c","unresolved":false,"context_lines":[{"line_number":163,"context_line":""},{"line_number":164,"context_line":"  This operation does not return a response body."},{"line_number":165,"context_line":""},{"line_number":166,"context_line":"  Triggering crash dump is done by injecting an NMI into the instance. Behavior"},{"line_number":167,"context_line":"  of an instance after receiving an NMI depends on the configuration of the"},{"line_number":168,"context_line":"  instance OS. So NMI should be configured for triggering the kernel crash"},{"line_number":169,"context_line":"  dump in instance OS."}],"source_content_type":"text/x-rst","patch_set":35,"id":"da6ed579_d5457f17","line":166,"range":{"start_line":166,"start_character":35,"end_line":166,"end_character":51},"in_reply_to":"da6ed579_b28101fe","updated":"2016-01-12 03:22:53.000000000","message":"Well, I\u0027m not sure if other hypervisors support injecting NMI. But yes, I\u0027ll update the description to be more generic.","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"}],"nova/tests/functional/api_sample_tests/api_samples/servers/server-action-trigger-crash-dump.json.tpl":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"9e620a8a3df93aed2fe2cc0b2ef3a179e70022df","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"trigger_crash_dump\" : null"},{"line_number":3,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":31,"id":"fa69d971_85947fe8","line":2,"range":{"start_line":2,"start_character":24,"end_line":2,"end_character":25},"updated":"2016-01-08 05:18:46.000000000","message":"ditto","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39869cef582091d7a7d187c14bde58fd24c3b3d4","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"trigger_crash_dump\" : null"},{"line_number":3,"context_line":"}"}],"source_content_type":"text/x-smarty","patch_set":31,"id":"fa69d971_f5a16a47","line":2,"range":{"start_line":2,"start_character":24,"end_line":2,"end_character":25},"in_reply_to":"fa69d971_85947fe8","updated":"2016-01-08 07:14:16.000000000","message":"Done","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"}],"nova/tests/functional/api_sample_tests/test_servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bfc86b13a7b5d930b163638aa8ea72ef4aa7254d","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":277,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":278,"context_line":"    extra_extensions_to_load \u003d [\"os-access-ips\"]"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    request_api_version \u003d \u00272.15\u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_9e9ded0c","line":277,"range":{"start_line":277,"start_character":4,"end_line":277,"end_character":26},"updated":"2016-01-07 11:52:23.000000000","message":"we needn\u0027t this. The specific microversion sample files should be in a sub-directory, like this https://github.com/openstack/nova/tree/master/nova/tests/functional/api_sample_tests/api_samples/servers/v2.9\n\nI think the base-class will do that for you","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39869cef582091d7a7d187c14bde58fd24c3b3d4","unresolved":false,"context_lines":[{"line_number":274,"context_line":""},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":277,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":278,"context_line":"    extra_extensions_to_load \u003d [\"os-access-ips\"]"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    request_api_version \u003d \u00272.15\u0027"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_46ca0a1c","line":277,"range":{"start_line":277,"start_character":4,"end_line":277,"end_character":26},"in_reply_to":"fa69d971_9e9ded0c","updated":"2016-01-08 07:14:16.000000000","message":"Done","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bfc86b13a7b5d930b163638aa8ea72ef4aa7254d","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":277,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":278,"context_line":"    extra_extensions_to_load \u003d [\"os-access-ips\"]"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    request_api_version \u003d \u00272.15\u0027"},{"line_number":281,"context_line":"    # NOTE(hshiina): microversion tests do not need to run for v2 API"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_7eacb935","line":278,"range":{"start_line":278,"start_character":4,"end_line":278,"end_character":28},"updated":"2016-01-07 11:52:23.000000000","message":"base class already set this, so we needn\u0027t this at here.","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39869cef582091d7a7d187c14bde58fd24c3b3d4","unresolved":false,"context_lines":[{"line_number":275,"context_line":""},{"line_number":276,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":277,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":278,"context_line":"    extra_extensions_to_load \u003d [\"os-access-ips\"]"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    request_api_version \u003d \u00272.15\u0027"},{"line_number":281,"context_line":"    # NOTE(hshiina): microversion tests do not need to run for v2 API"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_c64fdabc","line":278,"range":{"start_line":278,"start_character":4,"end_line":278,"end_character":28},"in_reply_to":"fa69d971_7eacb935","updated":"2016-01-08 07:14:16.000000000","message":"Done","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"bfc86b13a7b5d930b163638aa8ea72ef4aa7254d","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":278,"context_line":"    extra_extensions_to_load \u003d [\"os-access-ips\"]"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    request_api_version \u003d \u00272.15\u0027"},{"line_number":281,"context_line":"    # NOTE(hshiina): microversion tests do not need to run for v2 API"},{"line_number":282,"context_line":"    # so defining scenarios only for v2.15 which will run the original tests"},{"line_number":283,"context_line":"    # by appending \u0027(v2_15)\u0027 in test_id."},{"line_number":284,"context_line":"    scenarios \u003d [(\u0027v2_15\u0027, {})]"},{"line_number":285,"context_line":"    _api_version \u003d \u0027v2\u0027"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def test_trigger_crash_dump(self):"},{"line_number":288,"context_line":"        # NOTE(hshiina): set api version to None temporarily to avoid"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_bed471bd","line":285,"range":{"start_line":280,"start_character":4,"end_line":285,"end_character":22},"updated":"2016-01-07 11:52:23.000000000","message":"Unfortunately, there are some cleanup works for api sample tests recently. How to make the sample test to run with specific microversion have a little change. You can learn that from https://github.com/openstack/nova/blob/master/nova/tests/functional/api_sample_tests/test_evacuate.py#L117\n\nThis is the reason why your function test failed now.","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39869cef582091d7a7d187c14bde58fd24c3b3d4","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":278,"context_line":"    extra_extensions_to_load \u003d [\"os-access-ips\"]"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    request_api_version \u003d \u00272.15\u0027"},{"line_number":281,"context_line":"    # NOTE(hshiina): microversion tests do not need to run for v2 API"},{"line_number":282,"context_line":"    # so defining scenarios only for v2.15 which will run the original tests"},{"line_number":283,"context_line":"    # by appending \u0027(v2_15)\u0027 in test_id."},{"line_number":284,"context_line":"    scenarios \u003d [(\u0027v2_15\u0027, {})]"},{"line_number":285,"context_line":"    _api_version \u003d \u0027v2\u0027"},{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    def test_trigger_crash_dump(self):"},{"line_number":288,"context_line":"        # NOTE(hshiina): set api version to None temporarily to avoid"}],"source_content_type":"text/x-python","patch_set":31,"id":"fa69d971_27ba70e2","line":285,"range":{"start_line":280,"start_character":4,"end_line":285,"end_character":22},"in_reply_to":"fa69d971_bed471bd","updated":"2016-01-08 07:14:16.000000000","message":"Thanks for this info. Actually I\u0027m struggling in this failure. Will try it out. :)","commit_id":"46f7c97334a5b63ce7dae871a71961ed69aac66c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df5dd49de67fb9e43e27383f7bdd783ebaa8200e","unresolved":false,"context_lines":[{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2\u0027})]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def test_trigger_crash_dump(self):"},{"line_number":278,"context_line":"        # NOTE(hshiina): set api version to None temporarily to avoid"}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_1287ad62","line":275,"range":{"start_line":275,"start_character":49,"end_line":275,"end_character":53},"updated":"2016-01-12 02:49:09.000000000","message":"This should be {\u0027api_major_version\u0027: \u0027v2.1\u0027}","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"197a87f61f5dcf284227dc5521544e28a318603c","unresolved":false,"context_lines":[{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2\u0027})]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def test_trigger_crash_dump(self):"},{"line_number":278,"context_line":"        # NOTE(hshiina): set api version to None temporarily to avoid"}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_55c18f2d","line":275,"range":{"start_line":275,"start_character":49,"end_line":275,"end_character":53},"in_reply_to":"da6ed579_1287ad62","updated":"2016-01-12 03:22:53.000000000","message":"Done","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df5dd49de67fb9e43e27383f7bdd783ebaa8200e","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    def test_trigger_crash_dump(self):"},{"line_number":278,"context_line":"        # NOTE(hshiina): set api version to None temporarily to avoid"},{"line_number":279,"context_line":"        # duplicating server templates in the v2.16 folder."},{"line_number":280,"context_line":"        ServerTriggerCrashDumpJsonTest.request_api_version \u003d None"},{"line_number":281,"context_line":"        uuid \u003d self._post_server()"},{"line_number":282,"context_line":"        ServerTriggerCrashDumpJsonTest.request_api_version \u003d \u00272.16\u0027"},{"line_number":283,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_52ee85ed","line":280,"range":{"start_line":280,"start_character":8,"end_line":280,"end_character":65},"updated":"2016-01-12 02:49:09.000000000","message":"This is needless anymore I think, I didn\u0027t see any version specified in \u0027_post_server\u0027 method","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"197a87f61f5dcf284227dc5521544e28a318603c","unresolved":false,"context_lines":[{"line_number":277,"context_line":"    def test_trigger_crash_dump(self):"},{"line_number":278,"context_line":"        # NOTE(hshiina): set api version to None temporarily to avoid"},{"line_number":279,"context_line":"        # duplicating server templates in the v2.16 folder."},{"line_number":280,"context_line":"        ServerTriggerCrashDumpJsonTest.request_api_version \u003d None"},{"line_number":281,"context_line":"        uuid \u003d self._post_server()"},{"line_number":282,"context_line":"        ServerTriggerCrashDumpJsonTest.request_api_version \u003d \u00272.16\u0027"},{"line_number":283,"context_line":""}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_75f8537d","line":280,"range":{"start_line":280,"start_character":8,"end_line":280,"end_character":65},"in_reply_to":"da6ed579_52ee85ed","updated":"2016-01-12 03:22:53.000000000","message":"Done","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df5dd49de67fb9e43e27383f7bdd783ebaa8200e","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        # duplicating server templates in the v2.16 folder."},{"line_number":280,"context_line":"        ServerTriggerCrashDumpJsonTest.request_api_version \u003d None"},{"line_number":281,"context_line":"        uuid \u003d self._post_server()"},{"line_number":282,"context_line":"        ServerTriggerCrashDumpJsonTest.request_api_version \u003d \u00272.16\u0027"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        response \u003d self._do_post(\u0027servers/%s/action\u0027 % uuid,"},{"line_number":285,"context_line":"                                 \u0027server-action-trigger-crash-dump\u0027,"}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_92cb9d72","line":282,"range":{"start_line":282,"start_character":8,"end_line":282,"end_character":67},"updated":"2016-01-12 02:49:09.000000000","message":"ditto","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"197a87f61f5dcf284227dc5521544e28a318603c","unresolved":false,"context_lines":[{"line_number":279,"context_line":"        # duplicating server templates in the v2.16 folder."},{"line_number":280,"context_line":"        ServerTriggerCrashDumpJsonTest.request_api_version \u003d None"},{"line_number":281,"context_line":"        uuid \u003d self._post_server()"},{"line_number":282,"context_line":"        ServerTriggerCrashDumpJsonTest.request_api_version \u003d \u00272.16\u0027"},{"line_number":283,"context_line":""},{"line_number":284,"context_line":"        response \u003d self._do_post(\u0027servers/%s/action\u0027 % uuid,"},{"line_number":285,"context_line":"                                 \u0027server-action-trigger-crash-dump\u0027,"}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_95f5c784","line":282,"range":{"start_line":282,"start_character":8,"end_line":282,"end_character":67},"in_reply_to":"da6ed579_92cb9d72","updated":"2016-01-12 03:22:53.000000000","message":"Done","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"df5dd49de67fb9e43e27383f7bdd783ebaa8200e","unresolved":false,"context_lines":[{"line_number":284,"context_line":"        response \u003d self._do_post(\u0027servers/%s/action\u0027 % uuid,"},{"line_number":285,"context_line":"                                 \u0027server-action-trigger-crash-dump\u0027,"},{"line_number":286,"context_line":"                                 {},"},{"line_number":287,"context_line":"                                 api_version \u003d \u00272.16\u0027)"},{"line_number":288,"context_line":"        self.assertEqual(response.status_code, 202)"},{"line_number":289,"context_line":"        self.assertEqual(response.content, \"\")"}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_7220694a","line":287,"range":{"start_line":287,"start_character":33,"end_line":287,"end_character":53},"updated":"2016-01-12 02:49:09.000000000","message":"nit, you can write like this \"api_version\u003dself.microversion\". And there shouldn\u0027t have blank space in two sides of \"\u003d\"","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"197a87f61f5dcf284227dc5521544e28a318603c","unresolved":false,"context_lines":[{"line_number":284,"context_line":"        response \u003d self._do_post(\u0027servers/%s/action\u0027 % uuid,"},{"line_number":285,"context_line":"                                 \u0027server-action-trigger-crash-dump\u0027,"},{"line_number":286,"context_line":"                                 {},"},{"line_number":287,"context_line":"                                 api_version \u003d \u00272.16\u0027)"},{"line_number":288,"context_line":"        self.assertEqual(response.status_code, 202)"},{"line_number":289,"context_line":"        self.assertEqual(response.content, \"\")"}],"source_content_type":"text/x-python","patch_set":35,"id":"da6ed579_35f2db9b","line":287,"range":{"start_line":287,"start_character":33,"end_line":287,"end_character":53},"in_reply_to":"da6ed579_7220694a","updated":"2016-01-12 03:22:53.000000000","message":"Done","commit_id":"e07285131342a7e819a3bd3ab35763396787961a"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"9ff56e2b174a472da9d454e57dc29d43a252f276","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":276,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"da6ed579_d64c25ca","line":273,"updated":"2016-01-14 02:34:35.000000000","message":"this is needless","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e44731dadc8f5868bc91fcc27105b02fd7fe9d93","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":276,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"da6ed579_9e619bd5","line":273,"in_reply_to":"da6ed579_23089827","updated":"2016-01-15 06:15:00.000000000","message":"I see. we need this for _do_post at L280. Sorry for confusion","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"9b13c5faa80084655751000f1dba5a7bda2808ed","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":276,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"da6ed579_23089827","line":273,"in_reply_to":"da6ed579_d64c25ca","updated":"2016-01-15 05:26:43.000000000","message":"If I remove this, I will get an error when running this test.\n\nPlease refer to: http://paste.openstack.org/show/483964/","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e7724d179e875263cb527668885b8ee17e6962f6","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":276,"context_line":""}],"source_content_type":"text/x-python","patch_set":39,"id":"da6ed579_f5fb1a77","line":273,"in_reply_to":"da6ed579_d64c25ca","updated":"2016-01-15 05:06:00.000000000","message":"Yea this is not required","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e7724d179e875263cb527668885b8ee17e6962f6","unresolved":false,"context_lines":[{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def test_trigger_crash_dump(self):"},{"line_number":278,"context_line":"        uuid \u003d self._post_server()"}],"source_content_type":"text/x-python","patch_set":39,"id":"da6ed579_5500e665","line":275,"range":{"start_line":275,"start_character":54,"end_line":275,"end_character":58},"updated":"2016-01-15 05:06:00.000000000","message":"just nit. add scenario like below for consistency and make all microversion tests to follow the same to avoid any miss. \n\nscenarios \u003d [\n        (\"v2_16\", {\u0027api_major_version\u0027: \u0027v2.1\u0027, \u0027microversion\u0027: \u00272.16\u0027})\n    ]","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"3ab630fe71a82b907b92a70b2f13b8be60aec396","unresolved":false,"context_lines":[{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":276,"context_line":""},{"line_number":277,"context_line":"    def test_trigger_crash_dump(self):"},{"line_number":278,"context_line":"        uuid \u003d self._post_server()"}],"source_content_type":"text/x-python","patch_set":39,"id":"da6ed579_43590c34","line":275,"range":{"start_line":275,"start_character":54,"end_line":275,"end_character":58},"in_reply_to":"da6ed579_5500e665","updated":"2016-01-15 05:28:57.000000000","message":"Done","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"4fdf7e7a7dbbf9db3229051c19d82c7531c3df99","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":276,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"da6ed579_7df14394","line":273,"range":{"start_line":273,"start_character":4,"end_line":273,"end_character":25},"updated":"2016-01-15 10:31:31.000000000","message":"After checking, we indeed need this. Sorry for this miss point, also thanks for the testing!","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"a1fb0a64b23114dc9493a54eba5e60a10a64a699","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":""},{"line_number":272,"context_line":"class ServerTriggerCrashDumpJsonTest(ServersSampleBase):"},{"line_number":273,"context_line":"    sample_dir \u003d \u0027servers\u0027"},{"line_number":274,"context_line":"    microversion \u003d \u00272.16\u0027"},{"line_number":275,"context_line":"    scenarios \u003d [(\u0027v2_16\u0027, {\u0027api_major_version\u0027: \u0027v2.1\u0027})]"},{"line_number":276,"context_line":""}],"source_content_type":"text/x-python","patch_set":40,"id":"da6ed579_e75a3550","line":273,"range":{"start_line":273,"start_character":4,"end_line":273,"end_character":25},"in_reply_to":"da6ed579_7df14394","updated":"2016-01-18 01:40:38.000000000","message":"Done","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"}],"nova/tests/functional/v3/api_samples/servers/v2.9/server-action-inject-nmi.json.tpl":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"459733066d44bd6fac641587ed7f26395ad1ac35","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"inject_nmi\" : null"},{"line_number":3,"context_line":"}"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":7,"id":"3a50d1a3_8a040518","line":4,"updated":"2015-07-29 08:28:33.000000000","message":"one unnecessary blank line here(line 4).\n\nand we need the corresponding server-action-inject-nmi.json file under ./doc/v3/api_samples/servers/v2.9/","commit_id":"2bbf2d5a972e30d8a331c75912cac54b5a957ad5"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"a577002a589e804d48c3d36ad8b5c07f00ebe745","unresolved":false,"context_lines":[{"line_number":1,"context_line":"{"},{"line_number":2,"context_line":"    \"inject_nmi\" : null"},{"line_number":3,"context_line":"}"},{"line_number":4,"context_line":""}],"source_content_type":"text/x-smarty","patch_set":7,"id":"3a50d1a3_c74e7b37","line":4,"in_reply_to":"3a50d1a3_8a040518","updated":"2015-07-29 11:56:48.000000000","message":"Thanks.\nI removed the blank line and create the json file under /doc/v3/api_samples/servers/v2.9.","commit_id":"2bbf2d5a972e30d8a331c75912cac54b5a957ad5"}],"nova/tests/functional/v3/test_servers.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3f38e5e1b8fc9e213619e92e74d90a636ddba30d","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"class ServerInjectNmiJsonTest(ServersSampleBase):"},{"line_number":252,"context_line":"    sample_dir \u003d \u0027servers_v21\u0027"},{"line_number":253,"context_line":"    _api_version \u003d \u0027v3\u0027"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    def test_inject_nmi(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_3d409606","line":252,"updated":"2015-07-23 08:37:23.000000000","message":"Microversion should be specified at here also https://github.com/openstack/nova/blob/master/nova/tests/functional/v3/test_fixed_ips.py#L124","commit_id":"c15c67befa85d1e1385912bce86196f36811b8b4"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"3d50a82a3a5cdd7f2320ea8b8d2468c31c0dd656","unresolved":false,"context_lines":[{"line_number":249,"context_line":""},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"class ServerInjectNmiJsonTest(ServersSampleBase):"},{"line_number":252,"context_line":"    sample_dir \u003d \u0027servers_v21\u0027"},{"line_number":253,"context_line":"    _api_version \u003d \u0027v3\u0027"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    def test_inject_nmi(self):"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_3b34cc48","line":252,"in_reply_to":"3a50d1a3_3d409606","updated":"2015-07-24 15:08:20.000000000","message":"Done","commit_id":"c15c67befa85d1e1385912bce86196f36811b8b4"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"3f38e5e1b8fc9e213619e92e74d90a636ddba30d","unresolved":false,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":"class ServerInjectNmiJsonTest(ServersSampleBase):"},{"line_number":252,"context_line":"    sample_dir \u003d \u0027servers_v21\u0027"},{"line_number":253,"context_line":"    _api_version \u003d \u0027v3\u0027"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    def test_inject_nmi(self):"},{"line_number":256,"context_line":"        uuid \u003d self._post_server()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_5d7002a4","line":253,"updated":"2015-07-23 08:37:23.000000000","message":"We will get rid of v3. So\nyou can reference at here https://github.com/openstack/nova/blob/master/nova/tests/functional/v3/test_fixed_ips.py#L128","commit_id":"c15c67befa85d1e1385912bce86196f36811b8b4"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"3d50a82a3a5cdd7f2320ea8b8d2468c31c0dd656","unresolved":false,"context_lines":[{"line_number":250,"context_line":""},{"line_number":251,"context_line":"class ServerInjectNmiJsonTest(ServersSampleBase):"},{"line_number":252,"context_line":"    sample_dir \u003d \u0027servers_v21\u0027"},{"line_number":253,"context_line":"    _api_version \u003d \u0027v3\u0027"},{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    def test_inject_nmi(self):"},{"line_number":256,"context_line":"        uuid \u003d self._post_server()"}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_db45a8b3","line":253,"in_reply_to":"3a50d1a3_5d7002a4","updated":"2015-07-24 15:08:20.000000000","message":"Done","commit_id":"c15c67befa85d1e1385912bce86196f36811b8b4"}],"nova/tests/unit/api/openstack/compute/plugins/v3/test_servers.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"deea38cb721209a3789e1526d7795eb1c1551396","unresolved":false,"context_lines":[{"line_number":3825,"context_line":"    def test_inject_nmi(self):"},{"line_number":3826,"context_line":"        self.mox.StubOutWithMock(compute_api.API, \u0027inject_nmi\u0027)"},{"line_number":3827,"context_line":"        compute_api.API.inject_nmi(mox.IgnoreArg(), mox.IgnoreArg())"},{"line_number":3828,"context_line":"        self.mox.ReplayAll()"},{"line_number":3829,"context_line":""},{"line_number":3830,"context_line":"        self.controller._inject_nmi(self.req, FAKE_UUID, self.body)"},{"line_number":3831,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_cb6befb5","line":3828,"updated":"2015-07-23 08:20:42.000000000","message":"please use mock for new test cases....","commit_id":"c15c67befa85d1e1385912bce86196f36811b8b4"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"3d50a82a3a5cdd7f2320ea8b8d2468c31c0dd656","unresolved":false,"context_lines":[{"line_number":3825,"context_line":"    def test_inject_nmi(self):"},{"line_number":3826,"context_line":"        self.mox.StubOutWithMock(compute_api.API, \u0027inject_nmi\u0027)"},{"line_number":3827,"context_line":"        compute_api.API.inject_nmi(mox.IgnoreArg(), mox.IgnoreArg())"},{"line_number":3828,"context_line":"        self.mox.ReplayAll()"},{"line_number":3829,"context_line":""},{"line_number":3830,"context_line":"        self.controller._inject_nmi(self.req, FAKE_UUID, self.body)"},{"line_number":3831,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_3b592c8f","line":3828,"in_reply_to":"3a50d1a3_cb6befb5","updated":"2015-07-24 15:08:20.000000000","message":"Done","commit_id":"c15c67befa85d1e1385912bce86196f36811b8b4"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"deea38cb721209a3789e1526d7795eb1c1551396","unresolved":false,"context_lines":[{"line_number":3843,"context_line":""},{"line_number":3844,"context_line":"    def test_inject_nmi_not_ready(self):"},{"line_number":3845,"context_line":"        self.stubs.Set(compute_api.API, \u0027inject_nmi\u0027,"},{"line_number":3846,"context_line":"                       fake_start_stop_not_ready)"},{"line_number":3847,"context_line":"        self.assertRaises(webob.exc.HTTPConflict,"},{"line_number":3848,"context_line":"            self.controller._inject_nmi, self.req, FAKE_UUID, self.body)"},{"line_number":3849,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_eb66ebeb","line":3846,"updated":"2015-07-23 08:20:42.000000000","message":"ditto","commit_id":"c15c67befa85d1e1385912bce86196f36811b8b4"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"3d50a82a3a5cdd7f2320ea8b8d2468c31c0dd656","unresolved":false,"context_lines":[{"line_number":3843,"context_line":""},{"line_number":3844,"context_line":"    def test_inject_nmi_not_ready(self):"},{"line_number":3845,"context_line":"        self.stubs.Set(compute_api.API, \u0027inject_nmi\u0027,"},{"line_number":3846,"context_line":"                       fake_start_stop_not_ready)"},{"line_number":3847,"context_line":"        self.assertRaises(webob.exc.HTTPConflict,"},{"line_number":3848,"context_line":"            self.controller._inject_nmi, self.req, FAKE_UUID, self.body)"},{"line_number":3849,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3a50d1a3_bb4d3cc6","line":3846,"in_reply_to":"3a50d1a3_eb66ebeb","updated":"2015-07-24 15:08:20.000000000","message":"Done","commit_id":"c15c67befa85d1e1385912bce86196f36811b8b4"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"db8b48e7039acde9e3d527f0bff9b958b3bfe5ba","unresolved":false,"context_lines":[{"line_number":3817,"context_line":""},{"line_number":3818,"context_line":"    def setUp(self):"},{"line_number":3819,"context_line":"        super(ServersControllerInjectNmiTest, self).setUp()"},{"line_number":3820,"context_line":"        self.req \u003d fakes.HTTPRequestV3.blank(\u0027/servers/%s/action\u0027 % FAKE_UUID)"},{"line_number":3821,"context_line":"        self.req.api_version_request \u003d\\"},{"line_number":3822,"context_line":"            api_version_request.APIVersionRequest(\u00272.9\u0027)"},{"line_number":3823,"context_line":"        self.body \u003d dict(inject_nmi\u003dNone)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_c861f23a","line":3820,"updated":"2015-07-28 09:31:06.000000000","message":"please use HTTPRequest. V3 thing are confusing only.","commit_id":"ed63bf7a13a5f55000bc434ff6c1ddfa47a1d1c3"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f9ea15f3492b55b80604e10f544844c8419e7d68","unresolved":false,"context_lines":[{"line_number":3817,"context_line":""},{"line_number":3818,"context_line":"    def setUp(self):"},{"line_number":3819,"context_line":"        super(ServersControllerInjectNmiTest, self).setUp()"},{"line_number":3820,"context_line":"        self.req \u003d fakes.HTTPRequestV3.blank(\u0027/servers/%s/action\u0027 % FAKE_UUID)"},{"line_number":3821,"context_line":"        self.req.api_version_request \u003d\\"},{"line_number":3822,"context_line":"            api_version_request.APIVersionRequest(\u00272.9\u0027)"},{"line_number":3823,"context_line":"        self.body \u003d dict(inject_nmi\u003dNone)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_b6d95c58","line":3820,"in_reply_to":"3a50d1a3_c861f23a","updated":"2015-07-28 11:49:50.000000000","message":"Done","commit_id":"ed63bf7a13a5f55000bc434ff6c1ddfa47a1d1c3"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"db8b48e7039acde9e3d527f0bff9b958b3bfe5ba","unresolved":false,"context_lines":[{"line_number":3853,"context_line":"    @mock.patch.object(db, \u0027instance_get_by_uuid\u0027,"},{"line_number":3854,"context_line":"                       fake_instance_get_by_uuid_not_found)"},{"line_number":3855,"context_line":"    def test_inject_nmi_with_bogus_id(self):"},{"line_number":3856,"context_line":"        self.req \u003d fakes.HTTPRequestV3.blank(\u0027/servers/test_inst/action\u0027)"},{"line_number":3857,"context_line":"        self.req.api_version_request \u003d\\"},{"line_number":3858,"context_line":"            api_version_request.APIVersionRequest(\u00272.9\u0027)"},{"line_number":3859,"context_line":"        self.assertRaises(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_68769ed8","line":3856,"updated":"2015-07-28 09:31:06.000000000","message":"ditto","commit_id":"ed63bf7a13a5f55000bc434ff6c1ddfa47a1d1c3"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"f9ea15f3492b55b80604e10f544844c8419e7d68","unresolved":false,"context_lines":[{"line_number":3853,"context_line":"    @mock.patch.object(db, \u0027instance_get_by_uuid\u0027,"},{"line_number":3854,"context_line":"                       fake_instance_get_by_uuid_not_found)"},{"line_number":3855,"context_line":"    def test_inject_nmi_with_bogus_id(self):"},{"line_number":3856,"context_line":"        self.req \u003d fakes.HTTPRequestV3.blank(\u0027/servers/test_inst/action\u0027)"},{"line_number":3857,"context_line":"        self.req.api_version_request \u003d\\"},{"line_number":3858,"context_line":"            api_version_request.APIVersionRequest(\u00272.9\u0027)"},{"line_number":3859,"context_line":"        self.assertRaises(webob.exc.HTTPNotFound,"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a50d1a3_96e5400a","line":3856,"in_reply_to":"3a50d1a3_68769ed8","updated":"2015-07-28 11:49:50.000000000","message":"Done","commit_id":"ed63bf7a13a5f55000bc434ff6c1ddfa47a1d1c3"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ec7976aa9881b1862409cbc4ba69c27fb8578fe5","unresolved":false,"context_lines":[{"line_number":3944,"context_line":"            self.controller._inject_nmi, self.req, FAKE_UUID, body\u003dself.body)"},{"line_number":3945,"context_line":""},{"line_number":3946,"context_line":"    @mock.patch.object(compute_api.API, \u0027inject_nmi\u0027,"},{"line_number":3947,"context_line":"                       fake_start_stop_invalid_state)"},{"line_number":3948,"context_line":"    def test_inject_nmi_invalid_state(self):"},{"line_number":3949,"context_line":"        self.assertRaises(webob.exc.HTTPConflict,"},{"line_number":3950,"context_line":"            self.controller._inject_nmi, self.req, FAKE_UUID, body\u003dself.body)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a4dcd0f_ae68a3f6","line":3947,"updated":"2015-08-04 06:58:06.000000000","message":"it will be better we change this fake function to more generic name","commit_id":"6640e83b509ddd9f7ea1b542103de7760e32c67b"}],"nova/tests/unit/api/openstack/compute/test_serversV21.py":[{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e7724d179e875263cb527668885b8ee17e6962f6","unresolved":false,"context_lines":[{"line_number":1996,"context_line":"    def test_trigger_crash_dump_with_bogus_id(self):"},{"line_number":1997,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027/servers/test_inst/action\u0027)"},{"line_number":1998,"context_line":"        self.req.api_version_request \u003d\\"},{"line_number":1999,"context_line":"            api_version_request.APIVersionRequest(\u00272.16\u0027)"},{"line_number":2000,"context_line":"        self.assertRaises(webob.exc.HTTPNotFound,"},{"line_number":2001,"context_line":"                          self.controller._action_trigger_crash_dump,"},{"line_number":2002,"context_line":"                          self.req, \u0027test_inst\u0027, body\u003dself.body)"}],"source_content_type":"text/x-python","patch_set":39,"id":"da6ed579_38aa0786","line":1999,"range":{"start_line":1999,"start_character":55,"end_line":1999,"end_character":57},"updated":"2016-01-15 05:06:00.000000000","message":"you can directly use self.req without create new one as long as you pass \u0027test_inst\u0027 as id explicitly. \n\nAs we directly call controller method so req\u0027s id does not matter","commit_id":"03f7b459677a0f9fb5506fb549ff7e953146202c"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a352f44ed53a788e17b376d9481b382ae26cc49c","unresolved":false,"context_lines":[{"line_number":1961,"context_line":"    @mock.patch.object(compute_api.API, \u0027trigger_crash_dump\u0027)"},{"line_number":1962,"context_line":"    def test_trigger_crash_dump(self, mock_trigger_crash_dump):"},{"line_number":1963,"context_line":"        self.controller._action_trigger_crash_dump(self.req, FAKE_UUID,"},{"line_number":1964,"context_line":"                                                   body\u003dself.body)"},{"line_number":1965,"context_line":""},{"line_number":1966,"context_line":"    def test_trigger_crash_dump_policy_failed(self):"},{"line_number":1967,"context_line":"        rule_name \u003d \"os_compute_api:servers:trigger_crash_dump\""}],"source_content_type":"text/x-python","patch_set":40,"id":"da6ed579_f8a78aa4","line":1964,"updated":"2016-01-15 08:08:44.000000000","message":"You shall assert that the mock is called","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"a1fb0a64b23114dc9493a54eba5e60a10a64a699","unresolved":false,"context_lines":[{"line_number":1961,"context_line":"    @mock.patch.object(compute_api.API, \u0027trigger_crash_dump\u0027)"},{"line_number":1962,"context_line":"    def test_trigger_crash_dump(self, mock_trigger_crash_dump):"},{"line_number":1963,"context_line":"        self.controller._action_trigger_crash_dump(self.req, FAKE_UUID,"},{"line_number":1964,"context_line":"                                                   body\u003dself.body)"},{"line_number":1965,"context_line":""},{"line_number":1966,"context_line":"    def test_trigger_crash_dump_policy_failed(self):"},{"line_number":1967,"context_line":"        rule_name \u003d \"os_compute_api:servers:trigger_crash_dump\""}],"source_content_type":"text/x-python","patch_set":40,"id":"da6ed579_073ae9e7","line":1964,"in_reply_to":"da6ed579_f8a78aa4","updated":"2016-01-18 01:40:38.000000000","message":"Done","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"e58aa7cb636ea22d5964794b0feec6b8aecebc71","unresolved":false,"context_lines":[{"line_number":2000,"context_line":"    def test_trigger_crash_dump_with_bogus_id(self):"},{"line_number":2001,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027/servers/test_inst/action\u0027)"},{"line_number":2002,"context_line":"        self.req.api_version_request \u003d\\"},{"line_number":2003,"context_line":"            api_version_request.APIVersionRequest(\u00272.16\u0027)"},{"line_number":2004,"context_line":"        self.assertRaises(webob.exc.HTTPNotFound,"},{"line_number":2005,"context_line":"                          self.controller._action_trigger_crash_dump,"},{"line_number":2006,"context_line":"                          self.req, \u0027test_inst\u0027, body\u003dself.body)"}],"source_content_type":"text/x-python","patch_set":42,"id":"ba63e191_b4ac7eee","line":2003,"range":{"start_line":2003,"start_character":55,"end_line":2003,"end_character":57},"updated":"2016-01-19 01:19:46.000000000","message":"In case you are re spinning, please check PS39 comment","commit_id":"7f4193acdf7b5fbe5e76df080b499f576bf8b67f"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"11f718d16f695019552f2fe2faa870e9f700c458","unresolved":false,"context_lines":[{"line_number":2000,"context_line":"    def test_trigger_crash_dump_with_bogus_id(self):"},{"line_number":2001,"context_line":"        self.req \u003d fakes.HTTPRequest.blank(\u0027/servers/test_inst/action\u0027)"},{"line_number":2002,"context_line":"        self.req.api_version_request \u003d\\"},{"line_number":2003,"context_line":"            api_version_request.APIVersionRequest(\u00272.16\u0027)"},{"line_number":2004,"context_line":"        self.assertRaises(webob.exc.HTTPNotFound,"},{"line_number":2005,"context_line":"                          self.controller._action_trigger_crash_dump,"},{"line_number":2006,"context_line":"                          self.req, \u0027test_inst\u0027, body\u003dself.body)"}],"source_content_type":"text/x-python","patch_set":42,"id":"ba63e191_90c13f31","line":2003,"range":{"start_line":2003,"start_character":55,"end_line":2003,"end_character":57},"in_reply_to":"ba63e191_b4ac7eee","updated":"2016-01-19 05:46:14.000000000","message":"Oh, sorry, I missed the PS39 comment. Followed.\n\nThanks. :)","commit_id":"7f4193acdf7b5fbe5e76df080b499f576bf8b67f"}],"releasenotes/notes/bp-instance-crash-dump-7ccbba7799dc66f9.yaml":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a352f44ed53a788e17b376d9481b382ae26cc49c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - It is able to trigger crash dump in instance using"},{"line_number":4,"context_line":"    REST API. In order to use this new feature, user have"},{"line_number":5,"context_line":"    to contain the header of request microversion v2.16"},{"line_number":6,"context_line":"    in the API request."}],"source_content_type":"text/x-yaml","patch_set":40,"id":"da6ed579_f871ca0c","line":6,"range":{"start_line":3,"start_character":4,"end_line":6,"end_character":23},"updated":"2016-01-15 08:08:44.000000000","message":"I suggest to reword this to something like:\nA new server action trigger_crash_dump has been added to the REST API in microversion 2.16.","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"a1fb0a64b23114dc9493a54eba5e60a10a64a699","unresolved":false,"context_lines":[{"line_number":1,"context_line":"---"},{"line_number":2,"context_line":"features:"},{"line_number":3,"context_line":"  - It is able to trigger crash dump in instance using"},{"line_number":4,"context_line":"    REST API. In order to use this new feature, user have"},{"line_number":5,"context_line":"    to contain the header of request microversion v2.16"},{"line_number":6,"context_line":"    in the API request."}],"source_content_type":"text/x-yaml","patch_set":40,"id":"da6ed579_6735e5f5","line":6,"range":{"start_line":3,"start_character":4,"end_line":6,"end_character":23},"in_reply_to":"da6ed579_f871ca0c","updated":"2016-01-18 01:40:38.000000000","message":"Done","commit_id":"e22106a4fba760a10833937625ef7912ca38a226"}]}
