)]}'
{"novaclient/v2/floating_ips_bulk.py":[{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"2f3ee782d82b3410871cb6774e027fbd25cafb28","unresolved":false,"context_lines":[{"line_number":23,"context_line":"    def __repr__(self):"},{"line_number":24,"context_line":"        if hasattr(self, \"address\"):"},{"line_number":25,"context_line":"            return \"\u003cFloatingIP: %s\u003e\" % self.address"},{"line_number":26,"context_line":"        return \"\u003cFloatingIPRange: %s\u003e\" % self.ip_range"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"class FloatingIPBulkManager(base.ManagerWithFind):"}],"source_content_type":"text/x-python","patch_set":2,"id":"da9b358b_fbd3c136","line":26,"updated":"2015-03-31 12:40:40.000000000","message":"I don\u0027t feel like this should be overloaded like that. Creating a separate FloatingIPRange is fine, but objects should not have conditional repr like this, as it greatly confuses things later.\n\nThe \u003cFoo: \u003e construct really means this is an instance of Foo. Clearly here there is 1 type, but 2 types are being returned by repr, which is going to confuse people a lot in the future.","commit_id":"bba1b7aab2e70c07f573ee3c59cb9c53a377af8c"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"d8d04277ff1bd1b87217ea73ecc65c7640bf6e2e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \"\"\""},{"line_number":33,"context_line":"        List all floating IPs"},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":"        self.resource_class \u003d floating_ips.FloatingIP"},{"line_number":36,"context_line":"        if host is None:"},{"line_number":37,"context_line":"            return self._list(\u0027/os-floating-ips-bulk\u0027, \u0027floating_ip_info\u0027)"},{"line_number":38,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da9b358b_fa34d2fb","line":35,"updated":"2015-03-31 15:54:03.000000000","message":"This will change the resource_class for all subsequent calls to FloatingIPBulkManager; you would need to reset the resource_class after performing the self._list().  The kind of work-around I\u0027m thinking of is adding a resource_class keyword argument to the _list() framework method; if it\u0027s None, we\u0027d use self.resource_class.  That would allow us to override the class for individual calls without breaking compatibility.\n\nAnd actually, I just took a look at the code for the _list() method, and what do you know: something like I just described already exists.  Pass FloatingIPRange as the obj_class parameter of the _list() method, and you can completely eliminate this line changing resource_class.","commit_id":"3c7a70dcfbf75fca6abb4c4081b5299d4226636d"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"8c07965d6693ef182803eb742d1e7613632d958e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        \"\"\""},{"line_number":33,"context_line":"        List all floating IPs"},{"line_number":34,"context_line":"        \"\"\""},{"line_number":35,"context_line":"        self.resource_class \u003d floating_ips.FloatingIP"},{"line_number":36,"context_line":"        if host is None:"},{"line_number":37,"context_line":"            return self._list(\u0027/os-floating-ips-bulk\u0027, \u0027floating_ip_info\u0027)"},{"line_number":38,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":4,"id":"da9b358b_9542393d","line":35,"in_reply_to":"da9b358b_fa34d2fb","updated":"2015-03-31 15:56:01.000000000","message":"Thanks! Totally forgot about resource key! I think this is the best way to deal with it.","commit_id":"3c7a70dcfbf75fca6abb4c4081b5299d4226636d"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"71da36cd52123415f1ce8bbd9b665c7bfddd28f7","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class FloatingIPRange(base.Resource):"},{"line_number":24,"context_line":"    def __repr__(self):"},{"line_number":25,"context_line":"        return \"\u003cFloatingIP: %s\u003e\" % self.ip_range"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class FloatingIPBulkManager(base.ManagerWithFind):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_db96afef","line":25,"updated":"2015-03-31 17:13:52.000000000","message":"One nit: make this return \"\u003cFloatingIPRange: %s\u003e\"","commit_id":"530ee6b8f0ef928d64d7c3035d8ed1336b249de6"},{"author":{"_account_id":9550,"name":"Eugeniya Kudryashova","email":"ekudryashova@mirantis.com","username":"ekudryashova"},"change_message_id":"4dd9cb7e8dd54d7d1013ba93cad9e7bfe7691297","unresolved":false,"context_lines":[{"line_number":22,"context_line":""},{"line_number":23,"context_line":"class FloatingIPRange(base.Resource):"},{"line_number":24,"context_line":"    def __repr__(self):"},{"line_number":25,"context_line":"        return \"\u003cFloatingIP: %s\u003e\" % self.ip_range"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"class FloatingIPBulkManager(base.ManagerWithFind):"}],"source_content_type":"text/x-python","patch_set":5,"id":"da9b358b_5e15ed3d","line":25,"in_reply_to":"da9b358b_db96afef","updated":"2015-03-31 17:16:34.000000000","message":"Done","commit_id":"530ee6b8f0ef928d64d7c3035d8ed1336b249de6"}]}
