From afbd58ea57f87080f8eb8bc81aa0f0fde8cd22e4 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Tue, 18 Feb 2014 18:14:40 -0800 Subject: [PATCH] rgw: don't try to read bucket's policy if it doesn't exist It's going to fail anyway, just build a default policy. Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_op.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 98b6fadc9c10f..c4c89447bd434 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -358,9 +358,13 @@ static int rgw_build_policies(RGWRados *store, struct req_state *s, bool only_bu } s->bucket = s->bucket_info.bucket; - string no_obj; - RGWAccessControlPolicy bucket_acl(s->cct); - ret = read_policy(store, s, s->bucket_info, s->bucket_attrs, s->bucket_acl, s->bucket, no_obj); + if (s->bucket_exists) { + string no_obj; + ret = read_policy(store, s, s->bucket_info, s->bucket_attrs, s->bucket_acl, s->bucket, no_obj); + } else { + s->bucket_acl->create_default(s->user.user_id, s->user.display_name); + ret = -ERR_NO_SUCH_BUCKET; + } s->bucket_owner = s->bucket_acl->get_owner(); -- 2.47.3