MCPcopy Create free account
hub / github.com/apache/mesos / operator()

Method operator()

src/master/readonly_handler.cpp:154–263  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

152
153
154void FullFrameworkWriter::operator()(JSON::ObjectWriter* writer) const
155{
156 json(writer, Summary<Framework>(*framework_));
157
158 // Add additional fields to those generated by the
159 // `Summary<Framework>` overload.
160 writer->field("user", framework_->info.user());
161 writer->field("failover_timeout", framework_->info.failover_timeout());
162 writer->field("checkpoint", framework_->info.checkpoint());
163 writer->field("registered_time", framework_->registeredTime.secs());
164 writer->field("unregistered_time", framework_->unregisteredTime.secs());
165
166 if (framework_->info.has_principal()) {
167 writer->field("principal", framework_->info.principal());
168 }
169
170 // TODO(bmahler): Consider deprecating this in favor of the split
171 // used and offered resources added in `Summary<Framework>`.
172 writer->field(
173 "resources",
174 framework_->totalUsedResources + framework_->totalOfferedResources);
175
176 // TODO(benh): Consider making reregisteredTime an Option.
177 if (framework_->registeredTime != framework_->reregisteredTime) {
178 writer->field("reregistered_time", framework_->reregisteredTime.secs());
179 }
180
181 // For multi-role frameworks the `role` field will be unset.
182 // Note that we could set `roles` here for both cases, which
183 // would make tooling simpler (only need to look for `roles`).
184 // However, we opted to just mirror the protobuf akin to how
185 // generic protobuf -> JSON translation works.
186 if (framework_->capabilities.multiRole) {
187 writer->field("roles", framework_->info.roles());
188 } else {
189 writer->field("role", framework_->info.role());
190 }
191
192 // Model all of the tasks associated with a framework.
193 writer->field("tasks", [this](JSON::ArrayWriter* writer) {
194 foreachvalue (Task* task, framework_->tasks) {
195 // Skip unauthorized tasks.
196 if (!approvers_->approved<VIEW_TASK>(*task, framework_->info)) {
197 continue;
198 }
199
200 writer->element(*task);
201 }
202 });
203
204 writer->field("unreachable_tasks", [this](JSON::ArrayWriter* writer) {
205 foreachvalue (const Owned<Task>& task, framework_->unreachableTasks) {
206 // Skip unauthorized tasks.
207 if (!approvers_->approved<VIEW_TASK>(*task, framework_->info)) {
208 continue;
209 }
210
211 writer->element(*task);

Callers

nothing calls this directly

Calls 15

ProtobufClass · 0.85
fieldMethod · 0.80
userMethod · 0.80
checkpointMethod · 0.80
principalMethod · 0.80
elementMethod · 0.80
toRepeatedPtrFieldMethod · 0.80
jsonFunction · 0.70
foreachvalueFunction · 0.70
foreachFunction · 0.70
secsMethod · 0.45
rolesMethod · 0.45

Tested by

no test coverage detected