]>
git.proxmox.com Git - ceph.git/blob - ceph/src/mgr/ServiceMap.cc
1 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2 // vim: ts=8 sw=2 smarttab
4 #include "mgr/ServiceMap.h"
6 #include "common/Formatter.h"
10 void ServiceMap::Daemon::encode(bufferlist
& bl
, uint64_t features
) const
12 ENCODE_START(1, 1, bl
);
14 ::encode(addr
, bl
, features
);
15 ::encode(start_epoch
, bl
);
16 ::encode(start_stamp
, bl
);
17 ::encode(metadata
, bl
);
21 void ServiceMap::Daemon::decode(bufferlist::iterator
& p
)
26 ::decode(start_epoch
, p
);
27 ::decode(start_stamp
, p
);
28 ::decode(metadata
, p
);
32 void ServiceMap::Daemon::dump(Formatter
*f
) const
34 f
->dump_unsigned("start_epoch", start_epoch
);
35 f
->dump_stream("start_stamp") << start_stamp
;
36 f
->dump_unsigned("gid", gid
);
37 f
->dump_stream("addr") << addr
;
38 f
->open_object_section("metadata");
39 for (auto& p
: metadata
) {
40 f
->dump_string(p
.first
.c_str(), p
.second
);
45 void ServiceMap::Daemon::generate_test_instances(std::list
<Daemon
*>& ls
)
47 ls
.push_back(new Daemon
);
48 ls
.push_back(new Daemon
);
50 ls
.back()->metadata
["this"] = "that";
55 void ServiceMap::Service::encode(bufferlist
& bl
, uint64_t features
) const
57 ENCODE_START(1, 1, bl
);
58 ::encode(daemons
, bl
, features
);
59 ::encode(summary
, bl
);
63 void ServiceMap::Service::decode(bufferlist::iterator
& p
)
71 void ServiceMap::Service::dump(Formatter
*f
) const
73 f
->open_object_section("daemons");
74 f
->dump_string("summary", summary
);
75 for (auto& p
: daemons
) {
76 f
->dump_object(p
.first
.c_str(), p
.second
);
81 void ServiceMap::Service::generate_test_instances(std::list
<Service
*>& ls
)
83 ls
.push_back(new Service
);
84 ls
.push_back(new Service
);
85 ls
.back()->daemons
["one"].gid
= 1;
86 ls
.back()->daemons
["two"].gid
= 2;
91 void ServiceMap::encode(bufferlist
& bl
, uint64_t features
) const
93 ENCODE_START(1, 1, bl
);
95 ::encode(modified
, bl
);
96 ::encode(services
, bl
, features
);
100 void ServiceMap::decode(bufferlist::iterator
& p
)
104 ::decode(modified
, p
);
105 ::decode(services
, p
);
109 void ServiceMap::dump(Formatter
*f
) const
111 f
->dump_unsigned("epoch", epoch
);
112 f
->dump_stream("modified") << modified
;
113 f
->open_object_section("services");
114 for (auto& p
: services
) {
115 f
->dump_object(p
.first
.c_str(), p
.second
);
120 void ServiceMap::generate_test_instances(std::list
<ServiceMap
*>& ls
)
122 ls
.push_back(new ServiceMap
);
123 ls
.push_back(new ServiceMap
);
124 ls
.back()->epoch
= 123;
125 ls
.back()->services
["rgw"].daemons
["one"].gid
= 123;
126 ls
.back()->services
["rgw"].daemons
["two"].gid
= 344;
127 ls
.back()->services
["iscsi"].daemons
["foo"].gid
= 3222;