| 177 | |
| 178 | |
| 179 | TEST_P(MasterAPITest, GetAgents) |
| 180 | { |
| 181 | Clock::pause(); |
| 182 | |
| 183 | master::Flags masterFlags = CreateMasterFlags(); |
| 184 | masterFlags.domain = createDomainInfo("region-abc", "zone-123"); |
| 185 | |
| 186 | Try<Owned<cluster::Master>> master = this->StartMaster(masterFlags); |
| 187 | ASSERT_SOME(master); |
| 188 | |
| 189 | Owned<MasterDetector> detector = master.get()->createDetector(); |
| 190 | |
| 191 | // Start one agent. |
| 192 | Future<UpdateSlaveMessage> updateAgentMessage = |
| 193 | FUTURE_PROTOBUF(UpdateSlaveMessage(), _, _); |
| 194 | |
| 195 | slave::Flags slaveFlags = CreateSlaveFlags(); |
| 196 | slaveFlags.hostname = "host"; |
| 197 | slaveFlags.domain = createDomainInfo("region-xyz", "zone-456"); |
| 198 | |
| 199 | Try<Owned<cluster::Slave>> agent = StartSlave(detector.get(), slaveFlags); |
| 200 | ASSERT_SOME(agent); |
| 201 | |
| 202 | Clock::advance(slaveFlags.registration_backoff_factor); |
| 203 | Clock::settle(); |
| 204 | AWAIT_READY(updateAgentMessage); |
| 205 | |
| 206 | v1::master::Call v1Call; |
| 207 | v1Call.set_type(v1::master::Call::GET_AGENTS); |
| 208 | |
| 209 | ContentType contentType = GetParam(); |
| 210 | |
| 211 | Future<v1::master::Response> v1Response = |
| 212 | post(master.get()->pid, v1Call, contentType); |
| 213 | |
| 214 | AWAIT_READY(v1Response); |
| 215 | ASSERT_TRUE(v1Response->IsInitialized()); |
| 216 | ASSERT_EQ(v1::master::Response::GET_AGENTS, v1Response->type()); |
| 217 | ASSERT_EQ(v1Response->get_agents().agents_size(), 1); |
| 218 | |
| 219 | const v1::master::Response::GetAgents::Agent& v1Agent = |
| 220 | v1Response->get_agents().agents(0); |
| 221 | |
| 222 | EXPECT_EQ("host", v1Agent.agent_info().hostname()); |
| 223 | EXPECT_EQ(evolve(slaveFlags.domain.get()), v1Agent.agent_info().domain()); |
| 224 | EXPECT_EQ(agent.get()->pid, v1Agent.pid()); |
| 225 | EXPECT_TRUE(v1Agent.active()); |
| 226 | EXPECT_EQ(MESOS_VERSION, v1Agent.version()); |
| 227 | EXPECT_EQ(4, v1Agent.total_resources_size()); |
| 228 | EXPECT_TRUE(v1Agent.resource_providers().empty()); |
| 229 | |
| 230 | // Start a resource provider. |
| 231 | mesos::v1::ResourceProviderInfo info; |
| 232 | info.set_type("org.apache.mesos.rp.test"); |
| 233 | info.set_name("test"); |
| 234 | |
| 235 | v1::Resource resource = v1::createDiskResource( |
| 236 | "200", "*", None(), None(), v1::createDiskSourceRaw()); |
nothing calls this directly
no test coverage detected