17 #ifndef __PROTOBUF_UTILS_HPP__
18 #define __PROTOBUF_UTILS_HPP__
20 #include <initializer_list>
53 class AuthorizationAcceptor;
66 const FrameworkInfo& framework,
84 const FrameworkID& frameworkId,
87 const TaskState& state,
88 const TaskStatus::Source& source,
90 const std::string& message =
"",
102 const FrameworkID& frameworkId,
110 const TaskID& taskId,
111 const TaskState& state,
144 const TaskInfo& task,
145 const TaskState& state,
146 const FrameworkID& frameworkId);
162 const OperationState& state,
171 const OperationStatus& latestStatus,
179 const OperationStatus& status,
190 const std::string& key,
196 const google::protobuf::Map<std::string, std::string>&
map);
201 const Labels& labels);
212 const Resource::AllocationInfo& allocationInfo);
230 const google::protobuf::RepeatedPtrField<ResourceVersionUUID>&
231 resourceVersionUUIDs);
255 template <
typename Iterable>
259 switch (capability.type()) {
262 case SlaveInfo::Capability::MULTI_ROLE:
265 case SlaveInfo::Capability::HIERARCHICAL_ROLE:
268 case SlaveInfo::Capability::RESERVATION_REFINEMENT:
271 case SlaveInfo::Capability::RESOURCE_PROVIDER:
286 google::protobuf::RepeatedPtrField<SlaveInfo::Capability>
289 google::protobuf::RepeatedPtrField<SlaveInfo::Capability> result;
291 result.Add()->set_type(SlaveInfo::Capability::MULTI_ROLE);
294 result.Add()->set_type(SlaveInfo::Capability::HIERARCHICAL_ROLE);
297 result.Add()->set_type(SlaveInfo::Capability::RESERVATION_REFINEMENT);
300 result.Add()->set_type(SlaveInfo::Capability::RESOURCE_PROVIDER);
308 bool operator==(
const Capabilities& left,
const Capabilities& right);
309 bool operator!=(
const Capabilities& left,
const Capabilities& right);
310 std::ostream&
operator<<(std::ostream& stream,
const Capabilities& c);
315 const std::string& message,
316 const TaskStatus::Reason& reason);
321 const ContainerID&
id,
323 const std::string& directory);
327 namespace maintenance {
341 std::initializer_list<MachineID> ids);
349 std::initializer_list<MachineID> ids,
358 std::initializer_list<mesos::maintenance::Window> windows);
371 template <
typename Iterable>
375 switch (capability.type()) {
378 case MasterInfo::Capability::AGENT_UPDATE:
395 const TaskState& state,
396 const TaskStatus& status);
435 namespace framework {
443 template <
typename Iterable>
447 switch (capability.type()) {
450 case FrameworkInfo::Capability::REVOCABLE_RESOURCES:
453 case FrameworkInfo::Capability::TASK_KILLING_STATE:
456 case FrameworkInfo::Capability::GPU_RESOURCES:
459 case FrameworkInfo::Capability::SHARED_RESOURCES:
462 case FrameworkInfo::Capability::PARTITION_AWARE:
465 case FrameworkInfo::Capability::MULTI_ROLE:
468 case FrameworkInfo::Capability::RESERVATION_REFINEMENT:
471 case FrameworkInfo::Capability::REGION_AWARE:
492 std::set<std::string>
getRoles(
const FrameworkInfo& frameworkInfo);
500 #endif // __PROTOBUF_UTILS_HPP__
hashmap< Option< ResourceProviderID >, id::UUID > parseResourceVersions(const google::protobuf::RepeatedPtrField< ResourceVersionUUID > &resourceVersionUUIDs)
Capabilities(const Iterable &capabilities)
Definition: protobuf_utils.hpp:372
Try< Resources > getConsumedResources(const Offer::Operation &operation)
Option< bool > getTaskHealth(const Task &task)
bool multiRole
Definition: protobuf_utils.hpp:281
mesos::master::Event createFrameworkAdded(const mesos::internal::master::Framework &framework)
Definition: option.hpp:28
StatusUpdate createStatusUpdate(const FrameworkID &frameworkId, const Option< SlaveID > &slaveId, const TaskID &taskId, const TaskState &state, const TaskStatus::Source &source, const Option< id::UUID > &uuid, const std::string &message="", const Option< TaskStatus::Reason > &reason=None(), const Option< ExecutorID > &executorId=None(), const Option< bool > &healthy=None(), const Option< CheckStatusInfo > &checkStatus=None(), const Option< Labels > &labels=None(), const Option< ContainerStatus > &containerStatus=None(), const Option< TimeInfo > &unreachableTime=None(), const Option< Resources > &limitedResources=None())
void stripAllocationInfo(Offer::Operation *operation)
mesos::master::Response::GetAgents::Agent createAgentResponse(const mesos::internal::master::Slave &slave, const Option< process::Owned< AuthorizationAcceptor >> &rolesAcceptor=None())
bool resourceProvider
Definition: protobuf_utils.hpp:284
bool reservationRefinement
Definition: protobuf_utils.hpp:485
Labels convertStringMapToLabels(const google::protobuf::Map< std::string, std::string > &map)
google::protobuf::RepeatedPtrField< MachineID > createMachineList(std::initializer_list< MachineID > ids)
Helper for constructing a list of MachineID.
bool taskKillingState
Definition: protobuf_utils.hpp:480
void injectAllocationInfo(Offer::Operation *operation, const Resource::AllocationInfo &allocationInfo)
Definition: protobuf_utils.hpp:251
Unavailability createUnavailability(const process::Time &start, const Option< Duration > &duration=None())
Helper for constructing an unavailability from a Time and Duration.
std::set< std::string > getRoles(const FrameworkInfo &frameworkInfo)
Capabilities(const Iterable &capabilities)
Definition: protobuf_utils.hpp:256
Result< ProcessStatus > status(pid_t pid)
Definition: proc.hpp:166
mesos::slave::ContainerState createContainerState(const Option< ExecutorInfo > &executorInfo, const ContainerID &id, pid_t pid, const std::string &directory)
TaskStatus createTaskStatus(const TaskID &taskId, const TaskState &state, const id::UUID &uuid, double timestamp)
Definition: resources.hpp:79
mesos::master::Event createFrameworkUpdated(const mesos::internal::master::Framework &framework)
bool revocableResources
Definition: protobuf_utils.hpp:479
ContainerID getRootContainerId(const ContainerID &containerId)
mesos::maintenance::Schedule createSchedule(std::initializer_list< mesos::maintenance::Window > windows)
Helper for constructing a maintenance Schedule.
Capability
Definition: capabilities.hpp:35
Try< google::protobuf::Map< std::string, std::string > > convertLabelsToStringMap(const Labels &labels)
Operation
Definition: cgroups.hpp:441
mesos::master::Event createAgentAdded(const mesos::internal::master::Slave &slave)
Try< Nothing > start(const std::string &name)
Starts the slice with the given name (via 'systemctl start <name>').
Definition: protobuf_utils.hpp:367
Capabilities(const Iterable &capabilities)
Definition: protobuf_utils.hpp:444
mesos::v1::scheduler::Event Event
Definition: mesos.hpp:2584
bool partitionAware
Definition: protobuf_utils.hpp:483
Definition: hashmap.hpp:38
mesos::master::Event createTaskAdded(const Task &task)
DWORD pid_t
Definition: windows.hpp:187
mesos::slave::ContainerLimitation createContainerLimitation(const Resources &resources, const std::string &message, const TaskStatus::Reason &reason)
FileInfo createFileInfo(const std::string &path, const struct stat &s)
mesos::master::Event createTaskUpdated(const Task &task, const TaskState &state, const TaskStatus &status)
bool isTerminalState(const TaskState &state)
mesos::master::Event createAgentRemoved(const SlaveID &slaveId)
Try< Nothing > unavailability(const Unavailability &unavailability)
An "untyped" PID, used to encapsulate the process ID for lower-layer abstractions (eg...
Definition: pid.hpp:39
Iterable< V > map(F &&f, const Iterable< U, Us...> &input)
Definition: lambda.hpp:45
bool agentUpdate
Definition: protobuf_utils.hpp:385
Operation createOperation(const Offer::Operation &info, const OperationStatus &latestStatus, const Option< FrameworkID > &frameworkId, const Option< SlaveID > &slaveId, const Option< id::UUID > &operationUUID=None())
Option< ContainerStatus > getTaskContainerStatus(const Task &task)
Definition: protobuf_utils.hpp:439
Task createTask(const TaskInfo &task, const TaskState &state, const FrameworkID &frameworkId)
const int UNKNOWN
Definition: diagnosis.hpp:39
google::protobuf::RepeatedPtrField< SlaveInfo::Capability > toRepeatedPtrField() const
Definition: protobuf_utils.hpp:287
UpdateOperationStatusMessage createUpdateOperationStatusMessage(const id::UUID &operationUUID, const OperationStatus &status, const Option< OperationStatus > &latestStatus=None(), const Option< FrameworkID > &frameworkId=None(), const Option< SlaveID > &slaveId=None())
Try< hashmap< std::string, uint64_t > > stat(const std::string &hierarchy, const std::string &cgroup, const std::string &file)
bool sharedResources
Definition: protobuf_utils.hpp:482
bool multiRole
Definition: protobuf_utils.hpp:484
bool reservationRefinement
Definition: protobuf_utils.hpp:283
bool operator==(const Capabilities &left, const Capabilities &right)
bool gpuResources
Definition: protobuf_utils.hpp:481
Result< Process > process(pid_t pid)
Definition: freebsd.hpp:30
bool hierarchicalRole
Definition: protobuf_utils.hpp:282
mesos::master::Event createFrameworkRemoved(const FrameworkInfo &frameworkInfo)
Type
Definition: capabilities.hpp:79
Object protobuf(const google::protobuf::Message &message)
Definition: protobuf.hpp:836
Definition: master.hpp:117
mesos::maintenance::Window createWindow(std::initializer_list< MachineID > ids, const Unavailability &unavailability)
Helper for constructing a maintenance Window.
TimeInfo getCurrentTime()
bool frameworkHasCapability(const FrameworkInfo &framework, FrameworkInfo::Capability::Type capability)
bool operator!=(const Capabilities &left, const Capabilities &right)
bool isSpeculativeOperation(const Offer::Operation &operation)
Label createLabel(const std::string &key, const Option< std::string > &value=None())
Definition: master.hpp:2151
MasterInfo createMasterInfo(const process::UPID &pid)
Option< CheckStatusInfo > getTaskCheckStatus(const Task &task)
std::ostream & operator<<(std::ostream &stream, const Capabilities &c)
OperationStatus createOperationStatus(const OperationState &state, const Option< OperationID > &operationId=None(), const Option< std::string > &message=None(), const Option< Resources > &convertedResources=None(), const Option< id::UUID > &statusUUID=None())
bool regionAware
Definition: protobuf_utils.hpp:486
google::protobuf::RepeatedPtrField< ResourceVersionUUID > createResourceVersions(const hashmap< Option< ResourceProviderID >, id::UUID > &resourceVersions)