]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librados: deprecate calls that take auid
authorSage Weil <sage@redhat.com>
Sat, 11 Aug 2018 18:55:03 +0000 (13:55 -0500)
committerSage Weil <sage@redhat.com>
Fri, 31 Aug 2018 14:26:19 +0000 (09:26 -0500)
Return EOPNOTSUPP for auid-specific calls, or EINVAL for ones that get a non-default
auid value.

Signed-off-by: Sage Weil <sage@redhat.com>
src/include/rados/librados.hpp
src/librados/IoCtxImpl.cc
src/librados/IoCtxImpl.h
src/librados/RadosClient.cc
src/librados/RadosClient.h
src/librados/librados.cc
src/test/librados/pool.cc
src/tools/rados/rados.cc

index b14154eff4c3eff7e44bf0f7e4dfb6982ee8bbee..da44dd2089545202bc757534d666403cc8583cd5 100644 (file)
@@ -1337,11 +1337,13 @@ namespace librados
       __attribute__ ((deprecated));
     int pool_create(const char *name, uint64_t auid, uint8_t crush_rule)
       __attribute__ ((deprecated));
+    int pool_create_with_rule(const char *name, uint8_t crush_rule);
     int pool_create_async(const char *name, PoolAsyncCompletion *c);
     int pool_create_async(const char *name, uint64_t auid, PoolAsyncCompletion *c)
       __attribute__ ((deprecated));
     int pool_create_async(const char *name, uint64_t auid, uint8_t crush_rule, PoolAsyncCompletion *c)
       __attribute__ ((deprecated));
+    int pool_create_with_rule_async(const char *name, uint8_t crush_rule, PoolAsyncCompletion *c);
     int pool_get_base_tier(int64_t pool, int64_t* base_tier);
     int pool_delete(const char *name);
     int pool_delete_async(const char *name, PoolAsyncCompletion *c);
index c148eb18f7bc1aa080cde76d89522df0a4b05964..41ef8f547aa065a88fb5530a769ed65a51810f37 100644 (file)
@@ -500,32 +500,6 @@ void librados::IoCtxImpl::aio_selfmanaged_snap_remove(uint64_t snapid,
   objecter->delete_selfmanaged_snap(poolid, snapid, onfinish);
 }
 
-int librados::IoCtxImpl::pool_change_auid(unsigned long long auid)
-{
-  int reply;
-
-  Mutex mylock("IoCtxImpl::pool_change_auid::mylock");
-  Cond cond;
-  bool done;
-  objecter->change_pool_auid(poolid,
-                            new C_SafeCond(&mylock, &cond, &done, &reply),
-                            auid);
-
-  mylock.Lock();
-  while (!done) cond.Wait(mylock);
-  mylock.Unlock();
-  return reply;
-}
-
-int librados::IoCtxImpl::pool_change_auid_async(unsigned long long auid,
-                                                 PoolAsyncCompletionImpl *c)
-{
-  objecter->change_pool_auid(poolid,
-                            new C_PoolAsync_Safe(c),
-                            auid);
-  return 0;
-}
-
 int librados::IoCtxImpl::snap_list(vector<uint64_t> *snaps)
 {
   return objecter->pool_snap_list(poolid, snaps);
index b769fcd178cb821c9e1b5fe5aa985cfb7b9dbfdb..b0848c09db3c8e7713df81d409cfdbb9780681e2 100644 (file)
@@ -226,9 +226,6 @@ struct librados::IoCtxImpl {
                  const char *name);
   int aio_cancel(AioCompletionImpl *c);
 
-  int pool_change_auid(unsigned long long auid);
-  int pool_change_auid_async(unsigned long long auid, PoolAsyncCompletionImpl *c);
-
   int hit_set_list(uint32_t hash, AioCompletionImpl *c,
                   std::list< std::pair<time_t, time_t> > *pls);
   int hit_set_get(uint32_t hash, AioCompletionImpl *c, time_t stamp,
index 6ad5d3780a02755b728e3fe3f93540f20b751769..51d3b9f2cebbb61e4814f07fcb422e394d3c9655 100644 (file)
@@ -170,24 +170,6 @@ int librados::RadosClient::pool_required_alignment2(int64_t pool_id,
     });
 }
 
