)]}'
{"nova/tests/functional/test_server_group.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"225f7f59b9a74d48d7538e3df931e342e9e1da7e","unresolved":false,"context_lines":[{"line_number":425,"context_line":"        time.sleep(self._service_down_time)"},{"line_number":426,"context_line":""},{"line_number":427,"context_line":"        # Start additional host to test evacuation"},{"line_number":428,"context_line":"        self.start_service(\u0027compute\u0027, host\u003d\u0027host3\u0027)"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"        post \u003d {\u0027evacuate\u0027: {\u0027onSharedStorage\u0027: False}}"},{"line_number":431,"context_line":"        self.admin_api.post_server_action(servers[1][\u0027id\u0027], post)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_7b7b62bd","line":428,"updated":"2017-06-15 05:13:11.000000000","message":"Here\u0027s another place we probably need fake.set_nodes([\u0027host3\u0027])","commit_id":"c4aca465008c77c21e220b39c08b714c16d1f3e6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4f9dd91a3342ae8096b54dc6e09475e47e6a7a1b","unresolved":false,"context_lines":[{"line_number":616,"context_line":"        time.sleep(self._service_down_time)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"        # Start additional host to test evacuation"},{"line_number":619,"context_line":"        compute3 \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027host3\u0027)"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        post \u003d {\u0027evacuate\u0027: {}}"},{"line_number":622,"context_line":"        self.admin_api.post_server_action(servers[1][\u0027id\u0027], post)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_c3f5eeee","line":619,"updated":"2017-06-15 01:55:35.000000000","message":"Were you maybe seeing errors with this part? Here, you might probably need to add before this line:\n\n fake.set_nodes([\u0027host3\u0027])\n self.addCleanup(fake.restore_nodes)","commit_id":"c4aca465008c77c21e220b39c08b714c16d1f3e6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"83ac8d77bb1c36f521de367ea7ca6c9063042b9b","unresolved":false,"context_lines":[{"line_number":616,"context_line":"        time.sleep(self._service_down_time)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"        # Start additional host to test evacuation"},{"line_number":619,"context_line":"        compute3 \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027host3\u0027)"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        post \u003d {\u0027evacuate\u0027: {}}"},{"line_number":622,"context_line":"        self.admin_api.post_server_action(servers[1][\u0027id\u0027], post)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_9b907eef","line":619,"in_reply_to":"7f231b9d_8926f714","updated":"2017-06-15 05:07:36.000000000","message":"Doing the fake.set_nodes before starting compute3 will make compute3\u0027s virt driver report itself as \u0027host3\u0027 instead of \u0027fake-mini\u0027 (the default).","commit_id":"c4aca465008c77c21e220b39c08b714c16d1f3e6"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"b7e20e97b7ae875e0bb3316f0bffb19c813a4989","unresolved":false,"context_lines":[{"line_number":616,"context_line":"        time.sleep(self._service_down_time)"},{"line_number":617,"context_line":""},{"line_number":618,"context_line":"        # Start additional host to test evacuation"},{"line_number":619,"context_line":"        compute3 \u003d self.start_service(\u0027compute\u0027, host\u003d\u0027host3\u0027)"},{"line_number":620,"context_line":""},{"line_number":621,"context_line":"        post \u003d {\u0027evacuate\u0027: {}}"},{"line_number":622,"context_line":"        self.admin_api.post_server_action(servers[1][\u0027id\u0027], post)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_8926f714","line":619,"in_reply_to":"7f231b9d_c3f5eeee","updated":"2017-06-15 03:48:44.000000000","message":"I\u0027ll try it out, but a lot of this is not making sense to me at the moment. Will need to dig deeper.","commit_id":"c4aca465008c77c21e220b39c08b714c16d1f3e6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"4f9dd91a3342ae8096b54dc6e09475e47e6a7a1b","unresolved":false,"context_lines":[{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def test_boot_servers_with_soft_affinity_no_resource_on_first_host(self):"},{"line_number":723,"context_line":"        fake.set_nodes([\u0027host2\u0027, \u0027host3\u0027])"},{"line_number":724,"context_line":"        self.start_service(\u0027compute\u0027, host\u003d\u0027host3\u0027)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"        created_group \u003d self.api.post_server_groups(self.soft_affinity)"},{"line_number":727,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_c3a72e0b","line":724,"updated":"2017-06-15 01:55:35.000000000","message":"This part isn\u0027t explained in the commit message. Why is it needed? The base class is already setting up two compute services and this part is starting a third compute service representing two nodes.","commit_id":"c4aca465008c77c21e220b39c08b714c16d1f3e6"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"83ac8d77bb1c36f521de367ea7ca6c9063042b9b","unresolved":false,"context_lines":[{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def test_boot_servers_with_soft_affinity_no_resource_on_first_host(self):"},{"line_number":723,"context_line":"        fake.set_nodes([\u0027host2\u0027, \u0027host3\u0027])"},{"line_number":724,"context_line":"        self.start_service(\u0027compute\u0027, host\u003d\u0027host3\u0027)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"        created_group \u003d self.api.post_server_groups(self.soft_affinity)"},{"line_number":727,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_bb021a3c","line":724,"in_reply_to":"7f231b9d_691f1bb7","updated":"2017-06-15 05:07:36.000000000","message":"Yeah, it doesn\u0027t make sense to me why it would help.\n\nIn the setUp() method of the base test class, there are two compute nodes set up, one as \u0027host1\u0027 and one as \u0027host2\u0027. This is setting up a third compute node with \u0027host2\u0027 and \u0027host3\u0027.\n\nThe way it works is each compute service has two pieces that are related to the scheduling: the host and the node. The host is related to the service and the node is the host name reported by the virt driver. The \u0027fake.set_nodes()\u0027 call is faking what the compute service (via the virt driver) will return as its host name before we start it. If there is more than one name in the list, compute will pick the first one [1]. So in this case, compute service \u0027host3\u0027 will return \u0027host2\u0027 from its fake virt driver.\n\nThe scheduler uses the node names from the virt driver for seeing a list of nova-compute candidates. So it\u0027s important when we\u0027re starting multiple fake compute services that we make the node names different so the scheduler will consider more than one nova-compute.\n\nSo here, I don\u0027t see how this helps anything because this makes us have 1) compute with \u0027host1\u0027 2) compute with \u0027host2\u0027 3) another compute with \u0027host2\u0027.\n\n[1] https://github.com/openstack/nova/blob/28769f9/nova/compute/manager.py#L1801","commit_id":"c4aca465008c77c21e220b39c08b714c16d1f3e6"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"2a1e4a2db690c81679ff69cc0cf56d7d0d4ec4c5","unresolved":false,"context_lines":[{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def test_boot_servers_with_soft_affinity_no_resource_on_first_host(self):"},{"line_number":723,"context_line":"        fake.set_nodes([\u0027host2\u0027, \u0027host3\u0027])"},{"line_number":724,"context_line":"        self.start_service(\u0027compute\u0027, host\u003d\u0027host3\u0027)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"        created_group \u003d self.api.post_server_groups(self.soft_affinity)"},{"line_number":727,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_310ce9eb","line":724,"in_reply_to":"7f231b9d_bb021a3c","updated":"2017-06-15 06:55:05.000000000","message":"Thanks - this helped a lot. \n\nI still think that there may be something else going on here causing issues, but hopefully new patch based on your feedback will resolve most issues.","commit_id":"c4aca465008c77c21e220b39c08b714c16d1f3e6"},{"author":{"_account_id":22623,"name":"Erik Olof Gunnar Andersson","email":"eandersson@blizzard.com","username":"eoandersson"},"change_message_id":"b7e20e97b7ae875e0bb3316f0bffb19c813a4989","unresolved":false,"context_lines":[{"line_number":721,"context_line":""},{"line_number":722,"context_line":"    def test_boot_servers_with_soft_affinity_no_resource_on_first_host(self):"},{"line_number":723,"context_line":"        fake.set_nodes([\u0027host2\u0027, \u0027host3\u0027])"},{"line_number":724,"context_line":"        self.start_service(\u0027compute\u0027, host\u003d\u0027host3\u0027)"},{"line_number":725,"context_line":""},{"line_number":726,"context_line":"        created_group \u003d self.api.post_server_groups(self.soft_affinity)"},{"line_number":727,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7f231b9d_691f1bb7","line":724,"in_reply_to":"7f231b9d_c3a72e0b","updated":"2017-06-15 03:48:44.000000000","message":"I am trying to understand exactly how these work, but I wasn\u0027t able to get this part passing a 100% without this.","commit_id":"c4aca465008c77c21e220b39c08b714c16d1f3e6"}]}
