)]}'
{"nova/conductor/manager.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d4f98c61d2ee3c54eabefda0d301087c31e3b60a","unresolved":false,"context_lines":[{"line_number":667,"context_line":"                        # old. We need to mock that the old way"},{"line_number":668,"context_line":"                        filter_properties \u003d {}"},{"line_number":669,"context_line":"                        request_spec \u003d scheduler_utils.build_request_spec("},{"line_number":670,"context_line":"                            context, image, [instance])"},{"line_number":671,"context_line":"                    else:"},{"line_number":672,"context_line":"                        # NOTE(sbauza): Force_hosts/nodes needs to be reset"},{"line_number":673,"context_line":"                        # if we want to make sure that the next destination"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_60b36bea","line":670,"range":{"start_line":670,"start_character":37,"end_line":670,"end_character":42},"updated":"2017-10-26 22:04:19.000000000","message":"This is also likely wrong because this can be None based on the logic above.","commit_id":"d2690d6b038e200efed05bf7773898a0a8bb01d7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cdfbde23f3ff416134735bc399077103f8b59cbb","unresolved":false,"context_lines":[{"line_number":667,"context_line":"                        # old. We need to mock that the old way"},{"line_number":668,"context_line":"                        filter_properties \u003d {}"},{"line_number":669,"context_line":"                        request_spec \u003d scheduler_utils.build_request_spec("},{"line_number":670,"context_line":"                            context, image, [instance])"},{"line_number":671,"context_line":"                    else:"},{"line_number":672,"context_line":"                        # NOTE(sbauza): Force_hosts/nodes needs to be reset"},{"line_number":673,"context_line":"                        # if we want to make sure that the next destination"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_c197ba44","line":670,"range":{"start_line":670,"start_character":37,"end_line":670,"end_character":42},"in_reply_to":"3f4b6375_60b36bea","updated":"2017-10-27 07:51:46.000000000","message":"Yup, there could be some chances and we need to fix that too, I agree.","commit_id":"d2690d6b038e200efed05bf7773898a0a8bb01d7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"9730a34cc467aa4581c2d9d49be9530ed748b505","unresolved":false,"context_lines":[{"line_number":667,"context_line":"                        # old. We need to mock that the old way"},{"line_number":668,"context_line":"                        filter_properties \u003d {}"},{"line_number":669,"context_line":"                        request_spec \u003d scheduler_utils.build_request_spec("},{"line_number":670,"context_line":"                            context, image, [instance])"},{"line_number":671,"context_line":"                    else:"},{"line_number":672,"context_line":"                        # NOTE(sbauza): Force_hosts/nodes needs to be reset"},{"line_number":673,"context_line":"                        # if we want to make sure that the next destination"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_a8413aa8","line":670,"range":{"start_line":670,"start_character":37,"end_line":670,"end_character":42},"in_reply_to":"3f4b6375_c197ba44","updated":"2017-10-27 13:31:59.000000000","message":"I might do this one in a separate patch.","commit_id":"d2690d6b038e200efed05bf7773898a0a8bb01d7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cdfbde23f3ff416134735bc399077103f8b59cbb","unresolved":false,"context_lines":[{"line_number":821,"context_line":"                # host\u003dNone in this case but sets up the"},{"line_number":822,"context_line":"                # RequestSpec.requested_destination field for the specified"},{"line_number":823,"context_line":"                # host."},{"line_number":824,"context_line":"                if not request_spec:"},{"line_number":825,"context_line":"                    # NOTE(sbauza): We were unable to find an original"},{"line_number":826,"context_line":"                    # RequestSpec object - probably because the instance is old"},{"line_number":827,"context_line":"                    # We need to mock that the old way"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_2197ae4a","line":824,"updated":"2017-10-27 07:51:46.000000000","message":"Like I said in Launchpad, that conditional makes the probability to enter that section of code very minimal : since we asked operators to create ReqSpec records for all their instances in the Mitaka timeframe (even for older ones), only a very specific cellsV1 condition or a bad behaviour could lead into that.\n\nI\u0027m fine with leaving that conditional until we are all clear that we can remove it (like by asking cellsv1 operators to verify that all their instances are matching a ReqSpec) but I just feel it\u0027s a very small impact.","commit_id":"d2690d6b038e200efed05bf7773898a0a8bb01d7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d187d40a916a9e220a364f89a4a30eb2b70806ee","unresolved":false,"context_lines":[{"line_number":821,"context_line":"                # host\u003dNone in this case but sets up the"},{"line_number":822,"context_line":"                # RequestSpec.requested_destination field for the specified"},{"line_number":823,"context_line":"                # host."},{"line_number":824,"context_line":"                if not request_spec:"},{"line_number":825,"context_line":"                    # NOTE(sbauza): We were unable to find an original"},{"line_number":826,"context_line":"                    # RequestSpec object - probably because the instance is old"},{"line_number":827,"context_line":"                    # We need to mock that the old way"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_e8c85255","line":824,"in_reply_to":"3f4b6375_2197ae4a","updated":"2017-10-27 13:30:17.000000000","message":"I plan on removing the online data migrations for creating the reqspec along with these conditionals later, but this is a backport worthy fix, so I don\u0027t plan on doing that before fixing the bug.","commit_id":"d2690d6b038e200efed05bf7773898a0a8bb01d7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"cdfbde23f3ff416134735bc399077103f8b59cbb","unresolved":false,"context_lines":[{"line_number":828,"context_line":"                    filter_properties \u003d {\u0027ignore_hosts\u0027: [instance.host]}"},{"line_number":829,"context_line":"                    # build_request_spec expects a primitive image dict"},{"line_number":830,"context_line":"                    image_meta \u003d nova_object.obj_to_primitive("},{"line_number":831,"context_line":"                        instance.image_meta)"},{"line_number":832,"context_line":"                    request_spec \u003d scheduler_utils.build_request_spec("},{"line_number":833,"context_line":"                            context, image_meta, [instance])"},{"line_number":834,"context_line":"                    request_spec \u003d objects.RequestSpec.from_primitives("}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_41de2a3e","line":831,"updated":"2017-10-27 07:51:46.000000000","message":"Like I said in Launchpad, there are two cases :\n- either we are evacuating (and then image_ref is None) so I agree, we need to pull the image from the instance\n- or we\u0027re rebuilding with a new image, and AFAICU we need to verify the resources available for that new image, not the old one, right?","commit_id":"d2690d6b038e200efed05bf7773898a0a8bb01d7"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"fa4b1d2a3799154ef4bcebac9d5acd5c143d70a9","unresolved":false,"context_lines":[{"line_number":828,"context_line":"                    filter_properties \u003d {\u0027ignore_hosts\u0027: [instance.host]}"},{"line_number":829,"context_line":"                    # build_request_spec expects a primitive image dict"},{"line_number":830,"context_line":"                    image_meta \u003d nova_object.obj_to_primitive("},{"line_number":831,"context_line":"                        instance.image_meta)"},{"line_number":832,"context_line":"                    request_spec \u003d scheduler_utils.build_request_spec("},{"line_number":833,"context_line":"                            context, image_meta, [instance])"},{"line_number":834,"context_line":"                    request_spec \u003d objects.RequestSpec.from_primitives("}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_636575e1","line":831,"in_reply_to":"3f4b6375_08d3ae05","updated":"2017-10-30 15:22:19.000000000","message":"Oh, you\u0027re right. My bad.","commit_id":"d2690d6b038e200efed05bf7773898a0a8bb01d7"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d187d40a916a9e220a364f89a4a30eb2b70806ee","unresolved":false,"context_lines":[{"line_number":828,"context_line":"                    filter_properties \u003d {\u0027ignore_hosts\u0027: [instance.host]}"},{"line_number":829,"context_line":"                    # build_request_spec expects a primitive image dict"},{"line_number":830,"context_line":"                    image_meta \u003d nova_object.obj_to_primitive("},{"line_number":831,"context_line":"                        instance.image_meta)"},{"line_number":832,"context_line":"                    request_spec \u003d scheduler_utils.build_request_spec("},{"line_number":833,"context_line":"                            context, image_meta, [instance])"},{"line_number":834,"context_line":"                    request_spec \u003d objects.RequestSpec.from_primitives("}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_08d3ae05","line":831,"in_reply_to":"3f4b6375_41de2a3e","updated":"2017-10-27 13:30:17.000000000","message":"If you\u0027re rebuilding, you don\u0027t get to this block of code because the API passes a host parameter in using instance.host, so L809 is True and we bypass the scheduler altogether - which is actually another latent bug we\u0027ve never fixed for rebuild with a new image.","commit_id":"d2690d6b038e200efed05bf7773898a0a8bb01d7"}]}
