Details
-
Improvement
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
None
-
None
Description
We had adopted the following workflow for the Scheduler/Executor endpoints on the Master/Agent.
- The user makes a call to the versioned endpoint with a versioned protobuf. e.g., v1::mesos::Call
- We devolve the versioned protobuf into an unversioned protobuf before using it internally.
scheduler::Call call = devolve(v1Call);
The above approach has the advantage that the internal Mesos code only has to deal with unversioned protobufs. It looks like we have not been following this idiom for the Operator API. We should create a unversioned protobuf file similar to we did for the Scheduler/Executor API and then devolve the versioned protobufs. (e.g., mesos/master/master.proto)
The signature of some of the operator endpoints would then change to only be dealing with unversioned protobufs:
Future<Response> Master::Http::getHealth( const master::Call& call, const Option<string>& principal, const ContentType& contentType) const