)]}'
{"nova/cells/state.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"71a1c8228c798a22535458b0a3f7ddfc3ad21e56","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                if not service or service[\u0027disabled\u0027]:"},{"line_number":280,"context_line":"                    continue"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"                alive \u003d self.servicegroup_api.service_is_up(service)"},{"line_number":283,"context_line":"                if not alive:"},{"line_number":284,"context_line":"                    continue"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_25944d41","line":282,"updated":"2016-02-17 17:15:53.000000000","message":"The Service object has a last_seen_up attribute (depending on version), I\u0027d have to look into how that\u0027s set and used, but it seems like something you could possibly use rather than hit the service group API.","commit_id":"26c200de9086be7708817bfa816e881a58b84e9b"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee4abda81d11f791b313b71bf34f4fabf2962f6f","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                if not service or service[\u0027disabled\u0027]:"},{"line_number":280,"context_line":"                    continue"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"                alive \u003d self.servicegroup_api.service_is_up(service)"},{"line_number":283,"context_line":"                if not alive:"},{"line_number":284,"context_line":"                    continue"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_816708e8","line":282,"in_reply_to":"dae33548_25944d41","updated":"2016-02-17 18:41:52.000000000","message":"Ignore the comment about last_seen_up, it\u0027s only available after certain versions of the service object, so it\u0027s not really reliable here. You could duplicate the logic from the is_up method in the DB service group driver, but that\u0027s kind of gross.","commit_id":"26c200de9086be7708817bfa816e881a58b84e9b"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"1d520a4f4500d711fe819e90b9c1832007b8988e","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                if not service or service[\u0027disabled\u0027]:"},{"line_number":280,"context_line":"                    continue"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"                alive \u003d self.servicegroup_api.service_is_up(service)"},{"line_number":283,"context_line":"                if not alive:"},{"line_number":284,"context_line":"                    continue"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_938d63d5","line":282,"updated":"2016-02-18 16:50:27.000000000","message":"The servicegroup api doesn\u0027t work from the api cell because it doesn\u0027t route any queries down to a cell where computes are. In this case it works because it\u0027s only being called for computes that have been retrieved locally, which means that it\u0027s either in a cell with computes or in the api cell where objects.ComputeNodeList.get_all() will return an empty list so this won\u0027t be called.","commit_id":"5c79da90668b3e196bcd7e076787d3f13102820e"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"71210ccd6df3a5b57fa6822ac9177f978430f72c","unresolved":false,"context_lines":[{"line_number":279,"context_line":"                if not service or service[\u0027disabled\u0027]:"},{"line_number":280,"context_line":"                    continue"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"                alive \u003d self.servicegroup_api.service_is_up(service)"},{"line_number":283,"context_line":"                if not alive:"},{"line_number":284,"context_line":"                    continue"},{"line_number":285,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dae33548_1382f2c7","line":282,"in_reply_to":"dae33548_938d63d5","updated":"2016-02-18 17:02:43.000000000","message":"Maybe this is a comment we want with this change...","commit_id":"5c79da90668b3e196bcd7e076787d3f13102820e"}],"nova/tests/unit/cells/test_cells_state_manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ee4abda81d11f791b313b71bf34f4fabf2962f6f","unresolved":false,"context_lines":[{"line_number":259,"context_line":"    def setUp(self):"},{"line_number":260,"context_line":"        super(TestCellsStateManagerNodeDown, self).setUp()"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"        self.stubs.Set(objects.ComputeNodeList, \u0027get_all\u0027,"},{"line_number":263,"context_line":"                       _fake_compute_node_get_all)"},{"line_number":264,"context_line":"        self.stubs.Set(objects.ServiceList, \u0027get_by_binary\u0027,"},{"line_number":265,"context_line":"               _fake_service_get_all_by_binary_nodedown)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dae33548_21843c5c","line":262,"range":{"start_line":262,"start_character":8,"end_line":262,"end_character":22},"updated":"2016-02-17 18:41:52.000000000","message":"Please use mock for new tests. stubs use mox which has race failure issues on python 3.4 so we\u0027re phasing out the usage of stubs.","commit_id":"26c200de9086be7708817bfa816e881a58b84e9b"}]}
