| 192 | |
| 193 | |
| 194 | TEST_F(UpdateFrameworkTest, UserChangeFails) |
| 195 | { |
| 196 | Try<Owned<cluster::Master>> master = StartMaster(CreateMasterFlags()); |
| 197 | ASSERT_SOME(master); |
| 198 | |
| 199 | auto scheduler = std::make_shared<MockHTTPScheduler>(); |
| 200 | |
| 201 | Future<Nothing> connected; |
| 202 | EXPECT_CALL(*scheduler, connected(_)) |
| 203 | .WillOnce(SendSubscribe(DEFAULT_FRAMEWORK_INFO)); |
| 204 | |
| 205 | EXPECT_CALL(*scheduler, heartbeat(_)) |
| 206 | .WillRepeatedly(Return()); // Ignore heartbeats. |
| 207 | |
| 208 | Future<Event::Subscribed> subscribed; |
| 209 | |
| 210 | EXPECT_CALL(*scheduler, subscribed(_, _)) |
| 211 | .WillOnce(FutureArg<1>(&subscribed)); |
| 212 | |
| 213 | TestMesos mesos(master->get()->pid, ContentType::PROTOBUF, scheduler); |
| 214 | |
| 215 | AWAIT_READY(subscribed); |
| 216 | |
| 217 | FrameworkInfo update = changeAllMutableFields(DEFAULT_FRAMEWORK_INFO); |
| 218 | *update.mutable_id() = subscribed->framework_id(); |
| 219 | *update.mutable_user() += "_foo"; |
| 220 | |
| 221 | Future<APIResult> result = callUpdateFramework(&mesos, update); |
| 222 | |
| 223 | AWAIT_READY(result); |
| 224 | EXPECT_EQ(result->status_code(), 400u); |
| 225 | EXPECT_TRUE(strings::contains( |
| 226 | result->error(), "Updating 'FrameworkInfo.user' is unsupported")); |
| 227 | |
| 228 | // Check that no partial update occurred. |
| 229 | Future<v1::master::Response::GetFrameworks> frameworks = |
| 230 | getFrameworks(master->get()->pid); |
| 231 | AWAIT_READY(frameworks); |
| 232 | ASSERT_EQ(frameworks->frameworks_size(), 1); |
| 233 | |
| 234 | FrameworkInfo expected = DEFAULT_FRAMEWORK_INFO; |
| 235 | *expected.mutable_id() = subscribed->framework_id(); |
| 236 | EXPECT_NONE(::mesos::v1::typeutils::diff( |
| 237 | frameworks->frameworks(0).framework_info(), expected)); |
| 238 | |
| 239 | // Sanity check for diff() |
| 240 | EXPECT_SOME(::mesos::v1::typeutils::diff(update, expected)); |
| 241 | } |
| 242 | |
| 243 | |
| 244 | TEST_F(UpdateFrameworkTest, PrincipalChangeFails) |
nothing calls this directly
no test coverage detected