-int librados::RadosClient::pool_get_auid(uint64_t pool_id,
-                                        unsigned long long *auid)
-{
-  int r = wait_for_osdmap();
-  if (r < 0)
-    return r;
-  objecter->with_osdmap([&](const OSDMap& o) {
-      const pg_pool_t *pg = o.get_pg_pool(pool_id);
-      if (!pg) {
-       r = -ENOENT;
-      } else {
-       r = 0;
-       *auid = pg->auid;
-      }
-    });
-  return r;
-}
-
 int librados::RadosClient::pool_get_name(uint64_t pool_id, std::string *s, bool wait_latest_map)
 {
   int r = wait_for_osdmap();
@@ -704,7 +686,7 @@ bool librados::RadosClient::put() {
   return (refcnt == 0);
 }
  
-int librados::RadosClient::pool_create(string& name, unsigned long long auid,
+int librados::RadosClient::pool_create(string& name,
                                       int16_t crush_rule)
 {
   if (!name.length())
@@ -733,8 +715,8 @@ int librados::RadosClient::pool_create(string& name, unsigned long long auid,
   return reply;
 }
 
-int librados::RadosClient::pool_create_async(string& name, PoolAsyncCompletionImpl *c,
-                                            unsigned long long auid,
+int librados::RadosClient::pool_create_async(string& name,
+                                            PoolAsyncCompletionImpl *c,
                                             int16_t crush_rule)
 {
   int r = wait_for_osdmap();
index 676b9e6e95a4a72f8aac934860a6eebc5d7eca04..57ea9eb9e15ed28f19415dca0b367b0d17adf044 100644 (file)
@@ -113,8 +113,8 @@ public:
   int pool_requires_alignment2(int64_t pool_id, bool *requires);
   uint64_t pool_required_alignment(int64_t pool_id);
   int pool_required_alignment2(int64_t pool_id, uint64_t *alignment);
-  int pool_get_auid(uint64_t pool_id, unsigned long long *auid);
-  int pool_get_name(uint64_t pool_id, std::string *auid, bool wait_latest_map = false);
+  int pool_get_name(uint64_t pool_id, std::string *name,
+                   bool wait_latest_map = false);
 
   int pool_list(std::list<std::pair<int64_t, string> >& ls);
   int get_pool_stats(std::list<string>& ls, map<string,::pool_stat_t>& result);
@@ -127,8 +127,8 @@ public:
     b) the first ruleset in crush ruleset
     c) error out if no value find
   */
-  int pool_create(string& name, unsigned long long auid=0, int16_t crush_rule=-1);
-  int pool_create_async(string& name, PoolAsyncCompletionImpl *c, unsigned long long auid=0,
+  int pool_create(string& name, int16_t crush_rule=-1);
+  int pool_create_async(string& name, PoolAsyncCompletionImpl *c,
                        int16_t crush_rule=-1);
   int pool_get_base_tier(int64_t pool_id, int64_t* base_tier);
   int pool_delete(const char *name);
index 33ee1ba2c60087670416a8979bbb76e8b978893d..b341051432a2d9a81ca32a1e328b552e2ad02606 100644 (file)
@@ -1134,17 +1134,17 @@ void librados::IoCtx::dup(const IoCtx& rhs)
 
 int librados::IoCtx::set_auid(uint64_t auid_)
 {
-  return io_ctx_impl->pool_change_auid(auid_);
+  return -EOPNOTSUPP;
 }
 
 int librados::IoCtx::set_auid_async(uint64_t auid_, PoolAsyncCompletion *c)
 {
-  return io_ctx_impl->pool_change_auid_async(auid_, c->pc);
+  return -EOPNOTSUPP;
 }
 
 int librados::IoCtx::get_auid(uint64_t *auid_)
 {
-  return rados_ioctx_pool_get_auid(io_ctx_impl, auid_);
+  return -EOPNOTSUPP;
 }
 
 bool librados::IoCtx::pool_requires_alignment()
@@ -2422,14 +2422,26 @@ int librados::Rados::pool_create(const char *name)
 
 int librados::Rados::pool_create(const char *name, uint64_t auid)
 {
+  if (auid != CEPH_AUTH_UID_DEFAULT) {
+    return -EINVAL;
+  }
   string str(name);
-  return client->pool_create(str, auid);
+  return client->pool_create(str);
 }
 
 int librados::Rados::pool_create(const char *name, uint64_t auid, __u8 crush_rule)
+{
+  if (auid != CEPH_AUTH_UID_DEFAULT) {
+    return -EINVAL;
+  }
+  string str(name);
+  return client->pool_create(str, crush_rule);
+}
+
+int librados::Rados::pool_create_with_rule(const char *name, __u8 crush_rule)
 {
   string str(name);
-  return client->pool_create(str, auid, crush_rule);
+  return client->pool_create(str, crush_rule);
 }
 
 int librados::Rados::pool_create_async(const char *name, PoolAsyncCompletion *c)
@@ -2440,15 +2452,29 @@ int librados::Rados::pool_create_async(const char *name, PoolAsyncCompletion *c)
 
 int librados::Rados::pool_create_async(const char *name, uint64_t auid, PoolAsyncCompletion *c)
 {
+  if (auid != CEPH_AUTH_UID_DEFAULT) {
+    return -EINVAL;
+  }
   string str(name);
-  return client->pool_create_async(str, c->pc, auid);
+  return client->pool_create_async(str, c->pc);
 }
 
 int librados::Rados::pool_create_async(const char *name, uint64_t auid, __u8 crush_rule,
                                       PoolAsyncCompletion *c)
+{
+  if (auid != CEPH_AUTH_UID_DEFAULT) {
+    return -EINVAL;
+  }
+  string str(name);
+  return client->pool_create_async(str, c->pc, crush_rule);
+}
+
+int librados::Rados::pool_create_with_rule_async(
+  const char *name, __u8 crush_rule,
+  PoolAsyncCompletion *c)
 {
   string str(name);
-  return client->pool_create_async(str, c->pc, auid, crush_rule);
+  return client->pool_create_async(str, c->pc, crush_rule);
 }
 
 int librados::Rados::pool_get_base_tier(int64_t pool_id, int64_t* base_tier)
@@ -3908,7 +3934,12 @@ extern "C" int rados_pool_create_with_auid(rados_t cluster, const char *name,
   tracepoint(librados, rados_pool_create_with_auid_enter, cluster, name, auid);
   librados::RadosClient *radosp = (librados::RadosClient *)cluster;
   string sname(name);
-  int retval = radosp->pool_create(sname, auid);
+  int retval = 0;
+  if (auid != CEPH_AUTH_UID_DEFAULT) {
+    retval = -EINVAL;
+  } else {
+    retval = radosp->pool_create(sname);
+  }
   tracepoint(librados, rados_pool_create_with_auid_exit, retval);
   return retval;
 }
@@ -3919,7 +3950,7 @@ extern "C" int rados_pool_create_with_crush_rule(rados_t cluster, const char *na
   tracepoint(librados, rados_pool_create_with_crush_rule_enter, cluster, name, crush_rule_num);
   librados::RadosClient *radosp = (librados::RadosClient *)cluster;
   string sname(name);
-  int retval = radosp->pool_create(sname, 0, crush_rule_num);
+  int retval = radosp->pool_create(sname, crush_rule_num);
   tracepoint(librados, rados_pool_create_with_crush_rule_exit, retval);
   return retval;
 }
@@ -3930,7 +3961,12 @@ extern "C" int rados_pool_create_with_all(rados_t cluster, const char *name,
   tracepoint(librados, rados_pool_create_with_all_enter, cluster, name, auid, crush_rule_num);
   librados::RadosClient *radosp = (librados::RadosClient *)cluster;
   string sname(name);
-  int retval = radosp->pool_create(sname, auid, crush_rule_num);
+  int retval = 0;
+  if (auid != CEPH_AUTH_UID_DEFAULT) {
+    retval = -EINVAL;
+  } else {
+    retval = radosp->pool_create(sname, crush_rule_num);
+  }
   tracepoint(librados, rados_pool_create_with_all_exit, retval);
   return retval;
 }
@@ -3956,8 +3992,7 @@ extern "C" int rados_pool_delete(rados_t cluster, const char *pool_name)
 extern "C" int rados_ioctx_pool_set_auid(rados_ioctx_t io, uint64_t auid)
 {
   tracepoint(librados, rados_ioctx_pool_set_auid_enter, io, auid);
-  librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io;
-  int retval = ctx->pool_change_auid(auid);
+  int retval = -EOPNOTSUPP;
   tracepoint(librados, rados_ioctx_pool_set_auid_exit, retval);
   return retval;
 }
@@ -3965,8 +4000,7 @@ extern "C" int rados_ioctx_pool_set_auid(rados_ioctx_t io, uint64_t auid)
 extern "C" int rados_ioctx_pool_get_auid(rados_ioctx_t io, uint64_t *auid)
 {
   tracepoint(librados, rados_ioctx_pool_get_auid_enter, io);
-  librados::IoCtxImpl *ctx = (librados::IoCtxImpl *)io;
-  int retval = ctx->client->pool_get_auid(ctx->get_id(), (unsigned long long *)auid);
+  int retval = -EOPNOTSUPP;
   tracepoint(librados, rados_ioctx_pool_get_auid_exit, retval, *auid);
   return retval;
 }
index 5cda7edd20978e00e428a8db48a5da4b5a513783..74c89595bf12b54f2c12008f28a3f5e422d3d586 100644 (file)
@@ -98,16 +98,6 @@ TEST(LibRadosPools, PoolCreateWithCrushRule) {
                            pool2_name.c_str(), 0));
   ASSERT_EQ(0, rados_pool_delete(cluster, pool2_name.c_str()));
 
-  std::string pool3_name = get_temp_pool_name();
-  ASSERT_EQ(0, rados_pool_create_with_all(cluster, pool3_name.c_str(),
-                                         456ull, 0));
-  rados_ioctx_t ioctx;
-  ASSERT_EQ(0, rados_ioctx_create(cluster, pool3_name.c_str(), &ioctx));
-  uint64_t auid;
-  ASSERT_EQ(0, rados_ioctx_pool_get_auid(ioctx, &auid));
-  ASSERT_EQ(456ull, auid);
-  ASSERT_EQ(0, rados_pool_delete(cluster, pool3_name.c_str()));
-  rados_ioctx_destroy(ioctx);
   ASSERT_EQ(0, destroy_one_pool(pool_name, &cluster));
 }
 
index bd59ead47a0255050dcad4debc9c1ec333ec6ad7..89c58c48435f2b7e949bacefa09b1fa528cc54e9 100644 (file)
@@ -2125,7 +2125,7 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
   }
 
   if (create_pool) {
-    ret = rados.pool_create(pool_name, 0, 0);
+    ret = rados.pool_create(pool_name);
     if (ret < 0) {
       cerr << "error creating pool " << pool_name << ": "
           << cpp_strerror(ret) << std::endl;
@@ -3067,7 +3067,7 @@ static int rados_tool_common(const std::map < std::string, std::string > &opts,
        cerr << "using crush rule " << (int)crush_rule << std::endl;
       }
     }
-    ret = rados.pool_create(nargs[1], auid, crush_rule);
+    ret = rados.pool_create_with_rule(nargs[1], crush_rule);
     if (ret < 0) {
       cerr << "error creating pool " << nargs[1] << ": "
           << cpp_strerror(ret) << std::endl;