int CrushWrapper::remove_item(CephContext *cct, int item, bool unlink_only)
{
- if (choose_args.size() > 0) {
- ldout(cct, 1) << "remove_item not implemented when choose_args is not empty" << dendl;
- return -EDOM;
- }
-
ldout(cct, 5) << "remove_item " << item << (unlink_only ? " unlink_only":"") << dendl;
int ret = -ENOENT;
int CrushWrapper::insert_item(CephContext *cct, int item, float weight, string name,
const map<string,string>& loc) // typename -> bucketname
{
- if (choose_args.size() > 0) {
- ldout(cct, 1) << "insert_item not implemented when choose_args is not empty" << dendl;
- return -EDOM;
- }
-
ldout(cct, 5) << "insert_item item " << item << " weight " << weight
<< " name " << name << " loc " << loc << dendl;
int CrushWrapper::move_bucket(CephContext *cct, int id, const map<string,string>& loc)
{
- if (choose_args.size() > 0) {
- ldout(cct, 1) << "move_bucket not implemented when choose_args is not empty" << dendl;
- return -EDOM;
- }
-
// sorry this only works for buckets
if (id >= 0)
return -EINVAL;
int CrushWrapper::link_bucket(CephContext *cct, int id, const map<string,string>& loc)
{
- if (choose_args.size() > 0) {
- ldout(cct, 1) << "link_bucket not implemented when choose_args is not empty" << dendl;
- return -EDOM;
- }
-
// sorry this only works for buckets
if (id >= 0)
return -EINVAL;
int CrushWrapper::create_or_move_item(CephContext *cct, int item, float weight, string name,
const map<string,string>& loc) // typename -> bucketname
{
- if (choose_args.size() > 0) {
- ldout(cct, 1) << "create_or_move_item not implemented when choose_args is not empty" << dendl;
- return -EDOM;
- }
-
int ret = 0;
int old_iweight;
int CrushWrapper::update_item(CephContext *cct, int item, float weight, string name,
const map<string,string>& loc) // typename -> bucketname
{
- if (choose_args.size() > 0) {
- ldout(cct, 1) << "update_item not implemented when choose_args is not empty" << dendl;
- return -EDOM;
- }
-
ldout(cct, 5) << "update_item item " << item << " weight " << weight
<< " name " << name << " loc " << loc << dendl;
int ret = 0;
delete c;
}
-TEST(CrushWrapper, choose_args_disabled) {
- auto *c = new CrushWrapper;
- c->choose_args[0] = crush_choose_arg_map();
-
- map<string,string> loc;
- ASSERT_EQ(-EDOM, c->remove_item(g_ceph_context, 0, true));
- ASSERT_EQ(-EDOM, c->insert_item(g_ceph_context, 0, 0.0, "", loc));
- ASSERT_EQ(-EDOM, c->move_bucket(g_ceph_context, 0, loc));
- ASSERT_EQ(-EDOM, c->link_bucket(g_ceph_context, 0, loc));
- ASSERT_EQ(-EDOM, c->create_or_move_item(g_ceph_context, 0, 0.0, "", loc));
-
- delete c;
-}
-
TEST(CrushWrapper, remove_item) {
auto *c = new CrushWrapper;