You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by nn...@apache.org on 2015/09/23 02:30:02 UTC

mesos git commit: Made attributes.hpp public.

Repository: mesos
Updated Branches:
  refs/heads/master f5ec1d006 -> b0d1c6ea0


Made attributes.hpp public.

This is required in order to enable callback hooks that can modify
attributes of a slave during initialization.

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


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

Branch: refs/heads/master
Commit: b0d1c6ea0b3f6ff17d4e947a5bf0258a649a8f65
Parents: f5ec1d0
Author: Felix Abecassis <fa...@nvidia.com>
Authored: Tue Sep 22 13:57:58 2015 -0700
Committer: Niklas Q. Nielsen <ni...@qni.dk>
Committed: Tue Sep 22 13:57:59 2015 -0700

----------------------------------------------------------------------
 include/mesos/attributes.hpp   | 117 ++++++++++++++++++++++++++++++++++
 src/Makefile.am                |   2 +-
 src/common/attributes.cpp      |  10 +--
 src/common/attributes.hpp      | 122 ------------------------------------
 src/common/http.cpp            |   2 +-
 src/common/http.hpp            |   2 +-
 src/common/type_utils.cpp      |   6 +-
 src/master/http.cpp            |   2 +-
 src/slave/http.cpp             |   2 +-
 src/slave/slave.hpp            |   2 +-
 src/tests/attributes_tests.cpp |   2 +-
 src/tests/registrar_tests.cpp  |   2 +-
 12 files changed, 129 insertions(+), 142 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/include/mesos/attributes.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/attributes.hpp b/include/mesos/attributes.hpp
new file mode 100644
index 0000000..78afcd5
--- /dev/null
+++ b/include/mesos/attributes.hpp
@@ -0,0 +1,117 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef __ATTRIBUTES_HPP__
+#define __ATTRIBUTES_HPP__
+
+#include <iterator>
+#include <string>
+
+#include <mesos/mesos.hpp>
+
+#include <stout/option.hpp>
+
+namespace mesos {
+
+std::ostream& operator<<(std::ostream& stream, const Attribute& attribute);
+
+class Attributes
+{
+public:
+  Attributes() {}
+
+  /*implicit*/
+  Attributes(const google::protobuf::RepeatedPtrField<Attribute>& _attributes)
+  {
+    attributes.MergeFrom(_attributes);
+  }
+
+  Attributes(const Attributes& that)
+  {
+    attributes.MergeFrom(that.attributes);
+  }
+
+  Attributes& operator=(const Attributes& that)
+  {
+    if (this != &that) {
+      attributes.Clear();
+      attributes.MergeFrom(that.attributes);
+    }
+
+    return *this;
+  }
+
+  bool operator==(const Attributes& that) const;
+
+
+  bool operator!=(const Attributes& that) const
+  {
+    return !(*this == that);
+  }
+
+  size_t size() const
+  {
+    return attributes.size();
+  }
+
+  // Using this operator makes it easy to copy a attributes object into
+  // a protocol buffer field.
+  operator const google::protobuf::RepeatedPtrField<Attribute>&() const
+  {
+    return attributes;
+  }
+
+  void add(const Attribute& attribute)
+  {
+    attributes.Add()->MergeFrom(attribute);
+  }
+
+  const Attribute get(int index) const
+  {
+    return attributes.Get(index);
+  }
+
+  const Option<Attribute> get(const Attribute& thatAttribute) const;
+
+  template <typename T>
+  T get(const std::string& name, const T& t) const;
+
+  typedef google::protobuf::RepeatedPtrField<Attribute>::iterator
+  iterator;
+
+  typedef google::protobuf::RepeatedPtrField<Attribute>::const_iterator
+  const_iterator;
+
+  iterator begin() { return attributes.begin(); }
+  iterator end() { return attributes.end(); }
+
+  const_iterator begin() const { return attributes.begin(); }
+  const_iterator end() const { return attributes.end(); }
+
+  static Attribute parse(const std::string& name, const std::string& value);
+  static Attributes parse(const std::string& s);
+
+  static bool isValid(const Attribute& attribute);
+
+private:
+  google::protobuf::RepeatedPtrField<Attribute> attributes;
+};
+
+} // namespace mesos {
+
+#endif // __ATTRIBUTES_HPP__

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index e224060..74c1154 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -536,6 +536,7 @@ libmesos_no_3rdparty_la_SOURCES =					\
 
 
 pkginclude_HEADERS =							\
+  $(top_srcdir)/include/mesos/attributes.hpp				\
   $(top_srcdir)/include/mesos/executor.hpp				\
   $(top_srcdir)/include/mesos/hook.hpp					\
   $(top_srcdir)/include/mesos/http.hpp					\
@@ -740,7 +741,6 @@ libmesos_no_3rdparty_la_SOURCES +=					\
 	authentication/cram_md5/authenticator.hpp			\
 	authentication/cram_md5/auxprop.hpp				\
 	authorizer/local/authorizer.hpp					\
