#include <seastar/util/log.hh>
#include "auth/AuthClientHandler.h"
-#include "auth/AuthMethodList.h"
-#include "auth/KeyRing.h"
#include "auth/RotatingKeyRing.h"
#include "crimson/auth/KeyRing.h"
}
}
-Client::Client(const EntityName& name,
- ceph::net::Messenger& messenger)
- : entity_name{name},
- auth_methods{create_auth_methods(entity_name.get_type())},
+Client::Client(ceph::net::Messenger& messenger)
+ // currently, crimson is OSD-only
+ : auth_methods{create_auth_methods(CEPH_ENTITY_TYPE_OSD)},
want_keys{CEPH_ENTITY_TYPE_MON |
CEPH_ENTITY_TYPE_OSD |
CEPH_ENTITY_TYPE_MGR},
Client::Client(Client&&) = default;
Client::~Client() = default;
+void Client::set_name(const EntityName& name)
+{
+ entity_name = name;
+ // should always be OSD, though
+ auth_methods = create_auth_methods(name.get_type());
+}
+
seastar::future<> Client::load_keyring()
{
if (!auth_methods.is_supported_auth(CEPH_AUTH_CEPHX)) {
class Connection;
class Client : public ceph::net::Dispatcher {
- const EntityName entity_name;
+ EntityName entity_name;
KeyRing keyring;
AuthMethodList auth_methods;
const uint32_t want_keys;
MonSub sub;
public:
- Client(const EntityName& name,
- ceph::net::Messenger& messenger);
+ Client(ceph::net::Messenger& messenger);
Client(Client&&);
~Client();
+ void set_name(const EntityName& name);
+
seastar::future<> load_keyring();
seastar::future<> build_initial_map();
seastar::future<> authenticate();
if (conf->ms_crc_header) {
msgr.set_crc_header();
}
- return seastar::do_with(MonClient{conf->name, msgr},
+ return seastar::do_with(MonClient{msgr},
[&msgr](auto& monc) {
+ monc.set_name(ceph::common::local_conf()->name);
return monc.build_initial_map().then([&monc] {
return monc.load_keyring();
}).then([&msgr, &monc] {