)]}'
{"swift/common/middleware/s3api/controllers/multi_upload.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"110ddfbd1ad26474e0ffde7b1c6767b230839793","unresolved":false,"context_lines":[{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        try:"},{"line_number":364,"context_line":"            req.get_response(self.app, \u0027PUT\u0027, container, \u0027\u0027)"},{"line_number":365,"context_line":"        except (BucketAlreadyExists, BucketAlreadyOwnedByYou):"},{"line_number":366,"context_line":"            pass"},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"        obj \u003d \u0027%s/%s\u0027 % (req.object_name, upload_id)"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_dcd5fa1c","line":365,"updated":"2018-08-20 19:16:06.000000000","message":"In light of the comment over in s3request.py, this should maybe also cover AccessDenied. We might have write-access to the bucket but lack permission to create a segments container. If it really doesn\u0027t exist yet, we\u0027re kind of out of luck... but maybe we could deem it safe to override swift.authorize for this one call?\n\nThis points to a larger problem, though: today, even if the segments container *does* exist, the reduced-access user *still* can\u0027t create the container, so MUs always fail! We really ought to either:\n\n- LBYL similar to what\u0027s in https://review.openstack.org/#/c/580333/ (but using the info caches), or\n- try to PUT the marker, and if it fails with a 404, PUT the container and try again.","commit_id":"a21b8ab39b34b6593bd169cc86bbd70a9dd93520"}],"swift/common/middleware/s3api/s3request.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"110ddfbd1ad26474e0ffde7b1c6767b230839793","unresolved":false,"context_lines":[{"line_number":1108,"context_line":"                \u0027PUT\u0027: {"},{"line_number":1109,"context_line":"                    HTTP_ACCEPTED: (self._bucket_put_accepted_error, container,"},{"line_number":1110,"context_line":"                                    app),"},{"line_number":1111,"context_line":"                    HTTP_FORBIDDEN: (BucketAlreadyExists, container),"},{"line_number":1112,"context_line":"                },"},{"line_number":1113,"context_line":"                \u0027POST\u0027: {"},{"line_number":1114,"context_line":"                    HTTP_NOT_FOUND: (NoSuchBucket, container),"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f79a3b5_f9c48842","line":1111,"updated":"2018-08-20 19:16:06.000000000","message":"Why did I think *this* was necessary? If you aren\u0027t allowed to create buckets, we don\u0027t know whether the thing exists or not -- just raise AccessDenied per usual.\n\nThis makes it harder to functionally test (we aren\u0027t currently tooled up to have two users each with owner-access to the same account), but it\u0027s surely the right way to go, particularly following https://review.openstack.org/#/c/577941/","commit_id":"a21b8ab39b34b6593bd169cc86bbd70a9dd93520"}],"test/functional/s3api/test_bucket.py":[{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"f0ea963c6fd1fcd2835640a3fb81d2aa9d57ec4d","unresolved":false,"context_lines":[{"line_number":158,"context_line":"        if config_true_value(tf.cluster_info[\u0027s3api\u0027].get(\u0027s3_acl\u0027)):"},{"line_number":159,"context_line":"            if \u0027s3_access_key2\u0027 not in tf.config or \\"},{"line_number":160,"context_line":"                    \u0027s3_secret_key2\u0027 not in tf.config:"},{"line_number":161,"context_line":"                raise tf.SkipTest("},{"line_number":162,"context_line":"                    \u0027Cannot test for BucketAlreadyExists with second user; \u0027"},{"line_number":163,"context_line":"                    \u0027need s3_access_key2 and s3_secret_key2 configured\u0027)"},{"line_number":164,"context_line":"            # Other users of the same account get the same error"}],"source_content_type":"text/x-python","patch_set":8,"id":"3f79a3b5_17a16f95","line":161,"range":{"start_line":161,"start_character":22,"end_line":161,"end_character":33},"updated":"2018-10-03 18:28:52.000000000","message":"ideally this is always going to be there, but if SkipTest is called then it will report as test skipped and not that it passed the other asserts above. Maybe it could broken up into its own test?","commit_id":"76f718d63987fb279cf3cfd643cf313d162bf9d7"}]}
