)]}'
{"nova/compute/resource_tracker.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"7525aa3b564b1424e31c83db89e84debe1416ed4","unresolved":false,"context_lines":[{"line_number":1132,"context_line":"        # Some drivers (ironic) still need the allocations to be"},{"line_number":1133,"context_line":"        # fixed up, as they transition the way their inventory is reported."},{"line_number":1134,"context_line":"        require_allocation_refresh \u003d has_ocata_computes or \\"},{"line_number":1135,"context_line":"                self.driver.requires_allocation_refresh"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        for instance in instances:"},{"line_number":1138,"context_line":"            if instance.vm_state not in vm_states.ALLOW_RESOURCE_REMOVAL:"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_b961793c","line":1135,"updated":"2017-10-18 16:11:34.000000000","message":"I know I need a unit test for this... just not done that bit yet.","commit_id":"51cb9da07370db8e427acfc3e60255ac27950982"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7744d34d55be814a0b3cc349a869c7ea5a03f6c0","unresolved":false,"context_lines":[{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":"        # Some drivers (ironic) still need the allocations to be"},{"line_number":1133,"context_line":"        # fixed up, as they transition the way their inventory is reported."},{"line_number":1134,"context_line":"        require_allocation_refresh \u003d has_ocata_computes or \\"},{"line_number":1135,"context_line":"                self.driver.requires_allocation_refresh"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        for instance in instances:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_8b8e5f2c","line":1134,"range":{"start_line":1134,"start_character":59,"end_line":1134,"end_character":60},"updated":"2017-10-18 19:58:57.000000000","message":"Since when are we using backslashes outside of db api? :)","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"08344b01c6134f1bf75978b2cc9ba0d8039e664b","unresolved":false,"context_lines":[{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":"        # Some drivers (ironic) still need the allocations to be"},{"line_number":1133,"context_line":"        # fixed up, as they transition the way their inventory is reported."},{"line_number":1134,"context_line":"        require_allocation_refresh \u003d has_ocata_computes or \\"},{"line_number":1135,"context_line":"                self.driver.requires_allocation_refresh"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        for instance in instances:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_abdc7b18","line":1134,"range":{"start_line":1134,"start_character":59,"end_line":1134,"end_character":60},"in_reply_to":"3f4b6375_8b8e5f2c","updated":"2017-10-18 20:01:53.000000000","message":"\u003e Since when are we using backslashes outside of db api? :)\n\nOh I\u0027ve seen you do this....would need to find an example to bust you, but maybe it was in tests.","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b203dffc5c58701de48d8a6201fdbb841978dd3f","unresolved":false,"context_lines":[{"line_number":1131,"context_line":""},{"line_number":1132,"context_line":"        # Some drivers (ironic) still need the allocations to be"},{"line_number":1133,"context_line":"        # fixed up, as they transition the way their inventory is reported."},{"line_number":1134,"context_line":"        require_allocation_refresh \u003d has_ocata_computes or \\"},{"line_number":1135,"context_line":"                self.driver.requires_allocation_refresh"},{"line_number":1136,"context_line":""},{"line_number":1137,"context_line":"        for instance in instances:"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_1762823f","line":1134,"range":{"start_line":1134,"start_character":59,"end_line":1134,"end_character":60},"in_reply_to":"3f4b6375_abdc7b18","updated":"2017-10-19 08:33:34.000000000","message":"I am so old school, it would seem.","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"}],"nova/virt/driver.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f4978944cd5b5b4bf71079d9027a8a8098b6141","unresolved":false,"context_lines":[{"line_number":132,"context_line":"        \"supports_extend_volume\": False,"},{"line_number":133,"context_line":"    }"},{"line_number":134,"context_line":""},{"line_number":135,"context_line":"    requires_allocation_refresh \u003d False"},{"line_number":136,"context_line":""},{"line_number":137,"context_line":"    def __init__(self, virtapi):"},{"line_number":138,"context_line":"        self.virtapi \u003d virtapi"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_d073e24c","line":135,"updated":"2017-10-18 19:13:12.000000000","message":"We should have a NOTE with this to explain it shouldn\u0027t be used generically and it\u0027s only temporary until we remove the ironic flavor migration code.","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"}],"nova/virt/ironic/driver.py":[{"author":{"_account_id":10239,"name":"Dmitry Tantsur","email":"dtantsur@protonmail.com","username":"dtantsur"},"change_message_id":"90df8924d0159443263fba47c5667e5d47e0783b","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                    \"supports_attach_interface\": True"},{"line_number":136,"context_line":"                    }"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    # Needed for exiting instances to have allocations for custom resource"},{"line_number":139,"context_line":"    # class resources"},{"line_number":140,"context_line":"    requires_allocation_refresh \u003d True"},{"line_number":141,"context_line":""},{"line_number":142,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_796c2108","line":139,"range":{"start_line":138,"start_character":0,"end_line":139,"end_character":21},"updated":"2017-10-18 16:18:32.000000000","message":"should we leave a TODO to remove it eventually?","commit_id":"51cb9da07370db8e427acfc3e60255ac27950982"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"7f4978944cd5b5b4bf71079d9027a8a8098b6141","unresolved":false,"context_lines":[{"line_number":135,"context_line":"                    \"supports_attach_interface\": True"},{"line_number":136,"context_line":"                    }"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    # Needed for exiting instances to have allocations for custom resource"},{"line_number":139,"context_line":"    # class resources"},{"line_number":140,"context_line":"    # TODO(johngarbutt) we should remove this once the resource class"},{"line_number":141,"context_line":"    # migration has been completed."}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_7098ae69","line":138,"range":{"start_line":138,"start_character":17,"end_line":138,"end_character":24},"updated":"2017-10-18 19:13:12.000000000","message":"existing","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7744d34d55be814a0b3cc349a869c7ea5a03f6c0","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    # TODO(johngarbutt) we should remove this once the resource class"},{"line_number":141,"context_line":"    # migration has been completed."},{"line_number":142,"context_line":"    requires_allocation_refresh \u003d True"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"},{"line_number":145,"context_line":"        super(IronicDriver, self).__init__(virtapi)"},{"line_number":146,"context_line":"        global ironic"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_cb73374d","line":143,"updated":"2017-10-18 19:58:57.000000000","message":"So this means that we\u0027ll always refresh/stomp on the scheduler for ironic in pike (and queens maybe)? That seems like a bad plan. Granted we don\u0027t have moves, but I was really hoping that we\u0027d make this dynamic and have the ironic driver calculate whether anything had changed. Is that too complicated?","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c1030d9096774d2add4858523c9025bfa9031cf2","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    # TODO(johngarbutt) we should remove this once the resource class"},{"line_number":141,"context_line":"    # migration has been completed."},{"line_number":142,"context_line":"    requires_allocation_refresh \u003d True"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"},{"line_number":145,"context_line":"        super(IronicDriver, self).__init__(virtapi)"},{"line_number":146,"context_line":"        global ironic"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_8b1e5f6e","line":143,"in_reply_to":"3f4b6375_0b24af0c","updated":"2017-10-18 20:15:53.000000000","message":"I was just thinking we set this to False when we make it through a full pass of the in-driver healer thing once we\u0027re convinced things are good. But, I\u0027ll just keep quiet.","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"2e43b721d6520f12498dc261e72fcc17878b9c72","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    # TODO(johngarbutt) we should remove this once the resource class"},{"line_number":141,"context_line":"    # migration has been completed."},{"line_number":142,"context_line":"    requires_allocation_refresh \u003d True"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"},{"line_number":145,"context_line":"        super(IronicDriver, self).__init__(virtapi)"},{"line_number":146,"context_line":"        global ironic"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_79940445","line":143,"in_reply_to":"3f4b6375_1dfd123a","updated":"2017-10-19 14:06:52.000000000","message":"Yep, and so we\u0027d set it True when that happened and then back to false later.\n\nAnyway, it\u0027s over.","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"ebdc66da0ead772c4fe9c318c73ee5dddc6ab9a2","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    # TODO(johngarbutt) we should remove this once the resource class"},{"line_number":141,"context_line":"    # migration has been completed."},{"line_number":142,"context_line":"    requires_allocation_refresh \u003d True"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"},{"line_number":145,"context_line":"        super(IronicDriver, self).__init__(virtapi)"},{"line_number":146,"context_line":"        global ironic"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_1dfd123a","line":143,"in_reply_to":"3f4b6375_8b1e5f6e","updated":"2017-10-18 22:30:03.000000000","message":"Couldn\u0027t the hashring change and pull in new instances/nodes that have to have their flavors migrated? I thought that\u0027s why we moved the flavor migration out of init_host and into the refresh_cache stuff?","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"08344b01c6134f1bf75978b2cc9ba0d8039e664b","unresolved":false,"context_lines":[{"line_number":140,"context_line":"    # TODO(johngarbutt) we should remove this once the resource class"},{"line_number":141,"context_line":"    # migration has been completed."},{"line_number":142,"context_line":"    requires_allocation_refresh \u003d True"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse):"},{"line_number":145,"context_line":"        super(IronicDriver, self).__init__(virtapi)"},{"line_number":146,"context_line":"        global ironic"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_0b24af0c","line":143,"in_reply_to":"3f4b6375_cb73374d","updated":"2017-10-18 20:01:53.000000000","message":"\u003e So this means that we\u0027ll always refresh/stomp on the scheduler for\n \u003e ironic in pike (and queens maybe)? That seems like a bad plan.\n \u003e Granted we don\u0027t have moves, but I was really hoping that we\u0027d make\n \u003e this dynamic and have the ironic driver calculate whether anything\n \u003e had changed. Is that too complicated?\n\nI thought this was the simple compromise to just always update allocations for ironic until we remove the flavor migration code. We had talked at length about doing something smarter with a driver callback method from the RT but I thought we eventually settled on this because of the complexity with the callback and managing some kind of state in the driver itself, like my queue/dequeue idea. Maybe you\u0027ve got something simpler in mind.","commit_id":"1b155d8a985dcadf2ae9e265f6f25ef5a8b0c170"}]}
