summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-06-24 20:41:15 -0700
committerSage Weil <sage@inktank.com>2013-06-24 20:41:15 -0700
commit37a20174fd22a79938ba9c93046e8830f4a3306f (patch)
treead6d302586850b56c6c4f51c792603c3f6ab262c
parent3791a1e55828ba541f9d3e8e3df0da8e79c375f9 (diff)
parent9ae0ec83dabe37ac15e5165559debdfef7a5f91d (diff)
downloadceph-37a20174fd22a79938ba9c93046e8830f4a3306f.tar.gz
Merge remote-tracking branch 'gh/next'
-rw-r--r--README3
-rw-r--r--src/common/pick_address.cc24
-rw-r--r--src/init-radosgw.sysv2
-rw-r--r--src/mon/AuthMonitor.cc8
-rw-r--r--src/mon/Elector.cc1
-rw-r--r--src/mon/Monitor.cc1
6 files changed, 34 insertions, 5 deletions
diff --git a/README b/README
index 2ac68504d87..640b7f8c729 100644
--- a/README
+++ b/README
@@ -126,7 +126,8 @@ To build the source code, you must install the following:
- libleveldb-dev
- libsnappy-dev
- libcurl4-gnutls-dev
+- python-argparse
For example:
- $ apt-get install automake autoconf pkg-config gcc g++ make libboost-dev libedit-dev libssl-dev libtool libfcgi libfcgi-dev libfuse-dev linux-kernel-headers libcrypto++-dev libaio-dev libgoogle-perftools-dev libkeyutils-dev uuid-dev libatomic-ops-dev libboost-program-options-dev libboost-thread-dev libexpat1-dev libleveldb-dev libsnappy-dev libcurl4-gnutls-dev
+ $ apt-get install automake autoconf pkg-config gcc g++ make libboost-dev libedit-dev libssl-dev libtool libfcgi libfcgi-dev libfuse-dev linux-kernel-headers libcrypto++-dev libaio-dev libgoogle-perftools-dev libkeyutils-dev uuid-dev libatomic-ops-dev libboost-program-options-dev libboost-thread-dev libexpat1-dev libleveldb-dev libsnappy-dev libcurl4-gnutls-dev python-argparse
diff --git a/src/common/pick_address.cc b/src/common/pick_address.cc
index 90327666ad5..ff036c61360 100644
--- a/src/common/pick_address.cc
+++ b/src/common/pick_address.cc
@@ -48,6 +48,24 @@ static const struct sockaddr *find_ip_in_subnet_list(CephContext *cct,
return NULL;
}
+// observe this change
+struct Observer : public md_config_obs_t {
+ const char *conf_var;
+ Observer(const char *c) : conf_var(c) {}
+
+ const char** get_tracked_conf_keys() const {
+ static const char *foo[] = {
+ conf_var,
+ NULL
+ };
+ return foo;
+ }
+ void handle_conf_change(const struct md_config_t *conf,
+ const std::set <std::string> &changed) {
+ // do nothing.
+ }
+};
+
static void fill_in_one_address(CephContext *cct,
const struct ifaddrs *ifa,
const string networks,
@@ -75,8 +93,14 @@ static void fill_in_one_address(CephContext *cct,
exit(1);
}
+ Observer obs(conf_var);
+
+ cct->_conf->add_observer(&obs);
+
cct->_conf->set_val_or_die(conf_var, buf);
cct->_conf->apply_changes(NULL);
+
+ cct->_conf->remove_observer(&obs);
}
void pick_addresses(CephContext *cct, int needs)
diff --git a/src/init-radosgw.sysv b/src/init-radosgw.sysv
index da80ae19be8..8a47a07a9a9 100644
--- a/src/init-radosgw.sysv
+++ b/src/init-radosgw.sysv
@@ -1,4 +1,4 @@
-#! /bin/bash -x
+#! /bin/bash
### BEGIN INIT INFO
# Provides: radosgw
# Required-Start: $remote_fs $named $network $time
diff --git a/src/mon/AuthMonitor.cc b/src/mon/AuthMonitor.cc
index 4dbdd3a11b4..9901dab7def 100644
--- a/src/mon/AuthMonitor.cc
+++ b/src/mon/AuthMonitor.cc
@@ -95,6 +95,11 @@ void AuthMonitor::create_initial()
{
dout(10) << "create_initial -- creating initial map" << dendl;
+ // initialize rotating keys
+ last_rotating_ver = 0;
+ check_rotate();
+ assert(pending_auth.size() == 1);
+
KeyRing keyring;
bufferlist bl;
int ret = mon->store->get("mkfs", "keyring", bl);
@@ -110,9 +115,6 @@ void AuthMonitor::create_initial()
inc.inc_type = GLOBAL_ID;
inc.max_global_id = max_global_id;
pending_auth.push_back(inc);
-
- // initalize rotating keys, too
- check_rotate();
}
void AuthMonitor::update_from_paxos(bool *need_bootstrap)
diff --git a/src/mon/Elector.cc b/src/mon/Elector.cc
index b3db1afab3c..7172510d807 100644
--- a/src/mon/Elector.cc
+++ b/src/mon/Elector.cc
@@ -346,6 +346,7 @@ void Elector::dispatch(Message *m)
t.put("monmap", "last_committed", mon->monmap->epoch);
mon->store->apply_transaction(t);
//mon->monmon()->paxos->stash_latest(mon->monmap->epoch, em->monmap_bl);
+ cancel_timer();
mon->bootstrap();
m->put();
delete peermap;
diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc
index cf36a09a5cb..3691fd0b5cd 100644
--- a/src/mon/Monitor.cc
+++ b/src/mon/Monitor.cc
@@ -715,6 +715,7 @@ void Monitor::reset()
{
dout(10) << "reset" << dendl;
+ cancel_probe_timeout();
timecheck_finish();
leader_since = utime_t();