)]}'
{"nova/cells/rpcapi.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"a032862f0686b0257bfdcfc5427bd3936cf14d23","unresolved":false,"context_lines":[{"line_number":693,"context_line":"        if not self.client.can_send_version(\u00271.36\u0027):"},{"line_number":694,"context_line":"            raise exception.NMINotSupported()"},{"line_number":695,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.36\u0027)"},{"line_number":696,"context_line":"        cctxt.call(ctxt, \u0027inject_nmi\u0027, instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_0b4e3b96","line":696,"updated":"2015-08-04 19:01:56.000000000","message":"This should be a cast as nothing is returned and there is no reason to wait for execution to finish.","commit_id":"9c8bce718acdaac26002a7623acf51ce7fff0a17"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"a0b87676f61e775e09dd2c60686f3cd48850baae","unresolved":false,"context_lines":[{"line_number":693,"context_line":"        if not self.client.can_send_version(\u00271.36\u0027):"},{"line_number":694,"context_line":"            raise exception.NMINotSupported()"},{"line_number":695,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.36\u0027)"},{"line_number":696,"context_line":"        cctxt.call(ctxt, \u0027inject_nmi\u0027, instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":17,"id":"1a4dcd0f_8642fd66","line":696,"updated":"2015-08-05 21:18:46.000000000","message":"Still against this without further discussion in a broader audience.","commit_id":"22d34397194bf6b06db429e8718758bed12d7afa"}],"nova/compute/api.py":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"94fe8f8680abbb053cb5ae9264b1f7be88f1ee0e","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"        self.compute_rpcapi.start_instance(context, instance)"},{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    @check_instance_lock"},{"line_number":1908,"context_line":"    @check_instance_host"},{"line_number":1909,"context_line":"    @check_instance_cell"},{"line_number":1910,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.ERROR])"},{"line_number":1911,"context_line":"    def inject_nmi(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_50d30a60","line":1908,"updated":"2015-07-23 08:05:17.000000000","message":"seems we don\u0027t need this check","commit_id":"d6f6d541ca4a1434d86707e43f4329ba69d1b5fc"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"21c223abb9cb29e5143dd9617d02bb99a305a284","unresolved":false,"context_lines":[{"line_number":1905,"context_line":"        self.compute_rpcapi.start_instance(context, instance)"},{"line_number":1906,"context_line":""},{"line_number":1907,"context_line":"    @check_instance_lock"},{"line_number":1908,"context_line":"    @check_instance_host"},{"line_number":1909,"context_line":"    @check_instance_cell"},{"line_number":1910,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.ERROR])"},{"line_number":1911,"context_line":"    def inject_nmi(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_99ea08da","line":1908,"in_reply_to":"3a50d1a3_50d30a60","updated":"2015-07-23 14:44:47.000000000","message":"Done","commit_id":"d6f6d541ca4a1434d86707e43f4329ba69d1b5fc"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"94fe8f8680abbb053cb5ae9264b1f7be88f1ee0e","unresolved":false,"context_lines":[{"line_number":1907,"context_line":"    @check_instance_lock"},{"line_number":1908,"context_line":"    @check_instance_host"},{"line_number":1909,"context_line":"    @check_instance_cell"},{"line_number":1910,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.ERROR])"},{"line_number":1911,"context_line":"    def inject_nmi(self, context, instance):"},{"line_number":1912,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""},{"line_number":1913,"context_line":"        LOG.info(_LI(\"Going to try to inject NMI to instance\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_2546427b","line":1910,"updated":"2015-07-23 08:05:17.000000000","message":"maybe other states can also be able to accept a request?\nPAUSED, etc?","commit_id":"d6f6d541ca4a1434d86707e43f4329ba69d1b5fc"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"21c223abb9cb29e5143dd9617d02bb99a305a284","unresolved":false,"context_lines":[{"line_number":1907,"context_line":"    @check_instance_lock"},{"line_number":1908,"context_line":"    @check_instance_host"},{"line_number":1909,"context_line":"    @check_instance_cell"},{"line_number":1910,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.ERROR])"},{"line_number":1911,"context_line":"    def inject_nmi(self, context, instance):"},{"line_number":1912,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""},{"line_number":1913,"context_line":"        LOG.info(_LI(\"Going to try to inject NMI to instance\"),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_39d97457","line":1910,"in_reply_to":"3a50d1a3_2546427b","updated":"2015-07-23 14:44:47.000000000","message":"Thanks. I added other running states.","commit_id":"d6f6d541ca4a1434d86707e43f4329ba69d1b5fc"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"94fe8f8680abbb053cb5ae9264b1f7be88f1ee0e","unresolved":false,"context_lines":[{"line_number":1910,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.ERROR])"},{"line_number":1911,"context_line":"    def inject_nmi(self, context, instance):"},{"line_number":1912,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""},{"line_number":1913,"context_line":"        LOG.info(_LI(\"Going to try to inject NMI to instance\"),"},{"line_number":1914,"context_line":"                 instance\u003dinstance)"},{"line_number":1915,"context_line":""},{"line_number":1916,"context_line":"        # This method doesn\u0027t change task_state because an NMI can be sent"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_053a26e7","line":1913,"updated":"2015-07-23 08:05:17.000000000","message":"seems other actions use \u0027debug\u0027","commit_id":"d6f6d541ca4a1434d86707e43f4329ba69d1b5fc"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"21c223abb9cb29e5143dd9617d02bb99a305a284","unresolved":false,"context_lines":[{"line_number":1910,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.ERROR])"},{"line_number":1911,"context_line":"    def inject_nmi(self, context, instance):"},{"line_number":1912,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""},{"line_number":1913,"context_line":"        LOG.info(_LI(\"Going to try to inject NMI to instance\"),"},{"line_number":1914,"context_line":"                 instance\u003dinstance)"},{"line_number":1915,"context_line":""},{"line_number":1916,"context_line":"        # This method doesn\u0027t change task_state because an NMI can be sent"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_59f000c9","line":1913,"in_reply_to":"3a50d1a3_053a26e7","updated":"2015-07-23 14:44:47.000000000","message":"Done","commit_id":"d6f6d541ca4a1434d86707e43f4329ba69d1b5fc"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"37d796b754828e7a0e38beb3d23239ecb324781b","unresolved":false,"context_lines":[{"line_number":1913,"context_line":"        self.compute_rpcapi.start_instance(context, instance)"},{"line_number":1914,"context_line":""},{"line_number":1915,"context_line":"    @check_instance_lock"},{"line_number":1916,"context_line":"    @check_instance_cell"},{"line_number":1917,"context_line":"    @check_instance_state(vm_state\u003dvm_states.ALLOW_INJECT_NMI)"},{"line_number":1918,"context_line":"    def inject_nmi(self, context, instance):"},{"line_number":1919,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_93b630db","line":1916,"updated":"2015-08-04 06:31:37.000000000","message":"we need check_instance_host decorator like start/stop action","commit_id":"dfb32bed367b05aa4803ac1af2c2553bc06d00a8"},{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"62b22ab4db838cad9b8cd15dada73a93eeb97a57","unresolved":false,"context_lines":[{"line_number":1913,"context_line":"        self.compute_rpcapi.start_instance(context, instance)"},{"line_number":1914,"context_line":""},{"line_number":1915,"context_line":"    @check_instance_lock"},{"line_number":1916,"context_line":"    @check_instance_cell"},{"line_number":1917,"context_line":"    @check_instance_state(vm_state\u003dvm_states.ALLOW_INJECT_NMI)"},{"line_number":1918,"context_line":"    def inject_nmi(self, context, instance):"},{"line_number":1919,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_0c971549","line":1916,"in_reply_to":"1a4dcd0f_0fee2cec","updated":"2015-08-05 09:14:27.000000000","message":"seems check_instance_host didn\u0027t apply to reboot\nwhy need apply to inject_nmi?","commit_id":"dfb32bed367b05aa4803ac1af2c2553bc06d00a8"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"402ecd89002698771a66007f1c962389b9aff76b","unresolved":false,"context_lines":[{"line_number":1913,"context_line":"        self.compute_rpcapi.start_instance(context, instance)"},{"line_number":1914,"context_line":""},{"line_number":1915,"context_line":"    @check_instance_lock"},{"line_number":1916,"context_line":"    @check_instance_cell"},{"line_number":1917,"context_line":"    @check_instance_state(vm_state\u003dvm_states.ALLOW_INJECT_NMI)"},{"line_number":1918,"context_line":"    def inject_nmi(self, context, instance):"},{"line_number":1919,"context_line":"        \"\"\"Inject an NMI to an instance\"\"\""}],"source_content_type":"text/x-python","patch_set":12,"id":"1a4dcd0f_0fee2cec","line":1916,"in_reply_to":"1a4dcd0f_93b630db","updated":"2015-08-05 07:53:22.000000000","message":"Done","commit_id":"dfb32bed367b05aa4803ac1af2c2553bc06d00a8"}],"nova/compute/instance_actions.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5db7c780b54909e8441e1490167413231f715fc9","unresolved":false,"context_lines":[{"line_number":45,"context_line":"SHELVE \u003d \u0027shelve\u0027"},{"line_number":46,"context_line":"UNSHELVE \u003d \u0027unshelve\u0027"},{"line_number":47,"context_line":"LIVE_MIGRATION \u003d \u0027live-migration\u0027"},{"line_number":48,"context_line":"INJECT_NMI \u003d \u0027injectNmi\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_ac5bbdf5","line":48,"updated":"2015-07-30 21:59:16.000000000","message":"This should follow the same convention of everything else here and not use CamelCase.","commit_id":"3b5e2321fa8bf077f5a061c163bc58e39fa9b8e5"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7640a30868d5251e78a77325c0ce353e91f7574f","unresolved":false,"context_lines":[{"line_number":45,"context_line":"SHELVE \u003d \u0027shelve\u0027"},{"line_number":46,"context_line":"UNSHELVE \u003d \u0027unshelve\u0027"},{"line_number":47,"context_line":"LIVE_MIGRATION \u003d \u0027live-migration\u0027"},{"line_number":48,"context_line":"TRIGGER_CRASH_DUMP \u003d \u0027trigger_crash_dump\u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"5a710552_0b96754c","line":48,"updated":"2015-12-15 09:29:59.000000000","message":"There is inconsistency between actions like camelCase and hyphens-case. but snake_case doesn\u0027t exist. I am feeling camelCase is better because of majority.","commit_id":"f68edcf9bc606071955374daf36476b073397ef8"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39a49945e97af94e9fbcd55faf8373fb8a1886a6","unresolved":false,"context_lines":[{"line_number":45,"context_line":"SHELVE \u003d \u0027shelve\u0027"},{"line_number":46,"context_line":"UNSHELVE \u003d \u0027unshelve\u0027"},{"line_number":47,"context_line":"LIVE_MIGRATION \u003d \u0027live-migration\u0027"},{"line_number":48,"context_line":"TRIGGER_CRASH_DUMP \u003d \u0027trigger_crash_dump\u0027"}],"source_content_type":"text/x-python","patch_set":26,"id":"5a710552_460f94e1","line":48,"in_reply_to":"5a710552_0b96754c","updated":"2015-12-15 09:39:00.000000000","message":"Done","commit_id":"f68edcf9bc606071955374daf36476b073397ef8"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f7b370d52b6ce4210899c42c42fa78f8abf15dbe","unresolved":false,"context_lines":[{"line_number":45,"context_line":"SHELVE \u003d \u0027shelve\u0027"},{"line_number":46,"context_line":"UNSHELVE \u003d \u0027unshelve\u0027"},{"line_number":47,"context_line":"LIVE_MIGRATION \u003d \u0027live-migration\u0027"},{"line_number":48,"context_line":"TRIGGER_CRASH_DUMP \u003d \u0027triggerCrashDump\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"3a7e1126_b33ec8b6","line":48,"updated":"2015-12-17 06:29:10.000000000","message":"I remember we discussion this in the IRC. We said use trigger_crash_dump which consistent with our API.","commit_id":"ac494ff64d15415febce09807939c2f1ad6d3611"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"9801e090d2835d1cf8dea2a5aa41449061e0ca04","unresolved":false,"context_lines":[{"line_number":45,"context_line":"SHELVE \u003d \u0027shelve\u0027"},{"line_number":46,"context_line":"UNSHELVE \u003d \u0027unshelve\u0027"},{"line_number":47,"context_line":"LIVE_MIGRATION \u003d \u0027live-migration\u0027"},{"line_number":48,"context_line":"TRIGGER_CRASH_DUMP \u003d \u0027triggerCrashDump\u0027"}],"source_content_type":"text/x-python","patch_set":27,"id":"3a7e1126_f4aaf384","line":48,"in_reply_to":"3a7e1126_b33ec8b6","updated":"2015-12-17 11:58:10.000000000","message":"Have agreed on using trigger_crash_dump, and the same naming style in the future. This is to consistent with the API names. \n\nWill add a comment for that.","commit_id":"ac494ff64d15415febce09807939c2f1ad6d3611"}],"nova/compute/rpcapi.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"934368539108749ffe121bde7e6c4258712cf677","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        3.x for Juno compatibility. All new changes should go against 4.x."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        * 4.0  - Remove 3.x compatibility"},{"line_number":300,"context_line":"        * 4.1  - Make prep_resize() and resize_instance() send Flavor object"},{"line_number":301,"context_line":"        * 4.2  - Add migration argument to live_migration()"},{"line_number":302,"context_line":"    \u0027\u0027\u0027"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_bdaca68c","line":300,"updated":"2015-07-23 08:44:44.000000000","message":"you need update the version at here.","commit_id":"d6f6d541ca4a1434d86707e43f4329ba69d1b5fc"},{"author":{"_account_id":13689,"name":"Hironori Shiina","email":"Hironori.Shiina@fujitsu.com","username":"shiina"},"change_message_id":"21c223abb9cb29e5143dd9617d02bb99a305a284","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        3.x for Juno compatibility. All new changes should go against 4.x."},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        * 4.0  - Remove 3.x compatibility"},{"line_number":300,"context_line":"        * 4.1  - Make prep_resize() and resize_instance() send Flavor object"},{"line_number":301,"context_line":"        * 4.2  - Add migration argument to live_migration()"},{"line_number":302,"context_line":"    \u0027\u0027\u0027"},{"line_number":303,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_f9830c01","line":300,"in_reply_to":"3a50d1a3_bdaca68c","updated":"2015-07-23 14:44:47.000000000","message":"Done","commit_id":"d6f6d541ca4a1434d86707e43f4329ba69d1b5fc"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5db7c780b54909e8441e1490167413231f715fc9","unresolved":false,"context_lines":[{"line_number":791,"context_line":"        return rpc_method(ctxt, \u0027stop_instance\u0027, **msg_args)"},{"line_number":792,"context_line":""},{"line_number":793,"context_line":"    def inject_nmi(self, ctxt, instance):"},{"line_number":794,"context_line":"        version \u003d \u00274.4\u0027"},{"line_number":795,"context_line":"        cctxt \u003d self.client.prepare(server\u003d_compute_host(None, instance),"},{"line_number":796,"context_line":"                version\u003dversion)"},{"line_number":797,"context_line":"        return cctxt.cast(ctxt, \"inject_nmi\", instance\u003dinstance)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_cc2ac92f","line":794,"updated":"2015-07-30 21:59:16.000000000","message":"You need to not send this if RPC version 4.4 is not allowed. Presumably you should raise some exception that the compute/api layer will catch and report. See the other examples in this file for how to check what is enabled (look for 4.3 for example).","commit_id":"3b5e2321fa8bf077f5a061c163bc58e39fa9b8e5"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"a032862f0686b0257bfdcfc5427bd3936cf14d23","unresolved":false,"context_lines":[{"line_number":798,"context_line":""},{"line_number":799,"context_line":"        cctxt \u003d self.client.prepare(server\u003d_compute_host(None, instance),"},{"line_number":800,"context_line":"                version\u003dversion)"},{"line_number":801,"context_line":"        return cctxt.call(ctxt, \"inject_nmi\", instance\u003dinstance)"},{"line_number":802,"context_line":""},{"line_number":803,"context_line":"    def suspend_instance(self, ctxt, instance):"},{"line_number":804,"context_line":"        version \u003d \u00274.0\u0027"}],"source_content_type":"text/x-python","patch_set":16,"id":"1a4dcd0f_cb7053df","line":801,"updated":"2015-08-04 19:01:56.000000000","message":"This should be a cast as there is nothing returned and no reason to wait for execution to finish.","commit_id":"9c8bce718acdaac26002a7623acf51ce7fff0a17"}],"nova/compute/vm_states.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"7640a30868d5251e78a77325c0ce353e91f7574f","unresolved":false,"context_lines":[{"line_number":51,"context_line":"ALLOW_HARD_REBOOT \u003d ALLOW_SOFT_REBOOT + [STOPPED, PAUSED, SUSPENDED, ERROR]"},{"line_number":52,"context_line":"# states we allow hard reboot from"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"ALLOW_CRASH_DUMP \u003d [ACTIVE, PAUSED, RESCUED, RESIZED, ERROR]  # states we allow"},{"line_number":55,"context_line":"# to trigger crash dump"}],"source_content_type":"text/x-python","patch_set":26,"id":"5a710552_4bfebd6c","line":54,"updated":"2015-12-15 09:29:59.000000000","message":"s/ALLOW_CRASH_DUMP/ALLOW_TRIGGER_CRASH_DUMP/","commit_id":"f68edcf9bc606071955374daf36476b073397ef8"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"39a49945e97af94e9fbcd55faf8373fb8a1886a6","unresolved":false,"context_lines":[{"line_number":51,"context_line":"ALLOW_HARD_REBOOT \u003d ALLOW_SOFT_REBOOT + [STOPPED, PAUSED, SUSPENDED, ERROR]"},{"line_number":52,"context_line":"# states we allow hard reboot from"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"ALLOW_CRASH_DUMP \u003d [ACTIVE, PAUSED, RESCUED, RESIZED, ERROR]  # states we allow"},{"line_number":55,"context_line":"# to trigger crash dump"}],"source_content_type":"text/x-python","patch_set":26,"id":"5a710552_26f7e8d4","line":54,"in_reply_to":"5a710552_4bfebd6c","updated":"2015-12-15 09:39:00.000000000","message":"Done","commit_id":"f68edcf9bc606071955374daf36476b073397ef8"}],"nova/objects/service.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"ed7e7305778008e203b1fb90fa51bb623a90f08e","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    {\u0027compute_rpc\u0027: \u00274.4\u0027},"},{"line_number":57,"context_line":"    # Version 2: Changes to rebuild_instance signature in the compute_rpc"},{"line_number":58,"context_line":"    {\u0027compute_rpc\u0027: \u00274.5\u0027},"},{"line_number":59,"context_line":"    # Version 3: Changes to trigger_crash_dump signature in the compute_rpc"},{"line_number":60,"context_line":"    {\u0027compute_rpc\u0027: \u00274.6\u0027},"},{"line_number":61,"context_line":")"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"3a7e1126_ae4e8c38","line":59,"range":{"start_line":59,"start_character":28,"end_line":59,"end_character":46},"updated":"2015-12-22 05:17:16.000000000","message":"Exactly to say add new API method to the compute rpc api. but this can be done a later fix.","commit_id":"1b006c7362d8bb4a8021093268aa695b0fccb32f"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"75e20fa36efe975b2e7d936c6da5aabf4391abdd","unresolved":false,"context_lines":[{"line_number":56,"context_line":"    {\u0027compute_rpc\u0027: \u00274.4\u0027},"},{"line_number":57,"context_line":"    # Version 2: Changes to rebuild_instance signature in the compute_rpc"},{"line_number":58,"context_line":"    {\u0027compute_rpc\u0027: \u00274.5\u0027},"},{"line_number":59,"context_line":"    # Version 3: Changes to trigger_crash_dump signature in the compute_rpc"},{"line_number":60,"context_line":"    {\u0027compute_rpc\u0027: \u00274.6\u0027},"},{"line_number":61,"context_line":")"},{"line_number":62,"context_line":""}],"source_content_type":"text/x-python","patch_set":30,"id":"3a7e1126_eae9dd7f","line":59,"range":{"start_line":59,"start_character":28,"end_line":59,"end_character":46},"in_reply_to":"3a7e1126_ae4e8c38","updated":"2015-12-22 08:00:21.000000000","message":"Posted a patch for this. Please refer to:\n\nhttps://review.openstack.org/#/c/260373/","commit_id":"1b006c7362d8bb4a8021093268aa695b0fccb32f"}],"nova/tests/unit/cells/test_cells_messaging.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"c406d5dc0613414be9fee8c9f9aa7dd54854770e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"1a4dcd0f_74647ce4","line":2109,"updated":"2015-08-04 19:25:32.000000000","message":"I might suggest adding a test to CellsPublicInterfacesTestCase for test_inject_nmi to cover the code between MessageRunner and _instance_action, since we\u0027re adding a new method. Currently, only test_resize_instance is in there because of an old bug [1] and none of the other existing methods are covered.\n\n[1] https://bugs.launchpad.net/nova/+bug/1436613","commit_id":"9c8bce718acdaac26002a7623acf51ce7fff0a17"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5db7c780b54909e8441e1490167413231f715fc9","unresolved":false,"context_lines":[{"line_number":7333,"context_line":"                                            {}, block_device_mapping\u003d[])"},{"line_number":7334,"context_line":"        inst_uuid \u003d instance[\u0027uuid\u0027]"},{"line_number":7335,"context_line":"        extra \u003d [\u0027system_metadata\u0027, \u0027metadata\u0027]"},{"line_number":7336,"context_line":"        inst_obj \u003d objects.Instance.get_by_uuid(self.context,"},{"line_number":7337,"context_line":"                                                inst_uuid,"},{"line_number":7338,"context_line":"                                                expected_attrs\u003dextra)"},{"line_number":7339,"context_line":"        self.compute.inject_nmi(self.context, instance\u003dinst_obj)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_6c913552","line":7336,"updated":"2015-07-30 21:59:16.000000000","message":"You don\u0027t need to create a whole instance for this. Just create an instance object with the things set that you need and pass it to inject_nmi.","commit_id":"3b5e2321fa8bf077f5a061c163bc58e39fa9b8e5"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5db7c780b54909e8441e1490167413231f715fc9","unresolved":false,"context_lines":[{"line_number":7338,"context_line":"                                                expected_attrs\u003dextra)"},{"line_number":7339,"context_line":"        self.compute.inject_nmi(self.context, instance\u003dinst_obj)"},{"line_number":7340,"context_line":""},{"line_number":7341,"context_line":"        self.compute.terminate_instance(self.context, instance, [], [])"},{"line_number":7342,"context_line":""},{"line_number":7343,"context_line":""},{"line_number":7344,"context_line":"class ComputeAPITestCase(BaseTestCase):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a50d1a3_ac85fd07","line":7341,"updated":"2015-07-30 21:59:16.000000000","message":"If you do the above, then you won\u0027t need to do this terminate step.\n\nIdeally this test would be in test_compute_mgr.py and depend much less on the state of the DB than this one does.","commit_id":"3b5e2321fa8bf077f5a061c163bc58e39fa9b8e5"}],"nova/tests/unit/compute/test_compute_api.py":[{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"f7b370d52b6ce4210899c42c42fa78f8abf15dbe","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        self.mox.StubOutWithMock(rpcapi, \u0027trigger_crash_dump\u0027)"},{"line_number":443,"context_line":"        rpcapi.trigger_crash_dump(self.context, instance)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"        self.mox.ReplayAll()"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        self.compute_api.trigger_crash_dump(self.context, instance)"},{"line_number":448,"context_line":"        self.assertIsNone(instance.task_state)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3a7e1126_a59c3f6a","line":445,"range":{"start_line":445,"start_character":17,"end_line":445,"end_character":26},"updated":"2015-12-17 06:29:10.000000000","message":"we should use \u0027mock\u0027 instead of mox","commit_id":"ac494ff64d15415febce09807939c2f1ad6d3611"},{"author":{"_account_id":14937,"name":"Tang Chen","email":"imtangchen@163.com","username":"tangchen"},"change_message_id":"9801e090d2835d1cf8dea2a5aa41449061e0ca04","unresolved":false,"context_lines":[{"line_number":442,"context_line":"        self.mox.StubOutWithMock(rpcapi, \u0027trigger_crash_dump\u0027)"},{"line_number":443,"context_line":"        rpcapi.trigger_crash_dump(self.context, instance)"},{"line_number":444,"context_line":""},{"line_number":445,"context_line":"        self.mox.ReplayAll()"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"        self.compute_api.trigger_crash_dump(self.context, instance)"},{"line_number":448,"context_line":"        self.assertIsNone(instance.task_state)"}],"source_content_type":"text/x-python","patch_set":27,"id":"3a7e1126_bc799bfe","line":445,"range":{"start_line":445,"start_character":17,"end_line":445,"end_character":26},"in_reply_to":"3a7e1126_a59c3f6a","updated":"2015-12-17 11:58:10.000000000","message":"Done","commit_id":"ac494ff64d15415febce09807939c2f1ad6d3611"}]}
