1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 * Ceph - scalable distributed file system
6 * Copyright (C) 2016 John Spray <john.spray@redhat.com>
8 * This is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License version 2.1, as published by the Free Software
11 * Foundation. See file COPYING.
15 #ifndef MGR_STANDBY_H_
16 #define MGR_STANDBY_H_
18 #include "auth/Auth.h"
19 #include "common/Finisher.h"
20 #include "common/Timer.h"
21 #include "common/LogClient.h"
23 #include "client/Client.h"
24 #include "mon/MonClient.h"
25 #include "osdc/Objecter.h"
26 #include "PyModuleRegistry.h"
32 class MgrStandby
: public Dispatcher
,
33 public md_config_obs_t
{
35 // config observer bits
36 const char** get_tracked_conf_keys() const override
;
37 void handle_conf_change(const struct md_config_t
*conf
,
38 const std::set
<std::string
> &changed
) override
;
42 std::unique_ptr
<Messenger
> client_messenger
;
47 LogChannelRef clog
, audit_clog
;
52 PyModuleRegistry py_module_registry
;
53 std::shared_ptr
<Mgr
> active_mgr
;
56 const char **orig_argv
;
58 std::string
state_str();
60 void handle_mgr_map(MMgrMap
*m
);
61 void _update_log_config();
64 bool available_in_map
;
67 MgrStandby(int argc
, const char **argv
);
68 ~MgrStandby() override
;
70 bool ms_dispatch(Message
*m
) override
;
71 bool ms_handle_reset(Connection
*con
) override
{ return false; }
72 void ms_handle_remote_reset(Connection
*con
) override
{}
73 bool ms_get_authorizer(int dest_type
, AuthAuthorizer
**authorizer
,
74 bool force_new
) override
;
75 bool ms_handle_refused(Connection
*con
) override
;
80 int main(vector
<const char *> args
);
81 void handle_signal(int signum
);