You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ji...@apache.org on 2017/12/21 05:45:49 UTC

[6/6] mesos git commit: Renamed offer operation to operation.

Renamed offer operation to operation.

The motivation for this renaming is that the Operation workflow
(including status update, retry, etc.) might be re-used for non offer
related operations in the future. As a result, we intentionally make the
name more general to capture potential future use cases.

This patch also made the naming of protobuf message types, fields and
variable names that are related to Operations more consistent.

This patch also renamed master registry operation to `RegistryOperation`
to distinguish that from `Operation`.

Review: https://reviews.apache.org/r/64762/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/760ab18c
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/760ab18c
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/760ab18c

Branch: refs/heads/master
Commit: 760ab18c50a88dd81aafc4baafb6a6811cee7456
Parents: d807de1
Author: Gaston Kleiman <ga...@mesosphere.io>
Authored: Wed Dec 20 21:27:22 2017 -0800
Committer: Jie Yu <yu...@gmail.com>
Committed: Wed Dec 20 21:27:22 2017 -0800

----------------------------------------------------------------------
 include/mesos/type_utils.hpp                    |  34 +-
 include/mesos/v1/mesos.hpp                      |  24 +-
 src/CMakeLists.txt                              |   2 +-
 src/Makefile.am                                 |   6 +-
 src/cli/execute.cpp                             |   2 +-
 src/common/protobuf_utils.cpp                   |  46 +-
 src/common/protobuf_utils.hpp                   |  18 +-
 src/common/resources_utils.cpp                  |  34 +-
 src/common/type_utils.cpp                       |  20 +-
 src/examples/long_lived_framework.cpp           |   4 +-
 src/examples/test_http_framework.cpp            |   4 +-
 src/internal/devolve.cpp                        |   4 +-
 src/internal/devolve.hpp                        |   2 +-
 .../org_apache_mesos_v1_scheduler_V0Mesos.cpp   |   8 +-
 src/master/http.cpp                             |  30 +-
 src/master/maintenance.hpp                      |   6 +-
 src/master/master.cpp                           | 437 +++++----
 src/master/master.hpp                           |  94 +-
 src/master/quota.hpp                            |   4 +-
 src/master/quota_handler.cpp                    |   4 +-
 src/master/registrar.cpp                        |  26 +-
 src/master/registrar.hpp                        |  15 +-
 src/master/registry_operations.hpp              |  14 +-
 src/master/validation.cpp                       |  15 +-
 src/master/weights.hpp                          |   2 +-
 src/master/weights_handler.cpp                  |   2 +-
 src/messages/messages.cpp                       |  22 +-
 src/messages/messages.hpp                       |  12 +-
 src/resource_provider/manager.cpp               | 106 ++-
 src/resource_provider/manager.hpp               |  18 +-
 src/resource_provider/message.hpp               |  30 +-
 src/resource_provider/registrar.cpp             |   6 +-
 src/resource_provider/storage/provider.cpp      | 300 +++---
 src/resource_provider/validation.cpp            |   6 +-
 src/sched/sched.cpp                             |   4 +-
 .../isolators/cgroups/subsystems/blkio.cpp      |  11 +-
 src/slave/paths.cpp                             |  24 +-
 src/slave/paths.hpp                             |   8 +-
 src/slave/slave.cpp                             | 315 ++++---
 src/slave/slave.hpp                             |  46 +-
 src/status_update_manager/offer_operation.cpp   | 156 ----
 src/status_update_manager/offer_operation.hpp   | 131 ---
 src/status_update_manager/operation.cpp         | 156 ++++
 src/status_update_manager/operation.hpp         | 132 +++
 .../status_update_manager_process.hpp           |  66 +-
 src/tests/CMakeLists.txt                        |   2 +-
 src/tests/master_tests.cpp                      |   4 +-
 src/tests/mesos.hpp                             |  66 +-
 src/tests/mock_registrar.cpp                    |   3 +-
 src/tests/mock_registrar.hpp                    |   5 +-
 ...er_operation_status_update_manager_tests.cpp | 913 -------------------
 .../operation_status_update_manager_tests.cpp   | 908 ++++++++++++++++++
 src/tests/partition_tests.cpp                   |  10 +-
 src/tests/persistent_volume_tests.cpp           |   4 +-
 src/tests/reconciliation_tests.cpp              |   2 +-
 src/tests/registrar_tests.cpp                   | 382 ++++----
 src/tests/reservation_tests.cpp                 |  26 +-
 src/tests/resource_provider_manager_tests.cpp   |  31 +-
 .../resource_provider_validation_tests.cpp      |  16 +-
 src/tests/slave_tests.cpp                       |  28 +-
 src/tests/state_tests.cpp                       |   5 +-
 .../storage_local_resource_provider_tests.cpp   |  10 +-
 src/v1/mesos.cpp                                |   8 +-
 63 files changed, 2381 insertions(+), 2448 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/include/mesos/type_utils.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/type_utils.hpp b/include/mesos/type_utils.hpp
index 4d012cc..af2b187 100644
--- a/include/mesos/type_utils.hpp
+++ b/include/mesos/type_utils.hpp
@@ -62,10 +62,7 @@ bool operator==(const ExecutorInfo& left, const ExecutorInfo& right);
 bool operator==(const Label& left, const Label& right);
 bool operator==(const Labels& left, const Labels& right);
 bool operator==(const MasterInfo& left, const MasterInfo& right);
-
-bool operator==(
-    const OfferOperationStatus& left,
-    const OfferOperationStatus& right);
+bool operator==(const OperationStatus& left, const OperationStatus& right);
 
 bool operator==(
     const ResourceProviderInfo& left,
@@ -87,10 +84,7 @@ bool operator==(const Volume& left, const Volume& right);
 bool operator!=(const CheckStatusInfo& left, const CheckStatusInfo& right);
 bool operator!=(const ExecutorInfo& left, const ExecutorInfo& right);
 bool operator!=(const Labels& left, const Labels& right);
-
-bool operator!=(
-    const OfferOperationStatus& left,
-    const OfferOperationStatus& right);
+bool operator!=(const OperationStatus& left, const OperationStatus& right);
 
 bool operator!=(const TaskStatus& left, const TaskStatus& right);
 
@@ -118,9 +112,7 @@ inline bool operator==(const OfferID& left, const OfferID& right)
 }
 
 
-inline bool operator==(
-    const OfferOperationID& left,
-    const OfferOperationID& right)
+inline bool operator==(const OperationID& left, const OperationID& right)
 {
   return left.value() == right.value();
 }
@@ -265,9 +257,7 @@ inline bool operator!=(const FrameworkID& left, const FrameworkID& right)
 }
 
 
-inline bool operator!=(
-    const OfferOperationID& left,
-    const OfferOperationID& right)
+inline bool operator!=(const OperationID& left, const OperationID& right)
 {
   return left.value() != right.value();
 }
@@ -404,14 +394,10 @@ std::ostream& operator<<(std::ostream& stream, const MasterInfo& master);
 std::ostream& operator<<(std::ostream& stream, const OfferID& offerId);
 
 
-std::ostream& operator<<(
-    std::ostream& stream,
-    const OfferOperationID& offerOperationId);
+std::ostream& operator<<(std::ostream& stream, const OperationID& operationId);
 
 
-std::ostream& operator<<(
-    std::ostream& stream,
-    const OfferOperationState& state);
+std::ostream& operator<<(std::ostream& stream, const OperationState& state);
 
 
 std::ostream& operator<<(std::ostream& stream, const RateLimits& limits);
@@ -743,16 +729,16 @@ struct hash<mesos::MachineID>
 
 
 template <>
-struct hash<mesos::OfferOperationID>
+struct hash<mesos::OperationID>
 {
   typedef size_t result_type;
 
-  typedef mesos::OfferOperationID argument_type;
+  typedef mesos::OperationID argument_type;
 
-  result_type operator()(const argument_type& offerOperationId) const
+  result_type operator()(const argument_type& operationId) const
   {
     size_t seed = 0;
-    boost::hash_combine(seed, offerOperationId.value());
+    boost::hash_combine(seed, operationId.value());
     return seed;
   }
 };

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/include/mesos/v1/mesos.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/v1/mesos.hpp b/include/mesos/v1/mesos.hpp
index d163f0b..d4c354a 100644
--- a/include/mesos/v1/mesos.hpp
+++ b/include/mesos/v1/mesos.hpp
@@ -108,9 +108,7 @@ inline bool operator==(const OfferID& left, const OfferID& right)
 }
 
 
-inline bool operator==(
-    const OfferOperationID& left,
-    const OfferOperationID& right)
+inline bool operator==(const OperationID& left, const OperationID& right)
 {
   return left.value() == right.value();
 }
@@ -255,9 +253,7 @@ inline bool operator!=(const FrameworkID& left, const FrameworkID& right)
 }
 
 
-inline bool operator!=(
-    const OfferOperationID& left,
-    const OfferOperationID& right)
+inline bool operator!=(const OperationID& left, const OperationID& right)
 {
   return left.value() != right.value();
 }
@@ -377,14 +373,10 @@ std::ostream& operator<<(std::ostream& stream, const MasterInfo& master);
 std::ostream& operator<<(std::ostream& stream, const OfferID& offerId);
 
 
-std::ostream& operator<<(
-    std::ostream& stream,
-    const OfferOperationID& offerOperationId);
+std::ostream& operator<<(std::ostream& stream, const OperationID& operationId);
 
 
-std::ostream& operator<<(
-    std::ostream& stream,
-    const OfferOperationState& state);
+std::ostream& operator<<(std::ostream& stream, const OperationState& state);
 
 
 std::ostream& operator<<(std::ostream& stream, const RateLimits& limits);
@@ -715,16 +707,16 @@ struct hash<mesos::v1::MachineID>
 
 
 template <>
