)]}'
{"nova/compute/api.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ce83d613696b7c273514be10b10d3397d754e619","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                                                      instance.image_meta):"},{"line_number":218,"context_line":"                raise exception.OperationNotSupportedForSEV("},{"line_number":219,"context_line":"                    instance_uuid\u003dinstance.uuid,"},{"line_number":220,"context_line":"                    operation\u003doperation)"},{"line_number":221,"context_line":"            return f(self, context, instance, *args, **kw)"},{"line_number":222,"context_line":"        return inner"},{"line_number":223,"context_line":"    return outer"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_bd494a61","line":220,"range":{"start_line":220,"start_character":30,"end_line":220,"end_character":39},"updated":"2019-09-06 11:42:10.000000000","message":"nit: technically you don\u0027t need this since you could do \u0027f.__name__\u0027 (or some variation of that), right?","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"1cb7268474564a0286060cfea90ef26dc1b968df","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                                                      instance.image_meta):"},{"line_number":218,"context_line":"                raise exception.OperationNotSupportedForSEV("},{"line_number":219,"context_line":"                    instance_uuid\u003dinstance.uuid,"},{"line_number":220,"context_line":"                    operation\u003doperation)"},{"line_number":221,"context_line":"            return f(self, context, instance, *args, **kw)"},{"line_number":222,"context_line":"        return inner"},{"line_number":223,"context_line":"    return outer"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_7830c008","line":220,"range":{"start_line":220,"start_character":30,"end_line":220,"end_character":39},"in_reply_to":"5faad753_98d6dc4f","updated":"2019-09-06 13:24:25.000000000","message":"Yeah, that\u0027s a good point. Explicit is better than implicit","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"233f606a5a1de096bbda85ff15edfbe6af497c73","unresolved":false,"context_lines":[{"line_number":217,"context_line":"                                                      instance.image_meta):"},{"line_number":218,"context_line":"                raise exception.OperationNotSupportedForSEV("},{"line_number":219,"context_line":"                    instance_uuid\u003dinstance.uuid,"},{"line_number":220,"context_line":"                    operation\u003doperation)"},{"line_number":221,"context_line":"            return f(self, context, instance, *args, **kw)"},{"line_number":222,"context_line":"        return inner"},{"line_number":223,"context_line":"    return outer"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_98d6dc4f","line":220,"range":{"start_line":220,"start_character":30,"end_line":220,"end_character":39},"in_reply_to":"5faad753_bd494a61","updated":"2019-09-06 12:52:25.000000000","message":"Yeah I did think about that, but am wary of trying to be too clever with meta-programming as it can obfuscate things.  Perhaps more importantly the call stack could change in the future or the function get renamed so it felt a bit brittle to do that.","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"91cf0a7b9ce7ea8ed82c7e9653e17a7244dc9ce4","unresolved":false,"context_lines":[{"line_number":3803,"context_line":"        return self.compute_rpcapi.get_instance_diagnostics(context,"},{"line_number":3804,"context_line":"                                                            instance\u003dinstance)"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"    @reject_sev_instances(\u0027suspend\u0027)"},{"line_number":3807,"context_line":"    @check_instance_lock"},{"line_number":3808,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE])"},{"line_number":3809,"context_line":"    def suspend(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_98bc9cbc","line":3806,"range":{"start_line":3806,"start_character":26,"end_line":3806,"end_character":35},"updated":"2019-09-06 13:09:48.000000000","message":"Might be better to use instance_actions.SUSPEND here.","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"06200e800eebdfc30ec0445df3ed04221225284a","unresolved":false,"context_lines":[{"line_number":3803,"context_line":"        return self.compute_rpcapi.get_instance_diagnostics(context,"},{"line_number":3804,"context_line":"                                                            instance\u003dinstance)"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"    @reject_sev_instances(\u0027suspend\u0027)"},{"line_number":3807,"context_line":"    @check_instance_lock"},{"line_number":3808,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE])"},{"line_number":3809,"context_line":"    def suspend(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_d8ef74ae","line":3806,"range":{"start_line":3806,"start_character":26,"end_line":3806,"end_character":35},"in_reply_to":"5faad753_98bc9cbc","updated":"2019-09-06 13:11:02.000000000","message":"Reason being the instance actions are the thing the end users sees \"on the outside\". The compute API function name doesn\u0027t mean much to them, so using the instance action correlates to the actual server action they are performing in the API.","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"4448d96c57b472a01fc419c74ff8b50f50036a16","unresolved":false,"context_lines":[{"line_number":3803,"context_line":"        return self.compute_rpcapi.get_instance_diagnostics(context,"},{"line_number":3804,"context_line":"                                                            instance\u003dinstance)"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"    @reject_sev_instances(\u0027suspend\u0027)"},{"line_number":3807,"context_line":"    @check_instance_lock"},{"line_number":3808,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE])"},{"line_number":3809,"context_line":"    def suspend(self, context, instance):"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_f33db32c","line":3806,"range":{"start_line":3806,"start_character":26,"end_line":3806,"end_character":35},"in_reply_to":"5faad753_d8ef74ae","updated":"2019-09-06 14:00:02.000000000","message":"Great idea, thanks! Done.","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"91cf0a7b9ce7ea8ed82c7e9653e17a7244dc9ce4","unresolved":false,"context_lines":[{"line_number":4457,"context_line":"                                                     diff\u003ddiff)"},{"line_number":4458,"context_line":"        return _metadata"},{"line_number":4459,"context_line":""},{"line_number":4460,"context_line":"    @reject_sev_instances(\u0027live_migrate\u0027)"},{"line_number":4461,"context_line":"    @check_instance_lock"},{"line_number":4462,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED])"},{"line_number":4463,"context_line":"    def live_migrate(self, context, instance, block_migration,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_58b624dc","line":4460,"range":{"start_line":4460,"start_character":26,"end_line":4460,"end_character":40},"updated":"2019-09-06 13:09:48.000000000","message":"And instance_actions.LIVE_MIGRATION here.","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"4448d96c57b472a01fc419c74ff8b50f50036a16","unresolved":false,"context_lines":[{"line_number":4457,"context_line":"                                                     diff\u003ddiff)"},{"line_number":4458,"context_line":"        return _metadata"},{"line_number":4459,"context_line":""},{"line_number":4460,"context_line":"    @reject_sev_instances(\u0027live_migrate\u0027)"},{"line_number":4461,"context_line":"    @check_instance_lock"},{"line_number":4462,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED])"},{"line_number":4463,"context_line":"    def live_migrate(self, context, instance, block_migration,"}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_330d8b90","line":4460,"range":{"start_line":4460,"start_character":26,"end_line":4460,"end_character":40},"in_reply_to":"5faad753_58b624dc","updated":"2019-09-06 14:00:02.000000000","message":"Done","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"a81568d2dd00c1e320aa04ee747e394b362da6d1","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    def outer(f):"},{"line_number":214,"context_line":"        @six.wraps(f)"},{"line_number":215,"context_line":"        def inner(self, context, instance, *args, **kw):"},{"line_number":216,"context_line":"            if hardware.get_mem_encryption_constraint(instance.flavor,"},{"line_number":217,"context_line":"                                                      instance.image_meta):"},{"line_number":218,"context_line":"                raise exception.OperationNotSupportedForSEV("},{"line_number":219,"context_line":"                    instance_uuid\u003dinstance.uuid,"}],"source_content_type":"text/x-python","patch_set":6,"id":"5faad753_c0943647","line":216,"updated":"2019-09-09 14:58:25.000000000","message":"This call could raise FlavorImageConflict in theory but it won\u0027t in practice. If there is conflict then the instance was failed to boot so neither suspend nor live_migrate can be called on it.","commit_id":"c68d72742cf01cae5cdf0b2e09f090cc33ec5986"}],"nova/exception.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"91cf0a7b9ce7ea8ed82c7e9653e17a7244dc9ce4","unresolved":false,"context_lines":[{"line_number":534,"context_line":""},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"class OperationNotSupportedForSEV(NovaException):"},{"line_number":537,"context_line":"    msg_fmt \u003d _(\"Operation %(operation)s not supported for SEV-enabled \""},{"line_number":538,"context_line":"                \"instance (%(instance_uuid)s).\")"},{"line_number":539,"context_line":"    code \u003d 409"},{"line_number":540,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_f8ca704d","line":537,"range":{"start_line":537,"start_character":27,"end_line":537,"end_character":40},"updated":"2019-09-06 13:09:48.000000000","message":"put this in quotes?","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"},{"author":{"_account_id":2394,"name":"Adam Spiers","email":"aspiers@suse.com","username":"adam.spiers"},"change_message_id":"4448d96c57b472a01fc419c74ff8b50f50036a16","unresolved":false,"context_lines":[{"line_number":534,"context_line":""},{"line_number":535,"context_line":""},{"line_number":536,"context_line":"class OperationNotSupportedForSEV(NovaException):"},{"line_number":537,"context_line":"    msg_fmt \u003d _(\"Operation %(operation)s not supported for SEV-enabled \""},{"line_number":538,"context_line":"                \"instance (%(instance_uuid)s).\")"},{"line_number":539,"context_line":"    code \u003d 409"},{"line_number":540,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5faad753_d31d17be","line":537,"range":{"start_line":537,"start_character":27,"end_line":537,"end_character":40},"in_reply_to":"5faad753_f8ca704d","updated":"2019-09-06 14:00:02.000000000","message":"Done","commit_id":"013250218fe7a056d9985c23fff87df8ee367e28"}]}
