)]}'
{"nova/compute/resource_tracker.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        migration.dest_host \u003d self.driver.get_host_ip_addr()"},{"line_number":205,"context_line":"        migration.old_instance_type_id \u003d instance.flavor.id"},{"line_number":206,"context_line":"        migration.new_instance_type_id \u003d instance_type[\u0027id\u0027]"},{"line_number":207,"context_line":"        migration.status \u003d \u0027pre-migrating\u0027"},{"line_number":208,"context_line":"        migration.instance_uuid \u003d instance[\u0027uuid\u0027]"},{"line_number":209,"context_line":"        migration.source_compute \u003d instance[\u0027host\u0027]"},{"line_number":210,"context_line":"        migration.source_node \u003d instance[\u0027node\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_210d3390","line":207,"updated":"2015-06-16 19:02:08.000000000","message":"The three rows below can now use dot-notation.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":886,"context_line":"        \"\"\"Get the instance type from sys metadata if it\u0027s stashed.  If not,"},{"line_number":887,"context_line":"        fall back to fetching it via the object API."},{"line_number":888,"context_line":""},{"line_number":889,"context_line":"        See bug 1164110"},{"line_number":890,"context_line":"        \"\"\""},{"line_number":891,"context_line":"        try:"},{"line_number":892,"context_line":"            flavor \u003d getattr(instance, \u0027%sflavor\u0027 % prefix)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_e1550b50","line":889,"updated":"2015-06-16 19:02:08.000000000","message":"This bug isn\u0027t relevant anymore now that sysmeta no longer stash instance_type info.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":889,"context_line":"        See bug 1164110"},{"line_number":890,"context_line":"        \"\"\""},{"line_number":891,"context_line":"        try:"},{"line_number":892,"context_line":"            flavor \u003d getattr(instance, \u0027%sflavor\u0027 % prefix)"},{"line_number":893,"context_line":"        except KeyError:"},{"line_number":894,"context_line":"            if not instance_type_id:"},{"line_number":895,"context_line":"                instance_type_id \u003d instance.instance_type_id"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_61c81b23","line":892,"updated":"2015-06-16 19:02:08.000000000","message":"I don\u0027t think this can generate a KeyError.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"}],"nova/tests/unit/compute/test_resource_tracker.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"da31de6e41db98da219f4035f96b7ffa2d98e489","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"        self.assertEqual(\u0027fakenode\u0027, instance[\u0027node\u0027])"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"class NoInstanceTypesInSysMetadata(ResizeClaimTestCase):"},{"line_number":1316,"context_line":"    \"\"\"Make sure we handle the case where the following are true:"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"    #) Compute node C gets upgraded to code that looks for instance types in"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_d5147345","side":"PARENT","line":1315,"updated":"2015-06-15 23:27:28.000000000","message":"Is this no longer necessary because as of Kilo we will always have stashed types?","commit_id":"f60eb56f0ac1ab007cfbda65008b7222d382831f"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"90d232e8a0f16f420598bdb1b4d620b2ad35a822","unresolved":false,"context_lines":[{"line_number":1312,"context_line":"        self.assertEqual(\u0027fakenode\u0027, instance[\u0027node\u0027])"},{"line_number":1313,"context_line":""},{"line_number":1314,"context_line":""},{"line_number":1315,"context_line":"class NoInstanceTypesInSysMetadata(ResizeClaimTestCase):"},{"line_number":1316,"context_line":"    \"\"\"Make sure we handle the case where the following are true:"},{"line_number":1317,"context_line":""},{"line_number":1318,"context_line":"    #) Compute node C gets upgraded to code that looks for instance types in"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_d0b00146","side":"PARENT","line":1315,"in_reply_to":"fa32b979_d5147345","updated":"2015-06-15 23:55:40.000000000","message":"Yep (although I disagree with your (and the author of the comment) use of the word \"stashed\" for the new way :))","commit_id":"f60eb56f0ac1ab007cfbda65008b7222d382831f"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":391,"context_line":"            flavor \u003d objects.Flavor(**flavor)"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"        instance_uuid \u003d str(uuid.uuid1())"},{"line_number":394,"context_line":"        instance \u003d objects.Instance(context\u003dself.context, uuid\u003dinstance_uuid,"},{"line_number":395,"context_line":"                                    flavor\u003dflavor)"},{"line_number":396,"context_line":"        instance.update({"},{"line_number":397,"context_line":"            \u0027vm_state\u0027: vm_states.RESIZED,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_81999f21","line":394,"updated":"2015-06-16 19:02:08.000000000","message":"Flavor is set here and again below.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":446,"context_line":"            \u0027created_at\u0027: None,"},{"line_number":447,"context_line":"            \u0027image_ref\u0027: None,"},{"line_number":448,"context_line":"            \u0027root_device_name\u0027: None,"},{"line_number":449,"context_line":"            \u0027flavor\u0027: flavor,"},{"line_number":450,"context_line":"        })"},{"line_number":451,"context_line":""},{"line_number":452,"context_line":"        if stash:"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_a194e3e1","line":449,"updated":"2015-06-16 19:02:08.000000000","message":"Either remove this, or the above.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"}],"nova/tests/unit/compute/test_tracker.py":[{"author":{"_account_id":8768,"name":"Chris Friesen","email":"chris.friesen@windriver.com","username":"cbf123"},"change_message_id":"da31de6e41db98da219f4035f96b7ffa2d98e489","unresolved":false,"context_lines":[{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"_INSTANCE_TYPE_OBJ_FIXTURES \u003d {"},{"line_number":120,"context_line":"    1: objects.Flavor(id\u003d1, flavorid\u003d\u0027fakeid-1\u0027, name\u003d\u0027fake1.small\u0027,"},{"line_number":121,"context_line":"                      memory_mb\u003d128, vcpus\u003d1, root_gb\u003d1,"},{"line_number":122,"context_line":"                      ephemeral_gb\u003d0, swap\u003d0, rxtx_factor\u003d0,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_75780790","line":119,"updated":"2015-06-15 23:27:28.000000000","message":"Would it make more sense to generate these programatically from _INSTANCE_TYPE_FIXTURES rather than doing copy/paste?","commit_id":"d7fb923c3fe25bdb8d4c49bc0ffe310bbedeeb64"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"90d232e8a0f16f420598bdb1b4d620b2ad35a822","unresolved":false,"context_lines":[{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"_INSTANCE_TYPE_OBJ_FIXTURES \u003d {"},{"line_number":120,"context_line":"    1: objects.Flavor(id\u003d1, flavorid\u003d\u0027fakeid-1\u0027, name\u003d\u0027fake1.small\u0027,"},{"line_number":121,"context_line":"                      memory_mb\u003d128, vcpus\u003d1, root_gb\u003d1,"},{"line_number":122,"context_line":"                      ephemeral_gb\u003d0, swap\u003d0, rxtx_factor\u003d0,"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa32b979_b08c5d80","line":119,"in_reply_to":"fa32b979_75780790","updated":"2015-06-15 23:55:40.000000000","message":"If we were going to keep the above, then yeah, but I want this one to live and the other one to die. It\u0027s just going to be several patches down the road :)","commit_id":"d7fb923c3fe25bdb8d4c49bc0ffe310bbedeeb64"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":116,"context_line":"}"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"_INSTANCE_TYPE_OBJ_FIXTURES \u003d {"},{"line_number":120,"context_line":"    1: objects.Flavor(id\u003d1, flavorid\u003d\u0027fakeid-1\u0027, name\u003d\u0027fake1.small\u0027,"},{"line_number":121,"context_line":"                      memory_mb\u003d128, vcpus\u003d1, root_gb\u003d1,"},{"line_number":122,"context_line":"                      ephemeral_gb\u003d0, swap\u003d0, rxtx_factor\u003d0,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_a159435c","line":119,"updated":"2015-06-16 19:02:08.000000000","message":"Not that important, but how about naming this _FLAVOR_FIXTURES instead?","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"# A collection of system_metadata attributes that would exist in instances"},{"line_number":132,"context_line":"# that have the instance type ID matching the dictionary key."},{"line_number":133,"context_line":"_INSTANCE_TYPE_SYS_META \u003d {"},{"line_number":134,"context_line":"    1: flavors.save_flavor_info({}, _INSTANCE_TYPE_FIXTURES[1]),"},{"line_number":135,"context_line":"    2: flavors.save_flavor_info({}, _INSTANCE_TYPE_FIXTURES[2]),"},{"line_number":136,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_41bab76f","line":133,"updated":"2015-06-16 19:02:08.000000000","message":"No need for sysmeta in tests anymore, can be removed.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":136,"context_line":"}"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"_MIGRATION_SYS_META \u003d flavors.save_flavor_info("},{"line_number":140,"context_line":"        {}, _INSTANCE_TYPE_FIXTURES[1], \u0027old_\u0027)"},{"line_number":141,"context_line":"_MIGRATION_SYS_META \u003d flavors.save_flavor_info("},{"line_number":142,"context_line":"        _MIGRATION_SYS_META, _INSTANCE_TYPE_FIXTURES[2], \u0027new_\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_c1a6c752","line":139,"updated":"2015-06-16 19:02:08.000000000","message":"Same here, this one is not even used anymore.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":193,"context_line":"        project_id\u003d\u0027fake-project\u0027,  # Used by the stats collector."},{"line_number":194,"context_line":"        flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],"},{"line_number":195,"context_line":"        old_flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],"},{"line_number":196,"context_line":"        new_flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],"},{"line_number":197,"context_line":"    ),"},{"line_number":198,"context_line":"    objects.Instance("},{"line_number":199,"context_line":"        id\u003d2,"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_64ea6911","line":196,"updated":"2015-06-16 19:02:08.000000000","message":"These fixtures are for normal build tests, not resizes so maybe better set old/new flavor to None to better match reality.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":211,"context_line":"        task_state\u003dNone,"},{"line_number":212,"context_line":"        os_type\u003d\u0027fake-os\u0027,"},{"line_number":213,"context_line":"        project_id\u003d\u0027fake-project-2\u0027,"},{"line_number":214,"context_line":"        flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],"},{"line_number":215,"context_line":"        old_flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],"},{"line_number":216,"context_line":"        new_flavor \u003d _INSTANCE_TYPE_OBJ_FIXTURES[1],"},{"line_number":217,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_4472c5ae","line":214,"updated":"2015-06-16 19:02:08.000000000","message":"Not sure it matters, but shouldn\u0027t the flavor match the individual resource values above. In that case this should be _INSTANCE_TYPE_OBJ_FIXTURES[2].","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        system_metadata\u003d{},"},{"line_number":298,"context_line":"        os_type\u003d\u0027fake-os\u0027,"},{"line_number":299,"context_line":"        project_id\u003d\u0027fake-project\u0027,"},{"line_number":300,"context_line":"        flavor\u003d_INSTANCE_TYPE_OBJ_FIXTURES[1],"},{"line_number":301,"context_line":"        old_flavor\u003d_INSTANCE_TYPE_OBJ_FIXTURES[1],"},{"line_number":302,"context_line":"        new_flavor\u003d_INSTANCE_TYPE_OBJ_FIXTURES[2],"},{"line_number":303,"context_line":"    ),"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_843bed9b","line":300,"updated":"2015-06-16 19:02:08.000000000","message":"Same here on matching flavor to instance resource values.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"78bdc12bbdf1ca204fa7bae0f494aaa125fb1dcb","unresolved":false,"context_lines":[{"line_number":1170,"context_line":"        self.rt.compute_node \u003d copy.deepcopy(_COMPUTE_NODE_FIXTURES[0])"},{"line_number":1171,"context_line":""},{"line_number":1172,"context_line":"        self.instance \u003d _INSTANCE_FIXTURES[0].obj_clone()"},{"line_number":1173,"context_line":"        self.instance.system_metadata \u003d _INSTANCE_TYPE_SYS_META[1]"},{"line_number":1174,"context_line":"        self.flavor \u003d _INSTANCE_TYPE_FIXTURES[1]"},{"line_number":1175,"context_line":"        self.limits \u003d {}"},{"line_number":1176,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"fa32b979_0174afcc","line":1173,"updated":"2015-06-16 19:02:08.000000000","message":"No need to set sysmeta anymore.","commit_id":"5420317f361506a89e5cebf02101453c4e5ca46e"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"40f83f573dfd05152f4993be454a713518600e6b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                      memory_mb\u003d256, vcpus\u003d2, root_gb\u003d5,"},{"line_number":125,"context_line":"                      ephemeral_gb\u003d0, swap\u003d0, rxtx_factor\u003d0,"},{"line_number":126,"context_line":"                      vcpu_weight\u003d1, extra_specs\u003d{}),"},{"line_number":127,"context_line":"}"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":""},{"line_number":130,"context_line":"_2MB \u003d 2 * units.Mi / units.Ki"}],"source_content_type":"text/x-python","patch_set":5,"id":"fa32b979_79ca3251","line":127,"updated":"2015-06-22 20:03:17.000000000","message":"\\o/","commit_id":"d055f3bda5fbb28cae461faa9d6f01403fb4bd39"}]}
