namespace at = argument_types;
namespace po = boost::program_options;
+#if defined(__FreeBSD__)
static int call_ggate_cmd(const po::variables_map &vm,
const std::vector<std::string> &args,
const std::vector<std::string> &ceph_global_args) {
return 0;
}
+#endif
int execute_list(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
#if !defined(__FreeBSD__)
std::cerr << "rbd: ggate is only supported on FreeBSD" << std::endl;
return -EOPNOTSUPP;
-#endif
+#else
std::vector<std::string> args;
args.push_back("list");
}
return call_ggate_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_map(const po::variables_map &vm,
#if !defined(__FreeBSD__)
std::cerr << "rbd: ggate is only supported on FreeBSD" << std::endl;
return -EOPNOTSUPP;
-#endif
+#else
std::vector<std::string> args;
args.push_back("map");
}
return call_ggate_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_unmap(const po::variables_map &vm,
#if !defined(__FreeBSD__)
std::cerr << "rbd: ggate is only supported on FreeBSD" << std::endl;
return -EOPNOTSUPP;
-#endif
+#else
std::string device_name = utils::get_positional_argument(vm, 0);
if (!boost::starts_with(device_name, "/dev/")) {
device_name.clear();
}
return call_ggate_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_attach(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if !defined(__FreeBSD__)
+ std::cerr << "rbd: ggate is only supported on FreeBSD" << std::endl;
+#else
+ std::cerr << "rbd: ggate attach command not supported" << std::endl;
+#endif
return -EOPNOTSUPP;
}
int execute_detach(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if !defined(__FreeBSD__)
+ std::cerr << "rbd: ggate is only supported on FreeBSD" << std::endl;
+#else
+ std::cerr << "rbd: ggate detach command not supported" << std::endl;
+#endif
return -EOPNOTSUPP;
}
int execute_attach(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if defined(WITH_KRBD)
+ std::cerr << "rbd: krbd does not support attach" << std::endl;
+#else
+ std::cerr << "rbd: kernel device is not supported" << std::endl;
+#endif
return -EOPNOTSUPP;
}
int execute_detach(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if defined(WITH_KRBD)
+ std::cerr << "rbd: krbd does not support detach" << std::endl;
+#else
+ std::cerr << "rbd: kernel device is not supported" << std::endl;
+#endif
return -EOPNOTSUPP;
}
static int call_nbd_cmd(const po::variables_map &vm,
const std::vector<std::string> &args,
const std::vector<std::string> &ceph_global_init_args) {
- #ifdef _WIN32
+ #if defined(__FreeBSD__) || defined(_WIN32)
std::cerr << "rbd: nbd device is not supported" << std::endl;
return -EOPNOTSUPP;
#else
#endif
}
+#if !defined(__FreeBSD__) && !defined(_WIN32)
int get_image_or_snap_spec(const po::variables_map &vm, std::string *spec) {
size_t arg_index = 0;
std::string pool_name;
return 0;
}
+#endif
int execute_list(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
#if defined(__FreeBSD__) || defined(_WIN32)
std::cerr << "rbd: nbd device is not supported" << std::endl;
return -EOPNOTSUPP;
-#endif
+#else
std::vector<std::string> args;
args.push_back("list-mapped");
}
return call_nbd_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_attach(const po::variables_map &vm,
#if defined(__FreeBSD__) || defined(_WIN32)
std::cerr << "rbd: nbd device is not supported" << std::endl;
return -EOPNOTSUPP;
-#endif
+#else
std::vector<std::string> args;
std::string device_path;
}
return call_nbd_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_detach(const po::variables_map &vm,
#if defined(__FreeBSD__) || defined(_WIN32)
std::cerr << "rbd: nbd device is not supported" << std::endl;
return -EOPNOTSUPP;
-#endif
+#else
std::string device_name = utils::get_positional_argument(vm, 0);
if (!boost::starts_with(device_name, "/dev/")) {
device_name.clear();
}
return call_nbd_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_map(const po::variables_map &vm,
#if defined(__FreeBSD__) || defined(_WIN32)
std::cerr << "rbd: nbd device is not supported" << std::endl;
return -EOPNOTSUPP;
-#endif
+#else
std::vector<std::string> args;
args.push_back("map");
}
return call_nbd_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_unmap(const po::variables_map &vm,
#if defined(__FreeBSD__) || defined(_WIN32)
std::cerr << "rbd: nbd device is not supported" << std::endl;
return -EOPNOTSUPP;
-#endif
+#else
std::string device_name = utils::get_positional_argument(vm, 0);
if (!boost::starts_with(device_name, "/dev/")) {
device_name.clear();
}
return call_nbd_cmd(vm, args, ceph_global_init_args);
+#endif
}
void get_list_arguments_deprecated(po::options_description *positional,
namespace at = argument_types;
namespace po = boost::program_options;
+#if defined(_WIN32)
static int call_wnbd_cmd(const po::variables_map &vm,
const std::vector<std::string> &args,
const std::vector<std::string> &ceph_global_init_args) {
return 0;
}
+#endif
int execute_list(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if !defined(_WIN32)
+ std::cerr << "rbd: wnbd is only supported on Windows" << std::endl;
+ return -EOPNOTSUPP;
+#else
std::vector<std::string> args;
args.push_back("list");
}
return call_wnbd_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_map(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if !defined(_WIN32)
+ std::cerr << "rbd: wnbd is only supported on Windows" << std::endl;
+ return -EOPNOTSUPP;
+#else
std::vector<std::string> args;
args.push_back("map");
}
return call_wnbd_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_unmap(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if !defined(_WIN32)
+ std::cerr << "rbd: wnbd is only supported on Windows" << std::endl;
+ return -EOPNOTSUPP;
+#else
std::string device_name = utils::get_positional_argument(vm, 0);
std::string image_name;
}
return call_wnbd_cmd(vm, args, ceph_global_init_args);
+#endif
}
int execute_attach(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if !defined(_WIN32)
+ std::cerr << "rbd: wnbd is only supported on Windows" << std::endl;
+#else
+ std::cerr << "rbd: wnbd attach command not supported" << std::endl;
+#endif
return -EOPNOTSUPP;
}
int execute_detach(const po::variables_map &vm,
const std::vector<std::string> &ceph_global_init_args) {
+#if !defined(_WIN32)
+ std::cerr << "rbd: wnbd is only supported on Windows" << std::endl;
+#else
+ std::cerr << "rbd: wnbd detach command not supported" << std::endl;
+#endif
return -EOPNOTSUPP;
}