)]}'
{"nova/api/ec2/cloud.py":[{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"a26384b0ae9438d2cf7e5ac6099192c0c1be70a7","unresolved":false,"context_lines":[{"line_number":906,"context_line":"            except exception.InstanceNotFound:"},{"line_number":907,"context_line":"                instance \u003d None"},{"line_number":908,"context_line":"        if not instance:"},{"line_number":909,"context_line":"            raise exception.VolumeUnattached(volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":910,"context_line":""},{"line_number":911,"context_line":"    def detach_volume(self, context, volume_id, **kwargs):"},{"line_number":912,"context_line":"        validate_ec2_id(volume_id)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOH%2F%2F7Fg%3D","line":909,"updated":"2013-03-20 20:43:29.000000000","message":"dims caught that i\u0027m missing \u0027return instance\u0027 here. :)","commit_id":"f673e63ae61efe715fd6a8a95bc4781a571dfa1f"}],"nova/api/openstack/compute/contrib/volumes.py":[{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"f73f155a23f846b71e8bbdf21a23312a083baf82","unresolved":false,"context_lines":[{"line_number":461,"context_line":"                    break"},{"line_number":462,"context_line":"                except (exception.VolumeUnattached,"},{"line_number":463,"context_line":"                        exception.InvalidVolume):"},{"line_number":464,"context_line":"                    pass"},{"line_number":465,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":466,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":467,"context_line":"                    \u0027detach_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOH%2F%2F7Js%3D","line":464,"updated":"2013-03-20 19:59:15.000000000","message":"Is ignoring these exceptions correct?  Wouldn\u0027t we want to return an error from the API in these cases?","commit_id":"f673e63ae61efe715fd6a8a95bc4781a571dfa1f"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"492cc0ff836f70d4c11a44f79419921ed6756b11","unresolved":false,"context_lines":[{"line_number":461,"context_line":"                    break"},{"line_number":462,"context_line":"                except (exception.VolumeUnattached,"},{"line_number":463,"context_line":"                        exception.InvalidVolume):"},{"line_number":464,"context_line":"                    pass"},{"line_number":465,"context_line":"        except exception.InstanceInvalidState as state_error:"},{"line_number":466,"context_line":"            common.raise_http_conflict_for_instance_invalid_state(state_error,"},{"line_number":467,"context_line":"                    \u0027detach_volume\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOH%2F%2F7Gg%3D","line":464,"in_reply_to":"AAAAOH%2F%2F7Js%3D","updated":"2013-03-20 20:38:57.000000000","message":"Yeah, wasn\u0027t sure here.  This was in a patch I created a long time ago for cells but hadn\u0027t put it up yet.  I\u0027m not sure what the code was like at that time.  Note that this will still raise an error, but it\u0027s NotFound below.   I think that perhaps \u0027NotFound\u0027 is the correct thing for VolumeUnattached but maybe not for InvalidVolume.  Thoughts? :)","commit_id":"f673e63ae61efe715fd6a8a95bc4781a571dfa1f"},{"author":{"_account_id":1561,"name":"Russell Bryant","email":"rbryant@redhat.com","username":"russellb"},"change_message_id":"b28cd4dcae1efb41182f4f3a7b207f738e233f56","unresolved":false,"context_lines":[{"line_number":459,"context_line":"                    self.compute_api.detach_volume(context, instance, volume)"},{"line_number":460,"context_line":"                    found \u003d True"},{"line_number":461,"context_line":"                    break"},{"line_number":462,"context_line":"                except exception.VolumeUnattached:"},{"line_number":463,"context_line":"                    # The volume is not attached.  Treat it as NotFound"},{"line_number":464,"context_line":"                    # by falling through."},{"line_number":465,"context_line":"                    pass"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAOH%2F%2F7Es%3D","line":462,"updated":"2013-03-20 20:52:09.000000000","message":"Alright this is fine ... this along with your compute api changes make this maintain the previous behavior","commit_id":"26aa01094a79939320d58f2fe2d5731f169987b1"}],"nova/compute/api.py":[{"author":{"_account_id":475,"name":"Rick Harris","email":"rick.harris@rackspace.com","username":"rconradharris"},"change_message_id":"803a86c903df58645584445135518cff656ad851","unresolved":false,"context_lines":[{"line_number":2319,"context_line":""},{"line_number":2320,"context_line":"    def _detach_volume(self, context, instance, volume):"},{"line_number":2321,"context_line":"        \"\"\"Detach volume from intance.  This method is separated to make"},{"line_number":2322,"context_line":"        it easier for cells version to override."},{"line_number":2323,"context_line":"        \"\"\""},{"line_number":2324,"context_line":"        self.volume_api.check_detach(context, volume)"},{"line_number":2325,"context_line":"        self.volume_api.begin_detaching(context, volume)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F7Mw%3D","line":2322,"updated":"2013-03-20 19:25:20.000000000","message":"Glad this comment re: cells override is here :)","commit_id":"35f7381490cf1aa6db1589dd065dfe6d46cea845"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"dd7e8586564ceaf557c47cf58eac47867cb0bd67","unresolved":false,"context_lines":[{"line_number":2319,"context_line":""},{"line_number":2320,"context_line":"    def _detach_volume(self, context, instance, volume):"},{"line_number":2321,"context_line":"        \"\"\"Detach volume from intance.  This method is separated to make"},{"line_number":2322,"context_line":"        it easier for cells version to override."},{"line_number":2323,"context_line":"        \"\"\""},{"line_number":2324,"context_line":"        self.volume_api.check_detach(context, volume)"},{"line_number":2325,"context_line":"        self.volume_api.begin_detaching(context, volume)"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAOH%2F%2F7L4%3D","line":2322,"in_reply_to":"AAAAOH%2F%2F7Mw%3D","updated":"2013-03-20 19:30:39.000000000","message":"Except I have a typo I should fix. :)","commit_id":"35f7381490cf1aa6db1589dd065dfe6d46cea845"},{"author":{"_account_id":1030,"name":"Chris Behrens","email":"cbehrens@codestud.com","username":"cbehrens"},"change_message_id":"6b249625736a574f7bacb9fe7da87bb48f6950dc","unresolved":false,"context_lines":[{"line_number":2326,"context_line":"        self.compute_rpcapi.detach_volume(context, instance\u003dinstance,"},{"line_number":2327,"context_line":"                volume_id\u003dvolume[\u0027id\u0027])"},{"line_number":2328,"context_line":""},{"line_number":2329,"context_line":"    @wrap_check_policy"},{"line_number":2330,"context_line":"    @check_instance_lock"},{"line_number":2331,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.PAUSED,"},{"line_number":2332,"context_line":"                                    vm_states.SUSPENDED, vm_states.STOPPED,"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAAOH%2F%2F7F8%3D","line":2329,"updated":"2013-03-20 20:41:49.000000000","message":"Devstack is failing after I moved the policy check to here.  This decorator should work now that we have the instance in the args.  But: http://paste.openstack.org/show/34176/","commit_id":"f673e63ae61efe715fd6a8a95bc4781a571dfa1f"}]}
