)]}'
{"openstack/compute/v2/_proxy.py":[{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"7eb0b06c46fe70cb0e9cafeaac9266d703774615","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        :param value: The value can be either the ID of a server or a"},{"line_number":117,"context_line":"                      :class:`~openstack.compute.v2.server.Server` instance."},{"line_number":118,"context_line":"        :param bool ignore_missing: When set to ``False``"},{"line_number":119,"context_line":"                    :class:`~openstack.exceptions.HttpException` will be"},{"line_number":120,"context_line":"                    raised when the server does not exist."},{"line_number":121,"context_line":"                    When set to ``True``, no exception will be set when"},{"line_number":122,"context_line":"                    attempting to delete a nonexistent server."}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_c74a5a26","line":119,"updated":"2015-03-19 14:12:32.000000000","message":"should be openstack.exceptions.ResourceNotFound also","commit_id":"03137243ffd475adcd951dec97db70e3d384481b"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"ee132c544c5bb2331472b55a5c55672d1cf4375c","unresolved":false,"context_lines":[{"line_number":116,"context_line":"        :param value: The value can be either the ID of a server or a"},{"line_number":117,"context_line":"                      :class:`~openstack.compute.v2.server.Server` instance."},{"line_number":118,"context_line":"        :param bool ignore_missing: When set to ``False``"},{"line_number":119,"context_line":"                    :class:`~openstack.exceptions.HttpException` will be"},{"line_number":120,"context_line":"                    raised when the server does not exist."},{"line_number":121,"context_line":"                    When set to ``True``, no exception will be set when"},{"line_number":122,"context_line":"                    attempting to delete a nonexistent server."}],"source_content_type":"text/x-python","patch_set":8,"id":"9a80dd14_a713a663","line":119,"in_reply_to":"9a80dd14_c74a5a26","updated":"2015-03-19 14:17:40.000000000","message":"Done","commit_id":"03137243ffd475adcd951dec97db70e3d384481b"}],"openstack/exceptions.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"2de6a1b478e0f236cb478e37b6ffb81afd79831a","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    pass"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"class ResourceNotFound(SDKException):"},{"line_number":89,"context_line":"    \"\"\"No resource exists with that name or id.\"\"\""},{"line_number":90,"context_line":"    pass"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_62799c92","line":88,"updated":"2015-03-19 14:26:01.000000000","message":"Is there any reason this isn\u0027t derived off HttpException?  If transport was throwing a NotFoundException which was a HttpException(404) error it might be convenient in other contexts.  We wouldn\u0027t have to catch HttpException and check the status code, we could just catch this exception.\n\nIn resource.find we now catch HttpException and ignore it, but what we really mean to do there is catch 404.","commit_id":"0fd923b5b841e61f69995b45c2ba0aff65b40f6b"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"3100234658273f03c68c8eaf4247ee9a7933503c","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    pass"},{"line_number":86,"context_line":""},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"class ResourceNotFound(SDKException):"},{"line_number":89,"context_line":"    \"\"\"No resource exists with that name or id.\"\"\""},{"line_number":90,"context_line":"    pass"},{"line_number":91,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"9a80dd14_fcbc4cb7","line":88,"in_reply_to":"9a80dd14_62799c92","updated":"2015-03-19 15:13:50.000000000","message":"Done","commit_id":"0fd923b5b841e61f69995b45c2ba0aff65b40f6b"}],"openstack/proxy.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"831fa3a934f0722ea452c7006f6ca0adf6c632f0","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :returns: The result of the ``delete``"},{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        resource \u003d resource_type.from_id(value)"},{"line_number":32,"context_line":"        return resource.delete(self.session)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_bdeabc71","line":31,"updated":"2015-03-13 19:24:24.000000000","message":"could probably one line this and no need to return anything here","commit_id":"86054e628140cac64f860082cecf954a67da96e7"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"5fd191464b1ab8c19a9aca840c3ea03cb9427dca","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"        :returns: The result of the ``delete``"},{"line_number":30,"context_line":"        \"\"\""},{"line_number":31,"context_line":"        resource \u003d resource_type.from_id(value)"},{"line_number":32,"context_line":"        return resource.delete(self.session)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9a80dd14_58b70ed8","line":31,"in_reply_to":"9a80dd14_bdeabc71","updated":"2015-03-13 19:38:55.000000000","message":"There actually are a few cases where deletes can return things (headers in something i saw recently), so I think the base should be returning, but the proxy should ignore it if it knows it\u0027s not going to get  a body out of delete.","commit_id":"86054e628140cac64f860082cecf954a67da96e7"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"945aa45a2b51fd46ea353f9edee5c27f264ff9e2","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        :returns: The result of the ``delete``"},{"line_number":32,"context_line":"        \"\"\""},{"line_number":33,"context_line":"        res \u003d resource_type.existing(id\u003dresource.Resource.get_id(value))"},{"line_number":34,"context_line":"        return res.delete(self.session)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a80dd14_df0763c8","line":33,"updated":"2015-03-13 20:19:14.000000000","message":"If we operate on the ID of the resource instead of the resource of the ID, this allows both ServerDetail and Server to be passed in because in the end they have the same ID for the same resource.","commit_id":"7e9052037a47324826aae703ff918b29e2f0d28a"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"cbff59b7736254218dc0b09306a20c9e91ecfe70","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        :returns: The result of the ``delete``"},{"line_number":32,"context_line":"        \"\"\""},{"line_number":33,"context_line":"        res \u003d resource_type.existing(id\u003dresource.Resource.get_id(value))"},{"line_number":34,"context_line":"        return res.delete(self.session)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_93232404","line":33,"updated":"2015-03-13 22:31:53.000000000","message":"One thing that just occured to me here is if the user accidentally calls delete_server and passes a keypair resource or something, the results are going to be a confusing 404.  Should we call resource_type.get_id and have get_id make sure it is and instance of that type?","commit_id":"d215d917a5370bf2bab5fc6311ea05ad243c65fb"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"46e462821ffad8fe752bf1c8efc250bc74bf38b9","unresolved":false,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"        :returns: The result of the ``delete``"},{"line_number":32,"context_line":"        \"\"\""},{"line_number":33,"context_line":"        res \u003d resource_type.existing(id\u003dresource.Resource.get_id(value))"},{"line_number":34,"context_line":"        return res.delete(self.session)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9a80dd14_def59c51","line":33,"in_reply_to":"9a80dd14_93232404","updated":"2015-03-14 03:54:02.000000000","message":"Done","commit_id":"d215d917a5370bf2bab5fc6311ea05ad243c65fb"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"9b457dec4d6cc56c1b4a3735a2b08d8789d1f433","unresolved":false,"context_lines":[{"line_number":13,"context_line":"from openstack import resource"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"def _check_resource(method):"},{"line_number":17,"context_line":"    def check(self, expected, actual):"},{"line_number":18,"context_line":"        if (isinstance(actual, resource.Resource) and not"},{"line_number":19,"context_line":"           isinstance(actual, expected)):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9a80dd14_5eb8cc74","line":16,"updated":"2015-03-14 03:58:20.000000000","message":"This decorator will also work for BaseProxy._get (in another change), and we should be able to expand it for other methods like update by taking *args, **kwargs. However, I\u0027d rather wait until we get to those before making this cover cases that don\u0027t exist yet in runnable code.\n\nNote that the only way to get past this and still have a bad time is if you pass in the bare ID of a different type of resource. We can\u0027t protect against that.","commit_id":"f67eeff703f08be1210f8bfa379e945eb6a205ca"},{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"9a7bead130be6b43da430124dfb929d9351a01fa","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                      resource or a :class:`~openstack.resource.Resource`"},{"line_number":41,"context_line":"                      subclass."},{"line_number":42,"context_line":"        :param bool ignore_missing: When set to ``False``"},{"line_number":43,"context_line":"                    :class:`~openstack.exceptions.HttpException` will be"},{"line_number":44,"context_line":"                    raised when the resource does not exist."},{"line_number":45,"context_line":"                    When set to ``True``, no exception will be set when"},{"line_number":46,"context_line":"                    attempting to delete a nonexistent server."}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_57e39c33","line":43,"updated":"2015-03-18 21:47:46.000000000","message":"s/HttpException/ResourceNotFound/","commit_id":"b9d2d21c3d18ad1667151c6b665bb3f34b2c2b28"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"40713646cfa927d20a2bf88ce9d40e9534af7a9d","unresolved":false,"context_lines":[{"line_number":40,"context_line":"                      resource or a :class:`~openstack.resource.Resource`"},{"line_number":41,"context_line":"                      subclass."},{"line_number":42,"context_line":"        :param bool ignore_missing: When set to ``False``"},{"line_number":43,"context_line":"                    :class:`~openstack.exceptions.HttpException` will be"},{"line_number":44,"context_line":"                    raised when the resource does not exist."},{"line_number":45,"context_line":"                    When set to ``True``, no exception will be set when"},{"line_number":46,"context_line":"                    attempting to delete a nonexistent server."}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_40682fba","line":43,"in_reply_to":"9a80dd14_57e39c33","updated":"2015-03-19 01:21:34.000000000","message":"Done","commit_id":"b9d2d21c3d18ad1667151c6b665bb3f34b2c2b28"}],"openstack/tests/test_proxy.py":[{"author":{"_account_id":12807,"name":"Steve Lewis (stevelle)","email":"stevelle@gmail.com","username":"stevelle"},"change_message_id":"9a7bead130be6b43da430124dfb929d9351a01fa","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.session \u003d mock.Mock()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_delete(self):"},{"line_number":71,"context_line":"        sot \u003d proxy.BaseProxy(self.session)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        id \u003d 1"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_5768fc87","line":70,"updated":"2015-03-18 21:47:46.000000000","message":"How would you feel about splitting these deletes out into individual tests? This has gotten long in hitting all of the branches.\n\nIt looks like there is no branch test for ignore_missing\u003dTrue now","commit_id":"b9d2d21c3d18ad1667151c6b665bb3f34b2c2b28"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"40713646cfa927d20a2bf88ce9d40e9534af7a9d","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        self.session \u003d mock.Mock()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    def test_delete(self):"},{"line_number":71,"context_line":"        sot \u003d proxy.BaseProxy(self.session)"},{"line_number":72,"context_line":""},{"line_number":73,"context_line":"        id \u003d 1"}],"source_content_type":"text/x-python","patch_set":7,"id":"9a80dd14_035481fc","line":70,"in_reply_to":"9a80dd14_5768fc87","updated":"2015-03-19 01:21:34.000000000","message":"Done","commit_id":"b9d2d21c3d18ad1667151c6b665bb3f34b2c2b28"}]}
