public List<ACL> getDefaultZkAcls() { return daemonType.getDefaultZkAcls(conf); }
public static CuratorFramework createZKClient(Map<String, Object> conf, DaemonType type) { @SuppressWarnings("unchecked") List<String> zkServers = (List<String>) conf.get(Config.STORM_ZOOKEEPER_SERVERS); Object port = conf.get(Config.STORM_ZOOKEEPER_PORT); ZookeeperAuthInfo zkAuthInfo = new ZookeeperAuthInfo(conf); CuratorFramework zkClient = CuratorUtils.newCurator(conf, zkServers, port, (String) conf.get(Config.STORM_ZOOKEEPER_ROOT), zkAuthInfo, type.getDefaultZkAcls(conf)); zkClient.start(); return zkClient; }
@Test public void getDefaultZkAclsSecureServerConf() { Map<String, Object> conf = ConfigUtils.readStormConfig(); conf.put(Config.STORM_ZOOKEEPER_AUTH_SCHEME, "digest"); conf.put(Config.STORM_ZOOKEEPER_AUTH_PAYLOAD, "storm:thisisapoorpassword"); conf.put(Config.STORM_PRINCIPAL_TO_LOCAL_PLUGIN, DefaultPrincipalToLocal.class.getName()); conf.put(Config.NIMBUS_THRIFT_PORT, 6666); assertNull(DaemonType.UNKNOWN.getDefaultZkAcls(conf)); assertNull(DaemonType.PACEMAKER.getDefaultZkAcls(conf)); assertEquals(DaemonType.NIMBUS_SUPERVISOR_ZK_ACLS, DaemonType.SUPERVISOR.getDefaultZkAcls(conf)); assertEquals(DaemonType.NIMBUS_SUPERVISOR_ZK_ACLS, DaemonType.NIMBUS.getDefaultZkAcls(conf)); assertNull(DaemonType.WORKER.getDefaultZkAcls(conf)); }
@Test public void getDefaultZkAclsDefaultConf() { Map<String, Object> conf = ConfigUtils.readStormConfig(); assertNull(DaemonType.UNKNOWN.getDefaultZkAcls(conf)); assertNull(DaemonType.PACEMAKER.getDefaultZkAcls(conf)); assertNull(DaemonType.SUPERVISOR.getDefaultZkAcls(conf)); assertNull(DaemonType.NIMBUS.getDefaultZkAcls(conf)); assertNull(DaemonType.WORKER.getDefaultZkAcls(conf)); }
protected TransactionalState(Map<String, Object> conf, String id, String subroot) { try { conf = new HashMap<>(conf); String transactionalRoot = (String) conf.get(Config.TRANSACTIONAL_ZOOKEEPER_ROOT); String rootDir = transactionalRoot + "/" + id + "/" + subroot; List<String> servers = (List<String>) getWithBackup(conf, Config.TRANSACTIONAL_ZOOKEEPER_SERVERS, Config.STORM_ZOOKEEPER_SERVERS); Object port = getWithBackup(conf, Config.TRANSACTIONAL_ZOOKEEPER_PORT, Config.STORM_ZOOKEEPER_PORT); ZookeeperAuthInfo auth = new ZookeeperAuthInfo(conf); CuratorFramework initter = CuratorUtils.newCuratorStarted(conf, servers, port, auth, DaemonType.WORKER.getDefaultZkAcls(conf)); _zkAcls = Utils.getWorkerACL(conf); try { TransactionalState.createNode(initter, transactionalRoot, null, null, null); } catch (KeeperException.NodeExistsException e) { } try { TransactionalState.createNode(initter, rootDir, null, _zkAcls, null); } catch (KeeperException.NodeExistsException e) { } initter.close(); _curator = CuratorUtils.newCuratorStarted(conf, servers, port, rootDir, auth, DaemonType.WORKER.getDefaultZkAcls(conf)); } catch (Exception e) { throw new RuntimeException(e); } }
@Test public void getDefaultZkAclsSecureWorkerConf() { Map<String, Object> conf = ConfigUtils.readStormConfig(); conf.put(Config.STORM_ZOOKEEPER_TOPOLOGY_AUTH_SCHEME, "digest"); conf.put(Config.STORM_ZOOKEEPER_TOPOLOGY_AUTH_PAYLOAD, "storm:thisisapoorpassword"); conf.put(Config.STORM_ZOOKEEPER_SUPERACL, "sasl:nimbus"); conf.put(Config.STORM_PRINCIPAL_TO_LOCAL_PLUGIN, DefaultPrincipalToLocal.class.getName()); conf.put(Config.NIMBUS_THRIFT_PORT, 6666); assertNull(DaemonType.UNKNOWN.getDefaultZkAcls(conf)); assertNull(DaemonType.PACEMAKER.getDefaultZkAcls(conf)); assertNull(DaemonType.SUPERVISOR.getDefaultZkAcls(conf)); assertNull(DaemonType.NIMBUS.getDefaultZkAcls(conf)); List<ACL> expected = new ArrayList<>(ZooDefs.Ids.CREATOR_ALL_ACL); expected.add(new ACL(ZooDefs.Perms.ALL, new Id("sasl", "nimbus"))); assertEquals(expected, DaemonType.WORKER.getDefaultZkAcls(conf)); } }
public CuratorFramework mkClientImpl(Map<String, Object> conf, List<String> servers, Object port, String root, final WatcherCallBack watcher, Map<String, Object> authConf, DaemonType type) { CuratorFramework fk; if (authConf != null) { fk = CuratorUtils.newCurator(conf, servers, port, root, new ZookeeperAuthInfo(authConf), type.getDefaultZkAcls(conf)); } else { fk = CuratorUtils.newCurator(conf, servers, port, root, null, type.getDefaultZkAcls(conf)); } fk.getCuratorListenable().addListener((unused, e) -> { if (e.getType().equals(CuratorEventType.WATCHED)) { WatchedEvent event = e.getWatchedEvent(); watcher.execute(event.getState(), event.getType(), event.getPath()); } }); LOG.info("Starting ZK Curator"); fk.start(); return fk; } }
@Test public void newCuratorUsesExponentialBackoffTest() throws InterruptedException { final int expectedInterval = 2400; final int expectedRetries = 10; final int expectedCeiling = 3000; Map<String, Object> config = Utils.readDefaultConfig(); config.put(Config.STORM_ZOOKEEPER_RETRY_INTERVAL, expectedInterval); config.put(Config.STORM_ZOOKEEPER_RETRY_TIMES, expectedRetries); config.put(Config.STORM_ZOOKEEPER_RETRY_INTERVAL_CEILING, expectedCeiling); CuratorFramework curator = CuratorUtils.newCurator(config, Arrays.asList("bogus_server"), 42, "", DaemonType.WORKER.getDefaultZkAcls(config)); StormBoundedExponentialBackoffRetry policy = (StormBoundedExponentialBackoffRetry) curator.getZookeeperClient().getRetryPolicy(); Assert.assertEquals(policy.getBaseSleepTimeMs(), expectedInterval); Assert.assertEquals(policy.getN(), expectedRetries); Assert.assertEquals(policy.getSleepTimeMs(10, 0), expectedCeiling); }