This test verifies the validation for the agent flag `--default_container_dns`.
| 10614 | // This test verifies the validation for the |
| 10615 | // agent flag `--default_container_dns`. |
| 10616 | TEST_P(DefaultContainerDNSFlagTest, ValidateFlag) |
| 10617 | { |
| 10618 | const int argc = 4; |
| 10619 | const char* argv[argc] = { |
| 10620 | "/path/to/program", |
| 10621 | "--master=127.0.0.1:5050", |
| 10622 | "--work_dir=/tmp" |
| 10623 | }; |
| 10624 | |
| 10625 | string containerizer = GetParam(); |
| 10626 | |
| 10627 | // Verifies the unknown network mode is not supported. |
| 10628 | // |
| 10629 | // TODO(qianzhang): Change the value of the `network_mode` |
| 10630 | // to an non-existent enum value once MESOS-7828 is resolved. |
| 10631 | string defaultContainerDNSInfo = |
| 10632 | "--default_container_dns={" |
| 10633 | " \"" + containerizer + "\": [\n" |
| 10634 | " {\n" |
| 10635 | " \"network_mode\": \"UNKNOWN\",\n" |
| 10636 | " \"dns\": {\n" |
| 10637 | " \"nameservers\": [ \"8.8.8.8\" ]\n" |
| 10638 | " }\n" |
| 10639 | " }\n" |
| 10640 | " ]\n" |
| 10641 | "}"; |
| 10642 | |
| 10643 | argv[3] = defaultContainerDNSInfo.c_str(); |
| 10644 | |
| 10645 | { |
| 10646 | slave::Flags flags; |
| 10647 | Try<flags::Warnings> load = flags.load(None(), argc, argv); |
| 10648 | EXPECT_ERROR(load); |
| 10649 | } |
| 10650 | |
| 10651 | // Verifies the host network mode is not supported. |
| 10652 | defaultContainerDNSInfo = |
| 10653 | "--default_container_dns={" |
| 10654 | " \"" + containerizer + "\": [\n" |
| 10655 | " {\n" |
| 10656 | " \"network_mode\": \"HOST\",\n" |
| 10657 | " \"dns\": {\n" |
| 10658 | " \"nameservers\": [ \"8.8.8.8\" ]\n" |
| 10659 | " }\n" |
| 10660 | " }\n" |
| 10661 | " ]\n" |
| 10662 | "}"; |
| 10663 | |
| 10664 | argv[3] = defaultContainerDNSInfo.c_str(); |
| 10665 | |
| 10666 | { |
| 10667 | slave::Flags flags; |
| 10668 | Try<flags::Warnings> load = flags.load(None(), argc, argv); |
| 10669 | EXPECT_ERROR(load); |
| 10670 | } |
| 10671 | |
| 10672 | string network_mode = (containerizer == "mesos" ? "CNI" : "USER"); |
| 10673 |