std::scoped_lock locker(m_lock);
int r = connect(g_ceph_context->_conf->name.to_str(),
- g_ceph_context->_conf->cluster, &m_cluster);
+ g_ceph_context->_conf->cluster, &m_cluster, "", "", m_args);
if (r < 0) {
m_init_failed = true;
on_finish->complete(r);
namespace mirror {
int connect(std::string_view client_name, std::string_view cluster_name,
- RadosRef *cluster, std::string_view mon_host, std::string_view cephx_key) {
+ RadosRef *cluster, std::string_view mon_host, std::string_view cephx_key,
+ std::vector<const char *> args) {
dout(20) << ": connecting to cluster=" << cluster_name << ", client=" << client_name
<< ", mon_host=" << mon_host << dendl;
cct->_conf.parse_env(cct->get_module_type());
- std::vector<const char*> args;
- r = cct->_conf.parse_argv(args);
- if (r < 0) {
- derr << ": could not parse environment: " << cpp_strerror(r) << dendl;
- cct->put();
- return r;
+ if (!args.empty()) {
+ r = cct->_conf.parse_argv(args);
+ if (r < 0) {
+ derr << ": could not parse command line args: " << cpp_strerror(r) << dendl;
+ cct->put();
+ return r;
+ }
}
cct->_conf.parse_env(cct->get_module_type());
}
}
+ dout(10) << ": using mon addr=" << cct->_conf.get_val<std::string>("mon_host") << dendl;
+
cluster->reset(new librados::Rados());
r = (*cluster)->init_with_context(cct);
namespace mirror {
int connect(std::string_view client_name, std::string_view cluster_name,
- RadosRef *cluster, std::string_view mon_host={}, std::string_view cephx_key={});
+ RadosRef *cluster, std::string_view mon_host={}, std::string_view cephx_key={},
+ std::vector<const char *> args={});
int mount(RadosRef cluster, const Filesystem &filesystem, bool cross_check_fscid,
MountRef *mount);
void usage() {
std::cout << "usage: cephfs-mirror [options...]" << std::endl;
std::cout << "options:\n";
- std::cout << " --log-file=<logfile> file to log debug output\n";
+ std::cout << " --mon-host monaddress[:port] connect to specified monitor\n";
+ std::cout << " --keyring=<path> path to keyring for local cluster\n";
+ std::cout << " --log-file=<logfile> file to log debug output\n";
std::cout << " --debug-cephfs-mirror=<log-level>/<memory-level> set cephfs-mirror debug level\n";
generic_server_usage();
}