)]}'
{"nova/network/api.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"685b153de8ad2a1e49c3a96ef463ddcd0001bd98","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        #             this is called from compute.manager which shouldn\u0027t"},{"line_number":315,"context_line":"        #             have db access so we do it on the other side of the"},{"line_number":316,"context_line":"        #             rpc."},{"line_number":317,"context_line":"        if not isinstance(instance, instance_obj.Instance):"},{"line_number":318,"context_line":"            instance \u003d instance_obj.Instance._from_db_object(context,"},{"line_number":319,"context_line":"                    instance_obj.Instance(), instance)"},{"line_number":320,"context_line":"        self.network_rpcapi.deallocate_for_instance(context, instance\u003dinstance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9oWs%3D","line":317,"updated":"2014-02-05 14:40:18.000000000","message":"is this not far more expensive - we will need a database read here.","commit_id":"13362ddaab4923e066ce21ef9617233fda311faa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1159a7599e1cd1ff865259c87fa2bb3a5ddef9d5","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        #             this is called from compute.manager which shouldn\u0027t"},{"line_number":315,"context_line":"        #             have db access so we do it on the other side of the"},{"line_number":316,"context_line":"        #             rpc."},{"line_number":317,"context_line":"        if not isinstance(instance, instance_obj.Instance):"},{"line_number":318,"context_line":"            instance \u003d instance_obj.Instance._from_db_object(context,"},{"line_number":319,"context_line":"                    instance_obj.Instance(), instance)"},{"line_number":320,"context_line":"        self.network_rpcapi.deallocate_for_instance(context, instance\u003dinstance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9nnQ%3D","line":317,"in_reply_to":"AAAAUH%2F9oWs%3D","updated":"2014-02-05 16:23:01.000000000","message":"_from_db_object doesn\u0027t go to the database, it\u0027s just converts the dict to an object - it\u0027s a helper method.","commit_id":"13362ddaab4923e066ce21ef9617233fda311faa"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"de5e985de245344072b28763dc2dfc6090ebba10","unresolved":false,"context_lines":[{"line_number":314,"context_line":"        #             this is called from compute.manager which shouldn\u0027t"},{"line_number":315,"context_line":"        #             have db access so we do it on the other side of the"},{"line_number":316,"context_line":"        #             rpc."},{"line_number":317,"context_line":"        if not isinstance(instance, instance_obj.Instance):"},{"line_number":318,"context_line":"            instance \u003d instance_obj.Instance._from_db_object(context,"},{"line_number":319,"context_line":"                    instance_obj.Instance(), instance)"},{"line_number":320,"context_line":"        self.network_rpcapi.deallocate_for_instance(context, instance\u003dinstance,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9npA%3D","line":317,"in_reply_to":"AAAAUH%2F9oWs%3D","updated":"2014-02-05 16:10:55.000000000","message":"misunderstood","commit_id":"13362ddaab4923e066ce21ef9617233fda311faa"}],"nova/network/floating_ips.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b88fa374af03304e0fd211d8de114522a42f6525","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            if not uuidutils.is_uuid_like(instance_uuid):"},{"line_number":156,"context_line":"                # NOTE(francois.charlier): in some cases the instance might be"},{"line_number":157,"context_line":"                # deleted before the IPs are released, so we need to get"},{"line_number":158,"context_line":"                # deleted instances too"},{"line_number":159,"context_line":"                read_deleted_context \u003d context.elevated(read_deleted\u003d\u0027yes\u0027)"},{"line_number":160,"context_line":"                instance \u003d instance_obj.Instance.get_by_id("},{"line_number":161,"context_line":"                        read_deleted_context, instance_uuid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2B%2BUY%3D","line":158,"updated":"2014-01-20 08:24:29.000000000","message":"this comment is terribly confusing. any chance that we can drop this. the asme code appears in https://review.openstack.org/#/c/67574/1/nova/network/manager.py without a confusing comment","commit_id":"a6863b6d6882e12af91b03dfcfdab90d00c41403"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"4c0fc04db78bc544958d99aec07d8a6b6c120720","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            if not uuidutils.is_uuid_like(instance_uuid):"},{"line_number":156,"context_line":"                # NOTE(francois.charlier): in some cases the instance might be"},{"line_number":157,"context_line":"                # deleted before the IPs are released, so we need to get"},{"line_number":158,"context_line":"                # deleted instances too"},{"line_number":159,"context_line":"                read_deleted_context \u003d context.elevated(read_deleted\u003d\u0027yes\u0027)"},{"line_number":160,"context_line":"                instance \u003d instance_obj.Instance.get_by_id("},{"line_number":161,"context_line":"                        read_deleted_context, instance_uuid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2B8P4%3D","line":158,"in_reply_to":"AAAAUH%2F%2B%2BSM%3D","updated":"2014-01-20 15:22:04.000000000","message":"It\u0027s attempting to explain why we have to use a read_deleted context, not related to ID/UUID\n\nNote that this comment was already there and is not a part of this patch","commit_id":"a6863b6d6882e12af91b03dfcfdab90d00c41403"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"77204a51371d72071223c6655448a035e741985f","unresolved":false,"context_lines":[{"line_number":155,"context_line":"            if not uuidutils.is_uuid_like(instance_uuid):"},{"line_number":156,"context_line":"                # NOTE(francois.charlier): in some cases the instance might be"},{"line_number":157,"context_line":"                # deleted before the IPs are released, so we need to get"},{"line_number":158,"context_line":"                # deleted instances too"},{"line_number":159,"context_line":"                read_deleted_context \u003d context.elevated(read_deleted\u003d\u0027yes\u0027)"},{"line_number":160,"context_line":"                instance \u003d instance_obj.Instance.get_by_id("},{"line_number":161,"context_line":"                        read_deleted_context, instance_uuid)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2B%2BSM%3D","line":158,"in_reply_to":"AAAAUH%2F%2B%2BUY%3D","updated":"2014-01-20 08:26:43.000000000","message":"in a later patch you hit the nail on the head with your comment -\n\n# NOTE(russellb) in case instance_id was an ID and not UUID","commit_id":"a6863b6d6882e12af91b03dfcfdab90d00c41403"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"c287494c32d63e47a2c56ddcf1374f48ba7f6a20","unresolved":false,"context_lines":[{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        rpc.called by network_api"},{"line_number":150,"context_line":"        \"\"\""},{"line_number":151,"context_line":"        if \u0027instance\u0027 in kwargs:"},{"line_number":152,"context_line":"            instance_uuid \u003d kwargs[\u0027instance\u0027].uuid"},{"line_number":153,"context_line":"        else:"},{"line_number":154,"context_line":"            instance_uuid \u003d kwargs[\u0027instance_id\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2BCbg%3D","line":151,"updated":"2014-01-30 19:08:00.000000000","message":"Same as manager.py comment.","commit_id":"15b1b450749c6a21b57aef4854ea262944e7f1a1"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"b2bfd054ab58ce764090614f0fce196af990b534","unresolved":false,"context_lines":[{"line_number":156,"context_line":"                # deleted before the IPs are released, so we need to get"},{"line_number":157,"context_line":"                # deleted instances too"},{"line_number":158,"context_line":"                instance \u003d instance_obj.Instance.get_by_id("},{"line_number":159,"context_line":"                    context.elevated(read_deleted\u003d\u0027yes\u0027), instance_uuid)"},{"line_number":160,"context_line":"                instance_uuid \u003d instance.uuid"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAU3%2F%2FaJo%3D","line":159,"updated":"2014-02-26 20:02:28.000000000","message":"Adding instance to kwargs here would save a db lookup in the super class.","commit_id":"75258af2206d6e3e52fb2f9ef01afc4dd5ca071d"}],"nova/network/manager.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"c287494c32d63e47a2c56ddcf1374f48ba7f6a20","unresolved":false,"context_lines":[{"line_number":525,"context_line":"        # deleted before the IPs are released, so we need to get deleted"},{"line_number":526,"context_line":"        # instances too"},{"line_number":527,"context_line":"        read_deleted_context \u003d context.elevated(read_deleted\u003d\u0027yes\u0027)"},{"line_number":528,"context_line":"        if \u0027instance\u0027 in kwargs:"},{"line_number":529,"context_line":"            instance \u003d kwargs[\u0027instance\u0027]"},{"line_number":530,"context_line":"            instance_uuid \u003d instance.uuid"},{"line_number":531,"context_line":"            host \u003d instance.host"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAUH%2F%2BCbs%3D","line":528,"updated":"2014-01-30 19:08:00.000000000","message":"It would be nicer to see instance\u003dNone above and not in kwargs since it should be become a permanent arg for this method.  Then you can just check \u0027if instance\u0027 here.  But since kwargs is already used this way for instance_id, i won\u0027t hold this up.","commit_id":"15b1b450749c6a21b57aef4854ea262944e7f1a1"}],"nova/network/rpcapi.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1159a7599e1cd1ff865259c87fa2bb3a5ddef9d5","unresolved":false,"context_lines":[{"line_number":194,"context_line":"                kwargs[\u0027requested_networks\u0027] \u003d requested_networks"},{"line_number":195,"context_line":"            else:"},{"line_number":196,"context_line":"                version \u003d \u00271.0\u0027"},{"line_number":197,"context_line":"            kwargs[\u0027host\u0027] \u003d instance[\u0027host\u0027]"},{"line_number":198,"context_line":"            kwargs[\u0027instance_id\u0027] \u003d instance.uuid"},{"line_number":199,"context_line":"            kwargs[\u0027project_id\u0027] \u003d instance.project_id"},{"line_number":200,"context_line":"        if CONF.multi_host:"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9njs%3D","line":197,"updated":"2014-02-05 16:23:01.000000000","message":"Hmm, you are accessing uuid and project_id as a field, so should probably also access host as a field to be consistent in this same block.","commit_id":"13362ddaab4923e066ce21ef9617233fda311faa"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"685b153de8ad2a1e49c3a96ef463ddcd0001bd98","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            kwargs[\u0027instance_id\u0027] \u003d instance.uuid"},{"line_number":199,"context_line":"            kwargs[\u0027project_id\u0027] \u003d instance.project_id"},{"line_number":200,"context_line":"        if CONF.multi_host:"},{"line_number":201,"context_line":"            cctxt \u003d cctxt.prepare(server\u003dinstance[\u0027host\u0027], version\u003dversion)"},{"line_number":202,"context_line":"        return cctxt.call(ctxt, \u0027deallocate_for_instance\u0027, **kwargs)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    def add_fixed_ip_to_instance(self, ctxt, instance_id, rxtx_factor,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9oVE%3D","line":201,"updated":"2014-02-05 14:40:18.000000000","message":"why not instance.host? is this not an object here?","commit_id":"13362ddaab4923e066ce21ef9617233fda311faa"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1159a7599e1cd1ff865259c87fa2bb3a5ddef9d5","unresolved":false,"context_lines":[{"line_number":198,"context_line":"            kwargs[\u0027instance_id\u0027] \u003d instance.uuid"},{"line_number":199,"context_line":"            kwargs[\u0027project_id\u0027] \u003d instance.project_id"},{"line_number":200,"context_line":"        if CONF.multi_host:"},{"line_number":201,"context_line":"            cctxt \u003d cctxt.prepare(server\u003dinstance[\u0027host\u0027], version\u003dversion)"},{"line_number":202,"context_line":"        return cctxt.call(ctxt, \u0027deallocate_for_instance\u0027, **kwargs)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"    def add_fixed_ip_to_instance(self, ctxt, instance_id, rxtx_factor,"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9nmw%3D","line":201,"in_reply_to":"AAAAUH%2F9oVE%3D","updated":"2014-02-05 16:23:01.000000000","message":"Yeah but not requiring strict conversion in these patches.  The first pass on objects conversion is just getting things working with objects, then there can be global passes to access the fields like objects rather than dicts.\n\nI\u0027ve fought this battle before too. :)","commit_id":"13362ddaab4923e066ce21ef9617233fda311faa"}],"nova/tests/network/test_manager.py":[{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"b88fa374af03304e0fd211d8de114522a42f6525","unresolved":false,"context_lines":[{"line_number":2031,"context_line":"        db.floating_ip_create(self.context,"},{"line_number":2032,"context_line":"                              {\u0027address\u0027: address,"},{"line_number":2033,"context_line":"                               \u0027pool\u0027: \u0027nova\u0027})"},{"line_number":2034,"context_line":"        #inst \u003d db.instance_create(self.context, {\u0027host\u0027: self.compute.host,"},{"line_number":2035,"context_line":"        #                                         \u0027display_name\u0027: HOST,"},{"line_number":2036,"context_line":"        #                                         \u0027instance_type_id\u0027: 1})"},{"line_number":2037,"context_line":"        inst \u003d instance_obj.Instance()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2B%2BTE%3D","line":2034,"updated":"2014-01-20 08:24:29.000000000","message":"why do we need the code commented here? this should be deleted","commit_id":"a6863b6d6882e12af91b03dfcfdab90d00c41403"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"4c0fc04db78bc544958d99aec07d8a6b6c120720","unresolved":false,"context_lines":[{"line_number":2031,"context_line":"        db.floating_ip_create(self.context,"},{"line_number":2032,"context_line":"                              {\u0027address\u0027: address,"},{"line_number":2033,"context_line":"                               \u0027pool\u0027: \u0027nova\u0027})"},{"line_number":2034,"context_line":"        #inst \u003d db.instance_create(self.context, {\u0027host\u0027: self.compute.host,"},{"line_number":2035,"context_line":"        #                                         \u0027display_name\u0027: HOST,"},{"line_number":2036,"context_line":"        #                                         \u0027instance_type_id\u0027: 1})"},{"line_number":2037,"context_line":"        inst \u003d instance_obj.Instance()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAUH%2F%2B8Pk%3D","line":2034,"in_reply_to":"AAAAUH%2F%2B%2BTE%3D","updated":"2014-01-20 15:22:04.000000000","message":"yeah just forgot to delete it","commit_id":"a6863b6d6882e12af91b03dfcfdab90d00c41403"}],"nova/tests/network/test_rpcapi.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"1159a7599e1cd1ff865259c87fa2bb3a5ddef9d5","unresolved":false,"context_lines":[{"line_number":184,"context_line":"                macs\u003d[], version\u003d\u00271.9\u0027)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"    def test_deallocate_for_instance(self):"},{"line_number":187,"context_line":"        instance \u003d fake_instance.fake_db_instance()"},{"line_number":188,"context_line":"        self._test_network_api(\u0027deallocate_for_instance\u0027, rpc_method\u003d\u0027call\u0027,"},{"line_number":189,"context_line":"                instance\u003dinstance)"},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F9nkM%3D","line":187,"updated":"2014-02-05 16:23:01.000000000","message":"Why not objects?  To make sure it gets converted?","commit_id":"13362ddaab4923e066ce21ef9617233fda311faa"}]}
