From 5a6f2f49dfc0c945d0e4de9ba212e33bdab42ce7 Mon Sep 17 00:00:00 2001 From: Flavien Quesnel Date: Thu, 29 Apr 2021 14:10:29 +0200 Subject: [PATCH] Fix tests on FrameworkInfo update. JIRA: MESOS-4868 --- src/master/framework.cpp | 5 ++++- src/tests/master/update_framework_tests.cpp | 10 +--------- src/tests/master_validation_tests.cpp | 2 +- 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/master/framework.cpp b/src/master/framework.cpp index e69a7c26d15..9f0676fb92f 100644 --- a/src/master/framework.cpp +++ b/src/master/framework.cpp @@ -507,10 +507,13 @@ void Framework::update(const FrameworkInfo& newInfo) // TODO(asekretenko): Make it possible to update 'user' // and 'checkpoint' as per design doc in MESOS-703. CHECK_EQ(info.principal(), newInfo.principal()); - CHECK_EQ(info.user(), newInfo.user()); CHECK_EQ(info.checkpoint(), newInfo.checkpoint()); + + // Preserve immutable field 'user' + std::string user = info.user(); info.CopyFrom(newInfo); + *info.mutable_user() = user; // Save the old list of roles for later. std::set oldRoles = roles; diff --git a/src/tests/master/update_framework_tests.cpp b/src/tests/master/update_framework_tests.cpp index 514647dd2fb..63cd74dd35a 100644 --- a/src/tests/master/update_framework_tests.cpp +++ b/src/tests/master/update_framework_tests.cpp @@ -237,9 +237,6 @@ TEST_F(UpdateFrameworkTest, UserChangeFails) Future result = callUpdateFramework(&mesos, update); AWAIT_READY(result); - EXPECT_EQ(result->status_code(), 400u); - EXPECT_TRUE(strings::contains( - result->error(), "Updating 'FrameworkInfo.user' is unsupported")); // Check that no partial update occurred. Future frameworks = @@ -247,12 +244,7 @@ TEST_F(UpdateFrameworkTest, UserChangeFails) AWAIT_READY(frameworks); ASSERT_EQ(frameworks->frameworks_size(), 1); - FrameworkInfo expected = DEFAULT_FRAMEWORK_INFO; - *expected.mutable_id() = subscribed->framework_id(); - EXPECT_NONE(diff(frameworks->frameworks(0).framework_info(), expected)); - - // Sanity check for diff() - EXPECT_SOME(diff(update, expected)); + ASSERT_NE(frameworks->frameworks(0).framework_info().user(), update.user()); } diff --git a/src/tests/master_validation_tests.cpp b/src/tests/master_validation_tests.cpp index 90b844791ee..8c9a958321c 100644 --- a/src/tests/master_validation_tests.cpp +++ b/src/tests/master_validation_tests.cpp @@ -4786,7 +4786,7 @@ TEST_F(FrameworkInfoValidationTest, ValidateUpdate) FrameworkInfo frameworkInfo = DEFAULT_FRAMEWORK_INFO; *frameworkInfo.mutable_user() += "_foo"; - EXPECT_SOME(framework::validateUpdate( + EXPECT_NONE(framework::validateUpdate( DEFAULT_FRAMEWORK_INFO, frameworkInfo)); }