-	common/attributes.hpp						\
 	common/build.hpp						\
 	common/date_utils.hpp						\
 	common/http.hpp							\

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/common/attributes.cpp
----------------------------------------------------------------------
diff --git a/src/common/attributes.cpp b/src/common/attributes.cpp
index f713bb5..8a8d624 100644
--- a/src/common/attributes.cpp
+++ b/src/common/attributes.cpp
@@ -21,13 +21,12 @@
 
 #include <glog/logging.h>
 
+#include <mesos/attributes.hpp>
 #include <mesos/values.hpp>
 
 #include <stout/foreach.hpp>
 #include <stout/strings.hpp>
 
-#include "common/attributes.hpp"
-
 using std::ostream;
 using std::string;
 using std::vector;
@@ -52,9 +51,6 @@ std::ostream& operator<<(std::ostream& stream, const Attribute& attribute)
 }
 
 
-namespace internal {
-
-
 bool Attributes::operator==(const Attributes& that) const
 {
   if (size() != that.size()) {
@@ -108,7 +104,7 @@ const Option<Attribute> Attributes::get(const Attribute& thatAttribute) const
 Attribute Attributes::parse(const std::string& name, const std::string& text)
 {
   Attribute attribute;
-  Try<Value> result = values::parse(text);
+  Try<Value> result = internal::values::parse(text);
 
   if (result.isError()) {
     LOG(FATAL) << "Failed to parse attribute " << name
@@ -229,6 +225,4 @@ Value::Text Attributes::get(
   return text;
 }
 
-
-} // namespace internal {
 } // namespace mesos {

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/common/attributes.hpp
----------------------------------------------------------------------
diff --git a/src/common/attributes.hpp b/src/common/attributes.hpp
deleted file mode 100644
index 2a7efbd..0000000
--- a/src/common/attributes.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __ATTRIBUTES_HPP__
-#define __ATTRIBUTES_HPP__
-
-#include <iterator>
-#include <string>
-
-#include <mesos/mesos.hpp>
-
-#include <stout/option.hpp>
-
-namespace mesos {
-
-std::ostream& operator<<(std::ostream& stream, const Attribute& attribute);
-
-namespace internal {
-
-
-class Attributes
-{
-public:
-  Attributes() {}
-
-  /*implicit*/
-  Attributes(const google::protobuf::RepeatedPtrField<Attribute>& _attributes)
-  {
-    attributes.MergeFrom(_attributes);
-  }
-
-  Attributes(const Attributes& that)
-  {
-    attributes.MergeFrom(that.attributes);
-  }
-
-  Attributes& operator=(const Attributes& that)
-  {
-    if (this != &that) {
-      attributes.Clear();
-      attributes.MergeFrom(that.attributes);
-    }
-
-    return *this;
-  }
-
-  bool operator==(const Attributes& that) const;
-
-
-  bool operator!=(const Attributes& that) const
-  {
-    return !(*this == that);
-  }
-
-  size_t size() const
-  {
-    return attributes.size();
-  }
-
-  // Using this operator makes it easy to copy a attributes object into
-  // a protocol buffer field.
-  operator const google::protobuf::RepeatedPtrField<Attribute>&() const
-  {
-    return attributes;
-  }
-
-  void add(const Attribute& attribute)
-  {
-    attributes.Add()->MergeFrom(attribute);
-  }
-
-  const Attribute get(int index) const
-  {
-    return attributes.Get(index);
-  }
-
-  const Option<Attribute> get(const Attribute& thatAttribute) const;
-
-  template <typename T>
-  T get(const std::string& name, const T& t) const;
-
-  typedef google::protobuf::RepeatedPtrField<Attribute>::iterator
-  iterator;
-
-  typedef google::protobuf::RepeatedPtrField<Attribute>::const_iterator
-  const_iterator;
-
-  iterator begin() { return attributes.begin(); }
-  iterator end() { return attributes.end(); }
-
-  const_iterator begin() const { return attributes.begin(); }
-  const_iterator end() const { return attributes.end(); }
-
-  static Attribute parse(const std::string& name, const std::string& value);
-  static Attributes parse(const std::string& s);
-
-  static bool isValid(const Attribute& attribute);
-
-private:
-  google::protobuf::RepeatedPtrField<Attribute> attributes;
-};
-
-
-} // namespace internal {
-} // namespace mesos {
-
-#endif // __ATTRIBUTES_HPP__

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/common/http.cpp
----------------------------------------------------------------------
diff --git a/src/common/http.cpp b/src/common/http.cpp
index aaef10b..99b843a 100644
--- a/src/common/http.cpp
+++ b/src/common/http.cpp
@@ -22,6 +22,7 @@
 #include <utility>
 #include <vector>
 
+#include <mesos/attributes.hpp>
 #include <mesos/resources.hpp>
 
 #include <stout/foreach.hpp>
@@ -29,7 +30,6 @@
 #include <stout/stringify.hpp>
 #include <stout/unreachable.hpp>
 
-#include "common/attributes.hpp"
 #include "common/http.hpp"
 
 #include "messages/messages.hpp"

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/common/http.hpp
----------------------------------------------------------------------
diff --git a/src/common/http.hpp b/src/common/http.hpp
index 058baa6..0cc98a8 100644
--- a/src/common/http.hpp
+++ b/src/common/http.hpp
@@ -31,10 +31,10 @@
 namespace mesos {
 
 class Resources;
+class Attributes;
 
 namespace internal {
 
-class Attributes;
 class Task;
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/common/type_utils.cpp
----------------------------------------------------------------------
diff --git a/src/common/type_utils.cpp b/src/common/type_utils.cpp
index 22118b4..5f74dab 100644
--- a/src/common/type_utils.cpp
+++ b/src/common/type_utils.cpp
@@ -16,12 +16,11 @@
  * limitations under the License.
  */
 
+#include <mesos/attributes.hpp>
 #include <mesos/mesos.hpp>
 #include <mesos/resources.hpp>
 #include <mesos/type_utils.hpp>
 
-#include "common/attributes.hpp"
-
 #include "messages/messages.hpp"
 
 namespace mesos {
@@ -333,8 +332,7 @@ bool operator==(const SlaveInfo& left, const SlaveInfo& right)
 {
   return left.hostname() == right.hostname() &&
     Resources(left.resources()) == Resources(right.resources()) &&
-    internal::Attributes(left.attributes()) ==
-      internal::Attributes(right.attributes()) &&
+    Attributes(left.attributes()) == Attributes(right.attributes()) &&
     left.id() == right.id() &&
     left.checkpoint() == right.checkpoint() &&
     left.port() == right.port();

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/master/http.cpp
----------------------------------------------------------------------
diff --git a/src/master/http.cpp b/src/master/http.cpp
index 3e44b06..fb5315c 100644
--- a/src/master/http.cpp
+++ b/src/master/http.cpp
@@ -26,6 +26,7 @@
 
 #include <boost/array.hpp>
 
+#include <mesos/attributes.hpp>
 #include <mesos/type_utils.hpp>
 
 #include <mesos/authorizer/authorizer.hpp>
@@ -53,7 +54,6 @@
 #include <stout/try.hpp>
 #include <stout/utils.hpp>
 
-#include "common/attributes.hpp"
 #include "common/build.hpp"
 #include "common/http.hpp"
 #include "common/protobuf_utils.hpp"

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/slave/http.cpp
----------------------------------------------------------------------
diff --git a/src/slave/http.cpp b/src/slave/http.cpp
index 12a4d39..cddc8ad 100644
--- a/src/slave/http.cpp
+++ b/src/slave/http.cpp
@@ -26,6 +26,7 @@
 
 #include <mesos/v1/executor/executor.hpp>
 
+#include <mesos/attributes.hpp>
 #include <mesos/type_utils.hpp>
 
 #include <process/help.hpp>
@@ -41,7 +42,6 @@
 #include <stout/stringify.hpp>
 #include <stout/strings.hpp>
 
-#include "common/attributes.hpp"
 #include "common/build.hpp"
 #include "common/http.hpp"
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/slave/slave.hpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.hpp b/src/slave/slave.hpp
index 7a54fad..8fcd2d9 100644
--- a/src/slave/slave.hpp
+++ b/src/slave/slave.hpp
@@ -28,6 +28,7 @@
 
 #include <boost/circular_buffer.hpp>
 
+#include <mesos/attributes.hpp>
 #include <mesos/resources.hpp>
 #include <mesos/type_utils.hpp>
 
@@ -62,7 +63,6 @@
 #include "slave/paths.hpp"
 #include "slave/state.hpp"
 
-#include "common/attributes.hpp"
 #include "common/protobuf_utils.hpp"
 
 #include "files/files.hpp"

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/tests/attributes_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/attributes_tests.cpp b/src/tests/attributes_tests.cpp
index ded6120..4fc0c31 100644
--- a/src/tests/attributes_tests.cpp
+++ b/src/tests/attributes_tests.cpp
@@ -21,7 +21,7 @@
 
 #include <gtest/gtest.h>
 
-#include "common/attributes.hpp"
+#include <mesos/attributes.hpp>
 
 using std::string;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/b0d1c6ea/src/tests/registrar_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/registrar_tests.cpp b/src/tests/registrar_tests.cpp
index 5131b57..2610a56 100644
--- a/src/tests/registrar_tests.cpp
+++ b/src/tests/registrar_tests.cpp
@@ -23,6 +23,7 @@
 #include <string>
 #include <vector>
 
+#include <mesos/attributes.hpp>
 #include <mesos/type_utils.hpp>
 
 #include <process/clock.hpp>
@@ -35,7 +36,6 @@
 #include <stout/stopwatch.hpp>
 #include <stout/uuid.hpp>
 
-#include "common/attributes.hpp"
 #include "common/protobuf_utils.hpp"
 
 #include "log/log.hpp"