)]}'
{"nova/compute/api.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"a51bc104acbb3bc53defb193b086e7365e7d3f96","unresolved":false,"context_lines":[{"line_number":509,"context_line":"                    availability_zone)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"            system_metadata \u003d {}"},{"line_number":512,"context_line":"            for k in instance_types.system_metadata_instance_type_props:"},{"line_number":513,"context_line":"                system_metadata[\"instance_type_%s\" % k] \u003d instance_type[k]"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"            base_options \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRZk%3D","line":512,"updated":"2013-01-30 19:54:45.000000000","message":"How about a function in nova.compute.instance_types instead?\n\ne.g. instance_type_to_system_metadata","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c954de59bbec6ee0123e9bde0a21b1f8b99d1c76","unresolved":false,"context_lines":[{"line_number":509,"context_line":"                    availability_zone)"},{"line_number":510,"context_line":""},{"line_number":511,"context_line":"            system_metadata \u003d {}"},{"line_number":512,"context_line":"            for k in instance_types.system_metadata_instance_type_props:"},{"line_number":513,"context_line":"                system_metadata[\"instance_type_%s\" % k] \u003d instance_type[k]"},{"line_number":514,"context_line":""},{"line_number":515,"context_line":"            base_options \u003d {"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRSg%3D","line":512,"in_reply_to":"AAAAM3%2F%2FRZk%3D","updated":"2013-01-30 20:22:16.000000000","message":"This was existing code, but yeah, I can replace it with stash as you note later.","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"}],"nova/compute/cells_api.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"a51bc104acbb3bc53defb193b086e7365e7d3f96","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        # specified flavor_id is valid and exists. We\u0027ll need to load"},{"line_number":310,"context_line":"        # it again, but that should be safe."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        old_instance_type \u003d compute_utils.extract_instance_type(instance)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        flavor_id \u003d kwargs.get(\u0027flavor_id\u0027)"},{"line_number":315,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRWw%3D","line":312,"updated":"2013-01-30 19:54:45.000000000","message":"Previously created instances will not have an instance_type stashed in metadata, right?\n\nProbably want to verify that the information exists in the sys meta so we can extract a sane value for the migration record.","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c954de59bbec6ee0123e9bde0a21b1f8b99d1c76","unresolved":false,"context_lines":[{"line_number":309,"context_line":"        # specified flavor_id is valid and exists. We\u0027ll need to load"},{"line_number":310,"context_line":"        # it again, but that should be safe."},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"        old_instance_type \u003d compute_utils.extract_instance_type(instance)"},{"line_number":313,"context_line":""},{"line_number":314,"context_line":"        flavor_id \u003d kwargs.get(\u0027flavor_id\u0027)"},{"line_number":315,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRSc%3D","line":312,"in_reply_to":"AAAAM3%2F%2FRWw%3D","updated":"2013-01-30 20:22:16.000000000","message":"They will. In a patch previous to this set, there\u0027s a migration to ensure that they have this information already in system_metadata.","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"}],"nova/compute/instance_types.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"42fc64c8ace5d1fa7f6ea1802953d8e336524016","unresolved":false,"context_lines":[{"line_number":259,"context_line":"    return metadata"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"def unstash_instance_type_info(metadata, *prefixes):"},{"line_number":263,"context_line":"    \"\"\"Delete instance_type information from instance\u0027s system_metadata"},{"line_number":264,"context_line":"    by prefix.\"\"\""},{"line_number":265,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAM3%2F%2FLb0%3D","line":262,"updated":"2013-02-04 18:39:25.000000000","message":"can we change this to delete instead of unstash? just to make it more clear. Unstash to me means that we\u0027d be popping this out to get it again, where it\u0027s really a destructive delete.","commit_id":"0cea9dc57bce519d7265d886f08b7377c0c7a4e4"}],"nova/compute/utils.py":[{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"a51bc104acbb3bc53defb193b086e7365e7d3f96","unresolved":false,"context_lines":[{"line_number":248,"context_line":"    return usage_info"},{"line_number":249,"context_line":""},{"line_number":250,"context_line":""},{"line_number":251,"context_line":"def extract_instance_type(instance, prefix\u003d\u0027\u0027):"},{"line_number":252,"context_line":"    \"\"\"Create an InstanceType-like object from instance\u0027s system_metadata"},{"line_number":253,"context_line":"    information.\"\"\""},{"line_number":254,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRZU%3D","line":251,"updated":"2013-01-30 19:54:45.000000000","message":"How about moving this to nova.compute.instance_types?\nIt is the opposite of the operation in nova.compute.api where ou convert an instance_type into sys metadata:\n\ne.g. system_metadata_to_instance_type()","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"a51bc104acbb3bc53defb193b086e7365e7d3f96","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        if val is not None:"},{"line_number":257,"context_line":"            return int(val)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    type_map \u003d dict("},{"line_number":260,"context_line":"        map(lambda name: (name, int), [\u0027id\u0027, \u0027memory_mb\u0027, \u0027vcpus\u0027,"},{"line_number":261,"context_line":"                                       \u0027root_gb\u0027, \u0027ephemeral_gb\u0027, \u0027swap\u0027]) +"},{"line_number":262,"context_line":"        [(\u0027rxtx_factor\u0027, float),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRZA%3D","line":259,"updated":"2013-01-30 19:54:45.000000000","message":"Just curious, but will this map get built every time this function is executed, or is the interpreter smart enough to optimize like a compiler?","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c954de59bbec6ee0123e9bde0a21b1f8b99d1c76","unresolved":false,"context_lines":[{"line_number":256,"context_line":"        if val is not None:"},{"line_number":257,"context_line":"            return int(val)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    type_map \u003d dict("},{"line_number":260,"context_line":"        map(lambda name: (name, int), [\u0027id\u0027, \u0027memory_mb\u0027, \u0027vcpus\u0027,"},{"line_number":261,"context_line":"                                       \u0027root_gb\u0027, \u0027ephemeral_gb\u0027, \u0027swap\u0027]) +"},{"line_number":262,"context_line":"        [(\u0027rxtx_factor\u0027, float),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRSE%3D","line":259,"in_reply_to":"AAAAM3%2F%2FRZA%3D","updated":"2013-01-30 20:22:16.000000000","message":"I\u0027m sure it will get rebuilt each time. This is small, so I\u0027m not sure it matters, but I can move it if you think it\u0027s significant.","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"a51bc104acbb3bc53defb193b086e7365e7d3f96","unresolved":false,"context_lines":[{"line_number":257,"context_line":"            return int(val)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    type_map \u003d dict("},{"line_number":260,"context_line":"        map(lambda name: (name, int), [\u0027id\u0027, \u0027memory_mb\u0027, \u0027vcpus\u0027,"},{"line_number":261,"context_line":"                                       \u0027root_gb\u0027, \u0027ephemeral_gb\u0027, \u0027swap\u0027]) +"},{"line_number":262,"context_line":"        [(\u0027rxtx_factor\u0027, float),"},{"line_number":263,"context_line":"         (\u0027vcpu_weight\u0027, int_or_none),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRYw%3D","line":260,"updated":"2013-01-30 19:54:45.000000000","message":"\u0027name\u0027 column is missing.  intentional?\n\nMight be able to DRY this up by condensing with the list of keys in nova.compute.instance_types.","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c954de59bbec6ee0123e9bde0a21b1f8b99d1c76","unresolved":false,"context_lines":[{"line_number":257,"context_line":"            return int(val)"},{"line_number":258,"context_line":""},{"line_number":259,"context_line":"    type_map \u003d dict("},{"line_number":260,"context_line":"        map(lambda name: (name, int), [\u0027id\u0027, \u0027memory_mb\u0027, \u0027vcpus\u0027,"},{"line_number":261,"context_line":"                                       \u0027root_gb\u0027, \u0027ephemeral_gb\u0027, \u0027swap\u0027]) +"},{"line_number":262,"context_line":"        [(\u0027rxtx_factor\u0027, float),"},{"line_number":263,"context_line":"         (\u0027vcpu_weight\u0027, int_or_none),"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRR8%3D","line":260,"in_reply_to":"AAAAM3%2F%2FRYw%3D","updated":"2013-01-30 20:22:16.000000000","message":"Yes, see below where I assume it\u0027s a string if not called out separately.","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"},{"author":{"_account_id":2835,"name":"Brian Elliott","email":"bdelliott@gmail.com","username":"belliott"},"change_message_id":"a51bc104acbb3bc53defb193b086e7365e7d3f96","unresolved":false,"context_lines":[{"line_number":272,"context_line":"    return instance_type"},{"line_number":273,"context_line":""},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"def stash_instance_type_info(metadata, instance_type, prefix\u003d\u0027\u0027):"},{"line_number":276,"context_line":"    \"\"\"Save properties from instance_type into instance\u0027s system_metadata,"},{"line_number":277,"context_line":"    in the format of:"},{"line_number":278,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FRZM%3D","line":275,"updated":"2013-01-30 19:54:45.000000000","message":"Is this the same instance-type-to-system-metadata type operation occurring in the compute api? (DRY)","commit_id":"d584ab3b1d7631ceb2f87f90408de276c382767b"}]}
