)]}'
{"nova/objects/instance.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"edd41f623612a7fd020eebb645164a0cb5de0ba8","unresolved":false,"context_lines":[{"line_number":409,"context_line":"                                              \u0027old_flavor\u0027,"},{"line_number":410,"context_line":"                                              \u0027new_flavor\u0027)]):"},{"line_number":411,"context_line":"            if have_extra and db_inst[\u0027extra\u0027][\u0027flavor\u0027]:"},{"line_number":412,"context_line":"                instance._flavor_from_db(db_inst[\u0027extra\u0027][\u0027flavor\u0027])"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        # TODO(danms): If we are updating these on a backlevel instance,"},{"line_number":415,"context_line":"        # we\u0027ll end up sending back new versions of these objects (see"}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_c4c96fae","line":412,"updated":"2015-08-03 15:44:05.000000000","message":"I am wondering if we have this covered?","commit_id":"c5dba90b72a0c3600d7a9066573db502766c5022"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"cb26cb5c30c7650f02f8c98b8cfe8f6d9bec7a91","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        if any([x in expected_attrs for x in (\u0027flavor\u0027,"},{"line_number":409,"context_line":"                                              \u0027old_flavor\u0027,"},{"line_number":410,"context_line":"                                              \u0027new_flavor\u0027)]):"},{"line_number":411,"context_line":"            if have_extra and db_inst[\u0027extra\u0027][\u0027flavor\u0027]:"},{"line_number":412,"context_line":"                instance._flavor_from_db(db_inst[\u0027extra\u0027][\u0027flavor\u0027])"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        # TODO(danms): If we are updating these on a backlevel instance,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_2417f3a4","line":411,"updated":"2015-08-03 15:58:49.000000000","message":"db_inst[\u0027extra\u0027].get(\u0027flavor\u0027) would be safer here, and everything above follows that pattern.","commit_id":"db848ef7e05f9dab6c23d28296b9ae784d705d58"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"208b75483ddca93a2734f65d168913421fef1468","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        if any([x in expected_attrs for x in (\u0027flavor\u0027,"},{"line_number":409,"context_line":"                                              \u0027old_flavor\u0027,"},{"line_number":410,"context_line":"                                              \u0027new_flavor\u0027)]):"},{"line_number":411,"context_line":"            if have_extra and db_inst[\u0027extra\u0027][\u0027flavor\u0027]:"},{"line_number":412,"context_line":"                instance._flavor_from_db(db_inst[\u0027extra\u0027][\u0027flavor\u0027])"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        # TODO(danms): If we are updating these on a backlevel instance,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_da5b842d","line":411,"in_reply_to":"1a4dcd0f_2417f3a4","updated":"2015-08-03 16:19:35.000000000","message":"Okay. Someday I\u0027d like to get us away from allowing them to specify an expected thing, and us ignore that if it\u0027s not in the DB object for some reason. I kinda think that if they \"expect\" a thing, we should return an object with that thing, or fail. Most of the other cases we have here are for somewhat legacy reasons, like the implied loaded things from db_api, etc. However, I agree consistency is good and the rest of the instance_extra bits are that way so I\u0027ll change it.","commit_id":"db848ef7e05f9dab6c23d28296b9ae784d705d58"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"28d4fbebd91e63b2022432a8aebbe0df187023f8","unresolved":false,"context_lines":[{"line_number":408,"context_line":"        if any([x in expected_attrs for x in (\u0027flavor\u0027,"},{"line_number":409,"context_line":"                                              \u0027old_flavor\u0027,"},{"line_number":410,"context_line":"                                              \u0027new_flavor\u0027)]):"},{"line_number":411,"context_line":"            if have_extra and db_inst[\u0027extra\u0027][\u0027flavor\u0027]:"},{"line_number":412,"context_line":"                instance._flavor_from_db(db_inst[\u0027extra\u0027][\u0027flavor\u0027])"},{"line_number":413,"context_line":""},{"line_number":414,"context_line":"        # TODO(danms): If we are updating these on a backlevel instance,"}],"source_content_type":"text/x-python","patch_set":9,"id":"1a4dcd0f_589f7c5f","line":411,"in_reply_to":"1a4dcd0f_da5b842d","updated":"2015-08-03 17:06:39.000000000","message":"Yeah.  I agree that a failure here would be reasonable.  I would be fine going that way as well, if the error was logged and we bailed properly.","commit_id":"db848ef7e05f9dab6c23d28296b9ae784d705d58"},{"author":{"_account_id":5754,"name":"Alex Xu","email":"hejie.xu@intel.com","username":"xuhj"},"change_message_id":"dcbba9c9de5112329e630b0b158bb59ddfe68c0b","unresolved":false,"context_lines":[{"line_number":86,"context_line":"             for flavor in [\u0027flavor\u0027, \u0027old_flavor\u0027, \u0027new_flavor\u0027]]) and"},{"line_number":87,"context_line":"            \u0027system_metadata\u0027 not in simple_cols):"},{"line_number":88,"context_line":"        # NOTE(danms): While we\u0027re maintaining compatibility with"},{"line_number":89,"context_line":"        # flavor data being stored in system_metadata, we need to"},{"line_number":90,"context_line":"        # ask for it any time flavors are requested."},{"line_number":91,"context_line":"        simple_cols.append(\u0027system_metadata\u0027)"},{"line_number":92,"context_line":"        expected_attrs.append(\u0027system_metadata\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_d4aa5e19","line":89,"updated":"2015-08-04 07:48:42.000000000","message":"this can be delete?","commit_id":"8a5c668dd6c02bdf4157a79a18c22e5ad2648fa1"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"1eaee2587e1c70aeccffaa3b049155e204d334d4","unresolved":false,"context_lines":[{"line_number":86,"context_line":"             for flavor in [\u0027flavor\u0027, \u0027old_flavor\u0027, \u0027new_flavor\u0027]]) and"},{"line_number":87,"context_line":"            \u0027system_metadata\u0027 not in simple_cols):"},{"line_number":88,"context_line":"        # NOTE(danms): While we\u0027re maintaining compatibility with"},{"line_number":89,"context_line":"        # flavor data being stored in system_metadata, we need to"},{"line_number":90,"context_line":"        # ask for it any time flavors are requested."},{"line_number":91,"context_line":"        simple_cols.append(\u0027system_metadata\u0027)"},{"line_number":92,"context_line":"        expected_attrs.append(\u0027system_metadata\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_627850f3","line":89,"in_reply_to":"1a4dcd0f_615e29eb","updated":"2015-08-04 14:56:15.000000000","message":"I\u0027m specifically saving this for a separate patch. The reason is that a lot of tests mock out the DB layer, and thus prescribe what the columns_to_join value will be. Since this is not *required* to drop the flavor compat, but only to optimize not loading things we don\u0027t need, I was trying to keep that separate from this change. This change is the big one, and the implications are large. The following one to drop the column joining behavior is mostly just about patching up tests.","commit_id":"8a5c668dd6c02bdf4157a79a18c22e5ad2648fa1"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"e1bab9fddae2006b27ca602504fb5d12134c2c6e","unresolved":false,"context_lines":[{"line_number":86,"context_line":"             for flavor in [\u0027flavor\u0027, \u0027old_flavor\u0027, \u0027new_flavor\u0027]]) and"},{"line_number":87,"context_line":"            \u0027system_metadata\u0027 not in simple_cols):"},{"line_number":88,"context_line":"        # NOTE(danms): While we\u0027re maintaining compatibility with"},{"line_number":89,"context_line":"        # flavor data being stored in system_metadata, we need to"},{"line_number":90,"context_line":"        # ask for it any time flavors are requested."},{"line_number":91,"context_line":"        simple_cols.append(\u0027system_metadata\u0027)"},{"line_number":92,"context_line":"        expected_attrs.append(\u0027system_metadata\u0027)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a4dcd0f_615e29eb","line":89,"in_reply_to":"1a4dcd0f_d4aa5e19","updated":"2015-08-04 08:56:26.000000000","message":"good catch","commit_id":"8a5c668dd6c02bdf4157a79a18c22e5ad2648fa1"}],"nova/tests/unit/objects/test_instance.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"a8e897994229b45ad24fd32fdaec1664c131190c","unresolved":false,"context_lines":[{"line_number":167,"context_line":"            self.context, \u0027uuid\u0027,"},{"line_number":168,"context_line":"            expected_attrs\u003dinstance.INSTANCE_OPTIONAL_ATTRS)"},{"line_number":169,"context_line":"        for attr in instance.INSTANCE_OPTIONAL_ATTRS:"},{"line_number":170,"context_line":"            if \u0027flavor\u0027 in attr:"},{"line_number":171,"context_line":"                # FIXME(danms): This isn\u0027t implemented yet, but is handled"},{"line_number":172,"context_line":"                # in the lazy-load code, so code can act like it is (although"},{"line_number":173,"context_line":"                # this test is being pedantic)."}],"source_content_type":"text/x-python","patch_set":8,"id":"1a4dcd0f_043757b1","line":170,"updated":"2015-08-03 15:46:15.000000000","message":"hmm, maybe here.","commit_id":"c5dba90b72a0c3600d7a9066573db502766c5022"}]}
