当前位置: 首页>>代码示例>>Java>>正文


Java Groups.cacheGroupsAdd方法代码示例

本文整理汇总了Java中org.apache.hadoop.security.Groups.cacheGroupsAdd方法的典型用法代码示例。如果您正苦于以下问题:Java Groups.cacheGroupsAdd方法的具体用法?Java Groups.cacheGroupsAdd怎么用?Java Groups.cacheGroupsAdd使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.hadoop.security.Groups的用法示例。


在下文中一共展示了Groups.cacheGroupsAdd方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testCachePreventsImplRequest

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testCachePreventsImplRequest() throws Exception {
  // Disable negative cache.
  conf.setLong(
    CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_NEGATIVE_CACHE_SECS, 0);
  Groups groups = new Groups(conf);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();

  assertEquals(0, FakeGroupMapping.getRequestCount());

  // First call hits the wire
  assertTrue(groups.getGroups("me").size() == 2);
  assertEquals(1, FakeGroupMapping.getRequestCount());

  // Second count hits cache
  assertTrue(groups.getGroups("me").size() == 2);
  assertEquals(1, FakeGroupMapping.getRequestCount());
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:21,代码来源:TestGroupsCaching.java

示例2: testCacheEntriesExpire

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testCacheEntriesExpire() throws Exception {
  conf.setLong(
    CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_SECS, 1);
  FakeTimer timer = new FakeTimer();
  final Groups groups = new Groups(conf, timer);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();

  // We make an entry
  groups.getGroups("me");
  int startingRequestCount = FakeGroupMapping.getRequestCount();

  timer.advance(20 * 1000);

  // Cache entry has expired so it results in a new fetch
  groups.getGroups("me");
  assertEquals(startingRequestCount + 1, FakeGroupMapping.getRequestCount());
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:21,代码来源:TestGroupsCaching.java

示例3: testExceptionCallingLoadWithoutBackgroundRefreshReturnsOldValue

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testExceptionCallingLoadWithoutBackgroundRefreshReturnsOldValue()
    throws Exception {
  conf.setLong(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_SECS, 1);
  conf.setBoolean(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD,
      false);
  FakeTimer timer = new FakeTimer();
  final Groups groups = new Groups(conf, timer);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();

  // First populate the cash
  assertEquals(groups.getGroups("me").size(), 2);

  // Advance the timer so a refresh is required
  timer.advance(2 * 1000);

  // This call should throw an exception
  FakeGroupMapping.setThrowException(true);
  assertEquals(groups.getGroups("me").size(), 2);
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:25,代码来源:TestGroupsCaching.java

示例4: testGroupsCaching

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testGroupsCaching() throws Exception {
  // Disable negative cache.
  conf.setLong(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_NEGATIVE_CACHE_SECS, 0);
  Groups groups = new Groups(conf);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();
  FakeGroupMapping.addToBlackList("user1");

  // regular entry
  assertTrue(groups.getGroups("me").size() == 2);

  // this must be cached. blacklisting should have no effect.
  FakeGroupMapping.addToBlackList("me");
  assertTrue(groups.getGroups("me").size() == 2);

  // ask for a negative entry
  try {
    LOG.error("We are not supposed to get here." + groups.getGroups("user1").toString());
    fail();
  } catch (IOException ioe) {
    if(!ioe.getMessage().startsWith("No groups found")) {
      LOG.error("Got unexpected exception: " + ioe.getMessage());
      fail();
    }
  }

  // this shouldn't be cached. remove from the black list and retry.
  FakeGroupMapping.clearBlackList();
  assertTrue(groups.getGroups("user1").size() == 2);
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:34,代码来源:TestGroupsCaching.java

示例5: TestGroupsCaching

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void TestGroupsCaching() throws Exception {
  Groups groups = new Groups(conf);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();
  FakeGroupMapping.addToBlackList("user1");

  // regular entry
  assertTrue(groups.getGroups("me").size() == 2);

  // this must be cached. blacklisting should have no effect.
  FakeGroupMapping.addToBlackList("me");
  assertTrue(groups.getGroups("me").size() == 2);

  // ask for a negative entry
  try {
    LOG.error("We are not supposed to get here." + groups.getGroups("user1").toString());
    fail();
  } catch (IOException ioe) {
    if(!ioe.getMessage().startsWith("No groups found")) {
      LOG.error("Got unexpected exception: " + ioe.getMessage());
      fail();
    }
  }

  // this shouldn't be cached. remove from the black list and retry.
  FakeGroupMapping.clearBlackList();
  assertTrue(groups.getGroups("user1").size() == 2);
}
 
开发者ID:ict-carch,项目名称:hadoop-plus,代码行数:31,代码来源:TestGroupsCaching.java

示例6: testThreadNotBlockedWhenExpiredEntryExistsWithBackgroundRefresh

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testThreadNotBlockedWhenExpiredEntryExistsWithBackgroundRefresh()
    throws Exception {
  conf.setLong(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_SECS, 1);
  conf.setBoolean(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD,
      true);
  FakeTimer timer = new FakeTimer();
  final Groups groups = new Groups(conf, timer);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();

  // We make an initial request to populate the cache
  groups.getGroups("me");
  // Further lookups will have a delay
  FakeGroupMapping.setGetGroupsDelayMs(100);
  // add another groups
  groups.cacheGroupsAdd(Arrays.asList("grp3"));
  int startingRequestCount = FakeGroupMapping.getRequestCount();

  // Then expire that entry
  timer.advance(4 * 1000);

  // Now get the cache entry - it should return immediately
  // with the old value and the cache will not have completed
  // a request to getGroups yet.
  assertEquals(groups.getGroups("me").size(), 2);
  assertEquals(startingRequestCount, FakeGroupMapping.getRequestCount());

  // Now sleep for over the delay time and the request count should
  // have completed
  Thread.sleep(110);
  assertEquals(startingRequestCount + 1, FakeGroupMapping.getRequestCount());
  // Another call to get groups should give 3 groups instead of 2
  assertEquals(groups.getGroups("me").size(), 3);
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:39,代码来源:TestGroupsCaching.java

示例7: testThreadBlockedWhenExpiredEntryExistsWithoutBackgroundRefresh

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testThreadBlockedWhenExpiredEntryExistsWithoutBackgroundRefresh()
    throws Exception {
  conf.setLong(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_SECS, 1);
  conf.setBoolean(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD,
      false);
  FakeTimer timer = new FakeTimer();
  final Groups groups = new Groups(conf, timer);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();

  // We make an initial request to populate the cache
  groups.getGroups("me");
  // Further lookups will have a delay
  FakeGroupMapping.setGetGroupsDelayMs(100);
  // add another group
  groups.cacheGroupsAdd(Arrays.asList("grp3"));
  int startingRequestCount = FakeGroupMapping.getRequestCount();

  // Then expire that entry
  timer.advance(4 * 1000);

  // Now get the cache entry - it should block and return the new
  // 3 group value
  assertEquals(groups.getGroups("me").size(), 3);
  assertEquals(startingRequestCount + 1, FakeGroupMapping.getRequestCount());
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:31,代码来源:TestGroupsCaching.java

示例8: TestGroupsCachingDefault

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void TestGroupsCachingDefault() throws Exception {
  Groups groups = new Groups(conf);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();
  FakeGroupMapping.addToBlackList("user1");

  // regular entry
  assertTrue(groups.getGroups("me").size() == 2);

  // this must be cached. blacklisting should have no effect.
  FakeGroupMapping.addToBlackList("me");
  assertTrue(groups.getGroups("me").size() == 2);

  // ask for a negative entry
  try {
    LOG.error("We are not supposed to get here." + groups.getGroups("user1").toString());
    fail();
  } catch (IOException ioe) {
    if(!ioe.getMessage().startsWith("No groups found")) {
      LOG.error("Got unexpected exception: " + ioe.getMessage());
      fail();
    }
  }

  // this shouldn't be cached. remove from the black list and retry.
  FakeGroupMapping.clearBlackList();
  assertTrue(groups.getGroups("user1").size() == 2);
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre,代码行数:31,代码来源:TestGroupsCaching.java

示例9: buildACL

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
private void buildACL(String aclString) {
  users = new TreeSet<String>();
  groups = new TreeSet<String>();
  if (aclString.contains(WILDCARD_ACL_VALUE) && 
      aclString.trim().equals(WILDCARD_ACL_VALUE)) {
    allAllowed = true;
  } else {
    allAllowed = false;
    String[] userGroupStrings = aclString.split(" ", 2);
    Configuration conf = new Configuration();
    Groups groupsMapping = Groups.getUserToGroupsMappingService(conf);

    if (userGroupStrings.length >= 1) {
      List<String> usersList = new LinkedList<String>(
        Arrays.asList(userGroupStrings[0].split(",")));
      cleanupList(usersList);
      addToSet(users, usersList);
    }
    
    if (userGroupStrings.length == 2) {
      List<String> groupsList = new LinkedList<String>(
        Arrays.asList(userGroupStrings[1].split(",")));
      cleanupList(groupsList);
      addToSet(groups, groupsList);
      groupsMapping.cacheGroupsAdd(groupsList);
    }
  }
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre,代码行数:29,代码来源:AccessControlList.java

示例10: testGroupsCaching

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testGroupsCaching() throws Exception {
  Groups groups = new Groups(conf);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();
  FakeGroupMapping.addToBlackList("user1");

  // regular entry
  assertTrue(groups.getGroups("me").size() == 2);

  // this must be cached. blacklisting should have no effect.
  FakeGroupMapping.addToBlackList("me");
  assertTrue(groups.getGroups("me").size() == 2);

  // ask for a negative entry
  try {
    LOG.error("We are not supposed to get here." + groups.getGroups("user1").toString());
    fail();
  } catch (IOException ioe) {
    if(!ioe.getMessage().startsWith("No groups found")) {
      LOG.error("Got unexpected exception: " + ioe.getMessage());
      fail();
    }
  }

  // this shouldn't be cached. remove from the black list and retry.
  FakeGroupMapping.clearBlackList();
  assertTrue(groups.getGroups("user1").size() == 2);
}
 
开发者ID:Seagate,项目名称:hadoop-on-lustre2,代码行数:31,代码来源:TestGroupsCaching.java

示例11: testExceptionOnBackgroundRefreshHandled

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testExceptionOnBackgroundRefreshHandled() throws Exception {
  conf.setLong(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_SECS, 1);
  conf.setBoolean(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD,
      true);
  FakeTimer timer = new FakeTimer();
  final Groups groups = new Groups(conf, timer);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();

  // We make an initial request to populate the cache
  groups.getGroups("me");

  // add another group
  groups.cacheGroupsAdd(Arrays.asList("grp3"));
  int startingRequestCount = FakeGroupMapping.getRequestCount();
  // Arrange for an exception to occur only on the
  // second call
  FakeGroupMapping.setThrowException(true);

  // Then expire that entry
  timer.advance(4 * 1000);

  // Now get the cache entry - it should return immediately
  // with the old value and the cache will not have completed
  // a request to getGroups yet.
  assertEquals(groups.getGroups("me").size(), 2);
  assertEquals(startingRequestCount, FakeGroupMapping.getRequestCount());

  // Now sleep for a short time and re-check the request count. It should have
  // increased, but the exception means the cache will not have updated
  Thread.sleep(50);
  FakeGroupMapping.setThrowException(false);
  assertEquals(startingRequestCount + 1, FakeGroupMapping.getRequestCount());
  assertEquals(groups.getGroups("me").size(), 2);

  // Now sleep another short time - the 3rd call to getGroups above
  // will have kicked off another refresh that updates the cache
  Thread.sleep(50);
  assertEquals(startingRequestCount + 2, FakeGroupMapping.getRequestCount());
  assertEquals(groups.getGroups("me").size(), 3);
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:46,代码来源:TestGroupsCaching.java

示例12: testEntriesExpireIfBackgroundRefreshFails

import org.apache.hadoop.security.Groups; //导入方法依赖的package包/类
@Test
public void testEntriesExpireIfBackgroundRefreshFails() throws Exception {
  conf.setLong(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_SECS, 1);
  conf.setBoolean(
      CommonConfigurationKeys.HADOOP_SECURITY_GROUPS_CACHE_BACKGROUND_RELOAD,
      true);
  FakeTimer timer = new FakeTimer();
  final Groups groups = new Groups(conf, timer);
  groups.cacheGroupsAdd(Arrays.asList(myGroups));
  groups.refresh();
  FakeGroupMapping.clearBlackList();

  // We make an initial request to populate the cache
  groups.getGroups("me");

  // Now make all calls to the FakeGroupMapper throw exceptions
  FakeGroupMapping.setThrowException(true);

  // The cache entry expires for refresh after 1 second
  // It expires for eviction after 1 * 10 seconds after it was last written
  // So if we call getGroups repeatedly over 9 seconds, 9 refreshes should
  // be triggered which will fail to update the key, but the keys old value
  // will be retrievable until it is evicted after about 10 seconds.
  for(int i=0; i<9; i++) {
    assertEquals(groups.getGroups("me").size(), 2);
    timer.advance(1 * 1000);
  }
  // Wait until the 11th second. The call to getGroups should throw
  // an exception as the key will have been evicted and FakeGroupMapping
  // will throw IO Exception when it is asked for new groups. In this case
  // load must be called synchronously as there is no key present
  timer.advance(2 * 1000);
  try {
    groups.getGroups("me");
    fail("Should have thrown an exception here");
  } catch (Exception e) {
    // pass
  }

  // Finally check groups are retrieve again after FakeGroupMapping
  // stops throw exceptions
  FakeGroupMapping.setThrowException(false);
  assertEquals(groups.getGroups("me").size(), 2);
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:46,代码来源:TestGroupsCaching.java


注:本文中的org.apache.hadoop.security.Groups.cacheGroupsAdd方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。