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;
}
} // namespace ggate