)]}'
{"nova/compute/manager.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"1d9614c6c16a4959c80eb55937314330975cd4e1","unresolved":false,"context_lines":[{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        return network_info"},{"line_number":1302,"context_line":""},{"line_number":1303,"context_line":"    def _allocate_network(self, context, instance, requested_networks, macs,"},{"line_number":1304,"context_line":"                          security_groups, dhcp_options):"},{"line_number":1305,"context_line":"        \"\"\"Start network allocation asynchronously.  Return an instance"},{"line_number":1306,"context_line":"        of NetworkInfoAsyncWrapper that can be used to retrieve the"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9RaA%3D","line":1303,"updated":"2013-12-13 08:46:44.000000000","message":"I think this method needs to be treated as well. It is being called from L1279 above.","commit_id":"e9ed1ab9e4c7fbae75888b7014e10e61451a1bbf"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"9ea8f58355319edc988615d5a1c7778753defd2a","unresolved":false,"context_lines":[{"line_number":1300,"context_line":""},{"line_number":1301,"context_line":"        return network_info"},{"line_number":1302,"context_line":""},{"line_number":1303,"context_line":"    def _allocate_network(self, context, instance, requested_networks, macs,"},{"line_number":1304,"context_line":"                          security_groups, dhcp_options):"},{"line_number":1305,"context_line":"        \"\"\"Start network allocation asynchronously.  Return an instance"},{"line_number":1306,"context_line":"        of NetworkInfoAsyncWrapper that can be used to retrieve the"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9Aaw%3D","line":1303,"in_reply_to":"AAAATn%2F9RaA%3D","updated":"2013-12-17 19:28:45.000000000","message":"This method is also called elsewhere where it is not passed an object.  I would like to convert it when that is no longer the case.","commit_id":"e9ed1ab9e4c7fbae75888b7014e10e61451a1bbf"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"2983d58ad6bdcac5c5568e78a7f3a67689dab14b","unresolved":false,"context_lines":[{"line_number":1570,"context_line":"    @reverts_task_state"},{"line_number":1571,"context_line":"    @wrap_instance_event"},{"line_number":1572,"context_line":"    @wrap_instance_fault"},{"line_number":1573,"context_line":"    def build_and_run_instance(self, context, instance, image, request_spec,"},{"line_number":1574,"context_line":"                     filter_properties, admin_password\u003dNone,"},{"line_number":1575,"context_line":"                     injected_files\u003dNone, requested_networks\u003dNone,"},{"line_number":1576,"context_line":"                     security_groups\u003dNone, block_device_mapping\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F8%2FYs%3D","side":"PARENT","line":1573,"updated":"2013-12-18 00:03:46.000000000","message":"From what I can tell, this path isn\u0027t used yet, is it?","commit_id":"3b9489213798d6a3471fc56a7cbc096730fb03c2"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"85759dcd1e74ab0e91a3caa69385af0172bb0b81","unresolved":false,"context_lines":[{"line_number":1570,"context_line":"    @reverts_task_state"},{"line_number":1571,"context_line":"    @wrap_instance_event"},{"line_number":1572,"context_line":"    @wrap_instance_fault"},{"line_number":1573,"context_line":"    def build_and_run_instance(self, context, instance, image, request_spec,"},{"line_number":1574,"context_line":"                     filter_properties, admin_password\u003dNone,"},{"line_number":1575,"context_line":"                     injected_files\u003dNone, requested_networks\u003dNone,"},{"line_number":1576,"context_line":"                     security_groups\u003dNone, block_device_mapping\u003dNone,"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F88aA%3D","side":"PARENT","line":1573,"in_reply_to":"AAAATn%2F8%2FYs%3D","updated":"2013-12-18 14:46:45.000000000","message":"It\u0027s not.  The last patch in this series switches over to using it.","commit_id":"3b9489213798d6a3471fc56a7cbc096730fb03c2"},{"author":{"_account_id":8430,"name":"Christopher Lefelhocz","email":"christopher.lefelhoc@rackspace.com","username":"leif"},"change_message_id":"e831e93b690dd62858c3a6f226cfb112579ac13b","unresolved":false,"context_lines":[{"line_number":1587,"context_line":"                instance.task_state \u003d None"},{"line_number":1588,"context_line":"                instance.save(expected_task_state\u003d"},{"line_number":1589,"context_line":"                        (task_states.SCHEDULING, None))"},{"line_number":1590,"context_line":"            except exception.InstanceNotFound:"},{"line_number":1591,"context_line":"                msg \u003d _(\u0027Instance disappeared before build.\u0027)"},{"line_number":1592,"context_line":"                LOG.debug(msg, instance\u003dinstance)"},{"line_number":1593,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F88sU%3D","line":1590,"updated":"2013-12-18 13:49:32.000000000","message":"Just to confirm, instance.save can still cause us to get an InstanceNotFound exception?  This almost looks like it would change our error possibilities.  No unit test here to verify one way or the other.","commit_id":"c4ca3b52174d72abbf182017eaf443df68193274"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"85759dcd1e74ab0e91a3caa69385af0172bb0b81","unresolved":false,"context_lines":[{"line_number":1587,"context_line":"                instance.task_state \u003d None"},{"line_number":1588,"context_line":"                instance.save(expected_task_state\u003d"},{"line_number":1589,"context_line":"                        (task_states.SCHEDULING, None))"},{"line_number":1590,"context_line":"            except exception.InstanceNotFound:"},{"line_number":1591,"context_line":"                msg \u003d _(\u0027Instance disappeared before build.\u0027)"},{"line_number":1592,"context_line":"                LOG.debug(msg, instance\u003dinstance)"},{"line_number":1593,"context_line":"                return"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F88X8%3D","line":1590,"in_reply_to":"AAAATn%2F88sU%3D","updated":"2013-12-18 14:46:45.000000000","message":"instance.save and _instance_update both ultimately call db.instance_update_and_get_original which is where InstanceNotFound would be raised from.  So they have largely equivalent behaviour.","commit_id":"c4ca3b52174d72abbf182017eaf443df68193274"}],"nova/conductor/rpcapi.py":[{"author":{"_account_id":6450,"name":"Hans Lindgren","email":"hanlind@kth.se","username":"hanlind"},"change_message_id":"1d9614c6c16a4959c80eb55937314330975cd4e1","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        instances_p \u003d [jsonutils.to_primitive(inst) for inst in instances]"},{"line_number":523,"context_line":"        image_p \u003d jsonutils.to_primitive(image)"},{"line_number":524,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":525,"context_line":"        cctxt.cast(context, \u0027build_instances\u0027,"},{"line_number":526,"context_line":"                   instances\u003dinstances_p, image\u003dimage_p,"},{"line_number":527,"context_line":"                   filter_properties\u003dfilter_properties,"},{"line_number":528,"context_line":"                   admin_password\u003dadmin_password,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9RbM%3D","side":"PARENT","line":525,"updated":"2013-12-13 08:46:44.000000000","message":"right now, this conductor manager method proxies to scheduler manager.run_instance(). I don\u0027t think the scheduler is prepared to handle instance objects just yet.\n\nMaybe just a convert back to instance dict in conductor manager before sending it of to the scheduler is enough.","commit_id":"eb406c78ca4978cd1d32ff66f4782256ef9b8d14"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"9ea8f58355319edc988615d5a1c7778753defd2a","unresolved":false,"context_lines":[{"line_number":522,"context_line":"        instances_p \u003d [jsonutils.to_primitive(inst) for inst in instances]"},{"line_number":523,"context_line":"        image_p \u003d jsonutils.to_primitive(image)"},{"line_number":524,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":525,"context_line":"        cctxt.cast(context, \u0027build_instances\u0027,"},{"line_number":526,"context_line":"                   instances\u003dinstances_p, image\u003dimage_p,"},{"line_number":527,"context_line":"                   filter_properties\u003dfilter_properties,"},{"line_number":528,"context_line":"                   admin_password\u003dadmin_password,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAATn%2F9AZU%3D","side":"PARENT","line":525,"in_reply_to":"AAAATn%2F9RbM%3D","updated":"2013-12-17 19:28:45.000000000","message":"The scheduler isn\u0027t passed an instance directly.  The instances are converted into a list of uuids and stuffed into the request_spec which is what the scheduler uses.  After this blueprint is finished the scheduler shouldn\u0027t even need that.","commit_id":"eb406c78ca4978cd1d32ff66f4782256ef9b8d14"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"5d0982e81a9b70a8c6536c7a4022490ef211995e","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        image_p \u003d jsonutils.to_primitive(image)"},{"line_number":529,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":530,"context_line":"        cctxt.cast(context, \u0027build_instances\u0027,"},{"line_number":531,"context_line":"                   instances\u003dinstances, image\u003dimage_p,"},{"line_number":532,"context_line":"                   filter_properties\u003dfilter_properties,"},{"line_number":533,"context_line":"                   admin_password\u003dadmin_password,"},{"line_number":534,"context_line":"                   injected_files\u003dinjected_files,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8%2F%2Fw%3D","line":531,"updated":"2013-12-17 21:04:40.000000000","message":"Isn\u0027t this a change deserving of an RPCAPI bump? We could send an object to a 1.5 manager expecting dictionaries. We\u0027ve definitely been bumping them for the other calls..","commit_id":"8f6a891119adbf3cdd460667383cff543079e585"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"17607aca003ffe1d10a1879e19f7e95ee98edc65","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        image_p \u003d jsonutils.to_primitive(image)"},{"line_number":529,"context_line":"        cctxt \u003d self.client.prepare(version\u003d\u00271.5\u0027)"},{"line_number":530,"context_line":"        cctxt.cast(context, \u0027build_instances\u0027,"},{"line_number":531,"context_line":"                   instances\u003dinstances, image\u003dimage_p,"},{"line_number":532,"context_line":"                   filter_properties\u003dfilter_properties,"},{"line_number":533,"context_line":"                   admin_password\u003dadmin_password,"},{"line_number":534,"context_line":"                   injected_files\u003dinjected_files,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F8%2F%2FI%3D","line":531,"in_reply_to":"AAAATn%2F8%2F%2Fw%3D","updated":"2013-12-17 21:07:09.000000000","message":"yes, definitely.","commit_id":"8f6a891119adbf3cdd460667383cff543079e585"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"412b23491c11db1e1eb50d8b8c536f8f9a395918","unresolved":false,"context_lines":[{"line_number":492,"context_line":"    1.4 - Added reservations to migrate_server."},{"line_number":493,"context_line":"    1.5 - Added the leagacy_bdm parameter to build_instances"},{"line_number":494,"context_line":"    1.6 - Made migrate_server use instance objects"},{"line_number":495,"context_line":"    1.7 - Pass instance objects for build_instances"},{"line_number":496,"context_line":"    \"\"\""},{"line_number":497,"context_line":""},{"line_number":498,"context_line":"    BASE_RPC_API_VERSION \u003d \u00271.0\u0027"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAATn%2F86ts%3D","line":495,"updated":"2013-12-18 20:17:50.000000000","message":"I think this is unnecessary because it\u0027s client-side behavior that does not affect the server side at all.","commit_id":"c4ca3b52174d72abbf182017eaf443df68193274"}]}
