You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ch...@apache.org on 2018/05/02 01:35:54 UTC
[6/9] mesos git commit: Remembered recovered and subscribed providers
in ephemeral state.
Remembered recovered and subscribed providers in ephemeral state.
This patch adds a data structure to bookkeep subscribed and recovered
resource providers in the ephemeral state of the resource provider
manager.
Review: https://reviews.apache.org/r/66544/
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/9a8cef07
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/9a8cef07
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/9a8cef07
Branch: refs/heads/master
Commit: 9a8cef0739446925a0719abf51758ea7443c8990
Parents: 169efe6
Author: Benjamin Bannier <be...@mesosphere.io>
Authored: Tue May 1 13:09:17 2018 -0700
Committer: Chun-Hung Hsiao <ch...@mesosphere.io>
Committed: Tue May 1 13:09:17 2018 -0700
----------------------------------------------------------------------
src/resource_provider/manager.cpp | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/9a8cef07/src/resource_provider/manager.cpp
----------------------------------------------------------------------
diff --git a/src/resource_provider/manager.cpp b/src/resource_provider/manager.cpp
index dfb8e73..bc52741 100644
--- a/src/resource_provider/manager.cpp
+++ b/src/resource_provider/manager.cpp
@@ -208,6 +208,10 @@ private:
struct ResourceProviders
{
hashmap<ResourceProviderID, Owned<ResourceProvider>> subscribed;
+ hashmap<
+ ResourceProviderID,
+ mesos::resource_provider::registry::ResourceProvider>
+ known;
} resourceProviders;
struct Metrics
@@ -253,6 +257,13 @@ void ResourceProviderManagerProcess::initialize()
Future<Nothing> ResourceProviderManagerProcess::recover(
const mesos::resource_provider::registry::Registry& registry)
{
+ foreach (
+ const mesos::resource_provider::registry::ResourceProvider&
+ resourceProvider,
+ registry.resource_providers()) {
+ resourceProviders.known.put(resourceProvider.id(), resourceProvider);
+ }
+
recovered.set(Nothing());
return Nothing();
@@ -697,6 +708,17 @@ void ResourceProviderManagerProcess::subscribe(
resourceProviders.subscribed.put(
resourceProviderId,
std::move(resourceProvider));
+
+ if (!resourceProviders.known.contains(resourceProviderId)) {
+ mesos::resource_provider::registry::ResourceProvider resourceProvider_;
+ resourceProvider_.mutable_id()->CopyFrom(resourceProviderId);
+
+ resourceProviders.known.put(
+ resourceProviderId,
+ std::move(resourceProvider_));
+
+ // TODO(bbannier): Persist this information in the registry.
+ }
}