You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by bm...@apache.org on 2017/02/27 23:24:00 UTC
[2/6] mesos git commit: Added equality and output operators for agent
capabilities.
Added equality and output operators for agent capabilities.
Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/71201626
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/71201626
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/71201626
Branch: refs/heads/master
Commit: 71201626a98b02a2ad6bcf9209cea51c7be03eb9
Parents: 89080f7
Author: Benjamin Mahler <bm...@apache.org>
Authored: Mon Feb 27 14:59:01 2017 -0800
Committer: Benjamin Mahler <bm...@apache.org>
Committed: Mon Feb 27 15:09:43 2017 -0800
----------------------------------------------------------------------
src/common/protobuf_utils.cpp | 30 ++++++++++++++++++++++++++++++
src/common/protobuf_utils.hpp | 8 ++++++++
2 files changed, 38 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/mesos/blob/71201626/src/common/protobuf_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.cpp b/src/common/protobuf_utils.cpp
index 4421849..944263b 100644
--- a/src/common/protobuf_utils.cpp
+++ b/src/common/protobuf_utils.cpp
@@ -22,6 +22,8 @@
#include <pwd.h>
#endif // __WINDOWS__
+#include <ostream>
+
#include <mesos/slave/isolator.hpp>
#include <mesos/type_utils.hpp>
@@ -48,6 +50,7 @@
#include "messages/messages.hpp"
+using std::ostream;
using std::set;
using std::string;
@@ -493,6 +496,33 @@ ContainerID getRootContainerId(const ContainerID& containerId)
namespace slave {
+bool operator==(const Capabilities& left, const Capabilities& right)
+{
+ // TODO(bmahler): Use reflection-based equality to avoid breaking
+ // as new capabilities are added. Note that it needs to be set-based
+ // equality.
+ return left.multiRole == right.multiRole;
+}
+
+
+bool operator!=(const Capabilities& left, const Capabilities& right)
+{
+ return !(left == right);
+}
+
+
+ostream& operator<<(ostream& stream, const Capabilities& c)
+{
+ set<string> names;
+
+ foreach (const SlaveInfo::Capability& capability, c.toRepeatedPtrField()) {
+ names.insert(SlaveInfo::Capability::Type_Name(capability.type()));
+ }
+
+ return stream << stringify(names);
+}
+
+
ContainerLimitation createContainerLimitation(
const Resources& resources,
const string& message,
http://git-wip-us.apache.org/repos/asf/mesos/blob/71201626/src/common/protobuf_utils.hpp
----------------------------------------------------------------------
diff --git a/src/common/protobuf_utils.hpp b/src/common/protobuf_utils.hpp
index ae1467d..09e468c 100644
--- a/src/common/protobuf_utils.hpp
+++ b/src/common/protobuf_utils.hpp
@@ -18,6 +18,7 @@
#define __PROTOBUF_UTILS_HPP__
#include <initializer_list>
+#include <ostream>
#include <set>
#include <string>
@@ -155,6 +156,8 @@ struct Capabilities
case SlaveInfo::Capability::MULTI_ROLE:
multiRole = true;
break;
+ // If adding another case here be sure to update the
+ // equality operator.
}
}
}
@@ -175,6 +178,11 @@ struct Capabilities
};
+bool operator==(const Capabilities& left, const Capabilities& right);
+bool operator!=(const Capabilities& left, const Capabilities& right);
+std::ostream& operator<<(std::ostream& stream, const Capabilities& c);
+
+
mesos::slave::ContainerLimitation createContainerLimitation(
const Resources& resources,
const std::string& message,