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 2019/08/24 21:23:05 UTC
[mesos] 02/03: Allowed passing resource provider infos into call
validation.
This is an automated email from the ASF dual-hosted git repository.
bbannier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mesos.git
commit 764ff9af98a2e02f21630795f1eba0d04294fabf
Author: Benjamin Bannier <bb...@apache.org>
AuthorDate: Sat Aug 24 22:38:55 2019 +0200
Allowed passing resource provider infos into call validation.
With this patch it becomes possible to take a `ResourceProviderInfo`
into account when validating calls. While this feature is currently
unused, we will add additional validations in a follow-up patch.
Review: https://reviews.apache.org/r/71340/
---
src/resource_provider/driver.cpp | 2 +-
src/resource_provider/manager.cpp | 2 +-
src/resource_provider/validation.cpp | 3 ++-
src/resource_provider/validation.hpp | 4 +++-
src/tests/resource_provider_validation_tests.cpp | 16 ++++++++--------
5 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/src/resource_provider/driver.cpp b/src/resource_provider/driver.cpp
index eda019c..3edf799 100644
--- a/src/resource_provider/driver.cpp
+++ b/src/resource_provider/driver.cpp
@@ -45,7 +45,7 @@ namespace {
Option<Error> validate(const mesos::v1::resource_provider::Call& call)
{
return mesos::internal::resource_provider::validation::call::validate(
- mesos::internal::devolve(call));
+ mesos::internal::devolve(call), None());
}
} // namespace {
diff --git a/src/resource_provider/manager.cpp b/src/resource_provider/manager.cpp
index ceed122..773ccd3 100644
--- a/src/resource_provider/manager.cpp
+++ b/src/resource_provider/manager.cpp
@@ -356,7 +356,7 @@ Future<http::Response> ResourceProviderManagerProcess::api(
Call call = devolve(v1Call);
- Option<Error> error = validate(call);
+ Option<Error> error = validate(call, None());
if (error.isSome()) {
return BadRequest(
"Failed to validate resource_provider::Call: " + error->message);
diff --git a/src/resource_provider/validation.cpp b/src/resource_provider/validation.cpp
index 1f9324f..3688113 100644
--- a/src/resource_provider/validation.cpp
+++ b/src/resource_provider/validation.cpp
@@ -27,7 +27,8 @@ namespace resource_provider {
namespace validation {
namespace call {
-Option<Error> validate(const Call& call)
+Option<Error> validate(
+ const Call& call, const Option<ResourceProviderInfo>& resourceProviderInfo)
{
if (!call.IsInitialized()) {
return Error("Not initialized: " + call.InitializationErrorString());
diff --git a/src/resource_provider/validation.hpp b/src/resource_provider/validation.hpp
index 0068f56..1cc3ff5 100644
--- a/src/resource_provider/validation.hpp
+++ b/src/resource_provider/validation.hpp
@@ -28,7 +28,9 @@ namespace resource_provider {
namespace validation {
namespace call {
-Option<Error> validate(const mesos::resource_provider::Call& call);
+Option<Error> validate(
+ const mesos::resource_provider::Call& call,
+ const Option<ResourceProviderInfo>& resourceProviderInfo);
} // namespace call {
} // namespace validation {
diff --git a/src/tests/resource_provider_validation_tests.cpp b/src/tests/resource_provider_validation_tests.cpp
index a998941..5ff7894 100644
--- a/src/tests/resource_provider_validation_tests.cpp
+++ b/src/tests/resource_provider_validation_tests.cpp
@@ -43,7 +43,7 @@ TEST(ResourceProviderCallValidationTest, Subscribe)
call.set_type(Call::SUBSCRIBE);
// Expecting `Call::Subscribe`.
- Option<Error> error = call::validate(call);
+ Option<Error> error = call::validate(call, None());
EXPECT_SOME(error);
Call::Subscribe* subscribe = call.mutable_subscribe();
@@ -51,7 +51,7 @@ TEST(ResourceProviderCallValidationTest, Subscribe)
info->set_type("org.apache.mesos.rp.test");
info->set_name("test");
- error = call::validate(call);
+ error = call::validate(call, None());
EXPECT_NONE(error);
}
@@ -62,14 +62,14 @@ TEST(ResourceProviderCallValidationTest, UpdateOperationStatus)
call.set_type(Call::UPDATE_OPERATION_STATUS);
// Expecting a resource provider ID and `Call::UpdateOperationStatus`.
- Option<Error> error = call::validate(call);
+ Option<Error> error = call::validate(call, None());
EXPECT_SOME(error);
ResourceProviderID* id = call.mutable_resource_provider_id();
id->set_value(id::UUID::random().toString());
// Still expecting `Call::UpdateOperationStatus`.
- error = call::validate(call);
+ error = call::validate(call, None());
EXPECT_SOME(error);
Call::UpdateOperationStatus* update =
@@ -82,7 +82,7 @@ TEST(ResourceProviderCallValidationTest, UpdateOperationStatus)
status->mutable_operation_id()->set_value(id::UUID::random().toString());
status->set_state(OPERATION_FINISHED);
- error = call::validate(call);
+ error = call::validate(call, None());
EXPECT_NONE(error);
}
@@ -93,21 +93,21 @@ TEST(ResourceProviderCallValidationTest, UpdateState)
call.set_type(Call::UPDATE_STATE);
// Expecting a resource provider ID and `Call::UpdateState`.
- Option<Error> error = call::validate(call);
+ Option<Error> error = call::validate(call, None());
EXPECT_SOME(error);
ResourceProviderID* id = call.mutable_resource_provider_id();
id->set_value(id::UUID::random().toString());
// Still expecting `Call::UpdateState`.
- error = call::validate(call);
+ error = call::validate(call, None());
EXPECT_SOME(error);
Call::UpdateState* updateState = call.mutable_update_state();
updateState->mutable_resource_version_uuid()->CopyFrom(
protobuf::createUUID());
- error = call::validate(call);
+ error = call::validate(call, None());
EXPECT_NONE(error);
}