* Remove monitor from the monmap * * @param name Monitor name (i.e., 'foo' in 'mon.foo') */
| 240 | * @param name Monitor name (i.e., 'foo' in 'mon.foo') |
| 241 | */ |
| 242 | void remove(const std::string &name) { |
| 243 | // this must match what we do in ConnectionTracker::notify_rank_removed |
| 244 | ceph_assert(mon_info.count(name)); |
| 245 | int rank = get_rank(name); |
| 246 | mon_info.erase(name); |
| 247 | disallowed_leaders.erase(name); |
| 248 | ceph_assert(mon_info.count(name) == 0); |
| 249 | if (rank >= 0 ) { |
| 250 | removed_ranks.insert(rank); |
| 251 | } |
| 252 | if (get_required_features().contains_all( |
| 253 | ceph::features::mon::FEATURE_NAUTILUS)) { |
| 254 | ranks.erase(std::find(ranks.begin(), ranks.end(), name)); |
| 255 | ceph_assert(ranks.size() == mon_info.size()); |
| 256 | } else { |
| 257 | calc_legacy_ranks(); |
| 258 | } |
| 259 | calc_addr_mons(); |
| 260 | } |
| 261 | |
| 262 | /** |
| 263 | * Rename monitor from @p oldname to @p newname |
no test coverage detected