]> git.proxmox.com Git - ceph.git/blame - ceph/src/common/options/build_options.cc
import ceph quincy 17.2.4
[ceph.git] / ceph / src / common / options / build_options.cc
CommitLineData
20effc67
TL
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab
3
4#include "build_options.h"
5
6#include <algorithm>
7#include <cstring>
8
9std::vector<Option> get_global_options();
10std::vector<Option> get_mgr_options();
11std::vector<Option> get_mon_options();
12std::vector<Option> get_crimson_options();
13std::vector<Option> get_osd_options();
14std::vector<Option> get_rgw_options();
15std::vector<Option> get_rbd_options();
16std::vector<Option> get_rbd_mirror_options();
17std::vector<Option> get_immutable_object_cache_options();
18std::vector<Option> get_mds_options();
19std::vector<Option> get_mds_client_options();
20std::vector<Option> get_cephfs_mirror_options();
2a845540 21std::vector<Option> get_ceph_exporter_options();
20effc67
TL
22
23std::vector<Option> build_options()
24{
25 std::vector<Option> result = get_global_options();
26
27 auto ingest = [&result](std::vector<Option>&& options, const char* svc) {
28 for (auto &o : options) {
29 if (std::none_of(o.services.begin(), o.services.end(),
30 [svc](const char* known_svc) {
31 return std::strcmp(known_svc, svc) == 0;
32 })) {
33 o.add_service(svc);
34 }
35 result.push_back(std::move(o));
36 }
37 };
38
39 ingest(get_crimson_options(), "osd");
40 ingest(get_mgr_options(), "mgr");
41 ingest(get_mon_options(), "mon");
42 ingest(get_osd_options(), "osd");
43 ingest(get_rgw_options(), "rgw");
44 ingest(get_rbd_options(), "rbd");
45 ingest(get_rbd_mirror_options(), "rbd-mirror");
46 ingest(get_immutable_object_cache_options(), "immutable-object-cache");
47 ingest(get_mds_options(), "mds");
48 ingest(get_mds_client_options(), "mds_client");
49 ingest(get_cephfs_mirror_options(), "cephfs-mirror");
2a845540 50 ingest(get_ceph_exporter_options(), "ceph-exporter");
20effc67
TL
51
52 return result;
53}