]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: zipper: move functions so they're on correct side of API 45787/head
authorKaleb S. KEITHLEY <kkeithle@redhat.com>
Tue, 5 Apr 2022 23:10:54 +0000 (19:10 -0400)
committerKaleb S. KEITHLEY <kkeithle@redhat.com>
Tue, 5 Apr 2022 23:10:54 +0000 (19:10 -0400)
When we eventually split out compilation units for the Rados SAL
plugin, a few functions will be out of place wrt the SAL API and
will result in undefined references either in the library or the
the Rados plugin.

Preemptively moving these now, vs. later

Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
src/rgw/rgw_common.cc
src/rgw/rgw_common.h
src/rgw/rgw_metadata.cc
src/rgw/rgw_metadata.h
src/rgw/rgw_op.cc
src/rgw/rgw_op.h
src/rgw/rgw_rados.cc
src/rgw/rgw_rados.h
src/rgw/rgw_tools.cc
src/rgw/rgw_tools.h

index cf248cbefe03be4be09a17e81042e65a2e353114..5e30c14f3cc557f60b8746f53bf640b4dbb84225 100644 (file)
@@ -2920,4 +2920,21 @@ void rgw_obj::dump(Formatter *f) const
   encode_json("key", key, f);
 }
 
+int rgw_parse_list_of_flags(struct rgw_name_to_flag *mapping,
+                           const string& str, uint32_t *perm)
+{
+  list<string> strs;
+  get_str_list(str, strs);
+  list<string>::iterator iter;
+  uint32_t v = 0;
+  for (iter = strs.begin(); iter != strs.end(); ++iter) {
+    string& s = *iter;
+    for (int i = 0; mapping[i].type_name; i++) {
+      if (s.compare(mapping[i].type_name) == 0)
+        v |= mapping[i].flag;
+    }
+  }
 
+  *perm = v;
+  return 0;
+}
index 57e9aa575b785148711f9e7d722cd4011dca3d24..ddb455f041cf9e5cbe35c91d381aea07607c5666 100644 (file)
@@ -2066,6 +2066,13 @@ parse_key_value(const std::string_view& in_str,
 extern boost::optional<std::pair<std::string_view,std::string_view>>
 parse_key_value(const std::string_view& in_str);
 
+struct rgw_name_to_flag {
+  const char *type_name;
+  uint32_t flag;
+};
+
+extern int rgw_parse_list_of_flags(struct rgw_name_to_flag *mapping,
+                                   const std::string& str, uint32_t *perm);
 
 /** time parsing */
 extern int parse_time(const char *time_str, real_time *time);
index b3ba33eac80e3f5bb55992208501f6439652b582..41a4713ea6de44d6d4b9acb1edcea78538bc1222 100644 (file)
@@ -121,6 +121,32 @@ void RGWMetadataLogData::decode_json(JSONObj *obj) {
   JSONDecoder::decode_json("status", status, obj);
 }
 
+void rgw_shard_name(const string& prefix, unsigned max_shards, const string& key, string& name, int *shard_id)
+{
+  uint32_t val = ceph_str_hash_linux(key.c_str(), key.size());
+  char buf[16];
+  if (shard_id) {
+    *shard_id = val % max_shards;
+  }
+  snprintf(buf, sizeof(buf), "%u", (unsigned)(val % max_shards));
+  name = prefix + buf;
+}
+
+void rgw_shard_name(const string& prefix, unsigned max_shards, const string& section, const string& key, string& name)
+{
+  uint32_t val = ceph_str_hash_linux(key.c_str(), key.size());
+  val ^= ceph_str_hash_linux(section.c_str(), section.size());
+  char buf[16];
+  snprintf(buf, sizeof(buf), "%u", (unsigned)(val % max_shards));
+  name = prefix + buf;
+}
+
+void rgw_shard_name(const string& prefix, unsigned shard_id, string& name)
+{
+  char buf[16];
+  snprintf(buf, sizeof(buf), "%u", shard_id);
+  name = prefix + buf;
+}
 
 int RGWMetadataLog::add_entry(const DoutPrefixProvider *dpp, const string& hash_key, const string& section, const string& key, bufferlist& bl) {
   if (!svc.zone->need_to_log_metadata())
index e27fe27af233eb63f377d07fc3d0c72531aa1590..cab69aa704a6ac05d89fb487eaeec0bc4e92ed21 100644 (file)
@@ -293,5 +293,8 @@ public:
   virtual void encode_obj(bufferlist *bl) {}
 };
 
+void rgw_shard_name(const std::string& prefix, unsigned max_shards, const std::string& key, std::string& name, int *shard_id);
+void rgw_shard_name(const std::string& prefix, unsigned max_shards, const std::string& section, const std::string& key, std::string& name);
+void rgw_shard_name(const std::string& prefix, unsigned shard_id, std::string& name);
 
 #endif
index 2a9db70f8b9a28cc3364d84a09725967c02af3b5..961d3aec8e0e2a4e91a95548421cfe75656e03d7 100644 (file)
@@ -1539,6 +1539,29 @@ bool RGWOp::generate_cors_headers(string& origin, string& method, string& header
   return true;
 }
 
+int rgw_policy_from_attrset(const DoutPrefixProvider *dpp, CephContext *cct, map<string, bufferlist>& attrset, RGWAccessControlPolicy *policy)
+{
+  map<string, bufferlist>::iterator aiter = attrset.find(RGW_ATTR_ACL);
+  if (aiter == attrset.end())
+    return -EIO;
+
+  bufferlist& bl = aiter->second;
+  auto iter = bl.cbegin();
+  try {
+    policy->decode(iter);
+  } catch (buffer::error& err) {
+    ldpp_dout(dpp, 0) << "ERROR: could not decode policy, caught buffer::error" << dendl;
+    return -EIO;
+  }
+  if (cct->_conf->subsys.should_gather<ceph_subsys_rgw, 15>()) {
+    RGWAccessControlPolicy_S3 *s3policy = static_cast<RGWAccessControlPolicy_S3 *>(policy);
+    ldpp_dout(dpp, 15) << __func__ << " Read AccessControlPolicy";
+    s3policy->to_xml(*_dout);
+    *_dout << dendl;
+  }
+  return 0;
+}
+
 int RGWGetObj::read_user_manifest_part(rgw::sal::Bucket* bucket,
                                        const rgw_bucket_dir_entry& ent,
                                        RGWAccessControlPolicy * const bucket_acl,
index c5bd7f62a3d5dfb89d28ae6befac7abd0dd5e6fd..f584d78a718b00ea31e6fd9dcd12ebd36bbeeae0 100644 (file)
@@ -2628,4 +2628,9 @@ inline int parse_value_and_bound(
   return 0;
 }
 
+int rgw_policy_from_attrset(const DoutPrefixProvider *dpp,
+                            CephContext *cct,
+                            std::map<std::string, bufferlist>& attrset,
+                            RGWAccessControlPolicy *policy);
+
 #endif /* CEPH_RGW_OP_H */
index e51cba0d4d21e5526e09f0a7ff75aa04f2b55839..b9375d50ce1a5c925fbce8d8c3cdfdedd86402e4 100644 (file)
@@ -1707,30 +1707,6 @@ int RGWRados::decode_policy(const DoutPrefixProvider *dpp, bufferlist& bl, ACLOw
   return 0;
 }
 
-int rgw_policy_from_attrset(const DoutPrefixProvider *dpp, CephContext *cct, map<string, bufferlist>& attrset, RGWAccessControlPolicy *policy)
-{
-  map<string, bufferlist>::iterator aiter = attrset.find(RGW_ATTR_ACL);
-  if (aiter == attrset.end())
-    return -EIO;
-
-  bufferlist& bl = aiter->second;
-  auto iter = bl.cbegin();
-  try {
-    policy->decode(iter);
-  } catch (buffer::error& err) {
-    ldpp_dout(dpp, 0) << "ERROR: could not decode policy, caught buffer::error" << dendl;
-    return -EIO;
-  }
-  if (cct->_conf->subsys.should_gather<ceph_subsys_rgw, 15>()) {
-    RGWAccessControlPolicy_S3 *s3policy = static_cast<RGWAccessControlPolicy_S3 *>(policy);
-    ldpp_dout(dpp, 15) << __func__ << " Read AccessControlPolicy";
-    s3policy->to_xml(*_dout);
-    *_dout << dendl;
-  }
-  return 0;
-}
-
-
 int RGWRados::Bucket::update_bucket_id(const string& new_bucket_id, const DoutPrefixProvider *dpp)
 {
   rgw_bucket bucket = bucket_info.bucket;
index 0bac6c607b1816049af75ade5841ad3c15cefc86..f145c54da3d2ea97fe34bd5b8de30939dde8b298 100644 (file)
@@ -90,11 +90,6 @@ static inline void get_obj_bucket_and_oid_loc(const rgw_obj& obj, std::string& o
   }
 }
 
-int rgw_policy_from_attrset(const DoutPrefixProvider *dpp,
-                           CephContext *cct,
-                           std::map<std::string, bufferlist>& attrset,
-                           RGWAccessControlPolicy *policy);
-
 struct RGWOLHInfo {
   rgw_obj target;
   bool removed;
index b817a1eccb302e30dea6253e1c634f6e995d0636..0f3345a3f2891acb48f3aa4c6422ea780d745d04 100644 (file)
@@ -101,52 +101,6 @@ int rgw_init_ioctx(const DoutPrefixProvider *dpp,
   return 0;
 }
 
-void rgw_shard_name(const string& prefix, unsigned max_shards, const string& key, string& name, int *shard_id)
-{
-  uint32_t val = ceph_str_hash_linux(key.c_str(), key.size());
-  char buf[16];
-  if (shard_id) {
-    *shard_id = val % max_shards;
-  }
-  snprintf(buf, sizeof(buf), "%u", (unsigned)(val % max_shards));
-  name = prefix + buf;
-}
-
-void rgw_shard_name(const string& prefix, unsigned max_shards, const string& section, const string& key, string& name)
-{
-  uint32_t val = ceph_str_hash_linux(key.c_str(), key.size());
-  val ^= ceph_str_hash_linux(section.c_str(), section.size());
-  char buf[16];
-  snprintf(buf, sizeof(buf), "%u", (unsigned)(val % max_shards));
-  name = prefix + buf;
-}
-
-void rgw_shard_name(const string& prefix, unsigned shard_id, string& name)
-{
-  char buf[16];
-  snprintf(buf, sizeof(buf), "%u", shard_id);
-  name = prefix + buf;
-}
-
-int rgw_parse_list_of_flags(struct rgw_name_to_flag *mapping,
-                           const string& str, uint32_t *perm)
-{
-  list<string> strs;
-  get_str_list(str, strs);
-  list<string>::iterator iter;
-  uint32_t v = 0;
-  for (iter = strs.begin(); iter != strs.end(); ++iter) {
-    string& s = *iter;
-    for (int i = 0; mapping[i].type_name; i++) {
-      if (s.compare(mapping[i].type_name) == 0)
-        v |= mapping[i].flag;
-    }
-  }
-
-  *perm = v;
-  return 0;
-}
-
 int rgw_put_system_obj(const DoutPrefixProvider *dpp, 
                        RGWSysObjectCtx& obj_ctx, const rgw_pool& pool, const string& oid, bufferlist& data, bool exclusive,
                        RGWObjVersionTracker *objv_tracker, real_time set_mtime, optional_yield y, map<string, bufferlist> *pattrs)
index b842916fd876781ad0b970402ef81c0c0ec800c0..d2ae2548972c03f784f78f9fccad6d677591b595 100644 (file)
@@ -60,18 +60,6 @@ inline int rgw_shard_id(const std::string& key, int max_shards)
                        max_shards);
 }
 
-void rgw_shard_name(const std::string& prefix, unsigned max_shards, const std::string& key, std::string& name, int *shard_id);
-void rgw_shard_name(const std::string& prefix, unsigned max_shards, const std::string& section, const std::string& key, std::string& name);
-void rgw_shard_name(const std::string& prefix, unsigned shard_id, std::string& name);
-
-struct rgw_name_to_flag {
-  const char *type_name;
-  uint32_t flag;
-};
-
-int rgw_parse_list_of_flags(struct rgw_name_to_flag *mapping,
-                           const std::string& str, uint32_t *perm);
-
 int rgw_put_system_obj(const DoutPrefixProvider *dpp, RGWSysObjectCtx& obj_ctx, const rgw_pool& pool, const std::string& oid, bufferlist& data, bool exclusive,
                        RGWObjVersionTracker *objv_tracker, real_time set_mtime, optional_yield y, std::map<std::string, bufferlist> *pattrs = NULL);
 int rgw_get_system_obj(RGWSysObjectCtx& obj_ctx, const rgw_pool& pool, const std::string& key, bufferlist& bl,