You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bb...@apache.org on 2018/02/21 13:33:43 UTC

[2/4] mesos git commit: Removed some redundant `get` calls.

Removed some redundant `get` calls.

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


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

Branch: refs/heads/master
Commit: 49c642e98a7dac911a7d21aea1c429e979def0ab
Parents: 0d96c61
Author: Benjamin Bannier <be...@mesosphere.io>
Authored: Wed Feb 21 14:25:01 2018 +0100
Committer: Benjamin Bannier <bb...@apache.org>
Committed: Wed Feb 21 14:26:56 2018 +0100

----------------------------------------------------------------------
 src/appc/spec.cpp                               |  2 +-
 src/authentication/cram_md5/auxprop.cpp         |  2 +-
 src/cli/execute.cpp                             |  4 +-
 src/common/command_utils.cpp                    |  6 +-
 src/common/http.cpp                             |  2 +-
 src/common/parse.hpp                            |  2 +-
 src/common/protobuf_utils.cpp                   | 10 +--
 src/common/recordio.hpp                         |  4 +-
 src/credentials/credentials.hpp                 |  8 +-
 src/docker/docker.cpp                           | 55 +++++++-------
 src/docker/spec.cpp                             | 24 +++---
 src/executor/executor.cpp                       |  2 +-
 src/files/files.cpp                             |  6 +-
 src/hook/manager.cpp                            |  8 +-
 src/internal/evolve.cpp                         | 12 +--
 src/launcher/executor.cpp                       |  4 +-
 src/launcher/fetcher.cpp                        | 31 ++++----
 src/linux/cgroups.cpp                           | 31 ++++----
 src/linux/fs.cpp                                | 16 ++--
 src/linux/ns.cpp                                |  2 +-
 src/local/local.cpp                             |  2 +-
 src/log/catchup.cpp                             |  4 +-
 src/log/consensus.cpp                           |  3 +-
 src/log/replica.cpp                             | 10 +--
 src/log/tool/benchmark.cpp                      |  6 +-
 src/log/tool/initialize.cpp                     |  4 +-
 src/log/tool/read.cpp                           |  6 +-
 src/master/allocator/mesos/hierarchical.cpp     |  6 +-
 src/master/contender/contender.cpp              |  2 +-
 src/master/contender/zookeeper.cpp              |  2 +-
 src/master/detector/detector.cpp                |  2 +-
 src/master/detector/zookeeper.cpp               | 18 ++---
 src/master/http.cpp                             | 26 +++----
 src/master/main.cpp                             |  8 +-
 src/master/master.cpp                           | 73 +++++++++---------
 src/master/master.hpp                           | 10 +--
 src/master/quota_handler.cpp                    |  2 +-
 src/master/registrar.cpp                        |  4 +-
 src/master/validation.cpp                       | 34 ++++-----
 src/master/weights_handler.cpp                  |  2 +-
 src/resource_provider/http_connection.hpp       |  4 +-
 src/resource_provider/registrar.cpp             |  2 +-
 src/sched/sched.cpp                             | 80 ++++++++++----------
 src/scheduler/scheduler.cpp                     |  4 +-
 src/slave/container_loggers/lib_logrotate.cpp   |  6 +-
 src/slave/containerizer/containerizer.cpp       |  2 +-
 src/slave/containerizer/docker.cpp              | 50 ++++++------
 src/slave/containerizer/fetcher.cpp             | 17 +++--
 src/slave/containerizer/mesos/containerizer.cpp | 28 +++----
 .../containerizer/mesos/io/switchboard.cpp      |  6 +-
 .../mesos/isolators/cgroups/subsystems/cpu.cpp  |  6 +-
 .../isolators/cgroups/subsystems/cpuacct.cpp    |  8 +-
 .../isolators/cgroups/subsystems/memory.cpp     | 14 ++--
 .../mesos/isolators/network/cni/cni.cpp         |  8 +-
 .../mesos/isolators/posix/disk.cpp              | 14 ++--
 .../mesos/isolators/volume/image.cpp            |  2 +-
 src/slave/containerizer/mesos/launcher.cpp      |  6 +-
 .../containerizer/mesos/linux_launcher.cpp      |  4 +-
 .../mesos/provisioner/appc/cache.cpp            |  4 +-
 .../mesos/provisioner/backends/bind.cpp         |  2 +-
 .../mesos/provisioner/backends/copy.cpp         |  2 +-
 .../provisioner/docker/metadata_manager.cpp     |  2 +-
 .../mesos/provisioner/docker/store.cpp          |  2 +-
 src/slave/main.cpp                              |  2 +-
 src/slave/qos_controllers/load.cpp              |  8 +-
 src/slave/slave.cpp                             |  2 +-
 src/slave/validation.cpp                        |  4 +-
 src/state/in_memory.cpp                         |  5 +-
 src/state/leveldb.cpp                           |  8 +-
 src/state/log.cpp                               | 31 ++++----
 src/state/zookeeper.cpp                         |  4 +-
 src/tests/api_tests.cpp                         | 42 +++++-----
 src/tests/cluster.cpp                           |  2 +-
 src/tests/containerizer/cni_isolator_tests.cpp  | 14 ++--
 .../docker_containerizer_tests.cpp              | 10 +--
 .../environment_secret_isolator_tests.cpp       |  6 +-
 src/tests/default_executor_tests.cpp            | 16 ++--
 src/tests/environment.cpp                       |  2 +-
 src/tests/health_check_tests.cpp                | 20 ++---
 src/tests/master_maintenance_tests.cpp          |  8 +-
 src/tests/master_tests.cpp                      |  4 +-
 src/tests/mesos.hpp                             |  9 +--
 src/tests/scheduler_http_api_tests.cpp          |  6 +-
 src/tests/slave_authorization_tests.cpp         |  7 +-
 src/tests/slave_tests.cpp                       |  3 +-
 src/uri/fetchers/copy.cpp                       |  6 +-
 src/uri/fetchers/curl.cpp                       |  6 +-
 src/uri/fetchers/docker.cpp                     | 12 +--
 src/usage/usage.cpp                             |  8 +-
 src/watcher/whitelist_watcher.cpp               | 10 +--
 src/zookeeper/contender.cpp                     |  8 +-
 91 files changed, 485 insertions(+), 506 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/appc/spec.cpp
