)]}'
{"openstack/object_store/object_store_service.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"d19ad7d126ddfef83c1802c25b0e7a50f5613edf","unresolved":false,"context_lines":[{"line_number":18,"context_line":""},{"line_number":19,"context_line":"    def __init__(self):"},{"line_number":20,"context_line":"        \"\"\"Create an object store service.\"\"\""},{"line_number":21,"context_line":"        super(ObjectStoreService, self).__init__(service_type\u003d\u0027object-store\u0027)"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_679eb5ba","line":21,"updated":"2014-07-07 20:43:36.000000000","message":"Hmm, devstack has s3 as service type.  I assume I\u0027m not going to get a match.  I wonder what we can do to match those kind of things more dynamically.","commit_id":"845cabce011f96f7170d1fbbdf07b3d7d32fcd4c"}],"openstack/object_store/v1/account.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"d19ad7d126ddfef83c1802c25b0e7a50f5613edf","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    # TODO(briancurtin): Some of these values should be `type\u003dint`, but prop"},{"line_number":29,"context_line":"    # validates the type instead of setting the type, since it\u0027s built to"},{"line_number":30,"context_line":"    # create properties from JSON instead of headers, which are string-based."},{"line_number":31,"context_line":"    timestamp \u003d resource.prop(\"x-timestamp\")"},{"line_number":32,"context_line":"    bytes_used \u003d resource.prop(\"x-account-bytes-used\")"},{"line_number":33,"context_line":"    container_count \u003d resource.prop(\"x-account-container-count\")"}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_c7430111","line":30,"updated":"2014-07-07 20:43:36.000000000","message":"I\u0027m curious how this even maps from the header not to mention propogated to each instance of Account.","commit_id":"845cabce011f96f7170d1fbbdf07b3d7d32fcd4c"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"d19ad7d126ddfef83c1802c25b0e7a50f5613edf","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    container_count \u003d resource.prop(\"x-account-container-count\")"},{"line_number":34,"context_line":"    object_count \u003d resource.prop(\"x-account-object-count\")"},{"line_number":35,"context_line":"    meta_temp_url_key \u003d resource.prop(\"x-account-meta-temp-url-key\")"},{"line_number":36,"context_line":"    meta_temp_url_key_2 \u003d resource.prop(\"x-account-meta-temp-url-key-2\")"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def __repr__(self):"},{"line_number":39,"context_line":"        # TODO(briancurtin): use %d once these properties are integers."}],"source_content_type":"text/x-python","patch_set":7,"id":"baada198_07497930","line":36,"updated":"2014-07-07 20:43:36.000000000","message":"Needs:\n\nname\tplain\txsd:string\t\nThe name of the container.\n\ncount\tplain\txsd:int\t\nThe number of objects in the container.\n\nbytes\tplain\txsd:int\t\nThe total number of bytes that are stored in Object Storage for the account.","commit_id":"845cabce011f96f7170d1fbbdf07b3d7d32fcd4c"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"c7be34d44784b0aa99ea835c224cce6120ecd78a","unresolved":false,"context_lines":[{"line_number":24,"context_line":"    allow_update \u003d True"},{"line_number":25,"context_line":"    allow_delete \u003d True"},{"line_number":26,"context_line":"    allow_list \u003d True"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    timestamp \u003d resource.prop(\"x-timestamp\")"},{"line_number":29,"context_line":"    bytes_used \u003d resource.prop(\"x-account-bytes-used\")"},{"line_number":30,"context_line":"    container_count \u003d resource.prop(\"x-account-container-count\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_24087bd8","line":27,"updated":"2014-08-01 20:02:19.000000000","message":"I think these all could be added to container and read somehow on an a Container.list().  I still haven\u0027t wrapped my head around how these headers are going to be read","commit_id":"373fa14c1a17ba24f6c3ef4d855539ba43a7bb6a"}],"openstack/object_store/v1/container.py":[{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"c7be34d44784b0aa99ea835c224cce6120ecd78a","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    sync_key \u003d resource.prop(\"x-container-sync-key\")"},{"line_number":40,"context_line":"    versions_location \u003d resource.prop(\"x-versions-location\")"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def __init__(self, attrs\u003dNone, loaded\u003dFalse):"},{"line_number":43,"context_line":"        # attrs must at least contain `name`"},{"line_number":44,"context_line":"        super(Container, self).__init__(attrs, loaded)"},{"line_number":45,"context_line":"        self.base_path \u003d \"/%s\" % self.name"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_212eadfa","line":42,"updated":"2014-08-01 20:02:19.000000000","message":"If self.id returns the name, there should be no need to mess with base_path.  The get and update methods already do a urljoin on base_path + id.","commit_id":"373fa14c1a17ba24f6c3ef4d855539ba43a7bb6a"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"c7be34d44784b0aa99ea835c224cce6120ecd78a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"        super(Container, self).__init__(attrs, loaded)"},{"line_number":45,"context_line":"        self.base_path \u003d \"/%s\" % self.name"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def __repr__(self):"},{"line_number":48,"context_line":"        return \"name: %s, count: %s, bytes: %s\" % (self.name, self.count,"},{"line_number":49,"context_line":"                                                   self.bytes)"},{"line_number":50,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_81513965","line":47,"updated":"2014-08-01 20:02:19.000000000","message":"If resource key was set, it would look like this which is a more standard format:\n\ncontainer: {u\u0027count\u0027: 4, u\u0027bytes\u0027: 47, u\u0027name\u0027: u\u0027copytainer\u0027}\n\nMight be best to set resource_key and work around all the instances where you don\u0027t want it set rather than do this kind of thing.","commit_id":"373fa14c1a17ba24f6c3ef4d855539ba43a7bb6a"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"c7be34d44784b0aa99ea835c224cce6120ecd78a","unresolved":false,"context_lines":[{"line_number":51,"context_line":"    @property"},{"line_number":52,"context_line":"    def id(self):"},{"line_number":53,"context_line":"        return self.name"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    def list(self, session, limit\u003dNone, marker\u003dNone, **params):"},{"line_number":56,"context_line":"        resp \u003d super(Container, self).list(session, limit, marker, **params)"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_0e29d8f1","line":54,"updated":"2014-08-01 20:02:19.000000000","message":"In security groups, I overrode existing and that worked pretty well I thought:\n\nhttps://review.openstack.org/#/c/111047/2/openstack/network/v2/security_group.py","commit_id":"373fa14c1a17ba24f6c3ef4d855539ba43a7bb6a"}],"openstack/object_store/v1/obj.py":[{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"e231ed4a801d5438555d8c35951a02f1ee961bd1","unresolved":false,"context_lines":[{"line_number":14,"context_line":"from openstack import resource"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class Object(resource.Resource):"},{"line_number":18,"context_line":"    service \u003d object_store_service.ObjectStoreService()"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    allow_create \u003d True"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_3580b5be","line":17,"updated":"2014-07-18 21:13:03.000000000","message":"I think that the use of \u0027Object\u0027 as a name is too close to the reserved \u0027object\u0027. A name such as \u0027StorageObject\u0027 would avoid that potential confusion. And yeah, I know that it has \u0027bytes\u0027, but that would never be used outside of the storage object namespace.","commit_id":"373fa14c1a17ba24f6c3ef4d855539ba43a7bb6a"},{"author":{"_account_id":8736,"name":"Terry Howe","email":"terrylhowe@gmail.com","username":"terrylhowe"},"change_message_id":"c7be34d44784b0aa99ea835c224cce6120ecd78a","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # This property is passed on from the parent container."},{"line_number":27,"context_line":"    container \u003d resource.prop(\"container\")"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    name \u003d resource.prop(\"name\")"},{"line_number":30,"context_line":"    bytes \u003d resource.prop(\"bytes\")"},{"line_number":31,"context_line":"    hash \u003d resource.prop(\"hash\")"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_841dc712","line":28,"updated":"2014-08-01 20:02:19.000000000","message":"Maybe this object resource could be put in another review.","commit_id":"373fa14c1a17ba24f6c3ef4d855539ba43a7bb6a"}]}
