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 <[email protected]> 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); }