----------------------------------------------------------------------
diff --git a/src/appc/spec.cpp b/src/appc/spec.cpp
index fc5e24e..8213d41 100644
--- a/src/appc/spec.cpp
+++ b/src/appc/spec.cpp
@@ -43,7 +43,7 @@ Try<ImageManifest> parse(const string& value)
 
   Option<Error> error = validateManifest(manifest.get());
   if (error.isSome()) {
-    return Error("Schema validation failed: " + error.get().message);
+    return Error("Schema validation failed: " + error->message);
   }
 
   return manifest.get();

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/authentication/cram_md5/auxprop.cpp
----------------------------------------------------------------------
diff --git a/src/authentication/cram_md5/auxprop.cpp b/src/authentication/cram_md5/auxprop.cpp
index 8a20d5b..b072db2 100644
--- a/src/authentication/cram_md5/auxprop.cpp
+++ b/src/authentication/cram_md5/auxprop.cpp
@@ -183,7 +183,7 @@ int InMemoryAuxiliaryPropertyPlugin::initialize(
     Option<list<string>> values = lookup(user, name);
 
     if (values.isSome()) {
-      if (values.get().empty()) {
+      if (values->empty()) {
         // Add the 'nullptr' value to indicate there were no values.
         utils->prop_set(sparams->propctx, property->name, nullptr, 0);
       } else {

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/cli/execute.cpp
----------------------------------------------------------------------
diff --git a/src/cli/execute.cpp b/src/cli/execute.cpp
index 729896a..221d65f 100644
--- a/src/cli/execute.cpp
+++ b/src/cli/execute.cpp
@@ -499,7 +499,7 @@ protected:
         << "Either task or task group should be set but not both";
 
       if (task.isSome()) {
-        requiredResources = Resources(task.get().resources());
+        requiredResources = Resources(task->resources());
       } else {
         foreach (const TaskInfo& _task, taskGroup->tasks()) {
           requiredResources += Resources(_task.resources());
@@ -602,7 +602,7 @@ protected:
        mesos->send(call);
 
        if (task.isSome()) {
-         cout << "Submitted task '" << task.get().name() << "' to agent '"
+         cout << "Submitted task '" << task->name() << "' to agent '"
               << offer.agent_id() << "'" << endl;
        } else {
          vector<TaskID> taskIds;

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/common/command_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/command_utils.cpp b/src/common/command_utils.cpp
index c50be76..7dfcc9f 100644
--- a/src/common/command_utils.cpp
+++ b/src/common/command_utils.cpp
@@ -63,9 +63,9 @@ static Future<string> launch(
   }
 
   return await(
-      s.get().status(),
-      process::io::read(s.get().out().get()),
-      process::io::read(s.get().err().get()))
+      s->status(),
+      process::io::read(s->out().get()),
+      process::io::read(s->err().get()))
     .then([command](const tuple<
         Future<Option<int>>,
         Future<string>,

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/common/http.cpp
----------------------------------------------------------------------
diff --git a/src/common/http.cpp b/src/common/http.cpp
index 728fc55..8d3a4ad 100644
--- a/src/common/http.cpp
+++ b/src/common/http.cpp
@@ -154,7 +154,7 @@ static JSON::Value value(
 {
   switch (type) {
     case Value::SCALAR:
-      return resources.get<Value::Scalar>(name).get().value();
+      return resources.get<Value::Scalar>(name)->value();
     case Value::RANGES:
       return stringify(resources.get<Value::Ranges>(name).get());
     case Value::SET:

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/common/parse.hpp
----------------------------------------------------------------------
diff --git a/src/common/parse.hpp b/src/common/parse.hpp
index 212d640..03814e3 100644
--- a/src/common/parse.hpp
+++ b/src/common/parse.hpp
@@ -117,7 +117,7 @@ inline Try<hashmap<std::string, std::string>> parse(const std::string& value)
   hashmap<std::string, std::string> map;
   foreachpair (const std::string& key,
                const JSON::Value& value,
-               json.get().values) {
+               json->values) {
     if (!value.is<JSON::String>()) {
       return Error(
           "The value of key '" + key + "' in '" + stringify(json.get()) + "'"

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/common/protobuf_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.cpp b/src/common/protobuf_utils.cpp
index b5c2997..f516091 100644
--- a/src/common/protobuf_utils.cpp
+++ b/src/common/protobuf_utils.cpp
@@ -146,8 +146,8 @@ StatusUpdate createStatusUpdate(
   status->set_timestamp(update.timestamp());
 
   if (uuid.isSome()) {
-    update.set_uuid(uuid.get().toBytes());
-    status->set_uuid(uuid.get().toBytes());
+    update.set_uuid(uuid->toBytes());
+    status->set_uuid(uuid->toBytes());
   }
 
   if (reason.isSome()) {
@@ -520,7 +520,7 @@ MasterInfo createMasterInfo(const UPID& pid)
   // be fixed. See MESOS-1201 for more details.
   // TODO(marco): `ip` and `port` are deprecated in favor of `address`;
   //     remove them both after the deprecation cycle.
-  info.set_ip(pid.address.ip.in().get().s_addr);
+  info.set_ip(pid.address.ip.in()->s_addr);
   info.set_port(pid.address.port);
 
   info.mutable_address()->set_ip(stringify(pid.address.ip));
@@ -1073,7 +1073,7 @@ Unavailability createUnavailability(
   unavailability.mutable_start()->set_nanoseconds(start.duration().ns());
 
   if (duration.isSome()) {
-    unavailability.mutable_duration()->set_nanoseconds(duration.get().ns());
+    unavailability.mutable_duration()->set_nanoseconds(duration->ns());
   }
 
   return unavailability;
@@ -1241,7 +1241,7 @@ mesos::master::Response::GetAgents::Agent createAgentResponse(
 
   if (slave.reregisteredTime.isSome()) {
     agent.mutable_reregistered_time()->set_nanoseconds(
-        slave.reregisteredTime.get().duration().ns());
+        slave.reregisteredTime->duration().ns());
   }
 
   agent.mutable_agent_info()->clear_resources();

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/common/recordio.hpp
----------------------------------------------------------------------
diff --git a/src/common/recordio.hpp b/src/common/recordio.hpp
index c58bb14..88e789c 100644
--- a/src/common/recordio.hpp
+++ b/src/common/recordio.hpp
@@ -167,7 +167,7 @@ public:
     }
 
     if (error.isSome()) {
-      return process::Failure(error.get().message);
+      return process::Failure(error->message);
     }
 
     if (done) {
@@ -230,7 +230,7 @@ private:
     }
 
     // Have we reached EOF?
-    if (read.get().empty()) {
+    if (read->empty()) {
       complete();
       return;
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/credentials/credentials.hpp
----------------------------------------------------------------------
diff --git a/src/credentials/credentials.hpp b/src/credentials/credentials.hpp
index c790793..6e9f4aa 100644
--- a/src/credentials/credentials.hpp
+++ b/src/credentials/credentials.hpp
@@ -40,7 +40,7 @@ inline Result<Credentials> read(const Path& path)
   if (read.isError()) {
     return Error("Failed to read credentials file '" + path.string() +
                  "': " + read.error());
-  } else if (read.get().empty()) {
+  } else if (read->empty()) {
     return None();
   }
 
@@ -48,7 +48,7 @@ inline Result<Credentials> read(const Path& path)
   if (permissions.isError()) {
     LOG(WARNING) << "Failed to stat credentials file '" << path
                  << "': " << permissions.error();
-  } else if (permissions.get().others.rwx) {
+  } else if (permissions->others.rwx) {
     LOG(WARNING) << "Permissions on credentials file '" << path
                  << "' are too open; it is recommended that your"
                  << " credentials file is NOT accessible by others";
@@ -89,7 +89,7 @@ inline Result<Credential> readCredential(const Path& path)
   if (read.isError()) {
     return Error("Failed to read credential file '" + path.string() +
                  "': " + read.error());
-  } else if (read.get().empty()) {
+  } else if (read->empty()) {
     return None();
   }
 
@@ -97,7 +97,7 @@ inline Result<Credential> readCredential(const Path& path)
   if (permissions.isError()) {
     LOG(WARNING) << "Failed to stat credential file '" << path
                  << "': " << permissions.error();
-  } else if (permissions.get().others.rwx) {
+  } else if (permissions->others.rwx) {
     LOG(WARNING) << "Permissions on credential file '" << path
                  << "' are too open; it is recommended that your"
                  << " credential file is NOT accessible by others";

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/docker/docker.cpp
----------------------------------------------------------------------
diff --git a/src/docker/docker.cpp b/src/docker/docker.cpp
index 3df370e..62349ab 100644
--- a/src/docker/docker.cpp
+++ b/src/docker/docker.cpp
@@ -167,7 +167,7 @@ Future<Version> Docker::version() const
     return Failure("Failed to create subprocess '" + cmd + "': " + s.error());
   }
 
-  return s.get().status()
+  return s->status()
     .then(lambda::bind(&Docker::_version, cmd, s.get()));
 }
 
@@ -276,7 +276,7 @@ Try<Docker::Container> Docker::Container::create(const string& output)
     return Error("Error finding Id in container: " + idValue.error());
   }
 
-  string id = idValue.get().value;
+  string id = idValue->value;
 
   Result<JSON::String> nameValue = json.find<JSON::String>("Name");
   if (nameValue.isNone()) {
@@ -285,7 +285,7 @@ Try<Docker::Container> Docker::Container::create(const string& output)
     return Error("Error finding Name in container: " + nameValue.error());
   }
 
-  string name = nameValue.get().value;
+  string name = nameValue->value;
 
   Result<JSON::Object> stateValue = json.find<JSON::Object>("State");
   if (stateValue.isNone()) {
@@ -294,14 +294,14 @@ Try<Docker::Container> Docker::Container::create(const string& output)
     return Error("Error finding State in container: " + stateValue.error());
   }
 
-  Result<JSON::Number> pidValue = stateValue.get().find<JSON::Number>("Pid");
+  Result<JSON::Number> pidValue = stateValue->find<JSON::Number>("Pid");
   if (pidValue.isNone()) {
     return Error("Unable to find Pid in State");
   } else if (pidValue.isError()) {
     return Error("Error finding Pid in State: " + pidValue.error());
   }
 
-  pid_t pid = pid_t(pidValue.get().as<int64_t>());
+  pid_t pid = pid_t(pidValue->as<int64_t>());
 
   Option<pid_t> optionalPid;
   if (pid != 0) {
@@ -309,14 +309,14 @@ Try<Docker::Container> Docker::Container::create(const string& output)
   }
 
   Result<JSON::String> startedAtValue =
-    stateValue.get().find<JSON::String>("StartedAt");
+    stateValue->find<JSON::String>("StartedAt");
   if (startedAtValue.isNone()) {
     return Error("Unable to find StartedAt in State");
   } else if (startedAtValue.isError()) {
     return Error("Error finding StartedAt in State: " + startedAtValue.error());
   }
 
-  bool started = startedAtValue.get().value != "0001-01-01T00:00:00Z";
+  bool started = startedAtValue->value != "0001-01-01T00:00:00Z";
 
   Option<string> ipAddress;
   Option<string> ip6Address;
@@ -520,13 +520,12 @@ Try<Docker::Image> Docker::Image::create(const JSON::Object& json)
 
   Option<vector<string>> entrypointOption = None();
 
-  if (!entrypoint.get().is<JSON::Null>()) {
-    if (!entrypoint.get().is<JSON::Array>()) {
+  if (!entrypoint->is<JSON::Null>()) {
+    if (!entrypoint->is<JSON::Array>()) {
       return Error("Unexpected type found for 'ContainerConfig.Entrypoint'");
     }
 
-    const vector<JSON::Value>& values =
-        entrypoint.get().as<JSON::Array>().values;
+    const vector<JSON::Value>& values = entrypoint->as<JSON::Array>().values;
     if (values.size() != 0) {
       vector<string> result;
 
@@ -553,12 +552,12 @@ Try<Docker::Image> Docker::Image::create(const JSON::Object& json)
 
   Option<map<string, string>> envOption = None();
 
-  if (!env.get().is<JSON::Null>()) {
-    if (!env.get().is<JSON::Array>()) {
+  if (!env->is<JSON::Null>()) {
+    if (!env->is<JSON::Array>()) {
       return Error("Unexpected type found for 'ContainerConfig.Env'");
     }
 
-    const vector<JSON::Value>& values = env.get().as<JSON::Array>().values;
+    const vector<JSON::Value>& values = env->as<JSON::Array>().values;
     if (values.size() != 0) {
       map<string, string> result;
 
@@ -613,7 +612,7 @@ Try<Docker::RunOptions> Docker::RunOptions::create(
 
   if (resources.isSome()) {
     // TODO(yifan): Support other resources (e.g. disk).
-    Option<double> cpus = resources.get().cpus();
+    Option<double> cpus = resources->cpus();
     if (cpus.isSome()) {
       options.cpuShares =
         std::max((uint64_t) (CPU_SHARES_PER_CPU * cpus.get()), MIN_CPU_SHARES);
@@ -626,7 +625,7 @@ Try<Docker::RunOptions> Docker::RunOptions::create(
       }
     }
 
-    Option<Bytes> mem = resources.get().mem();
+    Option<Bytes> mem = resources->mem();
     if (mem.isSome()) {
       options.memory = std::max(mem.get(), MIN_MEMORY);
     }
@@ -641,7 +640,7 @@ Try<Docker::RunOptions> Docker::RunOptions::create(
   foreach (const Environment::Variable& variable,
            commandInfo.environment().variables()) {
     if (env.isSome() &&
-        env.get().find(variable.name()) != env.get().end()) {
+        env->find(variable.name()) != env->end()) {
       // Skip to avoid duplicate environment variables.
       continue;
     }
@@ -814,7 +813,7 @@ Try<Docker::RunOptions> Docker::RunOptions::create(
       return Error("Port mappings require resources");
     }
 
-    Option<Value::Ranges> portRanges = resources.get().ports();
+    Option<Value::Ranges> portRanges = resources->ports();
 
     if (!portRanges.isSome()) {
       return Error("Port mappings require port resources");
@@ -823,7 +822,7 @@ Try<Docker::RunOptions> Docker::RunOptions::create(
     foreach (const ContainerInfo::DockerInfo::PortMapping& mapping,
              dockerInfo.port_mappings()) {
       bool found = false;
-      foreach (const Value::Range& range, portRanges.get().range()) {
+      foreach (const Value::Range& range, portRanges->range()) {
         if (mapping.host_port() >= range.begin() &&
             mapping.host_port() <= range.end()) {
           found = true;
@@ -1186,7 +1185,7 @@ Future<Nothing> Docker::stop(
     return Failure("Failed to create subprocess '" + cmd + "': " + s.error());
   }
 
-  return s.get().status()
+  return s->status()
     .then(lambda::bind(
         &Docker::_stop,
         *this,
@@ -1308,9 +1307,9 @@ void Docker::_inspect(
   // Start reading from stdout so writing to the pipe won't block
   // to handle cases where the output is larger than the pipe
   // capacity.
-  const Future<string> output = io::read(s.get().out().get());
+  const Future<string> output = io::read(s->out().get());
 
-  s.get().status()
+  s->status()
     .onAny([=]() { __inspect(cmd, promise, retryInterval, output, s.get()); });
 }
 
@@ -1393,7 +1392,7 @@ void Docker::___inspect(
     return;
   }
 
-  if (retryInterval.isSome() && !container.get().started) {
+  if (retryInterval.isSome() && !container->started) {
     VLOG(1) << "Retrying inspect since container not yet started. cmd: '"
             << cmd << "', interval: " << stringify(retryInterval.get());
     Clock::timer(retryInterval.get(),
@@ -1426,9 +1425,9 @@ Future<list<Docker::Container>> Docker::ps(
   // Start reading from stdout so writing to the pipe won't block
   // to handle cases where the output is larger than the pipe
   // capacity.
-  const Future<string>& output = io::read(s.get().out().get());
+  const Future<string>& output = io::read(s->out().get());
 
-  return s.get().status()
+  return s->status()
     .then(lambda::bind(&Docker::_ps, *this, cmd, s.get(), prefix, output));
 }
 
@@ -1597,11 +1596,11 @@ Future<Docker::Image> Docker::pull(
   // Start reading from stdout so writing to the pipe won't block
   // to handle cases where the output is larger than the pipe
   // capacity.
-  const Future<string> output = io::read(s.get().out().get());
+  const Future<string> output = io::read(s->out().get());
 
   // We assume docker inspect to exit quickly and do not need to be
   // discarded.
-  return s.get().status()
+  return s->status()
     .then(lambda::bind(
         &Docker::_pull,
         *this,
@@ -1734,7 +1733,7 @@ Future<Docker::Image> Docker::__pull(
   // Docker pull can run for a long time due to large images, so
   // we allow the future to be discarded and it will kill the pull
   // process.
-  return s_.get().status()
+  return s_->status()
     .then(lambda::bind(
         &Docker::___pull,
         docker,

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/docker/spec.cpp
----------------------------------------------------------------------
diff --git a/src/docker/spec.cpp b/src/docker/spec.cpp
index 538cf18..15224f9 100644
--- a/src/docker/spec.cpp
+++ b/src/docker/spec.cpp
@@ -253,8 +253,8 @@ Try<ImageManifest> parse(const JSON::Object& json)
           "Failed to parse 'Labels' as a JSON value: " + value.error());
     }
 
-    if (value.isSome() && !value.get().is<JSON::Null>()) {
-      const JSON::Object labels = value.get().as<JSON::Object>();
+    if (value.isSome() && !value->is<JSON::Null>()) {
+      const JSON::Object labels = value->as<JSON::Object>();
 
       foreachpair (const string& key,
                    const JSON::Value& value,
@@ -288,8 +288,8 @@ Try<ImageManifest> parse(const JSON::Object& json)
           "Failed to parse 'Labels' as a JSON value: " + value.error());
     }
 
-    if (value.isSome() && !value.get().is<JSON::Null>()) {
-      const JSON::Object labels = value.get().as<JSON::Object>();
+    if (value.isSome() && !value->is<JSON::Null>()) {
+      const JSON::Object labels = value->as<JSON::Object>();
 
       foreachpair (const string& key,
                    const JSON::Value& value,
@@ -308,8 +308,8 @@ Try<ImageManifest> parse(const JSON::Object& json)
 
   Option<Error> error = validate(manifest.get());
   if (error.isSome()) {
-    return Error("Docker v1 image manifest validation failed: " +
-                 error.get().message);
+    return Error(
+        "Docker v1 image manifest validation failed: " + error->message);
   }
 
   return manifest.get();
@@ -368,9 +368,9 @@ Try<ImageManifest> parse(const JSON::Object& json)
     return Error("Protobuf parse failed: " + manifest.error());
   }
 
-  for (int i = 0; i < manifest.get().history_size(); i++) {
-    Try<JSON::Object> v1Compatibility = JSON::parse<JSON::Object>(
-        manifest.get().history(i).v1compatibility());
+  for (int i = 0; i < manifest->history_size(); i++) {
+    Try<JSON::Object> v1Compatibility =
+      JSON::parse<JSON::Object>(manifest->history(i).v1compatibility());
 
     if (v1Compatibility.isError()) {
       return Error("Parsing v1Compatibility JSON failed: " +
@@ -382,15 +382,15 @@ Try<ImageManifest> parse(const JSON::Object& json)
       return Error("Parsing v1Compatibility protobuf failed: " + v1.error());
     }
 
-    CHECK(!manifest.get().history(i).has_v1());
+    CHECK(!manifest->history(i).has_v1());
 
     manifest->mutable_history(i)->mutable_v1()->CopyFrom(v1.get());
   }
 
   Option<Error> error = validate(manifest.get());
   if (error.isSome()) {
-    return Error("Docker v2 image manifest validation failed: " +
-                 error.get().message);
+    return Error(
+        "Docker v2 image manifest validation failed: " + error->message);
   }
 
   return manifest.get();

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/executor/executor.cpp
----------------------------------------------------------------------
diff --git a/src/executor/executor.cpp b/src/executor/executor.cpp
index 9459368..5e95f99 100644
--- a/src/executor/executor.cpp
+++ b/src/executor/executor.cpp
@@ -710,7 +710,7 @@ protected:
       return;
     }
 
-    receive(event.get().get(), false);
+    receive(event->get(), false);
     read();
   }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/files/files.cpp
----------------------------------------------------------------------
diff --git a/src/files/files.cpp b/src/files/files.cpp
index 324b4bc..5f92d2a 100644
--- a/src/files/files.cpp
+++ b/src/files/files.cpp
@@ -406,7 +406,7 @@ Future<http::Response> FilesProcess::_browse(
 {
   Option<string> path = request.url.query.get("path");
 
-  if (!path.isSome() || path.get().empty()) {
+  if (!path.isSome() || path->empty()) {
     return BadRequest("Expecting 'path=value' in query.\n");
   }
 
@@ -527,7 +527,7 @@ Future<http::Response> FilesProcess::__read(
 {
   Option<string> path = request.url.query.get("path");
 
-  if (!path.isSome() || path.get().empty()) {
+  if (!path.isSome() || path->empty()) {
     return BadRequest("Expecting 'path=value' in query.\n");
   }
 
@@ -762,7 +762,7 @@ Future<http::Response> FilesProcess::download(
 {
   Option<string> path = request.url.query.get("path");
 
-  if (!path.isSome() || path.get().empty()) {
+  if (!path.isSome() || path->empty()) {
     return BadRequest("Expecting 'path=value' in query.\n");
   }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/hook/manager.cpp
----------------------------------------------------------------------
diff --git a/src/hook/manager.cpp b/src/hook/manager.cpp
index c659de5..44c0c32 100644
--- a/src/hook/manager.cpp
+++ b/src/hook/manager.cpp
@@ -287,13 +287,13 @@ TaskStatus HookManager::slaveTaskStatusDecorator(
       // NOTE: Labels/ContainerStatus remain unchanged if the hook returns
       // None().
       if (result.isSome()) {
-        if (result.get().has_labels()) {
-          status.mutable_labels()->CopyFrom(result.get().labels());
+        if (result->has_labels()) {
+          status.mutable_labels()->CopyFrom(result->labels());
         }
 
-        if (result.get().has_container_status()) {
+        if (result->has_container_status()) {
           status.mutable_container_status()->CopyFrom(
-              result.get().container_status());
+              result->container_status());
         }
       } else if (result.isError()) {
         LOG(WARNING) << "Agent TaskStatus decorator hook failed for "

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/internal/evolve.cpp
----------------------------------------------------------------------
diff --git a/src/internal/evolve.cpp b/src/internal/evolve.cpp
index 7758c9b..3ad5ebc 100644
--- a/src/internal/evolve.cpp
+++ b/src/internal/evolve.cpp
@@ -585,7 +585,7 @@ v1::master::Response evolve<v1::master::Response::GET_FLAGS>(
 
   foreachpair (const string& key,
                const JSON::Value& value,
-               flags.get().values) {
+               flags->values) {
     v1::Flag* flag = getFlags->add_flags();
     flag->set_name(key);
 
@@ -614,7 +614,7 @@ v1::agent::Response evolve<v1::agent::Response::GET_FLAGS>(
 
   foreachpair (const string& key,
                const JSON::Value& value,
-               flags.get().values) {
+               flags->values) {
     v1::Flag* flag = getFlags->add_flags();
     flag->set_name(key);
 
@@ -680,21 +680,21 @@ v1::agent::Response evolve<v1::agent::Response::GET_CONTAINERS>(
       object.find<JSON::String>("container_id");
 
     CHECK_SOME(container_id);
-    container->mutable_container_id()->set_value(container_id.get().value);
+    container->mutable_container_id()->set_value(container_id->value);
 
     Result<JSON::String> framework_id =
       object.find<JSON::String>("framework_id");
 
     CHECK(!framework_id.isError());
     if (framework_id.isSome()) {
-      container->mutable_framework_id()->set_value(framework_id.get().value);
+      container->mutable_framework_id()->set_value(framework_id->value);
     }
 
     Result<JSON::String> executor_id = object.find<JSON::String>("executor_id");
 
     CHECK(!executor_id.isError());
     if (executor_id.isSome()) {
-      container->mutable_executor_id()->set_value(executor_id.get().value);
+      container->mutable_executor_id()->set_value(executor_id->value);
     }
 
     Result<JSON::String> executor_name =
@@ -702,7 +702,7 @@ v1::agent::Response evolve<v1::agent::Response::GET_CONTAINERS>(
 
     CHECK(!executor_name.isError());
     if (executor_name.isSome()) {
-      container->set_executor_name(executor_name.get().value);
+      container->set_executor_name(executor_name->value);
     }
 
     Result<JSON::Object> container_status = object.find<JSON::Object>("status");

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/launcher/executor.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/executor.cpp b/src/launcher/executor.cpp
index e4b9785..caa2cfc 100644
--- a/src/launcher/executor.cpp
+++ b/src/launcher/executor.cpp
@@ -917,11 +917,11 @@ private:
       message =
         "Failed to get exit status for Command: " +
         (status_.isFailed() ? status_.failure() : "future discarded");
-    } else if (status_.get().isNone()) {
+    } else if (status_->isNone()) {
       taskState = TASK_FAILED;
       message = "Failed to get exit status for Command";
     } else {
-      int status = status_.get().get();
+      int status = status_->get();
       CHECK(WIFEXITED(status) || WIFSIGNALED(status))
         << "Unexpected wait status " << status;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/launcher/fetcher.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/fetcher.cpp b/src/launcher/fetcher.cpp
index 7fc69fe..2f42fa2 100644
--- a/src/launcher/fetcher.cpp
+++ b/src/launcher/fetcher.cpp
@@ -408,7 +408,7 @@ static Try<string> fetchThroughCache(
     const string& sandboxDirectory,
     const Option<string>& frameworksHome)
 {
-  if (cacheDirectory.isNone() || cacheDirectory.get().empty()) {
+  if (cacheDirectory.isNone() || cacheDirectory->empty()) {
     return Error("Cache directory not specified");
   }
 
@@ -559,10 +559,10 @@ int main(int argc, char* argv[])
   CHECK_SOME(fetcherInfo)
     << "Failed to parse FetcherInfo: " << fetcherInfo.error();
 
-  CHECK(!fetcherInfo.get().sandbox_directory().empty())
+  CHECK(!fetcherInfo->sandbox_directory().empty())
     << "Missing sandbox directory";
 
-  const string sandboxDirectory = fetcherInfo.get().sandbox_directory();
+  const string sandboxDirectory = fetcherInfo->sandbox_directory();
 
   Try<Nothing> result = createCacheDirectory(fetcherInfo.get());
   if (result.isError()) {
@@ -572,30 +572,29 @@ int main(int argc, char* argv[])
 
   // If the `FetcherInfo` specifies a user, use `os::su()` to fetch files as the
   // task's user to ensure that filesystem permissions are enforced.
-  if (fetcherInfo.get().has_user()) {
-    // TODO(coffler): No support for os::su on Windows, see MESOS-8063
+  if (fetcherInfo->has_user()) {
+  // TODO(coffler): No support for os::su on Windows, see MESOS-8063
 #ifndef __WINDOWS__
-    result = os::su(fetcherInfo.get().user());
+    result = os::su(fetcherInfo->user());
     if (result.isError()) {
-      EXIT(EXIT_FAILURE)
-        << "Fetcher could not execute `os::su()` for user '"
-        << fetcherInfo.get().user() << "'";
+      EXIT(EXIT_FAILURE) << "Fetcher could not execute `os::su()` for user '"
+                         << fetcherInfo->user() << "'";
     }
 #endif // __WINDOWS__
   }
 
   const Option<string> cacheDirectory =
-    fetcherInfo.get().has_cache_directory() ?
-      Option<string>::some(fetcherInfo.get().cache_directory()) :
-        Option<string>::none();
+    fetcherInfo->has_cache_directory()
+      ? Option<string>::some(fetcherInfo->cache_directory())
+      : Option<string>::none();
 
   const Option<string> frameworksHome =
-    fetcherInfo.get().has_frameworks_home() ?
-      Option<string>::some(fetcherInfo.get().frameworks_home()) :
-        Option<string>::none();
+    fetcherInfo->has_frameworks_home()
+      ? Option<string>::some(fetcherInfo->frameworks_home())
+      : Option<string>::none();
 
   // Fetch each URI to a local file and chmod if necessary.
-  foreach (const FetcherInfo::Item& item, fetcherInfo.get().items()) {
+  foreach (const FetcherInfo::Item& item, fetcherInfo->items()) {
     Try<string> fetched =
       fetch(item, cacheDirectory, sandboxDirectory, frameworksHome);
     if (fetched.isError()) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/linux/cgroups.cpp
----------------------------------------------------------------------
diff --git a/src/linux/cgroups.cpp b/src/linux/cgroups.cpp
index ed22c45..682b288 100644
--- a/src/linux/cgroups.cpp
+++ b/src/linux/cgroups.cpp
@@ -309,7 +309,7 @@ static Try<Nothing> create(
     return Error(
         "Failed to determine if hierarchy '" + hierarchy +
         "' has the 'cpuset' subsystem attached: " + attached.error());
-  } else if (attached.get().count("cpuset") > 0) {
+  } else if (attached->count("cpuset") > 0) {
     string parent = Path(path::join("/", cgroup)).dirname();
     return cloneCpusetCpusMems(hierarchy, parent, cgroup);
   }
@@ -539,7 +539,7 @@ Try<set<string>> hierarchies()
   }
 
   set<string> results;
-  foreach (const fs::MountTable::Entry& entry, table.get().entries) {
+  foreach (const fs::MountTable::Entry& entry, table->entries) {
     if (entry.type == "cgroup") {
       Result<string> realpath = os::realpath(entry.dir);
       if (!realpath.isSome()) {
@@ -675,7 +675,7 @@ Try<set<string>> subsystems(const string& hierarchy)
 
   // Check if hierarchy is a mount point of type cgroup.
   Option<fs::MountTable::Entry> hierarchyEntry;
-  foreach (const fs::MountTable::Entry& entry, table.get().entries) {
+  foreach (const fs::MountTable::Entry& entry, table->entries) {
     if (entry.type == "cgroup") {
       Result<string> dirAbsPath = os::realpath(entry.dir);
       if (!dirAbsPath.isSome()) {
@@ -710,7 +710,7 @@ Try<set<string>> subsystems(const string& hierarchy)
 
   set<string> result;
   foreach (const string& name, names.get()) {
-    if (hierarchyEntry.get().hasOption(name)) {
+    if (hierarchyEntry->hasOption(name)) {
       result.insert(name);
     }
   }
@@ -781,7 +781,7 @@ Try<bool> mounted(const string& hierarchy, const string& subsystems)
         "Failed to get mounted hierarchies: " + hierarchies.error());
   }
 
-  if (hierarchies.get().count(realpath.get()) == 0) {
+  if (hierarchies->count(realpath.get()) == 0) {
     return false;
   }
 
@@ -794,7 +794,7 @@ Try<bool> mounted(const string& hierarchy, const string& subsystems)
   }
 
   foreach (const string& subsystem, strings::tokenize(subsystems, ",")) {
-    if (attached.get().count(subsystem) == 0) {
+    if (attached->count(subsystem) == 0) {
       return false;
     }
   }
@@ -829,7 +829,7 @@ Try<Nothing> remove(const string& hierarchy, const string& cgroup)
     return Error("Failed to get nested cgroups: " + cgroups.error());
   }
 
-  if (!cgroups.get().empty()) {
+  if (!cgroups->empty()) {
     return Error("Nested cgroups exist");
   }
 
@@ -874,7 +874,7 @@ Try<vector<string>> get(const string& hierarchy, const string& cgroup)
          : "No such file or directory"));
   }
 
-  char* paths[] = { const_cast<char*>(destAbsPath.get().c_str()), nullptr };
+  char* paths[] = {const_cast<char*>(destAbsPath->c_str()), nullptr};
 
   FTS* tree = fts_open(paths, FTS_NOCHDIR, nullptr);
   if (tree == nullptr) {
@@ -891,7 +891,7 @@ Try<vector<string>> get(const string& hierarchy, const string& cgroup)
     // FTS_DP indicates a directory being visited in postorder.
     if (node->fts_level > 0 && node->fts_info & FTS_DP) {
       string path =
-        strings::trim(node->fts_path + hierarchyAbsPath.get().length(), "/");
+        strings::trim(node->fts_path + hierarchyAbsPath->length(), "/");
       cgroups.push_back(path);
     }
   }
@@ -1293,7 +1293,7 @@ private:
     }
 
     // Inform failure and not listen again.
-    promise.get()->fail(error.get().message);
+    promise.get()->fail(error->message);
   }
 
   const string hierarchy;
@@ -1460,7 +1460,7 @@ protected:
   {
     Option<Error> error = verify(hierarchy, cgroup, "freezer.state");
     if (error.isSome()) {
-      promise.fail("Invalid freezer cgroup: " + error.get().message);
+      promise.fail("Invalid freezer cgroup: " + error->message);
       terminate(self());
       return;
     }
@@ -1614,7 +1614,7 @@ private:
     Try<set<pid_t>> processes = cgroups::processes(hierarchy, cgroup);
 
     // If the `cgroup` is already removed, treat this as a success.
-    if ((processes.isError() || !processes.get().empty()) &&
+    if ((processes.isError() || !processes->empty()) &&
         os::exists(path::join(hierarchy, cgroup))) {
       promise.fail("Failed to kill all processes in cgroup: " +
                    (processes.isError() ? processes.error()
@@ -2395,7 +2395,7 @@ Try<Stats> stat(
     return Error(stats.error());
   }
 
-  if (!stats.get().contains("user") || !stats.get().contains("system")) {
+  if (!stats->contains("user") || !stats->contains("system")) {
     return Error("Failed to get user/system value from cpuacct.stat");
   }
 
@@ -2407,8 +2407,7 @@ Try<Stats> stat(
     return ErrnoError("Failed to get _SC_CLK_TCK");
   }
 
-  Try<Duration> user =
-    Duration::create((double) stats.get().at("user") / userTicks);
+  Try<Duration> user = Duration::create((double)stats->at("user") / userTicks);
 
   if (user.isError()) {
     return Error(
@@ -2416,7 +2415,7 @@ Try<Stats> stat(
   }
 
   Try<Duration> system =
-    Duration::create((double) stats.get().at("system") / userTicks);
+    Duration::create((double)stats->at("system") / userTicks);
 
   if (system.isError()) {
     return Error(

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/linux/fs.cpp
----------------------------------------------------------------------
diff --git a/src/linux/fs.cpp b/src/linux/fs.cpp
index 94e78df..dae0942 100644
--- a/src/linux/fs.cpp
+++ b/src/linux/fs.cpp
@@ -495,11 +495,11 @@ Try<Nothing> mount(const Option<string>& source,
   //           unsigned long mountflags,
   //           const void *data);
   if (::mount(
-        (source.isSome() ? source.get().c_str() : nullptr),
-        target.c_str(),
-        (type.isSome() ? type.get().c_str() : nullptr),
-        flags,
-        data) < 0) {
+          (source.isSome() ? source->c_str() : nullptr),
+          target.c_str(),
+          (type.isSome() ? type->c_str() : nullptr),
+          flags,
+          data) < 0) {
     return ErrnoError();
   }
 
@@ -518,7 +518,7 @@ Try<Nothing> mount(const Option<string>& source,
       target,
       type,
       flags,
-      options.isSome() ? options.get().c_str() : nullptr);
+      options.isSome() ? options->c_str() : nullptr);
 }
 
 
@@ -542,7 +542,7 @@ Try<Nothing> unmountAll(const string& target, int flags)
   }
 
   foreach (const MountTable::Entry& entry,
-           adaptor::reverse(mountTable.get().entries)) {
+           adaptor::reverse(mountTable->entries)) {
     if (strings::startsWith(entry.dir, target)) {
       Try<Nothing> unmount = fs::unmount(entry.dir, flags);
       if (unmount.isError()) {
@@ -900,7 +900,7 @@ Try<Nothing> enter(const string& root)
   // The old root is now relative to chroot so remove the chroot path.
   const string relativeOld = strings::remove(old.get(), root, strings::PREFIX);
 
-  foreach (const fs::MountTable::Entry& entry, mountTable.get().entries) {
+  foreach (const fs::MountTable::Entry& entry, mountTable->entries) {
     // TODO(idownes): sort the entries and remove depth first so we
     // don't rely on the lazy umount and can check the status.
     if (strings::startsWith(entry.dir, relativeOld)) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/linux/ns.cpp
----------------------------------------------------------------------
diff --git a/src/linux/ns.cpp b/src/linux/ns.cpp
index fc0e7e4..49f8fca 100644
--- a/src/linux/ns.cpp
+++ b/src/linux/ns.cpp
@@ -119,7 +119,7 @@ Try<Nothing> setns(
       return Error(
           "Failed to get the threads of the current process: " +
           threads.error());
-    } else if (threads.get().size() > 1) {
+    } else if (threads->size() > 1) {
       return Error("Multiple threads exist in the current process");
     }
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/local/local.cpp
----------------------------------------------------------------------
diff --git a/src/local/local.cpp b/src/local/local.cpp
index ba1bcf2..9c5b45b 100644
--- a/src/local/local.cpp
+++ b/src/local/local.cpp
@@ -466,7 +466,7 @@ PID<Master> launch(const Flags& flags, Allocator* _allocator)
         LOG(WARNING) << "Failed to stat jwt secret key file '"
                      << slaveFlags.jwt_secret_key.get()
                      << "': " << permissions.error();
-      } else if (permissions.get().others.rwx) {
+      } else if (permissions->others.rwx) {
         LOG(WARNING) << "Permissions on executor secret key file '"
                      << slaveFlags.jwt_secret_key.get()
                      << "' are too open; it is recommended that your"

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/log/catchup.cpp
----------------------------------------------------------------------
diff --git a/src/log/catchup.cpp b/src/log/catchup.cpp
index 79cc18c..ed2e79b 100644
--- a/src/log/catchup.cpp
+++ b/src/log/catchup.cpp
@@ -122,8 +122,8 @@ private:
     } else {
       // Update the proposal number so that we can save a proposal
       // number bump round trip if we need to invoke fill again.
-      CHECK(filling.get().promised() >= proposal);
-      proposal = filling.get().promised();
+      CHECK(filling->promised() >= proposal);
+      proposal = filling->promised();
 
       check();
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/log/consensus.cpp
----------------------------------------------------------------------
diff --git a/src/log/consensus.cpp b/src/log/consensus.cpp
index f766015..76ed3e8 100644
--- a/src/log/consensus.cpp
+++ b/src/log/consensus.cpp
@@ -217,8 +217,7 @@ private:
           // An action has already been performed in this position, we
           // need to save the action with the highest proposal number.
           if (highestAckAction.isNone() ||
-              (highestAckAction.get().performed() <
-               response.action().performed())) {
+              (highestAckAction->performed() < response.action().performed())) {
             highestAckAction = response.action();
           }
         } else {

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/log/replica.cpp
----------------------------------------------------------------------
diff --git a/src/log/replica.cpp b/src/log/replica.cpp
index c86a609..bb5aa8c 100644
--- a/src/log/replica.cpp
+++ b/src/log/replica.cpp
@@ -775,13 +775,13 @@ void ReplicaProcess::restore(const string& path)
   }
 
   // Pull out and save some of the state.
-  metadata = state.get().metadata;
-  begin = state.get().begin;
-  end = state.get().end;
-  unlearned = state.get().unlearned;
+  metadata = state->metadata;
+  begin = state->begin;
+  end = state->end;
+  unlearned = state->unlearned;
 
   // Only use the learned positions to help determine the holes.
-  const IntervalSet<uint64_t>& learned = state.get().learned;
+  const IntervalSet<uint64_t>& learned = state->learned;
 
   // Holes are those positions in [begin, end] that are not in both
   // learned and unlearned sets. In the case of a brand new log (begin

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/log/tool/benchmark.cpp
----------------------------------------------------------------------
diff --git a/src/log/tool/benchmark.cpp b/src/log/tool/benchmark.cpp
index b939e26..9c7ca67 100644
--- a/src/log/tool/benchmark.cpp
+++ b/src/log/tool/benchmark.cpp
@@ -194,7 +194,7 @@ Try<Nothing> Benchmark::execute(int argc, char** argv)
   vector<Time> timestamps;
 
   // Read sizes from the input trace file.
-  ifstream input(flags.input.get().c_str());
+  ifstream input(flags.input->c_str());
   if (!input.is_open()) {
     return Error("Failed to open the trace file " + flags.input.get());
   }
@@ -239,7 +239,7 @@ Try<Nothing> Benchmark::execute(int argc, char** argv)
                    (position.isFailed()
                     ? position.failure()
                     : "Discarded future"));
-    } else if (position.get().isNone()) {
+    } else if (position->isNone()) {
       return Error("Failed to append: exclusive write promise lost");
     }
 
@@ -251,7 +251,7 @@ Try<Nothing> Benchmark::execute(int argc, char** argv)
   cout << "Total time used: " << stopwatch.elapsed() << endl;
 
   // Ouput statistics.
-  ofstream output(flags.output.get().c_str());
+  ofstream output(flags.output->c_str());
   if (!output.is_open()) {
     return Error("Failed to open the output file " + flags.output.get());
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/log/tool/initialize.cpp
----------------------------------------------------------------------
diff --git a/src/log/tool/initialize.cpp b/src/log/tool/initialize.cpp
index c0f8543..56b12b0 100644
--- a/src/log/tool/initialize.cpp
+++ b/src/log/tool/initialize.cpp
@@ -87,7 +87,7 @@ Try<Nothing> Initialize::execute(int argc, char** argv)
   // Get the current status of the replica.
   Future<Metadata::Status> status = replica.status();
   if (timeout.isSome()) {
-    status.await(timeout.get().remaining());
+    status.await(timeout->remaining());
   } else {
     status.await();
   }
@@ -108,7 +108,7 @@ Try<Nothing> Initialize::execute(int argc, char** argv)
   // Update the status of the replica to VOTING.
   Future<bool> update = replica.update(Metadata::VOTING);
   if (timeout.isSome()) {
-    update.await(timeout.get().remaining());
+    update.await(timeout->remaining());
   } else {
     update.await();
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/log/tool/read.cpp
----------------------------------------------------------------------
diff --git a/src/log/tool/read.cpp b/src/log/tool/read.cpp
index 50fb020..e02a6e3 100644
--- a/src/log/tool/read.cpp
+++ b/src/log/tool/read.cpp
@@ -103,7 +103,7 @@ Try<Nothing> Read::execute(int argc, char** argv)
   // Get the beginning of the replica.
   Future<uint64_t> begin = replica.beginning();
   if (timeout.isSome()) {
-    begin.await(timeout.get().remaining());
+    begin.await(timeout->remaining());
   } else {
     begin.await();
   }
@@ -120,7 +120,7 @@ Try<Nothing> Read::execute(int argc, char** argv)
   // Get the ending of the replica.
   Future<uint64_t> end = replica.ending();
   if (timeout.isSome()) {
-    end.await(timeout.get().remaining());
+    end.await(timeout->remaining());
   } else {
     end.await();
   }
@@ -149,7 +149,7 @@ Try<Nothing> Read::execute(int argc, char** argv)
 
   Future<list<Action>> actions = replica.read(from.get(), to.get());
   if (timeout.isSome()) {
-    actions.await(timeout.get().remaining());
+    actions.await(timeout->remaining());
   } else {
     actions.await();
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/allocator/mesos/hierarchical.cpp
----------------------------------------------------------------------
diff --git a/src/master/allocator/mesos/hierarchical.cpp b/src/master/allocator/mesos/hierarchical.cpp
index f33ff76..80e0a34 100644
--- a/src/master/allocator/mesos/hierarchical.cpp
+++ b/src/master/allocator/mesos/hierarchical.cpp
@@ -777,7 +777,7 @@ void HierarchicalAllocatorProcess::updateWhitelist(
   if (whitelist.isSome()) {
     LOG(INFO) << "Updated agent whitelist: " << stringify(whitelist.get());
 
-    if (whitelist.get().empty()) {
+    if (whitelist->empty()) {
       LOG(WARNING) << "Whitelist is empty, no offers will be made!";
     }
   } else {
@@ -1043,7 +1043,7 @@ void HierarchicalAllocatorProcess::updateInverseOffer(
       // should guard against this. This goes against the pattern of not
       // checking external invariants; however, the allocator and master are
       // currently so tightly coupled that this check is valuable.
-      CHECK_NE(status.get().status(), InverseOfferStatus::UNKNOWN);
+      CHECK_NE(status->status(), InverseOfferStatus::UNKNOWN);
 
       // If the framework responded, we update our state to match.
       maintenance.statuses[frameworkId].CopyFrom(status.get());
@@ -1122,7 +1122,7 @@ HierarchicalAllocatorProcess::getInverseOfferStatuses()
   // Make a copy of the most recent statuses.
   foreachpair (const SlaveID& id, const Slave& slave, slaves) {
     if (slave.maintenance.isSome()) {
-      result[id] = slave.maintenance.get().statuses;
+      result[id] = slave.maintenance->statuses;
     }
   }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/contender/contender.cpp
----------------------------------------------------------------------
diff --git a/src/master/contender/contender.cpp b/src/master/contender/contender.cpp
index ea7453d..ad2ae66 100644
--- a/src/master/contender/contender.cpp
+++ b/src/master/contender/contender.cpp
@@ -55,7 +55,7 @@ Try<MasterContender*> MasterContender::create(
     if (url.isError()) {
       return Error(url.error());
     }
-    if (url.get().path == "/") {
+    if (url->path == "/") {
       return Error(
           "Expecting a (chroot) path for ZooKeeper ('/' is not supported)");
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/contender/zookeeper.cpp
----------------------------------------------------------------------
diff --git a/src/master/contender/zookeeper.cpp b/src/master/contender/zookeeper.cpp
index 64fbb3a..9a0601a 100644
--- a/src/master/contender/zookeeper.cpp
+++ b/src/master/contender/zookeeper.cpp
@@ -140,7 +140,7 @@ Future<Future<Nothing>> ZooKeeperMasterContenderProcess::contend()
   }
 
   // Should not recontend if the last election is still ongoing.
-  if (candidacy.isSome() && candidacy.get().isPending()) {
+  if (candidacy.isSome() && candidacy->isPending()) {
     return candidacy.get();
   }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/detector/detector.cpp
----------------------------------------------------------------------
diff --git a/src/master/detector/detector.cpp b/src/master/detector/detector.cpp
index 9d2e8c4..6359446 100644
--- a/src/master/detector/detector.cpp
+++ b/src/master/detector/detector.cpp
@@ -64,7 +64,7 @@ Try<MasterDetector*> MasterDetector::create(
     if (url.isError()) {
       return Error(url.error());
     }
-    if (url.get().path == "/") {
+    if (url->path == "/") {
       return Error(
           "Expecting a (chroot) path for ZooKeeper ('/' is not supported)");
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/detector/zookeeper.cpp
----------------------------------------------------------------------
diff --git a/src/master/detector/zookeeper.cpp b/src/master/detector/zookeeper.cpp
index 1cab567..09ae47c 100644
--- a/src/master/detector/zookeeper.cpp
+++ b/src/master/detector/zookeeper.cpp
@@ -134,7 +134,7 @@ Future<Option<MasterInfo>> ZooKeeperMasterDetectorProcess::detect(
   // Return immediately if the detector is no longer operational due
   // to a non-retryable error.
   if (error.isSome()) {
-    return Failure(error.get().message);
+    return Failure(error->message);
   }
 
   if (leader != previous) {
@@ -170,14 +170,14 @@ void ZooKeeperMasterDetectorProcess::detected(
     return;
   }
 
-  if (_leader.get().isNone()) {
+  if (_leader->isNone()) {
     leader = None();
 
     setPromises(&promises, leader);
   } else {
     // Fetch the data associated with the leader.
-    group->data(_leader.get().get())
-      .onAny(defer(self(), &Self::fetched, _leader.get().get(), lambda::_1));
+    group->data(_leader->get())
+      .onAny(defer(self(), &Self::fetched, _leader->get(), lambda::_1));
   }
 
   // Keep trying to detect leadership changes.
@@ -196,7 +196,7 @@ void ZooKeeperMasterDetectorProcess::fetched(
     leader = None();
     failPromises(&promises, data.failure());
     return;
-  } else if (data.get().isNone()) {
+  } else if (data->isNone()) {
     // Membership is gone before we can read its data.
     leader = None();
     setPromises(&promises, leader);
@@ -209,13 +209,13 @@ void ZooKeeperMasterDetectorProcess::fetched(
   if (label.isNone()) {
     // If we are here it means some masters are still creating znodes
     // with the old format.
-    UPID pid = UPID(data.get().get());
+    UPID pid = UPID(data->get());
     LOG(WARNING) << "Leading master " << pid << " has data in old format";
     leader = mesos::internal::protobuf::createMasterInfo(pid);
   } else if (label.isSome() &&
              label.get() == internal::master::MASTER_INFO_LABEL) {
     MasterInfo info;
-    if (!info.ParseFromString(data.get().get())) {
+    if (!info.ParseFromString(data->get())) {
       leader = None();
       failPromises(&promises,
           "Failed to parse data into MasterInfo");
@@ -228,7 +228,7 @@ void ZooKeeperMasterDetectorProcess::fetched(
     leader = info;
   } else if (label.isSome() &&
              label.get() == internal::master::MASTER_INFO_JSON_LABEL) {
-    Try<JSON::Object> object = JSON::parse<JSON::Object>(data.get().get());
+    Try<JSON::Object> object = JSON::parse<JSON::Object>(data->get());
 
     if (object.isError()) {
       leader = None();
@@ -260,7 +260,7 @@ void ZooKeeperMasterDetectorProcess::fetched(
   }
 
   LOG(INFO) << "A new leading master (UPID="
-            << UPID(leader.get().pid()) << ") is detected";
+            << UPID(leader->pid()) << ") is detected";
 
   setPromises(&promises, leader);
 }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index 6f692e2..acf10a0 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -404,7 +404,7 @@ struct SlaveWriter
     writer->field("registered_time", slave_.registeredTime.secs());
 
     if (slave_.reregisteredTime.isSome()) {
-      writer->field("reregistered_time", slave_.reregisteredTime.get().secs());
+      writer->field("reregistered_time", slave_.reregisteredTime->secs());
     }
 
     const Resources& totalResources = slave_.totalResources;
@@ -627,7 +627,7 @@ Future<Response> Master::Http::api(
 
   CHECK_SOME(master->recovered);
 
-  if (!master->recovered.get().isReady()) {
+  if (!master->recovered->isReady()) {
     return ServiceUnavailable("Master has not finished recovery");
   }
 
@@ -675,8 +675,7 @@ Future<Response> Master::Http::api(
   Option<Error> error = validation::master::call::validate(call, principal);
 
   if (error.isSome()) {
-    return BadRequest("Failed to validate master::Call: " +
-                      error.get().message);
+    return BadRequest("Failed to validate master::Call: " + error->message);
   }
 
   LOG(INFO) << "Processing call " << call.type();
@@ -935,7 +934,7 @@ Future<Response> Master::Http::scheduler(
 
   CHECK_SOME(master->recovered);
 
-  if (!master->recovered.get().isReady()) {
+  if (!master->recovered->isReady()) {
     return ServiceUnavailable("Master has not finished recovery");
   }
 
@@ -984,8 +983,7 @@ Future<Response> Master::Http::scheduler(
 
   if (error.isSome()) {
     master->metrics->incrementInvalidSchedulerCalls(call);
-    return BadRequest("Failed to validate scheduler::Call: " +
-                      error.get().message);
+    return BadRequest("Failed to validate scheduler::Call: " + error->message);
   }
 
   if (call.type() == scheduler::Call::SUBSCRIBE) {
@@ -1081,7 +1079,7 @@ Future<Response> Master::Http::scheduler(
   }
 
   const string& streamId = request.headers.at("Mesos-Stream-Id");
-  if (streamId != framework->http.get().streamId.toString()) {
+  if (streamId != framework->http->streamId.toString()) {
     return BadRequest(
         "The stream ID '" + streamId + "' included in this request "
         "didn't match the stream ID currently associated with framework ID "
@@ -1263,7 +1261,7 @@ Future<Response> Master::Http::createVolumes(
   }
 
   RepeatedPtrField<Resource> volumes;
-  foreach (const JSON::Value& value, parse.get().values) {
+  foreach (const JSON::Value& value, parse->values) {
     Try<Resource> volume = ::protobuf::parse<Resource>(value);
     if (volume.isError()) {
       return BadRequest(
@@ -1437,7 +1435,7 @@ Future<Response> Master::Http::destroyVolumes(
   }
 
   RepeatedPtrField<Resource> volumes;
-  foreach (const JSON::Value& value, parse.get().values) {
+  foreach (const JSON::Value& value, parse->values) {
     Try<Resource> volume = ::protobuf::parse<Resource>(value);
     if (volume.isError()) {
       return BadRequest(
@@ -2257,7 +2255,7 @@ Future<Response> Master::Http::getMaster(
 
   getMaster->set_start_time(master->startTime.secs());
   if (master->electedTime.isSome()) {
-    getMaster->set_elected_time(master->electedTime.get().secs());
+    getMaster->set_elected_time(master->electedTime->secs());
   }
 
   return OK(serialize(contentType, evolve(response)),
@@ -2431,7 +2429,7 @@ Future<Response> Master::Http::reserve(
   }
 
   RepeatedPtrField<Resource> resources;
-  foreach (const JSON::Value& value, parse.get().values) {
+  foreach (const JSON::Value& value, parse->values) {
     Try<Resource> resource = ::protobuf::parse<Resource>(value);
     if (resource.isError()) {
       return BadRequest(
@@ -2921,7 +2919,7 @@ Future<Response> Master::Http::state(
         writer->field("start_time", master->startTime.secs());
 
         if (master->electedTime.isSome()) {
-          writer->field("elected_time", master->electedTime.get().secs());
+          writer->field("elected_time", master->electedTime->secs());
         }
 
         writer->field("id", master->info().id());
@@ -5211,7 +5209,7 @@ Future<Response> Master::Http::unreserve(
   }
 
   RepeatedPtrField<Resource> resources;
-  foreach (const JSON::Value& value, parse.get().values) {
+  foreach (const JSON::Value& value, parse->values) {
     Try<Resource> resource = ::protobuf::parse<Resource>(value);
     if (resource.isError()) {
       return BadRequest(

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/main.cpp
----------------------------------------------------------------------
diff --git a/src/master/main.cpp b/src/master/main.cpp
index 0040d65..8cb52d0 100644
--- a/src/master/main.cpp
+++ b/src/master/main.cpp
@@ -370,7 +370,7 @@ int main(int argc, char** argv)
           << " registry when using ZooKeeper";
       }
 
-      Try<zookeeper::URL> url = zookeeper::URL::parse(flags.zk.get().value);
+      Try<zookeeper::URL> url = zookeeper::URL::parse(flags.zk->value);
       if (url.isError()) {
         EXIT(EXIT_FAILURE) << "Error parsing ZooKeeper URL: " << url.error();
       }
@@ -378,10 +378,10 @@ int main(int argc, char** argv)
       log = new Log(
           flags.quorum.get(),
           path::join(flags.work_dir.get(), "replicated_log"),
-          url.get().servers,
+          url->servers,
           flags.zk_session_timeout,
-          path::join(url.get().path, "log_replicas"),
-          url.get().authentication,
+          path::join(url->path, "log_replicas"),
+          url->authentication,
           flags.log_auto_initialize,
           "registrar/");
     } else {

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index b06d7a6..e7d5ac6 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -337,7 +337,7 @@ Master::Master(
   // TODO(marco): The ip, port, hostname fields above are
   //     being deprecated; the code should be removed once
   //     the deprecation cycle is complete.
-  info_.set_ip(self().address.ip.in().get().s_addr);
+  info_.set_ip(self().address.ip.in()->s_addr);
 
   info_.set_port(self().address.port);
   info_.set_pid(self());
@@ -646,7 +646,7 @@ void Master::initialize()
 
   if (flags.rate_limits.isSome()) {
     // Add framework rate limiters.
-    foreach (const RateLimit& limit_, flags.rate_limits.get().limits()) {
+    foreach (const RateLimit& limit_, flags.rate_limits->limits()) {
       if (frameworks.limiters.contains(limit_.principal())) {
         EXIT(EXIT_FAILURE)
           << "Duplicate principal " << limit_.principal()
@@ -673,22 +673,22 @@ void Master::initialize()
       }
     }
 
-    if (flags.rate_limits.get().has_aggregate_default_qps() &&
-        flags.rate_limits.get().aggregate_default_qps() <= 0) {
+    if (flags.rate_limits->has_aggregate_default_qps() &&
+        flags.rate_limits->aggregate_default_qps() <= 0) {
       EXIT(EXIT_FAILURE)
         << "Invalid aggregate_default_qps: "
-        << flags.rate_limits.get().aggregate_default_qps()
+        << flags.rate_limits->aggregate_default_qps()
         << ". It must be a positive number";
     }
 
-    if (flags.rate_limits.get().has_aggregate_default_qps()) {
+    if (flags.rate_limits->has_aggregate_default_qps()) {
       Option<uint64_t> capacity;
-      if (flags.rate_limits.get().has_aggregate_default_capacity()) {
-        capacity = flags.rate_limits.get().aggregate_default_capacity();
+      if (flags.rate_limits->has_aggregate_default_capacity()) {
+        capacity = flags.rate_limits->aggregate_default_capacity();
       }
-      frameworks.defaultLimiter = Owned<BoundedRateLimiter>(
-          new BoundedRateLimiter(
-              flags.rate_limits.get().aggregate_default_qps(), capacity));
+      frameworks.defaultLimiter =
+        Owned<BoundedRateLimiter>(new BoundedRateLimiter(
+            flags.rate_limits->aggregate_default_qps(), capacity));
     }
 
     LOG(INFO) << "Framework rate limiting enabled";
@@ -715,15 +715,15 @@ void Master::initialize()
 
     roleWhitelist = hashset<string>();
     foreach (const string& role, roles.get()) {
-      roleWhitelist.get().insert(role);
+      roleWhitelist->insert(role);
     }
 
-    if (roleWhitelist.get().size() < roles.get().size()) {
+    if (roleWhitelist->size() < roles->size()) {
       LOG(WARNING) << "Duplicate values in '--roles': " << flags.roles.get();
     }
 
     // The default role is always allowed.
-    roleWhitelist.get().insert("*");
+    roleWhitelist->insert("*");
   }
 
   // Add role weights.
@@ -1270,8 +1270,7 @@ void Master::finalize()
 void Master::exited(const FrameworkID& frameworkId, const HttpConnection& http)
 {
   foreachvalue (Framework* framework, frameworks.registered) {
-    if (framework->http.isSome() &&
-        framework->http.get().writer == http.writer) {
+    if (framework->http.isSome() && framework->http->writer == http.writer) {
       CHECK_EQ(frameworkId, framework->id());
       _exited(framework);
       return;
@@ -1511,7 +1510,7 @@ void Master::consume(MessageEvent&& event)
   // through recover(). What are the performance implications of
   // the additional queueing delay and the accumulated backlog
   // of messages post-recovery?
-  if (!recovered.get().isReady()) {
+  if (!recovered->isReady()) {
     VLOG(1) << "Dropping '" << event.message.name << "' message since "
             << "not recovered yet";
     ++metrics->dropped_messages;
@@ -2090,8 +2089,8 @@ void Master::contended(const Future<Future<Nothing>>& candidacy)
   }
 
   // Watch for candidacy change.
-  candidacy.get()
-    .onAny(defer(self(), &Master::lostCandidacy, lambda::_1));
+  candidacy
+    ->onAny(defer(self(), &Master::lostCandidacy, lambda::_1));
 }
 
 
@@ -2593,10 +2592,10 @@ void Master::subscribe(
   if (validationError.isSome()) {
     LOG(INFO) << "Refusing subscription of framework"
               << " '" << frameworkInfo.name() << "': "
-              << validationError.get().message;
+              << validationError->message;
 
     FrameworkErrorMessage message;
-    message.set_message(validationError.get().message);
+    message.set_message(validationError->message);
 
     http.send(message);
     http.close();
@@ -2645,10 +2644,10 @@ void Master::_subscribe(
   if (authorizationError.isSome()) {
     LOG(INFO) << "Refusing subscription of framework"
               << " '" << frameworkInfo.name() << "'"
-              << ": " << authorizationError.get().message;
+              << ": " << authorizationError->message;
 
     FrameworkErrorMessage message;
-    message.set_message(authorizationError.get().message);
+    message.set_message(authorizationError->message);
     http.send(message);
     http.close();
     return;
@@ -2859,10 +2858,10 @@ void Master::subscribe(
   if (validationError.isSome()) {
     LOG(INFO) << "Refusing subscription of framework"
               << " '" << frameworkInfo.name() << "' at " << from << ": "
-              << validationError.get().message;
+              << validationError->message;
 
     FrameworkErrorMessage message;
-    message.set_message(validationError.get().message);
+    message.set_message(validationError->message);
     send(from, message);
     return;
   }
@@ -2925,10 +2924,10 @@ void Master::_subscribe(
   if (authorizationError.isSome()) {
     LOG(INFO) << "Refusing subscription of framework"
               << " '" << frameworkInfo.name() << "' at " << from
-              << ": " << authorizationError.get().message;
+              << ": " << authorizationError->message;
 
     FrameworkErrorMessage message;
-    message.set_message(authorizationError.get().message);
+    message.set_message(authorizationError->message);
 
     send(from, message);
     return;
@@ -2943,7 +2942,7 @@ void Master::_subscribe(
   if (authenticationError.isSome()) {
     LOG(INFO) << "Dropping SUBSCRIBE call for framework"
               << " '" << frameworkInfo.name() << "' at " << from
-              << ": " << authenticationError.get().message;
+              << ": " << authenticationError->message;
     return;
   }
 
@@ -3227,7 +3226,7 @@ void Master::disconnect(Framework* framework)
 
     // Close the HTTP connection, which may already have
     // been closed due to scheduler disconnection.
-    framework->http.get().close();
+    framework->http->close();
   }
 }
 
@@ -3417,7 +3416,7 @@ bool Master::isWhitelistedRole(const string& name) const
     return true;
   }
 
-  return roleWhitelist.get().contains(name);
+  return roleWhitelist->contains(name);
 }
 
 
@@ -7809,7 +7808,7 @@ void Master::updateUnavailability(
         // TODO(jmlvanre): Add stream operator for unavailability.
         LOG(INFO) << "Updating unavailability of agent " << *slave
                   << ", starting at "
-                  << Nanoseconds(unavailability.get().start().nanoseconds());
+                  << Nanoseconds(unavailability->start().nanoseconds());
       } else {
         LOG(INFO) << "Removing unavailability of agent " << *slave;
       }
@@ -8636,8 +8635,8 @@ void Master::_reconcileTasks(
 
     if (update.isSome()) {
       VLOG(1) << "Sending explicit reconciliation state "
-              << update.get().status().state()
-              << " for task " << update.get().status().task_id()
+              << update->status().state()
+              << " for task " << update->status().task_id()
               << " of framework " << *framework;
 
       // TODO(bmahler): Consider using forward(); might lead to too
@@ -9042,7 +9041,7 @@ void Master::_authenticate(
     const UPID& pid,
     const Future<Option<string>>& future)
 {
-  if (!future.isReady() || future.get().isNone()) {
+  if (!future.isReady() || future->isNone()) {
     const string& error = future.isReady()
         ? "Refused authentication"
         : (future.isFailed() ? future.failure() : "future discarded");
@@ -9050,10 +9049,10 @@ void Master::_authenticate(
     LOG(WARNING) << "Failed to authenticate " << pid
                  << ": " << error;
   } else {
-    LOG(INFO) << "Successfully authenticated principal '" << future.get().get()
+    LOG(INFO) << "Successfully authenticated principal '" << future->get()
               << "' at " << pid;
 
-    authenticated.put(pid, future.get().get());
+    authenticated.put(pid, future->get());
   }
 
   CHECK(authenticating.contains(pid));
@@ -11738,7 +11737,7 @@ bool Slave::hasExecutor(const FrameworkID& frameworkId,
                         const ExecutorID& executorId) const
 {
   return executors.contains(frameworkId) &&
-    executors.get(frameworkId).get().contains(executorId);
+    executors.get(frameworkId)->contains(executorId);
 }
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index 92af852..6569c9e 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -2322,7 +2322,7 @@ struct Framework
     }
 
     if (http.isSome()) {
-      if (!http.get().send(message)) {
+      if (!http->send(message)) {
         LOG(WARNING) << "Unable to send event to framework " << *this << ":"
                      << " connection closed";
       }
@@ -2761,7 +2761,7 @@ struct Framework
   {
     CHECK_SOME(http);
 
-    if (connected() && !http.get().close()) {
+    if (connected() && !http->close()) {
       LOG(WARNING) << "Failed to close HTTP pipe for " << *this;
     }
 
@@ -2769,8 +2769,8 @@ struct Framework
 
     CHECK_SOME(heartbeater);
 
-    terminate(heartbeater.get().get());
-    wait(heartbeater.get().get());
+    terminate(heartbeater->get());
+    wait(heartbeater->get());
 
     heartbeater = None();
   }
@@ -2792,7 +2792,7 @@ struct Framework
           http.get(),
           DEFAULT_HEARTBEAT_INTERVAL);
 
-    process::spawn(heartbeater.get().get());
+    process::spawn(heartbeater->get());
   }
 
   bool active() const    { return state == ACTIVE; }

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/quota_handler.cpp
----------------------------------------------------------------------
diff --git a/src/master/quota_handler.cpp b/src/master/quota_handler.cpp
index 37d43e1..21bafd0 100644
--- a/src/master/quota_handler.cpp
+++ b/src/master/quota_handler.cpp
@@ -562,7 +562,7 @@ Future<http::Response> Master::QuotaHandler::__set(
     if (error.isSome()) {
       return Conflict(
           "Heuristic capacity check for set quota request failed: " +
-          error.get().message);
+          error->message);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/registrar.cpp
----------------------------------------------------------------------
diff --git a/src/master/registrar.cpp b/src/master/registrar.cpp
index aabce22..a835142 100644
--- a/src/master/registrar.cpp
+++ b/src/master/registrar.cpp
@@ -530,7 +530,7 @@ void RegistrarProcess::_update(
   updating = false;
 
   // Abort if the storage operation did not succeed.
-  if (!store.isReady() || store.get().isNone()) {
+  if (!store.isReady() || store->isNone()) {
     string message = "Failed to update registry: ";
 
     if (store.isFailed()) {
@@ -551,7 +551,7 @@ void RegistrarProcess::_update(
 
   LOG(INFO) << "Successfully updated the registry in " << elapsed;
 
-  variable = store.get().get();
+  variable = store->get();
   registry->Swap(updatedRegistry.get());
 
   // Remove the operations.

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/validation.cpp
----------------------------------------------------------------------
diff --git a/src/master/validation.cpp b/src/master/validation.cpp
index b15b75c..9254cd2 100644
--- a/src/master/validation.cpp
+++ b/src/master/validation.cpp
@@ -864,22 +864,22 @@ Option<Error> validate(const RepeatedPtrField<Resource>& resources)
 {
   Option<Error> error = Resources::validate(resources);
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   error = common::validation::validateGpus(resources);
   if (error.isSome()) {
-    return Error("Invalid 'gpus' resource: " + error.get().message);
+    return Error("Invalid 'gpus' resource: " + error->message);
   }
 
   error = validateDiskInfo(resources);
   if (error.isSome()) {
-    return Error("Invalid DiskInfo: " + error.get().message);
+    return Error("Invalid DiskInfo: " + error->message);
   }
 
   error = validateDynamicReservationInfo(resources);
   if (error.isSome()) {
-    return Error("Invalid ReservationInfo: " + error.get().message);
+    return Error("Invalid ReservationInfo: " + error->message);
   }
 
   return None();
@@ -1957,13 +1957,13 @@ Option<Error> validate(
   // NOTE: this ensures the reservation is not being made to the "*" role.
   Option<Error> error = resource::validate(reserve.resources());
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   error =
     resource::internal::validateSingleResourceProvider(reserve.resources());
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   Option<hashset<string>> frameworkRoles;
@@ -2101,13 +2101,13 @@ Option<Error> validate(
 {
   Option<Error> error = resource::validate(unreserve.resources());
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   error =
     resource::internal::validateSingleResourceProvider(unreserve.resources());
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   // NOTE: We don't check that 'FrameworkInfo.principal' matches
@@ -2144,17 +2144,17 @@ Option<Error> validate(
 {
   Option<Error> error = resource::validate(create.volumes());
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   error = resource::internal::validateSingleResourceProvider(create.volumes());
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   error = resource::validatePersistentVolume(create.volumes());
   if (error.isSome()) {
-    return Error("Not a persistent volume: " + error.get().message);
+    return Error("Not a persistent volume: " + error->message);
   }
 
   error = resource::validateUniquePersistenceID(
@@ -2175,7 +2175,7 @@ Option<Error> validate(
       return Error(
           "Create volume operation for '" + stringify(volume) +
           "' has been attempted by framework '" +
-          stringify(frameworkInfo.get().id()) +
+          stringify(frameworkInfo->id()) +
           "' with no SHARED_RESOURCES capability");
     }
 
@@ -2264,17 +2264,17 @@ Option<Error> validate(
 
   Option<Error> error = resource::validate(volumes);
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   error = resource::internal::validateSingleResourceProvider(volumes);
   if (error.isSome()) {
-    return Error("Invalid resources: " + error.get().message);
+    return Error("Invalid resources: " + error->message);
   }
 
   error = resource::validatePersistentVolume(volumes);
   if (error.isSome()) {
-    return Error("Not a persistent volume: " + error.get().message);
+    return Error("Not a persistent volume: " + error->message);
   }
 
   foreach (const Resource volume, volumes) {
@@ -2378,7 +2378,7 @@ Option<Error> validate(const Offer::Operation::CreateBlock& createBlock)
 
   Option<Error> error = resource::validate(Resources(source));
   if (error.isSome()) {
-    return Error("Invalid resource: " + error.get().message);
+    return Error("Invalid resource: " + error->message);
   }
 
   if (!Resources::hasResourceProvider(source)) {
@@ -2399,7 +2399,7 @@ Option<Error> validate(const Offer::Operation::DestroyBlock& destroyBlock)
 
   Option<Error> error = resource::validate(Resources(block));
   if (error.isSome()) {
-    return Error("Invalid resource: " + error.get().message);
+    return Error("Invalid resource: " + error->message);
   }
 
   if (!Resources::hasResourceProvider(block)) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/master/weights_handler.cpp
----------------------------------------------------------------------
diff --git a/src/master/weights_handler.cpp b/src/master/weights_handler.cpp
index 59104a8..1053652 100644
--- a/src/master/weights_handler.cpp
+++ b/src/master/weights_handler.cpp
@@ -212,7 +212,7 @@ Future<http::Response> Master::WeightsHandler::_updateWeights(
     if (roleError.isSome()) {
       return BadRequest(
           "Failed to validate update weights request JSON: Invalid role '" +
-          role + "': " + roleError.get().message);
+          role + "': " + roleError->message);
     }
 
     // Check that the role is on the role whitelist, if it exists.

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/resource_provider/http_connection.hpp
----------------------------------------------------------------------
diff --git a/src/resource_provider/http_connection.hpp b/src/resource_provider/http_connection.hpp
index add5acc..0ae8124 100644
--- a/src/resource_provider/http_connection.hpp
+++ b/src/resource_provider/http_connection.hpp
@@ -216,7 +216,7 @@ protected:
 
       endpoint = None();
     } else {
-      endpoint = future.get().get();
+      endpoint = future->get();
 
       LOG(INFO) << "New endpoint detected at " << endpoint.get();
 
@@ -452,7 +452,7 @@ protected:
     if (event->isError()) {
       LOG(ERROR) << "Failed to de-serialize event: " << event->error();
     } else {
-      receive(event.get().get());
+      receive(event->get());
     }
 
     read();

http://git-wip-us.apache.org/repos/asf/mesos/blob/49c642e9/src/resource_provider/registrar.cpp
----------------------------------------------------------------------
diff --git a/src/resource_provider/registrar.cpp b/src/resource_provider/registrar.cpp
index 3e6b64b..9eb49f1 100644
--- a/src/resource_provider/registrar.cpp
+++ b/src/resource_provider/registrar.cpp
@@ -309,7 +309,7 @@ void AgentRegistrarProcess::_update(
 {
   updating = false;
   // Abort if the storage operation did not succeed.
-  if (!store.isReady() || store.get().isNone()) {
+  if (!store.isReady() || store->isNone()) {
     string message = "Failed to update registry: ";
 
     if (store.isFailed()) {