)]}'
{"openstack/image/v2/tag.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"beed72884d3453ac7b263c354c4a0d568aef6d41","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    #: The image to manipulate"},{"line_number":30,"context_line":"    image \u003d resource.prop(\"image\", type\u003dimage.Image)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _call(self, action, tag):"},{"line_number":33,"context_line":"        url \u003d utils.urljoin(self.base_path %"},{"line_number":34,"context_line":"                            {\"image\": self.get_id(self.image)}, tag)"},{"line_number":35,"context_line":"        action(url, service\u003dself.service, accept\u003dNone)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_3d746fcd","line":32,"updated":"2015-04-03 20:35:41.000000000","message":"This method doesn\u0027t provide much.  You could create a _geturl method or something, but that doesn\u0027t seem like much either.","commit_id":"a3290b3eeb7c537898d6b4e52ba9e96ed232ff08"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"4db270bfe5db46cde72cf31b168be5a70eda2b4d","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    #: The image to manipulate"},{"line_number":30,"context_line":"    image \u003d resource.prop(\"image\", type\u003dimage.Image)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _call(self, action, tag):"},{"line_number":33,"context_line":"        url \u003d utils.urljoin(self.base_path %"},{"line_number":34,"context_line":"                            {\"image\": self.get_id(self.image)}, tag)"},{"line_number":35,"context_line":"        action(url, service\u003dself.service, accept\u003dNone)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_5d0e133c","line":32,"in_reply_to":"baa041b7_3d746fcd","updated":"2015-04-03 20:41:26.000000000","message":"It doesn\u0027t do a whole lot on its own, but without it we end up having to just move exactly duplicate code in create and delete, with the only difference being that one calls put and one called delete.","commit_id":"a3290b3eeb7c537898d6b4e52ba9e96ed232ff08"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"c6b3abb52e1e839eb34d335b3f4666bb630386d5","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    #: The image to manipulate"},{"line_number":30,"context_line":"    image \u003d resource.prop(\"image\", type\u003dimage.Image)"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def _call(self, action, tag):"},{"line_number":33,"context_line":"        url \u003d utils.urljoin(self.base_path %"},{"line_number":34,"context_line":"                            {\"image\": self.get_id(self.image)}, tag)"},{"line_number":35,"context_line":"        action(url, service\u003dself.service, accept\u003dNone)"}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_6898f7c0","line":32,"in_reply_to":"baa041b7_5d0e133c","updated":"2015-04-03 20:49:24.000000000","message":"This method takes 6 lines of code plus a blank line to save 4 lines.\n\nI think this problem of having a resource type\u003dResource and not being able to create a url should be handled somewhere else.","commit_id":"a3290b3eeb7c537898d6b4e52ba9e96ed232ff08"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"beed72884d3453ac7b263c354c4a0d568aef6d41","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        :return: ``None``"},{"line_number":47,"context_line":"        :raises: :exc:`~openstack.exceptions.MethodNotSupported` if"},{"line_number":48,"context_line":"                 :data:`Resource.allow_create` is not set to ``True``."},{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        if not self.allow_create:"},{"line_number":51,"context_line":"            raise exceptions.MethodNotSupported(\"create\")"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_fd54c721","line":49,"updated":"2015-04-03 20:35:41.000000000","message":"Why bother letting the user change allow_create?  If someone wants to subclass this, let them change the create behavior.","commit_id":"a3290b3eeb7c537898d6b4e52ba9e96ed232ff08"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"c6b3abb52e1e839eb34d335b3f4666bb630386d5","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        :return: ``None``"},{"line_number":47,"context_line":"        :raises: :exc:`~openstack.exceptions.MethodNotSupported` if"},{"line_number":48,"context_line":"                 :data:`Resource.allow_create` is not set to ``True``."},{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        if not self.allow_create:"},{"line_number":51,"context_line":"            raise exceptions.MethodNotSupported(\"create\")"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_c8782392","line":49,"in_reply_to":"baa041b7_c82a637e","updated":"2015-04-03 20:49:24.000000000","message":"Yeh, remove the check.  The fact that them method is here means it is allowed.","commit_id":"a3290b3eeb7c537898d6b4e52ba9e96ed232ff08"},{"author":{"_account_id":8257,"name":"Brian Curtin","email":"brian@python.org","username":"briancurtin"},"change_message_id":"4db270bfe5db46cde72cf31b168be5a70eda2b4d","unresolved":false,"context_lines":[{"line_number":46,"context_line":"        :return: ``None``"},{"line_number":47,"context_line":"        :raises: :exc:`~openstack.exceptions.MethodNotSupported` if"},{"line_number":48,"context_line":"                 :data:`Resource.allow_create` is not set to ``True``."},{"line_number":49,"context_line":"        \"\"\""},{"line_number":50,"context_line":"        if not self.allow_create:"},{"line_number":51,"context_line":"            raise exceptions.MethodNotSupported(\"create\")"},{"line_number":52,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"baa041b7_c82a637e","line":49,"in_reply_to":"baa041b7_fd54c721","updated":"2015-04-03 20:41:26.000000000","message":"I don\u0027t think I understand. To create the tag you have to have allow_create, and then we simply call the url with the tag via put.\n\nAre you saying to remove the allow_create check?","commit_id":"a3290b3eeb7c537898d6b4e52ba9e96ed232ff08"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"bd6b71e4906f965ed66896a220aeba60021285b6","unresolved":false,"context_lines":[{"line_number":51,"context_line":"        :return: ``None``"},{"line_number":52,"context_line":"        \"\"\""},{"line_number":53,"context_line":"        url \u003d utils.urljoin(self.base_path %"},{"line_number":54,"context_line":"                            {\"image\": self.get_id(self.image)}, tag)"},{"line_number":55,"context_line":"        session.delete(url, service\u003dself.service, accept\u003dNone)"}],"source_content_type":"text/x-python","patch_set":4,"id":"baa041b7_697eb91a","line":54,"updated":"2015-04-04 00:28:12.000000000","message":"This one?","commit_id":"ba355b961c87b9652a9569a47653af06f96be6bc"}]}
