MCPcopy Create free account
hub / github.com/apache/mesos / TEST_P

Function TEST_P

src/tests/containerizer/cni_isolator_tests.cpp:1711–1836  ·  view source on GitHub ↗

This test verifies that the default executor sets the correct container IP when the container is launched on a host network or a CNI network. NOTE: To use the default executor, we will need to use the v1 scheduler API.

Source from the content-addressed store, hash-verified

1709// NOTE: To use the default executor, we will need to use the v1
1710// scheduler API.
1711TEST_P(DefaultExecutorCniTest, ROOT_VerifyContainerIP)
1712{
1713 Try<Owned<cluster::Master>> master = StartMaster();
1714 ASSERT_SOME(master);
1715
1716 slave::Flags flags = CreateSlaveFlags();
1717
1718 Option<mesos::v1::NetworkInfo> networkInfo = GetParam().networkInfo;
1719
1720 Owned<MasterDetector> detector = master.get()->createDetector();
1721 Try<Owned<cluster::Slave>> slave = StartSlave(detector.get(), flags);
1722 ASSERT_SOME(slave);
1723
1724 auto scheduler = std::make_shared<v1::MockHTTPScheduler>();
1725
1726 EXPECT_CALL(*scheduler, connected(_))
1727 .WillOnce(v1::scheduler::SendSubscribe(v1::DEFAULT_FRAMEWORK_INFO));
1728
1729 Future<v1::scheduler::Event::Subscribed> subscribed;
1730 EXPECT_CALL(*scheduler, subscribed(_, _))
1731 .WillOnce(FutureArg<1>(&subscribed));
1732
1733 Future<v1::scheduler::Event::Offers> offers;
1734 EXPECT_CALL(*scheduler, offers(_, _))
1735 .WillOnce(FutureArg<1>(&offers))
1736 .WillRepeatedly(Return());
1737
1738 EXPECT_CALL(*scheduler, heartbeat(_))
1739 .WillRepeatedly(Return()); // Ignore heartbeats.
1740
1741 v1::scheduler::TestMesos mesos(
1742 master.get()->pid, ContentType::PROTOBUF, scheduler);
1743
1744 AWAIT_READY(subscribed);
1745 v1::FrameworkID frameworkId(subscribed->framework_id());
1746
1747 v1::ExecutorInfo executorInfo = v1::createExecutorInfo(
1748 "test_default_executor",
1749 None(),
1750 "cpus:0.1;mem:32;disk:32",
1751 v1::ExecutorInfo::DEFAULT);
1752
1753 // Update `executorInfo` with the subscribed `frameworkId`.
1754 executorInfo.mutable_framework_id()->CopyFrom(frameworkId);
1755
1756 mesos::v1::ContainerInfo *container = executorInfo.mutable_container();
1757 container->set_type(mesos::v1::ContainerInfo::MESOS);
1758
1759 if (networkInfo.isSome()) {
1760 container->add_network_infos()->CopyFrom(networkInfo.get());
1761 }
1762
1763 AWAIT_READY(offers);
1764 ASSERT_FALSE(offers->offers().empty());
1765
1766 const v1::Offer& offer = offers->offers(0);
1767 const v1::AgentID& agentId = offer.agent_id();
1768

Callers

nothing calls this directly

Calls 15

createExecutorInfoFunction · 0.85
NoneClass · 0.85
getNonLoopbackIPFunction · 0.85
formatFunction · 0.85
LAUNCH_GROUPFunction · 0.85
createTaskGroupInfoFunction · 0.85
createCallAcceptFunction · 0.85
createVolumeHostPathFunction · 0.85
createDetectorMethod · 0.80
CopyFromMethod · 0.80
prefixMethod · 0.80
sendMethod · 0.65

Tested by

no test coverage detected