@Test
    void testAdmin20() {
        VespaModel vespaModel = getVespaModel(TESTDIR + "adminconfig20");

        // Verify that the admin plugin has been loaded (always loads 'routing' and 'logs')
        assertEquals(3, vespaModel.configModelRepo().asMap().size());

        ApplicationConfigProducerRoot root = vespaModel.getVespa();
        assertNotNull(root);

        // Verify configIds
        Set<String> configIds = vespaModel.getConfigIds();
        String localhost = HostName.getLocalhost();
        String localhostConfigId = "hosts/" + localhost;
        assertTrue(configIds.contains(localhostConfigId));
        assertTrue(configIds.contains("admin/logserver"));
        assertTrue(configIds.contains("admin/configservers/configserver.0"));
        assertTrue(configIds.contains("admin/slobrok.0"));
        assertTrue(configIds.contains("admin/slobrok.1"));
        assertFalse(configIds.contains("admin/slobrok.2"));
        assertTrue(configIds.contains("admin"));

        // Confirm 2 slobroks in config
        SlobroksConfig.Builder sb = new SlobroksConfig.Builder();
        vespaModel.getConfig(sb, "admin/slobrok.0");
        SlobroksConfig sc = new SlobroksConfig(sb);
        assertEquals(sc.slobrok().size(), 2);
        boolean localHostOK = false;
        for (Slobrok s : sc.slobrok()) {
            if (s.connectionspec().matches(".*" + localhost + ".*")) localHostOK = true;
        }
        assertTrue(localHostOK);

        StateserverConfig.Builder ssb = new StateserverConfig.Builder();
        vespaModel.getConfig(ssb, "admin/slobrok.0");
        assertEquals(19103, new StateserverConfig(ssb).httpport());

        vespaModel.getConfig(ssb, "admin/slobrok.1");
        assertEquals(19105, new StateserverConfig(ssb).httpport());

        LogdConfig.Builder lb = new LogdConfig.Builder();
        vespaModel.getConfig(lb, "admin/slobrok.0");
        LogdConfig lc = new LogdConfig(lb);
        assertEquals(lc.logserver().host(), localhost);

        Service logserver = vespaModel.getService("admin/logserver").get();
        assertEquals(logserver.getRelativePort(0), lc.logserver().rpcport());

        // Verify services in the sentinel config
        SentinelConfig.Builder b = new SentinelConfig.Builder();
        vespaModel.getConfig(b, localhostConfigId);
        SentinelConfig sentinelConfig = new SentinelConfig(b);
        assertEquals(6, sentinelConfig.service().size());
        assertEquals("logserver", sentinelConfig.service(0).name());
        assertEquals("logserver-container", sentinelConfig.service(1).name());
        assertEquals("slobrok", sentinelConfig.service(2).name());
        assertEquals("slobrok2", sentinelConfig.service(3).name());
        assertEquals(METRICS_PROXY_CONTAINER.serviceName, sentinelConfig.service(4).name());
        assertEquals("logd", sentinelConfig.service(5).name());
    }
Test that version 2.0 of adminconfig works as expected.
config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java