-struct hash<mesos::v1::OfferOperationID>
+struct hash<mesos::v1::OperationID>
 {
   typedef size_t result_type;
 
-  typedef mesos::v1::OfferOperationID argument_type;
+  typedef mesos::v1::OperationID argument_type;
 
-  result_type operator()(const argument_type& offerOperationId) const
+  result_type operator()(const argument_type& operationId) const
   {
     size_t seed = 0;
-    boost::hash_combine(seed, offerOperationId.value());
+    boost::hash_combine(seed, operationId.value());
     return seed;
   }
 };

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 5b54153..21fb47e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -360,7 +360,7 @@ set(STATE_SRC
   state/in_memory.cpp)
 
 set(STATUS_UPDATE_MANAGER_SRC
-  status_update_manager/offer_operation.cpp)
+  status_update_manager/operation.cpp)
 
 if (NOT WIN32)
   list(APPEND STATE_SRC

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index 5c6f180..e587cff 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -1092,7 +1092,7 @@ libmesos_no_3rdparty_la_SOURCES +=					\
   slave/containerizer/mesos/provisioner/docker/registry_puller.cpp	\
   slave/containerizer/mesos/provisioner/docker/store.cpp		\
   slave/resource_estimators/noop.cpp					\
-  status_update_manager/offer_operation.cpp				\
+  status_update_manager/operation.cpp					\
   uri/fetcher.cpp							\
   uri/utils.cpp								\
   uri/fetchers/copy.cpp							\
@@ -1251,7 +1251,7 @@ libmesos_no_3rdparty_la_SOURCES +=					\
   slave/qos_controllers/noop.hpp					\
   slave/resource_estimators/noop.hpp					\
   status_update_manager/status_update_manager_process.hpp		\
-  status_update_manager/offer_operation.hpp				\
+  status_update_manager/operation.hpp					\
   tests/active_user_test_helper.hpp					\
   tests/allocator.hpp							\
   tests/cluster.hpp							\
@@ -2514,7 +2514,7 @@ mesos_tests_SOURCES =						\
   tests/mock_registrar.cpp					\
   tests/module.cpp						\
   tests/module_tests.cpp					\
-  tests/offer_operation_status_update_manager_tests.cpp		\
+  tests/operation_status_update_manager_tests.cpp		\
   tests/oversubscription_tests.cpp				\
   tests/partition_tests.cpp					\
   tests/paths_tests.cpp						\

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/cli/execute.cpp
----------------------------------------------------------------------
diff --git a/src/cli/execute.cpp b/src/cli/execute.cpp
index 1354461..6e62689 100644
--- a/src/cli/execute.cpp
+++ b/src/cli/execute.cpp
@@ -676,7 +676,7 @@ protected:
         case Event::FAILURE:
         case Event::RESCIND:
         case Event::RESCIND_INVERSE_OFFER:
-        case Event::OFFER_OPERATION_UPDATE:
+        case Event::UPDATE_OPERATION_STATUS:
         case Event::MESSAGE: {
           break;
         }

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/common/protobuf_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.cpp b/src/common/protobuf_utils.cpp
index f4380e9..fda1307 100644
--- a/src/common/protobuf_utils.cpp
+++ b/src/common/protobuf_utils.cpp
@@ -398,16 +398,16 @@ Option<ContainerStatus> getTaskContainerStatus(const Task& task)
 }
 
 
-bool isTerminalState(const OfferOperationState& state)
+bool isTerminalState(const OperationState& state)
 {
   switch (state) {
-    case OFFER_OPERATION_FINISHED:
-    case OFFER_OPERATION_FAILED:
-    case OFFER_OPERATION_ERROR:
-    case OFFER_OPERATION_DROPPED:
+    case OPERATION_FINISHED:
+    case OPERATION_FAILED:
+    case OPERATION_ERROR:
+    case OPERATION_DROPPED:
       return true;
-    case OFFER_OPERATION_PENDING:
-    case OFFER_OPERATION_UNSUPPORTED:
+    case OPERATION_PENDING:
+    case OPERATION_UNSUPPORTED:
       return false;
   }
 
@@ -415,14 +415,14 @@ bool isTerminalState(const OfferOperationState& state)
 }
 
 
