]>
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"
8 using ceph::bufferlist
;
13 void ServiceMap::Daemon::encode(bufferlist
& bl
, uint64_t features
) const
15 ENCODE_START(2, 1, bl
);
17 encode(addr
, bl
, features
);
18 encode(start_epoch
, bl
);
19 encode(start_stamp
, bl
);
21 encode(task_status
, bl
);
25 void ServiceMap::Daemon::decode(bufferlist::const_iterator
& p
)
30 decode(start_epoch
, p
);
31 decode(start_stamp
, p
);
34 decode(task_status
, p
);
39 void ServiceMap::Daemon::dump(Formatter
*f
) const
41 f
->dump_unsigned("start_epoch", start_epoch
);
42 f
->dump_stream("start_stamp") << start_stamp
;
43 f
->dump_unsigned("gid", gid
);
44 f
->dump_string("addr", addr
.get_legacy_str());
45 f
->open_object_section("metadata");
46 for (auto& p
: metadata
) {
47 f
->dump_string(p
.first
.c_str(), p
.second
);
50 f
->open_object_section("task_status");
51 for (auto& p
: task_status
) {
52 f
->dump_string(p
.first
.c_str(), p
.second
);
57 void ServiceMap::Daemon::generate_test_instances(std::list
<Daemon
*>& ls
)
59 ls
.push_back(new Daemon
);
60 ls
.push_back(new Daemon
);
62 ls
.back()->metadata
["this"] = "that";
63 ls
.back()->task_status
["task1"] = "running";
68 void ServiceMap::Service::encode(bufferlist
& bl
, uint64_t features
) const
70 ENCODE_START(1, 1, bl
);
71 encode(daemons
, bl
, features
);
76 void ServiceMap::Service::decode(bufferlist::const_iterator
& p
)
84 void ServiceMap::Service::dump(Formatter
*f
) const
86 f
->open_object_section("daemons");
87 f
->dump_string("summary", summary
);
88 for (auto& p
: daemons
) {
89 f
->dump_object(p
.first
.c_str(), p
.second
);
94 void ServiceMap::Service::generate_test_instances(std::list
<Service
*>& ls
)
96 ls
.push_back(new Service
);
97 ls
.push_back(new Service
);
98 ls
.back()->daemons
["one"].gid
= 1;
99 ls
.back()->daemons
["two"].gid
= 2;
104 void ServiceMap::encode(bufferlist
& bl
, uint64_t features
) const
106 ENCODE_START(1, 1, bl
);
108 encode(modified
, bl
);
109 encode(services
, bl
, features
);
113 void ServiceMap::decode(bufferlist::const_iterator
& p
)
122 void ServiceMap::dump(Formatter
*f
) const
124 f
->dump_unsigned("epoch", epoch
);
125 f
->dump_stream("modified") << modified
;
126 f
->open_object_section("services");
127 for (auto& p
: services
) {
128 f
->dump_object(p
.first
.c_str(), p
.second
);
133 void ServiceMap::generate_test_instances(std::list
<ServiceMap
*>& ls
)
135 ls
.push_back(new ServiceMap
);
136 ls
.push_back(new ServiceMap
);
137 ls
.back()->epoch
= 123;
138 ls
.back()->services
["rgw"].daemons
["one"].gid
= 123;
139 ls
.back()->services
["rgw"].daemons
["two"].gid
= 344;
140 ls
.back()->services
["iscsi"].daemons
["foo"].gid
= 3222;