)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"fd8b9d262c1200b6c275283f86aad72cf5437e17","unresolved":false,"context_lines":[{"line_number":630,"context_line":"            # checking that instance was not already evacuated to other host"},{"line_number":631,"context_line":"            self._destroy_evacuated_instances(context)"},{"line_number":632,"context_line":"            for instance in instances:"},{"line_number":633,"context_line":"                self._init_instance(context, instance)"},{"line_number":634,"context_line":"        finally:"},{"line_number":635,"context_line":"            if CONF.defer_iptables_apply:"},{"line_number":636,"context_line":"                self.driver.filter_defer_apply_off()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPH%2F%2FisE%3D","side":"PARENT","line":633,"updated":"2013-05-30 21:27:03.000000000","message":"We hope our objects are backwards compatible with dict access. :)   I guess we\u0027ll find out!","commit_id":"a8160924f71a55b93de8505d7866bfe61d57d453"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"37e33ce0465bb73439ee46d9a1a3576b034027de","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        self.driver.init_host(host\u003dself.host)"},{"line_number":620,"context_line":"        context \u003d nova.context.get_admin_context()"},{"line_number":621,"context_line":"        instances \u003d instance_obj.InstanceList.get_by_host(context,"},{"line_number":622,"context_line":"                                                          host\u003dself.host)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"        if CONF.defer_iptables_apply:"},{"line_number":625,"context_line":"            self.driver.filter_defer_apply_on()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPH%2F%2FirM%3D","line":622,"updated":"2013-05-30 21:35:13.000000000","message":"Hm.  The old behavior joined metadata and sys_meta... this new call will not.  I sorta suspect maybe sys_meta is needed to handle reverting migrations.","commit_id":"67b5577487125301a7a303ffaab4671241aa50bd"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"3ddb4a1eb39a2fa82bfa29ec5d6f02ebf51cb618","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        self.driver.init_host(host\u003dself.host)"},{"line_number":620,"context_line":"        context \u003d nova.context.get_admin_context()"},{"line_number":621,"context_line":"        instances \u003d instance_obj.InstanceList.get_by_host(context,"},{"line_number":622,"context_line":"                                                          host\u003dself.host)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"        if CONF.defer_iptables_apply:"},{"line_number":625,"context_line":"            self.driver.filter_defer_apply_on()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPH%2F%2FdFw%3D","line":622,"in_reply_to":"AAAAPH%2F%2FdKU%3D","updated":"2013-06-03 16:07:29.000000000","message":"Yeah, that makes sense.","commit_id":"67b5577487125301a7a303ffaab4671241aa50bd"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"cfbb84eaae65d7122777494d2190121a8c561a9c","unresolved":false,"context_lines":[{"line_number":619,"context_line":"        self.driver.init_host(host\u003dself.host)"},{"line_number":620,"context_line":"        context \u003d nova.context.get_admin_context()"},{"line_number":621,"context_line":"        instances \u003d instance_obj.InstanceList.get_by_host(context,"},{"line_number":622,"context_line":"                                                          host\u003dself.host)"},{"line_number":623,"context_line":""},{"line_number":624,"context_line":"        if CONF.defer_iptables_apply:"},{"line_number":625,"context_line":"            self.driver.filter_defer_apply_on()"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPH%2F%2FdKU%3D","line":622,"in_reply_to":"AAAAPH%2F%2FirM%3D","updated":"2013-06-03 15:42:09.000000000","message":"If it is needed it will be lazy-loaded, which seems like the ideal behavior for this, right? In cases where it will definitely be needed, I just pre-load it. If it may be needed, I let it get auto-fetched as needed.","commit_id":"67b5577487125301a7a303ffaab4671241aa50bd"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"d48c9c1fa2ad17ecd8b4689b4b4dd54e57facb07","unresolved":false,"context_lines":[{"line_number":648,"context_line":"        \"\"\"Initialization for a standalone compute service.\"\"\""},{"line_number":649,"context_line":"        self.driver.init_host(host\u003dself.host)"},{"line_number":650,"context_line":"        context \u003d nova.context.get_admin_context()"},{"line_number":651,"context_line":"        instances \u003d instance_obj.InstanceList.get_by_host("},{"line_number":652,"context_line":"            context, self.host, expected_attrs\u003d[\u0027info_cache\u0027])"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        if CONF.defer_iptables_apply:"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAPX%2F%2Fx%2B4%3D","line":651,"updated":"2013-06-10 19:58:23.000000000","message":"does this work through rpc?\u003d) how?)","commit_id":"eefc3c1892c523100470414d00a981ea9fbdf3ca"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"b331f14e01fce5fa1f1217f410e29d528a3b4bc6","unresolved":false,"context_lines":[{"line_number":648,"context_line":"        \"\"\"Initialization for a standalone compute service.\"\"\""},{"line_number":649,"context_line":"        self.driver.init_host(host\u003dself.host)"},{"line_number":650,"context_line":"        context \u003d nova.context.get_admin_context()"},{"line_number":651,"context_line":"        instances \u003d instance_obj.InstanceList.get_by_host("},{"line_number":652,"context_line":"            context, self.host, expected_attrs\u003d[\u0027info_cache\u0027])"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        if CONF.defer_iptables_apply:"}],"source_content_type":"text/x-python","patch_set":19,"id":"AAAAPX%2F%2Fr5k%3D","line":651,"in_reply_to":"AAAAPX%2F%2Fx%2B4%3D","updated":"2013-06-12 19:55:25.000000000","message":"It does.  There is a fair bit of indirection involved but you can start by looking at get_by_host in nova/objects/instance.py and the remotable_classmethod wrapper.  Essentially because the compute node has an indirection_api set on it(in nova/cmd/compute.py) it passes the call over to conductor which runs get_by_host without indrection_api being set and then returns that back to here.","commit_id":"eefc3c1892c523100470414d00a981ea9fbdf3ca"}],"nova/test.py":[{"author":{"_account_id":5652,"name":"David Ripton","email":"dripton@redhat.com","username":"dripton"},"change_message_id":"9ebeaec34d88b448d4ef53dcfe62956d1fea445f","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        # NOTE(danms): Make sure to reset us back to non-remote objects"},{"line_number":225,"context_line":"        # for each test to avoid interactions."},{"line_number":226,"context_line":"        objects_base.NovaObject.indirection_api \u003d None"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        mox_fixture \u003d self.useFixture(MoxStubout())"},{"line_number":229,"context_line":"        self.mox \u003d mox_fixture.mox"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPH%2F%2Fj7s%3D","line":226,"updated":"2013-05-30 14:38:28.000000000","message":"The need to do this scares me.","commit_id":"30fbd76af507a8733107d4529dc81df967abaa8d"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d4045ca4d9c905bf6df671d06e90b4315f9033f0","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"        # NOTE(danms): Make sure to reset us back to non-remote objects"},{"line_number":225,"context_line":"        # for each test to avoid interactions."},{"line_number":226,"context_line":"        objects_base.NovaObject.indirection_api \u003d None"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"        mox_fixture \u003d self.useFixture(MoxStubout())"},{"line_number":229,"context_line":"        self.mox \u003d mox_fixture.mox"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAPH%2F%2Fj6M%3D","line":226,"in_reply_to":"AAAAPH%2F%2Fj7s%3D","updated":"2013-05-30 14:42:32.000000000","message":"Well, the setting is designed to be global per-service, which is what we want at runtime. The need to do it here is just a consequence of running multiple things in a single process that need to flip back and forth :)","commit_id":"30fbd76af507a8733107d4529dc81df967abaa8d"}]}
