@@ -1338,6 +1338,49 @@ TEST(OSDCap, AllowProfile) {
13381338 {{" rbd" , " child_detach" , true , true , true }}, addr));
13391339 ASSERT_FALSE (cap.is_capable (" abc" , " " , {}, " rbd_header.ABC" , false , false ,
13401340 {{" rbd" , " other function" , true , true , true }}, addr));
1341+
1342+ cap.grants .clear ();
1343+ ASSERT_TRUE (cap.parse (" profile rbd pool pool1 namespace ns1" , nullptr ));
1344+ ASSERT_TRUE (cap.is_capable (" pool1" , " " , {}, " rbd_info" , false , false ,
1345+ {{" rbd" , " metadata_list" , true , false , true }},
1346+ addr));
1347+ ASSERT_TRUE (cap.is_capable (" pool1" , " ns1" , {}, " rbd_info" , false , false ,
1348+ {{" rbd" , " metadata_list" , true , false , true }},
1349+ addr));
1350+ ASSERT_FALSE (cap.is_capable (" pool1" , " ns2" , {}, " rbd_info" , false , false ,
1351+ {{" rbd" , " metadata_list" , true , false , true }},
1352+ addr));
1353+ ASSERT_FALSE (cap.is_capable (" pool2" , " " , {}, " rbd_info" , false , false ,
1354+ {{" rbd" , " metadata_list" , true , false , true }},
1355+ addr));
1356+ ASSERT_FALSE (cap.is_capable (" pool1" , " " , {}, " asdf" , false , false ,
1357+ {{" rbd" , " metadata_list" , true , false , true }},
1358+ addr));
1359+ ASSERT_FALSE (cap.is_capable (" pool1" , " " , {}, " rbd_info" , false , false ,
1360+ {{" rbd" , " other_method" , true , false , true }},
1361+ addr));
1362+
1363+ cap.grants .clear ();
1364+ ASSERT_TRUE (cap.parse (" profile rbd-read-only pool pool1 namespace ns1" ,
1365+ nullptr ));
1366+ ASSERT_TRUE (cap.is_capable (" pool1" , " " , {}, " rbd_info" , false , false ,
1367+ {{" rbd" , " metadata_list" , true , false , true }},
1368+ addr));
1369+ ASSERT_TRUE (cap.is_capable (" pool1" , " ns1" , {}, " rbd_info" , false , false ,
1370+ {{" rbd" , " metadata_list" , true , false , true }},
1371+ addr));
1372+ ASSERT_FALSE (cap.is_capable (" pool1" , " ns2" , {}, " rbd_info" , false , false ,
1373+ {{" rbd" , " metadata_list" , true , false , true }},
1374+ addr));
1375+ ASSERT_FALSE (cap.is_capable (" pool2" , " " , {}, " rbd_info" , false , false ,
1376+ {{" rbd" , " metadata_list" , true , false , true }},
1377+ addr));
1378+ ASSERT_FALSE (cap.is_capable (" pool1" , " " , {}, " asdf" , false , false ,
1379+ {{" rbd" , " metadata_list" , true , false , true }},
1380+ addr));
1381+ ASSERT_FALSE (cap.is_capable (" pool1" , " " , {}, " rbd_info" , false , false ,
1382+ {{" rbd" , " other_method" , true , false , true }},
1383+ addr));
13411384}
13421385
13431386TEST (OSDCap, network) {
0 commit comments