]> git.proxmox.com Git - ceph.git/blame - ceph/src/mgr/ServiceMap.cc
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / mgr / ServiceMap.cc
CommitLineData
224ce89b
WB
1// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
2// vim: ts=8 sw=2 smarttab
3
4#include "mgr/ServiceMap.h"
5
6#include "common/Formatter.h"
7
8// Daemon
9
10void ServiceMap::Daemon::encode(bufferlist& bl, uint64_t features) const
11{
12 ENCODE_START(1, 1, bl);
13 ::encode(gid, bl);
14 ::encode(addr, bl, features);
15 ::encode(start_epoch, bl);
16 ::encode(start_stamp, bl);
17 ::encode(metadata, bl);
18 ENCODE_FINISH(bl);
19}
20
21void ServiceMap::Daemon::decode(bufferlist::iterator& p)
22{
23 DECODE_START(1, p);
24 ::decode(gid, p);
25 ::decode(addr, p);
26 ::decode(start_epoch, p);
27 ::decode(start_stamp, p);
28 ::decode(metadata, p);
29 DECODE_FINISH(p);
30}
31
32void ServiceMap::Daemon::dump(Formatter *f) const
33{
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);
41 }
42 f->close_section();
43}
44
45void ServiceMap::Daemon::generate_test_instances(std::list<Daemon*>& ls)
46{
47 ls.push_back(new Daemon);
48 ls.push_back(new Daemon);
49 ls.back()->gid = 222;
50 ls.back()->metadata["this"] = "that";
51}
52
53// Service
54
55void ServiceMap::Service::encode(bufferlist& bl, uint64_t features) const
56{
57 ENCODE_START(1, 1, bl);
58 ::encode(daemons, bl, features);
59 ::encode(summary, bl);
60 ENCODE_FINISH(bl);
61}
62
63void ServiceMap::Service::decode(bufferlist::iterator& p)
64{
65 DECODE_START(1, p);
66 ::decode(daemons, p);
67 ::decode(summary, p);
68 DECODE_FINISH(p);
69}
70
71void ServiceMap::Service::dump(Formatter *f) const
72{
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);
77 }
78 f->close_section();
79}
80
81void ServiceMap::Service::generate_test_instances(std::list<Service*>& ls)
82{
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;
87}
88
89// ServiceMap
90
91void ServiceMap::encode(bufferlist& bl, uint64_t features) const
92{
93 ENCODE_START(1, 1, bl);
94 ::encode(epoch, bl);
95 ::encode(modified, bl);
96 ::encode(services, bl, features);
97 ENCODE_FINISH(bl);
98}
99
100void ServiceMap::decode(bufferlist::iterator& p)
101{
102 DECODE_START(1, p);
103 ::decode(epoch, p);
104 ::decode(modified, p);
105 ::decode(services, p);
106 DECODE_FINISH(p);
107}
108
109void ServiceMap::dump(Formatter *f) const
110{
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);
116 }
117 f->close_section();
118}
119
120void ServiceMap::generate_test_instances(std::list<ServiceMap*>& ls)
121{
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;
128}