-OfferOperationStatus createOfferOperationStatus(
-    const OfferOperationState& state,
-    const Option<OfferOperationID>& operationId,
+OperationStatus createOperationStatus(
+    const OperationState& state,
+    const Option<OperationID>& operationId,
     const Option<string>& message,
     const Option<Resources>& convertedResources,
-    const Option<id::UUID>& statusUUID)
+    const Option<id::UUID>& uuid)
 {
-  OfferOperationStatus status;
+  OperationStatus status;
   status.set_state(state);
 
   if (operationId.isSome()) {
@@ -437,22 +437,22 @@ OfferOperationStatus createOfferOperationStatus(
     status.mutable_converted_resources()->CopyFrom(convertedResources.get());
   }
 
-  if (statusUUID.isSome()) {
-    status.mutable_status_uuid()->set_value(statusUUID->toBytes());
+  if (uuid.isSome()) {
+    status.mutable_uuid()->set_value(uuid->toBytes());
   }
 
   return status;
 }
 
 
-OfferOperation createOfferOperation(
+Operation createOperation(
     const Offer::Operation& info,
-    const OfferOperationStatus& latestStatus,
+    const OperationStatus& latestStatus,
     const Option<FrameworkID>& frameworkId,
     const Option<SlaveID>& slaveId,
     const Option<id::UUID>& operationUUID)
 {
-  OfferOperation operation;
+  Operation operation;
   if (frameworkId.isSome()) {
     operation.mutable_framework_id()->CopyFrom(frameworkId.get());
   }
@@ -462,23 +462,23 @@ OfferOperation createOfferOperation(
   operation.mutable_info()->CopyFrom(info);
   operation.mutable_latest_status()->CopyFrom(latestStatus);
   if (operationUUID.isSome()) {
-    operation.mutable_operation_uuid()->set_value(operationUUID->toBytes());
+    operation.mutable_uuid()->set_value(operationUUID->toBytes());
   } else {
-    operation.mutable_operation_uuid()->set_value(id::UUID::random().toBytes());
+    operation.mutable_uuid()->set_value(id::UUID::random().toBytes());
   }
 
   return operation;
 }
 
 
-OfferOperationStatusUpdate createOfferOperationStatusUpdate(
+UpdateOperationStatusMessage createUpdateOperationStatusMessage(
     const id::UUID& operationUUID,
-    const OfferOperationStatus& status,
-    const Option<OfferOperationStatus>& latestStatus,
+    const OperationStatus& status,
+    const Option<OperationStatus>& latestStatus,
     const Option<FrameworkID>& frameworkId,
     const Option<SlaveID>& slaveId)
 {
-  OfferOperationStatusUpdate update;
+  UpdateOperationStatusMessage update;
   if (frameworkId.isSome()) {
     update.mutable_framework_id()->CopyFrom(frameworkId.get());
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/common/protobuf_utils.hpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.hpp b/src/common/protobuf_utils.hpp
index e112f19..fd728b7 100644
--- a/src/common/protobuf_utils.hpp
+++ b/src/common/protobuf_utils.hpp
@@ -150,29 +150,29 @@ Option<CheckStatusInfo> getTaskCheckStatus(const Task& task);
 Option<ContainerStatus> getTaskContainerStatus(const Task& task);
 
 
-bool isTerminalState(const OfferOperationState& state);
+bool isTerminalState(const OperationState& state);
 
 
-OfferOperationStatus createOfferOperationStatus(
-    const OfferOperationState& state,
-    const Option<OfferOperationID>& operationId = None(),
+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());
 
 
-OfferOperation createOfferOperation(
+Operation createOperation(
     const Offer::Operation& info,
-    const OfferOperationStatus& latestStatus,
+    const OperationStatus& latestStatus,
     const Option<FrameworkID>& frameworkId,
     const Option<SlaveID>& slaveId,
     const Option<id::UUID>& operationUUID = None());
 
 
-OfferOperationStatusUpdate createOfferOperationStatusUpdate(
+UpdateOperationStatusMessage createUpdateOperationStatusMessage(
     const id::UUID& operationUUID,
-    const OfferOperationStatus& status,
-    const Option<OfferOperationStatus>& latestStatus = None(),
+    const OperationStatus& status,
+    const Option<OperationStatus>& latestStatus = None(),
     const Option<FrameworkID>& frameworkId = None(),
     const Option<SlaveID>& slaveId = None());
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/common/resources_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/resources_utils.cpp b/src/common/resources_utils.cpp
index 50651dc..8a2652b 100644
--- a/src/common/resources_utils.cpp
+++ b/src/common/resources_utils.cpp
@@ -100,25 +100,25 @@ namespace internal {
 template <typename TResources,
           typename TResource,
           typename TResourceConversion,
-          typename TOfferOperation>
+          typename TOperation>
 Try<vector<TResourceConversion>> getResourceConversions(
-    const TOfferOperation& operation)
+    const TOperation& operation)
 {
   vector<TResourceConversion> conversions;
 
   switch (operation.type()) {
-    case TOfferOperation::UNKNOWN:
-      return Error("Unknown offer operation");
-
-    case TOfferOperation::LAUNCH:
-    case TOfferOperation::LAUNCH_GROUP:
-    case TOfferOperation::CREATE_VOLUME:
-    case TOfferOperation::DESTROY_VOLUME:
-    case TOfferOperation::CREATE_BLOCK:
-    case TOfferOperation::DESTROY_BLOCK:
-      return Error("Offer operation not supported");
-
-    case TOfferOperation::RESERVE: {
+    case TOperation::UNKNOWN:
+      return Error("Unknown operation");
+
+    case TOperation::LAUNCH:
+    case TOperation::LAUNCH_GROUP:
+    case TOperation::CREATE_VOLUME:
+    case TOperation::DESTROY_VOLUME:
+    case TOperation::CREATE_BLOCK:
+    case TOperation::DESTROY_BLOCK:
+      return Error("Operation not supported");
+
+    case TOperation::RESERVE: {
       foreach (const TResource& reserved, operation.reserve().resources()) {
         // Note that we only allow "pushing" a single reservation at time.
         TResources consumed = TResources(reserved).popReservation();
@@ -127,7 +127,7 @@ Try<vector<TResourceConversion>> getResourceConversions(
       break;
     }
 
-    case TOfferOperation::UNRESERVE: {
+    case TOperation::UNRESERVE: {
       foreach (const TResource& reserved, operation.unreserve().resources()) {
         // Note that we only allow "popping" a single reservation at time.
         TResources converted = TResources(reserved).popReservation();
@@ -136,7 +136,7 @@ Try<vector<TResourceConversion>> getResourceConversions(
       break;
     }
 
-    case TOfferOperation::CREATE: {
+    case TOperation::CREATE: {
       foreach (const TResource& volume, operation.create().volumes()) {
         // Strip persistence and volume from the disk info so that we
         // can subtract it from the original resources.
@@ -162,7 +162,7 @@ Try<vector<TResourceConversion>> getResourceConversions(
       break;
     }
 
-    case TOfferOperation::DESTROY: {
+    case TOperation::DESTROY: {
       foreach (const TResource& volume, operation.destroy().volumes()) {
         // Strip persistence and volume from the disk info so that we
         // can subtract it from the original resources.

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/common/type_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/type_utils.cpp b/src/common/type_utils.cpp
index 2ba5302..a4d5dcb 100644
--- a/src/common/type_utils.cpp
+++ b/src/common/type_utils.cpp
@@ -439,9 +439,7 @@ bool operator==(
 }
 
 
-bool operator==(
-    const OfferOperationStatus& left,
-    const OfferOperationStatus& right)
+bool operator==(const OperationStatus& left, const OperationStatus& right)
 {
   if (left.has_operation_id() != right.has_operation_id()) {
     return false;
@@ -468,11 +466,11 @@ bool operator==(
     return false;
   }
 
-  if (left.has_status_uuid() != right.has_status_uuid()) {
+  if (left.has_uuid() != right.has_uuid()) {
     return false;
   }
 
-  if (left.has_status_uuid() && left.status_uuid() != right.status_uuid()) {
+  if (left.has_uuid() && left.uuid() != right.uuid()) {
     return false;
   }
 
@@ -480,9 +478,7 @@ bool operator==(
 }
 
 
-bool operator!=(
-    const OfferOperationStatus& left,
-    const OfferOperationStatus& right)
+bool operator!=(const OperationStatus& left, const OperationStatus& right)
 {
   return !(left == right);
 }
@@ -713,15 +709,15 @@ ostream& operator<<(ostream& stream, const OfferID& offerId)
 }
 
 
-ostream& operator<<(ostream& stream, const OfferOperationID& offerOperationId)
+ostream& operator<<(ostream& stream, const OperationID& operationId)
 {
-  return stream << offerOperationId.value();
+  return stream << operationId.value();
 }
 
 
-ostream& operator<<(ostream& stream, const OfferOperationState& state)
+ostream& operator<<(ostream& stream, const OperationState& state)
 {
-  return stream << OfferOperationState_Name(state);
+  return stream << OperationState_Name(state);
 }
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/examples/long_lived_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/long_lived_framework.cpp b/src/examples/long_lived_framework.cpp
index bb9fc2d..943160d 100644
--- a/src/examples/long_lived_framework.cpp
+++ b/src/examples/long_lived_framework.cpp
@@ -214,8 +214,8 @@ protected:
           break;
         }
 
-        // TODO(greggomann): Implement handling of offer operation updates.
-        case Event::OFFER_OPERATION_UPDATE:
+        // TODO(greggomann): Implement handling of operation status updates.
+        case Event::UPDATE_OPERATION_STATUS:
           break;
 
         case Event::FAILURE: {

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/examples/test_http_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_http_framework.cpp b/src/examples/test_http_framework.cpp
index e83aded..482f65e 100644
--- a/src/examples/test_http_framework.cpp
+++ b/src/examples/test_http_framework.cpp
@@ -157,8 +157,8 @@ public:
           break;
         }
 
-        // TODO(greggomann): Implement handling of offer operation updates.
-        case Event::OFFER_OPERATION_UPDATE:
+        // TODO(greggomann): Implement handling of operation status updates.
+        case Event::UPDATE_OPERATION_STATUS:
           break;
 
         case Event::MESSAGE: {

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/internal/devolve.cpp
----------------------------------------------------------------------
diff --git a/src/internal/devolve.cpp b/src/internal/devolve.cpp
index 60a768d..1cfbdf2 100644
--- a/src/internal/devolve.cpp
+++ b/src/internal/devolve.cpp
@@ -104,9 +104,9 @@ Offer devolve(const v1::Offer& offer)
 }
 
 
-OfferOperationStatus devolve(const v1::OfferOperationStatus& status)
+OperationStatus devolve(const v1::OperationStatus& status)
 {
-  return devolve<OfferOperationStatus>(status);
+  return devolve<OperationStatus>(status);
 }
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/internal/devolve.hpp
----------------------------------------------------------------------
diff --git a/src/internal/devolve.hpp b/src/internal/devolve.hpp
index 9e56fd9..eb58a90 100644
--- a/src/internal/devolve.hpp
+++ b/src/internal/devolve.hpp
@@ -60,7 +60,7 @@ FrameworkInfo devolve(const v1::FrameworkInfo& frameworkInfo);
 HealthCheck devolve(const v1::HealthCheck& check);
 InverseOffer devolve(const v1::InverseOffer& inverseOffer);
 Offer devolve(const v1::Offer& offer);
-OfferOperationStatus devolve(const v1::OfferOperationStatus& status);
+OperationStatus devolve(const v1::OperationStatus& status);
 Resource devolve(const v1::Resource& resource);
 ResourceProviderID devolve(const v1::ResourceProviderID& resourceProviderId);
 Resources devolve(const v1::Resources& resources);

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp
----------------------------------------------------------------------
diff --git a/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp b/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp
index d28ae5e..60b17b9 100644
--- a/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp
+++ b/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp
@@ -629,8 +629,8 @@ void V0ToV1AdapterProcess::send(SchedulerDriver* driver, const Call& _call)
       break;
     }
 
-    // TODO(greggomann): Implement offer operation update acknowledgement.
-    case Call::ACKNOWLEDGE_OFFER_OPERATION_UPDATE:
+    // TODO(greggomann): Implement operation status acknowledgement.
+    case Call::ACKNOWLEDGE_OPERATION_STATUS:
       break;
 
     case Call::RECONCILE: {
@@ -647,8 +647,8 @@ void V0ToV1AdapterProcess::send(SchedulerDriver* driver, const Call& _call)
       break;
     }
 
-    // TODO(greggomann): Implement offer operation update reconciliation.
-    case Call::RECONCILE_OFFER_OPERATIONS:
+    // TODO(greggomann): Implement operation reconciliation.
+    case Call::RECONCILE_OPERATIONS:
       break;
 
     case Call::MESSAGE: {

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index 5ef7d35..d7276e4 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -1151,17 +1151,17 @@ Future<Response> Master::Http::scheduler(
       master->acknowledge(framework, call.acknowledge());
       return Accepted();
 
-    // TODO(greggomann): Implement offer operation update acknowledgement.
-    case scheduler::Call::ACKNOWLEDGE_OFFER_OPERATION_UPDATE:
-      return Forbidden("Offer operation updates are not yet implemented");
+    // TODO(greggomann): Implement operation status acknowledgement.
+    case scheduler::Call::ACKNOWLEDGE_OPERATION_STATUS:
+      return Forbidden("Operation status updates are not yet implemented");
 
     case scheduler::Call::RECONCILE:
       master->reconcile(framework, call.reconcile());
       return Accepted();
 
-    // TODO(greggomann): Implement offer operation update reconciliation.
-    case scheduler::Call::RECONCILE_OFFER_OPERATIONS:
-      return Forbidden("Offer operation reconciliation is not yet implemented");
+    // TODO(greggomann): Implement operation reconciliation.
+    case scheduler::Call::RECONCILE_OPERATIONS:
+      return Forbidden("Operation reconciliation is not yet implemented");
 
     case scheduler::Call::MESSAGE:
       master->message(framework, call.message());
@@ -1306,7 +1306,7 @@ Future<Response> Master::Http::_createVolumes(
     return BadRequest("No agent found with specified ID");
   }
 
-  // Create an offer operation.
+  // Create an operation.
   Offer::Operation operation;
   operation.set_type(Offer::Operation::CREATE);
   operation.mutable_create()->mutable_volumes()->CopyFrom(volumes);
@@ -1480,7 +1480,7 @@ Future<Response> Master::Http::_destroyVolumes(
     return BadRequest("No agent found with specified ID");
   }
 
-  // Create an offer operation.
+  // Create an operation.
   Offer::Operation operation;
   operation.set_type(Offer::Operation::DESTROY);
   operation.mutable_destroy()->mutable_volumes()->CopyFrom(volumes);
@@ -2468,7 +2468,7 @@ Future<Response> Master::Http::_reserve(
     return BadRequest("No agent found with specified ID");
   }
 
-  // Create an offer operation.
+  // Create an operation.
   Offer::Operation operation;
   operation.set_type(Offer::Operation::RESERVE);
   operation.mutable_reserve()->mutable_resources()->CopyFrom(resources);
@@ -4456,8 +4456,8 @@ Future<Response> Master::Http::__updateMaintenanceSchedule(
     }
   }
 
-  return master->registrar
-    ->apply(Owned<Operation>(new maintenance::UpdateSchedule(schedule)))
+  return master->registrar->apply(Owned<RegistryOperation>(
+      new maintenance::UpdateSchedule(schedule)))
     .then(defer(master->self(), [this, schedule](bool result) {
       return ___updateMaintenanceSchedule(schedule, result);
     }));
@@ -4694,7 +4694,7 @@ Future<Response> Master::Http::_startMaintenance(
     }
   }
 
-  return master->registrar->apply(Owned<Operation>(
+  return master->registrar->apply(Owned<RegistryOperation>(
       new maintenance::StartMaintenance(machineIds)))
     .then(defer(master->self(), [=](bool result) -> Future<Response> {
       // See the top comment in "master/maintenance.hpp" for why this check
@@ -4874,7 +4874,7 @@ Future<Response> Master::Http::_stopMaintenance(
     }
   }
 
-  return master->registrar->apply(Owned<Operation>(
+  return master->registrar->apply(Owned<RegistryOperation>(
       new maintenance::StopMaintenance(machineIds)))
     .then(defer(master->self(), [=](bool result) -> Future<Response> {
       // See the top comment in "master/maintenance.hpp" for why this check
@@ -5240,7 +5240,7 @@ Future<Response> Master::Http::_unreserve(
     return BadRequest("No agent found with specified ID");
   }
 
-  // Create an offer operation.
+  // Create an operation.
   Offer::Operation operation;
   operation.set_type(Offer::Operation::UNRESERVE);
   operation.mutable_unreserve()->mutable_resources()->CopyFrom(resources);
@@ -5442,7 +5442,7 @@ Future<Response> Master::Http::_markAgentGone(const SlaveID& slaveId) const
 
   TimeInfo goneTime = protobuf::getCurrentTime();
 
-  Future<bool> gone = master->registrar->apply(Owned<Operation>(
+  Future<bool> gone = master->registrar->apply(Owned<RegistryOperation>(
       new MarkSlaveGone(slaveId, goneTime)));
 
   gone.onAny(defer(

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/master/maintenance.hpp
----------------------------------------------------------------------
diff --git a/src/master/maintenance.hpp b/src/master/maintenance.hpp
index b1e176c..7021f91 100644
--- a/src/master/maintenance.hpp
+++ b/src/master/maintenance.hpp
@@ -47,7 +47,7 @@ namespace maintenance {
  *
  * TODO(josephw): allow more than one schedule.
  */
-class UpdateSchedule : public Operation
+class UpdateSchedule : public RegistryOperation
 {
 public:
   explicit UpdateSchedule(
@@ -68,7 +68,7 @@ private:
  *
  * TODO(josephw): Allow a transition from `UP` to `DOWN`.
  */
-class StartMaintenance : public Operation
+class StartMaintenance : public RegistryOperation
 {
 public:
   explicit StartMaintenance(
@@ -88,7 +88,7 @@ private:
  * schedule prior to executing this operation. The machines will be
  * removed from the maintenance schedule.
  */
-class StopMaintenance : public Operation
+class StopMaintenance : public RegistryOperation
 {
 public:
   explicit StopMaintenance(

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index cf8a22b..04378a8 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -876,8 +876,8 @@ void Master::initialize()
       &ReconcileTasksMessage::framework_id,
       &ReconcileTasksMessage::statuses);
 
-  install<OfferOperationStatusUpdate>(
-      &Master::offerOperationStatusUpdate);
+  install<UpdateOperationStatusMessage>(
+      &Master::updateOperationStatus);
 
   install<ExitedExecutorMessage>(
       &Master::exitedExecutor,
@@ -1793,7 +1793,8 @@ Future<Nothing> Master::_recover(const Registry& registry)
       weightInfo.set_weight(weight);
       weightInfos.push_back(weightInfo);
     }
-    registrar->apply(Owned<Operation>(new weights::UpdateWeights(weightInfos)));
+    registrar->apply(Owned<RegistryOperation>(
+        new weights::UpdateWeights(weightInfos)));
   }
 
   allocator->updateWeights(weightInfos);
@@ -1883,7 +1884,7 @@ void Master::doRegistryGc()
           << " unreachable and " << toRemoveGone.size()
           << " gone agents from the registry";
 
-  registrar->apply(Owned<Operation>(
+  registrar->apply(Owned<RegistryOperation>(
       new Prune(toRemoveUnreachable, toRemoveGone)))
     .onAny(defer(self(),
                  &Self::_doRegistryGc,
@@ -2067,7 +2068,7 @@ Nothing Master::markUnreachableAfterFailover(const SlaveInfo& slave)
 
   slaves.markingUnreachable.insert(slave.id());
 
-  registrar->apply(Owned<Operation>(
+  registrar->apply(Owned<RegistryOperation>(
           new MarkSlaveUnreachable(slave, unreachableTime)))
     .onAny(defer(self(),
                  &Self::_markUnreachableAfterFailover,
@@ -2357,7 +2358,7 @@ void Master::drop(
   // operation was dropped through subsequent offers.
 
   LOG(WARNING) << "Dropping " << Offer::Operation::Type_Name(operation.type())
-               << " offer operation from framework " << *framework
+               << " operation from framework " << *framework
                << ": " << message;
 }
 
@@ -2500,17 +2501,17 @@ void Master::receive(
       break;
     }
 
-    case scheduler::Call::ACKNOWLEDGE_OFFER_OPERATION_UPDATE: {
+    case scheduler::Call::ACKNOWLEDGE_OPERATION_STATUS: {
       Try<id::UUID> uuid = id::UUID::fromBytes(
-          call.acknowledge_offer_operation_update().status_uuid());
+          call.acknowledge_operation_status().uuid());
       if (uuid.isError()) {
         drop(from, call, uuid.error());
         return;
       }
 
-      acknowledgeOfferOperationUpdate(
+      acknowledgeOperationStatus(
           framework,
-          call.acknowledge_offer_operation_update());
+          call.acknowledge_operation_status());
       break;
     }
 
@@ -2518,8 +2519,8 @@ void Master::receive(
       reconcile(framework, call.reconcile());
       break;
 
-    case scheduler::Call::RECONCILE_OFFER_OPERATIONS:
-      reconcileOfferOperations(framework, call.reconcile_offer_operations());
+    case scheduler::Call::RECONCILE_OPERATIONS:
+      reconcileOperations(framework, call.reconcile_operations());
       break;
 
     case scheduler::Call::MESSAGE:
@@ -4124,7 +4125,7 @@ void Master::accept(
             break;
           }
           case Offer::Operation::UNKNOWN: {
-            LOG(WARNING) << "Ignoring unknown offer operation";
+            LOG(WARNING) << "Ignoring unknown operation";
             break;
           }
         }
@@ -4134,11 +4135,11 @@ void Master::accept(
         // If any operation has the `id` field set we drop it, and in the case
         // of LAUNCH or LAUNCH_GROUP we send task status updates as well.
         //
-        // TODO(greggomann): Remove this once offer operation feedback is
+        // TODO(greggomann): Remove this once operation feedback is
         // implemented. See MESOS-8054.
         const string message =
-          "The `id` field was set on this operation, but offer operation"
-          " status updates are not yet supported";
+          "The `id` field was set on this operation, but operation "
+          "status updates are not yet supported";
 
         switch (operation.type()) {
           case Offer::Operation::LAUNCH: {
@@ -4169,7 +4170,7 @@ void Master::accept(
             break;
           }
           case Offer::Operation::UNKNOWN: {
-            LOG(WARNING) << "Ignoring unknown offer operation";
+            LOG(WARNING) << "Ignoring unknown operation";
             break;
           }
         }
@@ -4394,7 +4395,7 @@ void Master::accept(
 
       case Offer::Operation::UNKNOWN: {
         // TODO(vinod): Send an error event to the scheduler?
-        LOG(WARNING) << "Ignoring unknown offer operation";
+        LOG(WARNING) << "Ignoring unknown operation";
         break;
       }
     }
@@ -4509,7 +4510,7 @@ void Master::_accept(
     return;
   }
 
-  // Some offer operations update the offered resources. We keep
+  // Some operations update the offered resources. We keep
   // updated offered resources here. When a task is successfully
   // launched, we remove its resource from offered resources.
   Resources _offeredResources = offeredResources;
@@ -4523,7 +4524,7 @@ void Master::_accept(
   Resources offeredSharedResources = offeredResources.shared();
 
   // Maintain a list of resource conversions to pass to the allocator
-  // as a result of offer operations. Note that:
+  // as a result of operations. Note that:
   // 1) We drop invalid operations.
   // 2) For LAUNCH operations, we drop invalid tasks. LAUNCH operation
   //    will result in resource conversions because of shared
@@ -5390,13 +5391,13 @@ void Master::_accept(
       }
 
       case Offer::Operation::UNKNOWN: {
-        LOG(WARNING) << "Ignoring unknown offer operation";
+        LOG(WARNING) << "Ignoring unknown operation";
         break;
       }
     }
   }
 
-  // Update the allocator based on the offer operations.
+  // Update the allocator based on the operations.
   if (!conversions.empty()) {
     allocator->updateAllocation(
         frameworkId,
@@ -5886,10 +5887,10 @@ void Master::acknowledge(
 }
 
 
-// TODO(greggomann): Implement offer operation update acknowledgement.
-void Master::acknowledgeOfferOperationUpdate(
+// TODO(greggomann): Implement operation status acknowledgement.
+void Master::acknowledgeOperationStatus(
     Framework* framework,
-    const scheduler::Call::AcknowledgeOfferOperationUpdate& acknowledge) {}
+    const scheduler::Call::AcknowledgeOperationStatus& acknowledge) {}
 
 
 void Master::schedulerMessage(
@@ -6245,7 +6246,7 @@ void Master::_registerSlave(
 
   registerSlaveMessage.mutable_slave()->mutable_id()->CopyFrom(slaveId);
 
-  registrar->apply(Owned<Operation>(new AdmitSlave(slaveInfo_)))
+  registrar->apply(Owned<RegistryOperation>(new AdmitSlave(slaveInfo_)))
     .onAny(defer(self(),
                  &Self::__registerSlave,
                  pid,
@@ -6604,7 +6605,7 @@ void Master::_reregisterSlave(
           std::move(reregisterSlaveMessage),
           true);
     } else {
-      registrar->apply(Owned<Operation>(new UpdateSlave(slaveInfo)))
+      registrar->apply(Owned<RegistryOperation>(new UpdateSlave(slaveInfo)))
         .onAny(defer(self(),
             &Self::___reregisterSlave,
             pid,
@@ -6629,7 +6630,7 @@ void Master::_reregisterSlave(
           std::move(reregisterSlaveMessage),
           true);
     } else {
-      registrar->apply(Owned<Operation>(new UpdateSlave(slaveInfo)))
+      registrar->apply(Owned<RegistryOperation>(new UpdateSlave(slaveInfo)))
         .onAny(defer(self(),
             &Self::__reregisterSlave,
             pid,
@@ -6645,7 +6646,8 @@ void Master::_reregisterSlave(
     VLOG(1) << "Consulting registry about agent " << slaveInfo.id()
             << " at " << pid << "(" << slaveInfo.hostname() << ")";
 
-    registrar->apply(Owned<Operation>(new MarkSlaveReachable(slaveInfo)))
+    registrar->apply(Owned<RegistryOperation>(
+        new MarkSlaveReachable(slaveInfo)))
       .onAny(defer(self(),
           &Self::__reregisterSlave,
           pid,
@@ -7328,35 +7330,33 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
     slave->resourceVersions = resourceVersions;
   }
 
-  // Check if the known offer operations for this agent changed.
-  const hashset<id::UUID> knownOfferOperations = slave->offerOperations.keys();
-  hashset<id::UUID> receivedOfferOperations;
+  // Check if the known operations for this agent changed.
+  const hashset<id::UUID> knownOperations = slave->operations.keys();
+  hashset<id::UUID> receivedOperations;
 
-  foreach (
-      const OfferOperation& operation,
-      message.offer_operations().operations()) {
-    Try<id::UUID> operationUuid =
-      id::UUID::fromBytes(operation.operation_uuid().value());
+  foreach (const Operation& operation, message.operations().operations()) {
+    Try<id::UUID> operationUuid = id::UUID::fromBytes(operation.uuid().value());
     CHECK_SOME(operationUuid);
-    receivedOfferOperations.insert(operationUuid.get());
+
+    receivedOperations.insert(operationUuid.get());
   }
 
   if (message.has_resource_providers()) {
     foreach (
         const UpdateSlaveMessage::ResourceProvider& resourceProvider,
         message.resource_providers().providers()) {
-      foreach (
-          const OfferOperation& operation,
-          resourceProvider.operations().operations()) {
+      foreach (const Operation& operation,
+               resourceProvider.operations().operations()) {
         Try<id::UUID> operationUuid =
-          id::UUID::fromBytes(operation.operation_uuid().value());
+          id::UUID::fromBytes(operation.uuid().value());
         CHECK_SOME(operationUuid);
-        receivedOfferOperations.insert(operationUuid.get());
+
+        receivedOperations.insert(operationUuid.get());
       }
     }
   }
 
-  updated = updated || knownOfferOperations != receivedOfferOperations;
+  updated = updated || knownOperations != receivedOperations;
 
   if (!updated) {
     LOG(INFO) << "Ignoring update on agent " << *slave
@@ -7368,8 +7368,8 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
   {
     Option<Resources> oldTotal;
     Option<Resources> newTotal;
-    Option<hashmap<id::UUID, OfferOperation>> oldOfferOperations;
-    Option<hashmap<id::UUID, OfferOperation>> newOfferOperations;
+    Option<hashmap<id::UUID, Operation>> oldOperations;
+    Option<hashmap<id::UUID, Operation>> newOperations;
     Option<ResourceProviderInfo> info;
   };
 
@@ -7405,11 +7405,10 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
       resourceProviders[providerId].oldTotal = resources;
     }
 
-    // Process known offer operations.
-    foreachpair (
-        const id::UUID& uuid,
-        OfferOperation* operation,
-        slave->offerOperations) {
+    // Process known operations.
+    foreachpair (const id::UUID& uuid,
+                 Operation* operation,
+                 slave->operations) {
       Result<ResourceProviderID> providerId_ =
         getResourceProviderId(operation->info());
 
@@ -7424,33 +7423,31 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
 
       // Set up an init empty list of existing operations. We might
       // create a record for this resource provider if needed.
-      if (resourceProviders[providerId].oldOfferOperations.isNone()) {
-        resourceProviders.at(providerId).oldOfferOperations =
-          hashmap<id::UUID, OfferOperation>();
+      if (resourceProviders[providerId].oldOperations.isNone()) {
+        resourceProviders.at(providerId).oldOperations =
+          hashmap<id::UUID, Operation>();
       }
 
       resourceProviders.at(providerId)
-        .oldOfferOperations->emplace(uuid, *operation);
+        .oldOperations->emplace(uuid, *operation);
     }
 
     // Explicitly add an entry for received agent resources.
     resourceProviders[None()].newTotal =
       newSlaveResources.filter(agentResources);
 
-    // Process received agent offer operations.
-    resourceProviders[None()].newOfferOperations =
-      hashmap<id::UUID, OfferOperation>();
+    // Process received agent operations.
+    resourceProviders[None()].newOperations =
+      hashmap<id::UUID, Operation>();
 
-    foreach (
-        const OfferOperation& operation,
-        message.offer_operations().operations()) {
-      Try<id::UUID> uuid =
-        id::UUID::fromBytes(operation.operation_uuid().value());
-      CHECK_SOME(uuid) << "Could not deserialize operation id when reconciling "
-                          "offer operations";
+    foreach (const Operation& operation, message.operations().operations()) {
+      Try<id::UUID> uuid = id::UUID::fromBytes(operation.uuid().value());
+
+      CHECK_SOME(uuid)
+        << "Could not deserialize operation id when reconciling operations";
 
       resourceProviders.at(None())
-        .newOfferOperations->emplace(uuid.get(), operation);
+        .newOperations->emplace(uuid.get(), operation);
     }
 
     // Process explicitly received resource provider information.
@@ -7467,20 +7464,18 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
         provider.info = resourceProvider.info();
 
         provider.newTotal = resourceProvider.total_resources();
-        if (provider.newOfferOperations.isNone()) {
-          provider.newOfferOperations = hashmap<id::UUID, OfferOperation>();
+        if (provider.newOperations.isNone()) {
+          provider.newOperations = hashmap<id::UUID, Operation>();
         }
 
-        foreach (
-            const OfferOperation& operation,
-            resourceProvider.operations().operations()) {
-          Try<id::UUID> uuid =
-            id::UUID::fromBytes(operation.operation_uuid().value());
+        foreach (const Operation& operation,
+                 resourceProvider.operations().operations()) {
+          Try<id::UUID> uuid = id::UUID::fromBytes(operation.uuid().value());
+
           CHECK_SOME(uuid)
-            << "Could not deserialize operation id when reconciling "
-            "offer operations";
+            << "Could not deserialize operation id when reconciling operations";
 
-          provider.newOfferOperations->emplace(uuid.get(), operation);
+          provider.newOperations->emplace(uuid.get(), operation);
         }
       }
     }
@@ -7495,23 +7490,24 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
       if (providerId.isSome() &&
           slave->resourceProviders.contains(providerId.get())) {
         // For known resource providers the master should always know at least
-        // as many non-terminal offer operations as the agent. While an
+        // as many non-terminal operations as the agent. While an
         // operation might get lost on the way to the agent or resource
         // provider, or become terminal inside the agent, the master would never
-        // make an offer operation known to the agent terminal without the agent
+        // make an operation known to the agent terminal without the agent
         // doing that first.
         //
         // NOTE: We only consider non-terminal operations here as there is an
-        // edge case where the master removes a terminal offer operation from
+        // edge case where the master removes a terminal operation from
         // its own state when it passes on an acknowledgement from a framework
         // to the agent, but the agent fails over before it can process the
         // acknowledgement, or the agent initiates an unrelated
         // `UpdateSlaveMessage`.
         auto extractPendingOperations =
-          [](const hashmap<id::UUID, OfferOperation>& source,
+          [](const hashmap<id::UUID, Operation>& source,
              hashset<id::UUID>* target) {
-            foreachpair (
-                const id::UUID& uuid, const OfferOperation& operation, source) {
+            foreachpair (const id::UUID& uuid,
+                         const Operation& operation,
+                         source) {
               if (!protobuf::isTerminalState(
                       operation.latest_status().state())) {
                 target->insert(uuid);
@@ -7522,20 +7518,19 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
         hashset<id::UUID> oldPendingOperations;
         hashset<id::UUID> newPendingOperations;
 
-        if (provider.oldOfferOperations.isSome()) {
+        if (provider.oldOperations.isSome()) {
           extractPendingOperations(
-              provider.oldOfferOperations.get(), &oldPendingOperations);
+              provider.oldOperations.get(), &oldPendingOperations);
         }
 
-        if (provider.newOfferOperations.isSome()) {
+        if (provider.newOperations.isSome()) {
           extractPendingOperations(
-              provider.newOfferOperations.get(), &newPendingOperations);
+              provider.newOperations.get(), &newPendingOperations);
         }
 
         foreach (const id::UUID& uuid, newPendingOperations) {
           CHECK(oldPendingOperations.contains(uuid))
-            << "Agent tried to reconcile unknown non-terminal offer "
-               "operation "
+            << "Agent tried to reconcile unknown non-terminal operation "
             << uuid.toString();
         }
       }
@@ -7558,12 +7553,11 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
         //
         // TODO(bbannier): Reconcile agent operations in
         // `ReregisterSlaveMessage` in which case we expect agents to
-        // send the already known offer operations again here
-        // (possibly with changed status).
-        if (provider.newOfferOperations.isSome()) {
-          foreachvalue (
-              const OfferOperation& operation,
-              provider.newOfferOperations.get()) {
+        // send the already known operations again here (possibly with
+        // changed status).
+        if (provider.newOperations.isSome()) {
+          foreachvalue (const Operation& operation,
+                        provider.newOperations.get()) {
             CHECK(protobuf::isSpeculativeOperation(operation.info()));
           }
         }
@@ -7571,26 +7565,27 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
     }
   }
 
-  ReconcileOfferOperationsMessage reconcile;
+  ReconcileOperationsMessage reconcile;
 
   // Update master and allocator state.
-  foreachpair (
-      const Option<ResourceProviderID>& providerId,
-      const ResourceProvider& provider,
-      resourceProviders) {
-    // Below we only add offer operations to our state from resource providers
-    // which are unknown, or possibly remove them for known resource providers.
-    // This works since the master should always know more offer operations of
-    // known resource providers than any resource provider itself.
+  foreachpair (const Option<ResourceProviderID>& providerId,
+               const ResourceProvider& provider,
+               resourceProviders) {
+    // Below we only add operations to our state from resource
+    // providers which are unknown, or possibly remove them for known
+    // resource providers.  This works since the master should always
+    // know more operations of known resource providers than any
+    // resource provider itself.
     //
-    // NOTE: We do not mutate offer operation statuses here; that is the
-    // responsibility of the `offerOperationStatusUpdate` handler.
+    // NOTE: We do not mutate operation statuses here; that is the
+    // responsibility of the `updateOperationStatus` handler.
     //
-    // There still exists an edge case where the master might remove a terminal
-    // offer operation from its state when passing an acknowledgement from a
-    // framework on to the agent, with the agent failing over before the
-    // acknowledgement can be processed. In that case the agent would track an
-    // operation unknown to the master.
+    // There still exists an edge case where the master might remove a
+    // terminal operation from its state when passing an
+    // acknowledgement from a framework on to the agent, with the
+    // agent failing over before the acknowledgement can be processed.
+    // In that case the agent would track an operation unknown to the
+    // master.
     //
     // TODO(bbannier): We might want to consider to also learn about
     // new (terminal) operations when observing messages from status
@@ -7612,13 +7607,12 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
 
       hashmap<FrameworkID, Resources> usedByOperations;
 
-      if (provider.newOfferOperations.isSome()) {
-        foreachpair (
-            const id::UUID& uuid,
-            const OfferOperation& operation,
-            provider.newOfferOperations.get()) {
+      if (provider.newOperations.isSome()) {
+        foreachpair (const id::UUID& uuid,
+                     const Operation& operation,
+                     provider.newOperations.get()) {
           // Update to bookkeeping of operations.
-          CHECK(!slave->offerOperations.contains(uuid))
+          CHECK(!slave->operations.contains(uuid))
             << "New operation " << uuid.toString() << " is already known";
 
           Framework* framework = nullptr;
@@ -7626,7 +7620,7 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
             framework = getFramework(operation.framework_id());
           }
 
-          addOfferOperation(framework, slave, new OfferOperation(operation));
+          addOperation(framework, slave, new Operation(operation));
         }
       }
 
@@ -7635,30 +7629,32 @@ void Master::updateSlave(UpdateSlaveMessage&& message)
           provider.newTotal.get(),
           usedByOperations);
     } else {
-      // If this is a known resource provider or agent its total capacity cannot
-      // have changed, and it would not know about any non-terminal offer
-      // operations not already known to the master. However, it might not have
-      // received an offer operation for a couple different reasons:
-      //   - The resource provider or agent could have failed over before the
-      //     operation's `ApplyOfferOperationMessage` could be received.
-      //   - The operation's `ApplyOfferOperationMessage` could have raced with
-      //     this `UpdateSlaveMessage`.
+      // If this is a known resource provider or agent its total
+      // capacity cannot have changed, and it would not know about any
+      // non-terminal operations not already known to the master.
+      // However, it might not have received an operation for a couple
+      // different reasons:
+      //   - The resource provider or agent could have failed over
+      //     before the operation's `ApplyOperationMessage` could be
+      //     received.
+      //   - The operation's `ApplyOperationMessage` could have raced
+      //     with this `UpdateSlaveMessage`.
       //
-      // In both of these cases, we need to reconcile such operations explicitly
-      // with the agent. For operations which the agent or resource provider
-      // does not recognize, an OFFER_OPERATION_DROPPED status update will be
-      // generated and the master will remove the operation from its state upon
-      // receipt of that update.
-      if (provider.oldOfferOperations.isSome()) {
-        foreachkey (const id::UUID& uuid, provider.oldOfferOperations.get()) {
-          if (provider.newOfferOperations.isNone() ||
-              !provider.newOfferOperations->contains(uuid)) {
+      // In both of these cases, we need to reconcile such operations
+      // explicitly with the agent. For operations which the agent or
+      // resource provider does not recognize, an OPERATION_DROPPED
+      // status update will be generated and the master will remove
+      // the operation from its state upon receipt of that update.
+      if (provider.oldOperations.isSome()) {
+        foreachkey (const id::UUID& uuid, provider.oldOperations.get()) {
+          if (provider.newOperations.isNone() ||
+              !provider.newOperations->contains(uuid)) {
             LOG(WARNING) << "Performing explicit reconciliation with agent for"
-                         << " known offer operation " << uuid.toString()
+                         << " known operation " << uuid.toString()
                          << " since it was not present in original"
                          << " reconciliation message from agent";
 
-            ReconcileOfferOperationsMessage::Operation* reconcileOperation =
+            ReconcileOperationsMessage::Operation* reconcileOperation =
               reconcile.add_operations();
             reconcileOperation->mutable_operation_uuid()->set_value(
                 uuid.toBytes());
@@ -7929,15 +7925,15 @@ void Master::forward(
 }
 
 
-void Master::offerOperationStatusUpdate(
-    const OfferOperationStatusUpdate& update)
+void Master::updateOperationStatus(
+    const UpdateOperationStatusMessage& update)
 {
   CHECK(update.has_slave_id())
     << "External resource provider is not supported yet";
 
   const SlaveID& slaveId = update.slave_id();
 
-  // The status update for the offer operation might be for an
+  // The status update for the operation might be for an
   // operator API call, thus the framework ID here is optional.
   Option<FrameworkID> frameworkId = update.has_framework_id()
     ? update.framework_id()
@@ -7945,7 +7941,7 @@ void Master::offerOperationStatusUpdate(
 
   Try<id::UUID> uuid = id::UUID::fromBytes(update.operation_uuid().value());
   if (uuid.isError()) {
-    LOG(ERROR) << "Failed to parse offer operation UUID for operation "
+    LOG(ERROR) << "Failed to parse operation UUID for operation "
                << "'" << update.status().operation_id() << "' for "
                << (frameworkId.isSome()
                      ? "framework " + stringify(frameworkId.get())
@@ -7958,7 +7954,7 @@ void Master::offerOperationStatusUpdate(
 
   // This is possible if the agent is marked as unreachable or gone,
   // or has initiated a graceful shutdown. In either of those cases,
-  // ignore the offer operation status update.
+  // ignore the operation status update.
   //
   // TODO(jieyu): If the agent is unreachable or has initiated a
   // graceful shutdown, we can still forward the update to the
@@ -7968,7 +7964,7 @@ void Master::offerOperationStatusUpdate(
   // we cannot forward the update because the master might already
   // tell the framework that the operation is gone.
   if (slave == nullptr) {
-    LOG(WARNING) << "Ignoring status update for offer operation '"
+    LOG(WARNING) << "Ignoring status update for operation '"
                  << update.status().operation_id()
                  << "' (uuid: " << uuid->toString() << ") for "
                  << (frameworkId.isSome()
@@ -7978,9 +7974,9 @@ void Master::offerOperationStatusUpdate(
     return;
   }
 
-  OfferOperation* operation = slave->getOfferOperation(uuid.get());
+  Operation* operation = slave->getOperation(uuid.get());
   if (operation == nullptr) {
-    LOG(ERROR) << "Failed to find the offer operation '"
+    LOG(ERROR) << "Failed to find the operation '"
                << update.status().operation_id() << "' (uuid: "
                << uuid->toString() << ") for "
                << (frameworkId.isSome()
@@ -7990,7 +7986,7 @@ void Master::offerOperationStatusUpdate(
     return;
   }
 
-  // TODO(greggomann): Remove this CHECK once offer operation feedback is
+  // TODO(greggomann): Remove this CHECK once operation feedback is
   // implemented. See MESOS-8054.
   CHECK(!operation->info().has_id());
 
@@ -7999,7 +7995,7 @@ void Master::offerOperationStatusUpdate(
     Framework* framework = getFramework(frameworkId.get());
 
     if (framework == nullptr || !framework->connected()) {
-      LOG(WARNING) << "Received status update for offer operation '"
+      LOG(WARNING) << "Received status update for operation '"
                    << update.status().operation_id()
                    << "' (uuid: " << uuid->toString() << ") "
                    << "for framework " << frameworkId.get()
@@ -8010,12 +8006,12 @@ void Master::offerOperationStatusUpdate(
     }
   }
 
-  updateOfferOperation(operation, update);
+  updateOperation(operation, update);
 
   CHECK(operation->statuses_size() > 0);
 
   // If this update is being sent reliably, send an acknowledgement.
-  if (operation->statuses(operation->statuses_size() - 1).has_status_uuid()) {
+  if (operation->statuses(operation->statuses_size() - 1).has_uuid()) {
     Result<ResourceProviderID> resourceProviderId =
       getResourceProviderId(operation->info());
 
@@ -8023,11 +8019,11 @@ void Master::offerOperationStatusUpdate(
     // updates for operations on its default resources. See MESOS-8194.
     CHECK_SOME(resourceProviderId);
 
-    OfferOperationUpdateAcknowledgementMessage acknowledgement;
+    AcknowledgeOperationStatusMessage acknowledgement;
     acknowledgement.mutable_status_uuid()->CopyFrom(
-        operation->statuses(operation->statuses_size() - 1).status_uuid());
+        operation->statuses(operation->statuses_size() - 1).uuid());
     acknowledgement.mutable_operation_uuid()->CopyFrom(
-        operation->operation_uuid());
+        operation->uuid());
 
     acknowledgement.mutable_resource_provider_id()
       ->CopyFrom(resourceProviderId.get());
@@ -8042,7 +8038,7 @@ void Master::offerOperationStatusUpdate(
   // operation.
   if (protobuf::isTerminalState(
           operation->statuses(operation->statuses_size() - 1).state())) {
-    removeOfferOperation(operation);
+    removeOperation(operation);
   }
 }
 
@@ -8214,7 +8210,7 @@ void Master::markUnreachable(const SlaveID& slaveId, const string& message)
   // slaves to the list of unreachable slaves. After this is complete,
   // we can remove the slave from the master's in-memory state and
   // send TASK_UNREACHABLE / TASK_LOST updates to the frameworks.
-  registrar->apply(Owned<Operation>(
+  registrar->apply(Owned<RegistryOperation>(
           new MarkSlaveUnreachable(slave->info, unreachableTime)))
     .onAny(defer(self(),
                  &Self::_markUnreachable,
@@ -8559,10 +8555,10 @@ void Master::_reconcileTasks(
 }
 
 
-// TODO(greggomann): Implement offer operation update reconciliation.
-void Master::reconcileOfferOperations(
+// TODO(greggomann): Implement operation update reconciliation.
+void Master::reconcileOperations(
     Framework* framework,
-    const scheduler::Call::ReconcileOfferOperations& reconcile) {}
+    const scheduler::Call::ReconcileOperations& reconcile) {}
 
 
 void Master::frameworkFailoverTimeout(const FrameworkID& frameworkId,
@@ -9225,8 +9221,8 @@ void Master::recoverFramework(
       }
     }
 
-    foreachvalue (OfferOperation* operation, slave->offerOperations) {
-      framework->addOfferOperation(operation);
+    foreachvalue (Operation* operation, slave->operations) {
+      framework->addOperation(operation);
     }
   }
 
@@ -9566,9 +9562,8 @@ void Master::removeFramework(Framework* framework)
     }
   }
 
-  foreachvalue (OfferOperation* operation,
-                utils::copy(framework->offerOperations)) {
-    framework->removeOfferOperation(operation);
+  foreachvalue (Operation* operation, utils::copy(framework->operations)) {
+    framework->removeOperation(operation);
   }
 
   // TODO(benh): Similar code between removeFramework and
@@ -9829,7 +9824,7 @@ void Master::removeSlave(
   // to frameworks, etc.). Ensuring that the registry update succeeds
   // before we modify in-memory state ensures that external clients
   // see consistent behavior if the master fails over.
-  registrar->apply(Owned<Operation>(new RemoveSlave(slave->info)))
+  registrar->apply(Owned<RegistryOperation>(new RemoveSlave(slave->info)))
     .onAny(defer(self(),
                  &Self::_removeSlave,
                  slave,
@@ -10306,36 +10301,36 @@ void Master::removeExecutor(
 }
 
 
-void Master::addOfferOperation(
+void Master::addOperation(
     Framework* framework,
     Slave* slave,
-    OfferOperation* operation)
+    Operation* operation)
 {
   CHECK_NOTNULL(operation);
   CHECK_NOTNULL(slave);
 
-  slave->addOfferOperation(operation);
+  slave->addOperation(operation);
 
   if (framework != nullptr) {
-    framework->addOfferOperation(operation);
+    framework->addOperation(operation);
   }
 }
 
 
-void Master::updateOfferOperation(
-    OfferOperation* operation,
-    const OfferOperationStatusUpdate& update)
+void Master::updateOperation(
+    Operation* operation,
+    const UpdateOperationStatusMessage& update)
 {
   CHECK_NOTNULL(operation);
 
-  const OfferOperationStatus& status = update.status();
+  const OperationStatus& status = update.status();
 
-  Option<OfferOperationStatus> latestStatus;
+  Option<OperationStatus> latestStatus;
   if (update.has_latest_status()) {
     latestStatus = update.latest_status();
   }
 
-  // Whether the offer operation has just become terminated.
+  // Whether the operation has just become terminated.
   Option<bool> terminated;
 
   if (latestStatus.isSome()) {
@@ -10360,7 +10355,7 @@ void Master::updateOfferOperation(
 
   operation->add_statuses()->CopyFrom(status);
 
-  LOG(INFO) << "Updating the state of offer operation '"
+  LOG(INFO) << "Updating the state of operation '"
             << operation->info().id() << "' (uuid: " << update.operation_uuid()
             << ") of framework " << operation->framework_id()
             << " (latest state: " << operation->latest_status().state()
@@ -10377,7 +10372,7 @@ void Master::updateOfferOperation(
   // DESTROY), the master speculatively assumes that the operation
   // will be successful when it accepts the operations. Therefore, we
   // don't need to update the resource accounting for those types of
-  // offer operations in the master and in the allocator states upon
+  // operations in the master and in the allocator states upon
   // receiving a terminal status update.
   if (protobuf::isSpeculativeOperation(operation->info())) {
     return;
@@ -10389,7 +10384,7 @@ void Master::updateOfferOperation(
   CHECK(operation->has_slave_id())
     << "External resource provider is not supported yet";
 
-  // The slave owns the OfferOperation object and cannot be nullptr.
+  // The slave owns the Operation object and cannot be nullptr.
   // TODO(jieyu): Revisit this once we introduce support for external
   // resource provider.
   Slave* slave = slaves.registered.get(operation->slave_id());
@@ -10397,7 +10392,7 @@ void Master::updateOfferOperation(
 
   switch (operation->latest_status().state()) {
     // Terminal state, and the conversion is successful.
-    case OFFER_OPERATION_FINISHED: {
+    case OPERATION_FINISHED: {
       const Resources converted =
         operation->latest_status().converted_resources();
 
@@ -10426,9 +10421,9 @@ void Master::updateOfferOperation(
     }
 
     // Terminal state, and the conversion has failed.
-    case OFFER_OPERATION_FAILED:
-    case OFFER_OPERATION_ERROR:
-    case OFFER_OPERATION_DROPPED: {
+    case OPERATION_FAILED:
+    case OPERATION_ERROR:
+    case OPERATION_DROPPED: {
       allocator->recoverResources(
           operation->framework_id(),
           operation->slave_id(),
@@ -10439,9 +10434,9 @@ void Master::updateOfferOperation(
     }
 
     // Non-terminal. This shouldn't happen.
-    case OFFER_OPERATION_PENDING:
-    case OFFER_OPERATION_UNSUPPORTED: {
-      LOG(FATAL) << "Unexpected offer operation state "
+    case OPERATION_PENDING:
+    case OPERATION_UNSUPPORTED: {
+      LOG(FATAL) << "Unexpected operation state "
                  << operation->latest_status().state();
 
       break;
@@ -10460,7 +10455,7 @@ void Master::updateOfferOperation(
 }
 
 
-void Master::removeOfferOperation(OfferOperation* operation)
+void Master::removeOperation(Operation* operation)
 {
   CHECK_NOTNULL(operation);
 
@@ -10470,7 +10465,7 @@ void Master::removeOfferOperation(OfferOperation* operation)
     : nullptr;
 
   if (framework != nullptr) {
-    framework->removeOfferOperation(operation);
+    framework->removeOperation(operation);
   }
 
   // Remove from slave.
@@ -10480,7 +10475,7 @@ void Master::removeOfferOperation(OfferOperation* operation)
   Slave* slave = slaves.registered.get(operation->slave_id());
   CHECK_NOTNULL(slave);
 
-  slave->removeOfferOperation(operation);
+  slave->removeOperation(operation);
 
   // If the operation was not speculated and is not terminal we
   // need to also recover its used resources in the allocator.
@@ -10512,13 +10507,13 @@ Future<Nothing> Master::apply(Slave* slave, const Offer::Operation& operation)
 void Master::_apply(
     Slave* slave,
     Framework* framework,
-    const Offer::Operation& operation)
+    const Offer::Operation& operationInfo)
 {
   CHECK_NOTNULL(slave);
 
   if (slave->capabilities.resourceProvider) {
     Result<ResourceProviderID> resourceProviderId =
-      getResourceProviderId(operation);
+      getResourceProviderId(operationInfo);
 
     // This must have been validated by the caller.
     CHECK(!resourceProviderId.isError());
@@ -10534,36 +10529,35 @@ void Master::_apply(
            : "agent " + stringify(*slave))
       << " is unknown";
 
-    OfferOperation* offerOperation = new OfferOperation(
-        protobuf::createOfferOperation(
-            operation,
-            protobuf::createOfferOperationStatus(OFFER_OPERATION_PENDING),
+    Operation* operation = new Operation(
+        protobuf::createOperation(
+            operationInfo,
+            protobuf::createOperationStatus(OPERATION_PENDING),
             framework != nullptr
               ? framework->id()
               : Option<FrameworkID>::none(),
             slave->id));
 
-    addOfferOperation(framework, slave, offerOperation);
+    addOperation(framework, slave, operation);
 
-    if (protobuf::isSpeculativeOperation(offerOperation->info())) {
-      Offer::Operation strippedOperation = offerOperation->info();
-      protobuf::stripAllocationInfo(&strippedOperation);
+    if (protobuf::isSpeculativeOperation(operation->info())) {
+      Offer::Operation strippedOperationInfo = operation->info();
+      protobuf::stripAllocationInfo(&strippedOperationInfo);
 
       Try<vector<ResourceConversion>> conversions =
-        getResourceConversions(strippedOperation);
+        getResourceConversions(strippedOperationInfo);
 
       CHECK_SOME(conversions);
 
       slave->apply(conversions.get());
     }
 
-    ApplyOfferOperationMessage message;
+    ApplyOperationMessage message;
     if (framework != nullptr) {
       message.mutable_framework_id()->CopyFrom(framework->id());
     }
-    message.mutable_operation_info()->CopyFrom(offerOperation->info());
-    message.mutable_operation_uuid()->CopyFrom(
-        offerOperation->operation_uuid());
+    message.mutable_operation_info()->CopyFrom(operation->info());
+    message.mutable_operation_uuid()->CopyFrom(operation->uuid());
     if (resourceProviderId.isSome()) {
       message.mutable_resource_version_uuid()
         ->mutable_resource_provider_id()
@@ -10572,25 +10566,24 @@ void Master::_apply(
     message.mutable_resource_version_uuid()->mutable_uuid()->set_value(
         resourceVersion->toBytes());
 
-    LOG(INFO) << "Sending offer operation '"
-              << offerOperation->info().id()
-              << "' (uuid: " << offerOperation->operation_uuid()
-              << ") to agent " << *slave;
+    LOG(INFO) << "Sending operation '" << operation->info().id()
+              << "' (uuid: " << operation->uuid() << ") "
+              << "to agent " << *slave;
 
     send(slave->pid, message);
   } else {
-    if (!protobuf::isSpeculativeOperation(operation)) {
-      LOG(FATAL) << "Unexpected offer operation to apply on agent " << *slave;
+    if (!protobuf::isSpeculativeOperation(operationInfo)) {
+      LOG(FATAL) << "Unexpected operation to apply on agent " << *slave;
     }
 
     // We need to strip the allocation info from the operation's
     // resources in order to apply the operation successfully
     // since the agent's total is stored as unallocated resources.
-    Offer::Operation strippedOperation = operation;
-    protobuf::stripAllocationInfo(&strippedOperation);
+    Offer::Operation strippedOperationInfo = operationInfo;
+    protobuf::stripAllocationInfo(&strippedOperationInfo);
 
     Try<vector<ResourceConversion>> conversions =
-      getResourceConversions(strippedOperation);
+      getResourceConversions(strippedOperationInfo);
 
     CHECK_SOME(conversions);
 
@@ -11476,12 +11469,12 @@ void Slave::removeTask(Task* task)
 }
 
 
-void Slave::addOfferOperation(OfferOperation* operation)
+void Slave::addOperation(Operation* operation)
 {
-  Try<id::UUID> uuid = id::UUID::fromBytes(operation->operation_uuid().value());
+  Try<id::UUID> uuid = id::UUID::fromBytes(operation->uuid().value());
   CHECK_SOME(uuid);
 
-  offerOperations.put(uuid.get(), operation);
+  operations.put(uuid.get(), operation);
 
   if (!protobuf::isSpeculativeOperation(operation->info()) &&
       !protobuf::isTerminalState(operation->latest_status().state())) {
@@ -11498,10 +11491,10 @@ void Slave::addOfferOperation(OfferOperation* operation)
 }
 
 
-void Slave::recoverResources(OfferOperation* operation)
+void Slave::recoverResources(Operation* operation)
 {
   // TODO(jieyu): Currently, we do not keep track of used resources
-  // for offer operations that are created by the operator through the
+  // for operations that are created by the operator through the
   // operator API endpoint.
   if (!operation->has_framework_id()) {
     return;
@@ -11527,13 +11520,13 @@ void Slave::recoverResources(OfferOperation* operation)
 }
 
 
-void Slave::removeOfferOperation(OfferOperation* operation)
+void Slave::removeOperation(Operation* operation)
 {
-  Try<id::UUID> uuid = id::UUID::fromBytes(operation->operation_uuid().value());
+  Try<id::UUID> uuid = id::UUID::fromBytes(operation->uuid().value());
   CHECK_SOME(uuid);
 
-  CHECK(offerOperations.contains(uuid.get()))
-    << "Unknown offer operation (uuid: " << uuid->toString() << ")"
+  CHECK(operations.contains(uuid.get()))
+    << "Unknown operation (uuid: " << uuid->toString() << ")"
     << " to agent " << *this;
 
   if (!protobuf::isSpeculativeOperation(operation->info()) &&
@@ -11541,14 +11534,14 @@ void Slave::removeOfferOperation(OfferOperation* operation)
     recoverResources(operation);
   }
 
-  offerOperations.erase(uuid.get());
+  operations.erase(uuid.get());
 }
 
 
-OfferOperation* Slave::getOfferOperation(const id::UUID& uuid) const
+Operation* Slave::getOperation(const id::UUID& uuid) const
 {
-  if (offerOperations.contains(uuid)) {
-    return offerOperations.at(uuid);
+  if (operations.contains(uuid)) {
+    return operations.at(uuid);
   }
   return nullptr;
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index b800cda..8fe9420 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -146,13 +146,13 @@ Slave(Master* const _master,
 
   void removeTask(Task* task);
 
-  void addOfferOperation(OfferOperation* operation);
+  void addOperation(Operation* operation);
 
-  void recoverResources(OfferOperation* operation);
+  void recoverResources(Operation* operation);
 
-  void removeOfferOperation(OfferOperation* operation);
+  void removeOperation(Operation* operation);
 
-  OfferOperation* getOfferOperation(const id::UUID& uuid) const;
+  Operation* getOperation(const id::UUID& uuid) const;
 
   void addOffer(Offer* offer);
 
@@ -244,7 +244,7 @@ Slave(Master* const _master,
 
   // Pending operations or terminal operations that have
   // unacknowledged status updates on this agent.
-  hashmap<id::UUID, OfferOperation*> offerOperations;
+  hashmap<id::UUID, Operation*> operations;
 
   // Active offers on this slave.
   hashset<Offer*> offers;
@@ -252,7 +252,7 @@ Slave(Master* const _master,
   // Active inverse offers on this slave.
   hashset<InverseOffer*> inverseOffers;
 
-  // Resources for active task / executors / offer operations.
+  // Resources for active task / executors / operations.
   // Note that we maintain multiple copies of each shared resource in
   // `usedResources` as they are used by multiple tasks.
   hashmap<FrameworkID, Resources> usedResources;
@@ -489,8 +489,8 @@ public:
       const FrameworkID& frameworkId,
       const std::vector<TaskStatus>& statuses);
 
-  void offerOperationStatusUpdate(
-      const OfferOperationStatusUpdate& update);
+  void updateOperationStatus(
+      const UpdateOperationStatusMessage& update);
 
   void exitedExecutor(
       const process::UPID& from,
@@ -761,7 +761,7 @@ protected:
       Framework* framework);
 
   /**
-   * Authorizes a `RESERVE` offer operation.
+   * Authorizes a `RESERVE` operation.
    *
    * Returns whether the Reserve operation is authorized with the
    * provided principal. This function is used for authorization of
@@ -782,7 +782,7 @@ protected:
       const Option<process::http::authentication::Principal>& principal);
 
   /**
-   * Authorizes an `UNRESERVE` offer operation.
+   * Authorizes an `UNRESERVE` operation.
    *
    * Returns whether the Unreserve operation is authorized with the
    * provided principal. This function is used for authorization of
@@ -803,7 +803,7 @@ protected:
       const Option<process::http::authentication::Principal>& principal);
 
   /**
-   * Authorizes a `CREATE` offer operation.
+   * Authorizes a `CREATE` operation.
    *
    * Returns whether the Create operation is authorized with the provided
    * principal. This function is used for authorization of operations
@@ -824,7 +824,7 @@ protected:
       const Option<process::http::authentication::Principal>& principal);
 
   /**
-   * Authorizes a `DESTROY` offer operation.
+   * Authorizes a `DESTROY` operation.
    *
    * Returns whether the Destroy operation is authorized with the provided
    * principal. This function is used for authorization of operations
@@ -866,20 +866,20 @@ protected:
       const FrameworkID& frameworkId,
       const ExecutorID& executorId);
 
-  // Adds the given offer operation to the framework and the agent.
-  void addOfferOperation(
+  // Adds the given operation to the framework and the agent.
+  void addOperation(
       Framework* framework,
       Slave* slave,
-      OfferOperation* operation);
+      Operation* operation);
 
-  // Transitions the offer operation, and recovers resources if the
-  // offer operation becomes terminal.
-  void updateOfferOperation(
-      OfferOperation* operation,
-      const OfferOperationStatusUpdate& update);
+  // Transitions the operation, and recovers resources if the
+  // operation becomes terminal.
+  void updateOperation(
+      Operation* operation,
+      const UpdateOperationStatusMessage& update);
 
-  // Remove the offer operation.
-  void removeOfferOperation(OfferOperation* operation);
+  // Remove the operation.
+  void removeOperation(Operation* operation);
 
   // Attempts to update the allocator by applying the given operation.
   // If successful, updates the slave's resources, sends a
@@ -920,14 +920,14 @@ protected:
 
 private:
   // Updates the agent's resources by applying the given operation.
-  // Sends either `ApplyOfferOperationMessage` or
+  // Sends either `ApplyOperationMessage` or
   // `CheckpointResourcesMessage` (with updated checkpointed
   // resources) to the agent depending on if the agent has
   // `RESOURCE_PROVIDER` capability.
   void _apply(
       Slave* slave,
       Framework* framework,
-      const Offer::Operation& operation);
+      const Offer::Operation& operationInfo);
 
   void drop(
       const process::UPID& from,
@@ -1027,17 +1027,17 @@ private:
       Framework* framework,
       const scheduler::Call::Acknowledge& acknowledge);
 
-  void acknowledgeOfferOperationUpdate(
+  void acknowledgeOperationStatus(
       Framework* framework,
-      const scheduler::Call::AcknowledgeOfferOperationUpdate& acknowledge);
+      const scheduler::Call::AcknowledgeOperationStatus& acknowledge);
 
   void reconcile(
       Framework* framework,
       const scheduler::Call::Reconcile& reconcile);
 
-  void reconcileOfferOperations(
+  void reconcileOperations(
       Framework* framework,
-      const scheduler::Call::ReconcileOfferOperations& reconcile);
+      const scheduler::Call::ReconcileOperations& reconcile);
 
   void message(
       Framework* framework,
@@ -2456,25 +2456,24 @@ struct Framework
     }
   }
 
-  void addOfferOperation(OfferOperation* operation)
+  void addOperation(Operation* operation)
   {
     CHECK(operation->has_framework_id());
 
     const FrameworkID& frameworkId = operation->framework_id();
 
-    Try<id::UUID> uuid =
-      id::UUID::fromBytes(operation->operation_uuid().value());
+    Try<id::UUID> uuid = id::UUID::fromBytes(operation->uuid().value());
     CHECK_SOME(uuid);
 
-    CHECK(!offerOperations.contains(uuid.get()))
-      << "Duplicate offer operation '" << operation->info().id()
+    CHECK(!operations.contains(uuid.get()))
+      << "Duplicate operation '" << operation->info().id()
       << "' (uuid: " << uuid->toString() << ") "
       << "of framework " << frameworkId;
 
-    offerOperations.put(uuid.get(), operation);
+    operations.put(uuid.get(), operation);
 
     if (operation->info().has_id()) {
-      offerOperationUUIDs.put(operation->info().id(), uuid.get());
+      operationUUIDs.put(operation->info().id(), uuid.get());
     }
 
     if (!protobuf::isSpeculativeOperation(operation->info()) &&
@@ -2492,9 +2491,9 @@ struct Framework
       usedResources[slaveId] += consumed.get();
 
       // It's possible that we're not tracking the role from the
-      // resources in the offer operation for this framework if the
-      // role is absent from the framework's set of roles. In this
-      // case, we track the role's allocation for this framework.
+      // resources in the operation for this framework if the role is
+      // absent from the framework's set of roles. In this case, we
+      // track the role's allocation for this framework.
       foreachkey (const std::string& role, consumed->allocations()) {
         if (!isTrackedUnderRole(role)) {
           trackUnderRole(role);
@@ -2503,7 +2502,7 @@ struct Framework
     }
   }
 
-  void recoverResources(OfferOperation* operation)
+  void recoverResources(Operation* operation)
   {
     CHECK(operation->has_slave_id())
       << "External resource provider is not supported yet";
@@ -2548,14 +2547,13 @@ struct Framework
     }
   }
 
-  void removeOfferOperation(OfferOperation* operation)
+  void removeOperation(Operation* operation)
   {
-    Try<id::UUID> uuid =
-      id::UUID::fromBytes(operation->operation_uuid().value());
+    Try<id::UUID> uuid = id::UUID::fromBytes(operation->uuid().value());
     CHECK_SOME(uuid);
 
-    CHECK(offerOperations.contains(uuid.get()))
-      << "Unknown offer operation '" << operation->info().id()
+    CHECK(operations.contains(uuid.get()))
+      << "Unknown operation '" << operation->info().id()
       << "' (uuid: " << uuid->toString() << ") "
       << "of framework " << operation->framework_id();
 
@@ -2564,7 +2562,7 @@ struct Framework
       recoverResources(operation);
     }
 
-    offerOperations.erase(uuid.get());
+    operations.erase(uuid.get());
   }
 
   const FrameworkID id() const { return info.id(); }
@@ -2821,11 +2819,11 @@ struct Framework
 
   // Pending operations or terminal operations that have
   // unacknowledged status updates.
-  hashmap<id::UUID, OfferOperation*> offerOperations;
+  hashmap<id::UUID, Operation*> operations;
 
   // The map from the framework-specified operation ID to the
   // corresponding internal operation UUID.
-  hashmap<OfferOperationID, id::UUID> offerOperationUUIDs;
+  hashmap<OperationID, id::UUID> operationUUIDs;
 
   // NOTE: For the used and offered resources below, we keep the
   // total as well as partitioned by SlaveID.
@@ -2849,7 +2847,7 @@ struct Framework
   // TODO(mpark): Strip the non-scalar resources out of the totals
   // in order to avoid reporting incorrect statistics (MESOS-2623).
 
-  // Active task / executor / offer operation resources.
+  // Active task / executor / operation resources.
   Resources totalUsedResources;
 
   // Note that we maintain multiple copies of each shared resource in

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/master/quota.hpp
----------------------------------------------------------------------
diff --git a/src/master/quota.hpp b/src/master/quota.hpp
index 479112d..7f43996 100644
--- a/src/master/quota.hpp
+++ b/src/master/quota.hpp
@@ -58,7 +58,7 @@ namespace quota {
  * However, even if we return `false` (i.e. no mutation), the current
  * implementation of the registrar will still save the object again.
  */
-class UpdateQuota : public Operation
+class UpdateQuota : public RegistryOperation
 {
 public:
   explicit UpdateQuota(const mesos::quota::QuotaInfo& quotaInfo);
@@ -77,7 +77,7 @@ private:
  *
  * TODO(alexr): Consider uniting this operation with `UpdateQuota`.
  */
-class RemoveQuota : public Operation
+class RemoveQuota : public RegistryOperation
 {
 public:
   explicit RemoveQuota(const std::string& _role);

http://git-wip-us.apache.org/repos/asf/mesos/blob/760ab18c/src/master/quota_handler.cpp
----------------------------------------------------------------------
diff --git a/src/master/quota_handler.cpp b/src/master/quota_handler.cpp
index 26b2dc8..b1757e7 100644
--- a/src/master/quota_handler.cpp
+++ b/src/master/quota_handler.cpp
@@ -577,7 +577,7 @@ Future<http::Response> Master::QuotaHandler::__set(
   master->quotas[quotaInfo.role()] = quota;
 
   // Update the registry with the new quota and acknowledge the request.
-  return master->registrar->apply(Owned<Operation>(
+  return master->registrar->apply(Owned<RegistryOperation>(
       new quota::UpdateQuota(quotaInfo)))
     .then(defer(master->self(), [=](bool result) -> Future<http::Response> {
       // See the top comment in "master/quota.hpp" for why this check is here.
@@ -692,7 +692,7 @@ Future<http::Response> Master::QuotaHandler::__remove(const string& role) const
   master->quotas.erase(role);
 
   // Update the registry with the removed quota and acknowledge the request.
-  return master->registrar->apply(Owned<Operation>(
+  return master->registrar->apply(Owned<RegistryOperation>(
       new quota::RemoveQuota(role)))
     .then(defer(master->self(), [=](bool result) -> Future<http::Response> {
       // See the top comment in "master/quota.hpp" for why this check is here.