HDFS-12460. Make addErasureCodingPolicy an idempotent operation. Contributed by Sammi Chen
This commit is contained in:
parent
e81596d06d
commit
0f9af246e8
@ -242,14 +242,15 @@ public synchronized ErasureCodingPolicy addPolicy(
|
||||
policy.getSchema(), policy.getCellSize());
|
||||
for (ErasureCodingPolicy p : getPolicies()) {
|
||||
if (p.getName().equals(assignedNewName)) {
|
||||
throw new HadoopIllegalArgumentException("The policy name " +
|
||||
assignedNewName + " already exists");
|
||||
LOG.info("The policy name " + assignedNewName + " already exists");
|
||||
return p;
|
||||
}
|
||||
if (p.getSchema().equals(policy.getSchema()) &&
|
||||
p.getCellSize() == policy.getCellSize()) {
|
||||
throw new HadoopIllegalArgumentException("A policy with same schema "
|
||||
LOG.info("A policy with same schema "
|
||||
+ policy.getSchema().toString() + " and cell size "
|
||||
+ p.getCellSize() + " already exists");
|
||||
return p;
|
||||
}
|
||||
}
|
||||
policy.setName(assignedNewName);
|
||||
|
@ -718,7 +718,7 @@ public void testAddErasureCodingPolicies() throws Exception {
|
||||
policyArray = new ErasureCodingPolicy[]{policy0};
|
||||
responses = fs.addErasureCodingPolicies(policyArray);
|
||||
assertEquals(1, responses.length);
|
||||
assertFalse(responses[0].isSucceed());
|
||||
assertTrue(responses[0].isSucceed());
|
||||
|
||||
// Test add policy successfully
|
||||
newPolicy =
|
||||
|
@ -436,7 +436,7 @@ public void testRetryCacheRebuild() throws Exception {
|
||||
|
||||
LightWeightCache<CacheEntry, CacheEntry> cacheSet =
|
||||
(LightWeightCache<CacheEntry, CacheEntry>) namesystem.getRetryCache().getCacheSet();
|
||||
assertEquals("Retry cache size is wrong", 26, cacheSet.size());
|
||||
assertEquals("Retry cache size is wrong", 34, cacheSet.size());
|
||||
|
||||
Map<CacheEntry, CacheEntry> oldEntries =
|
||||
new HashMap<CacheEntry, CacheEntry>();
|
||||
@ -455,7 +455,7 @@ public void testRetryCacheRebuild() throws Exception {
|
||||
assertTrue(namesystem.hasRetryCache());
|
||||
cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) namesystem
|
||||
.getRetryCache().getCacheSet();
|
||||
assertEquals("Retry cache size is wrong", 26, cacheSet.size());
|
||||
assertEquals("Retry cache size is wrong", 34, cacheSet.size());
|
||||
iter = cacheSet.iterator();
|
||||
while (iter.hasNext()) {
|
||||
CacheEntry entry = iter.next();
|
||||
|
@ -166,7 +166,7 @@ public void testRetryCacheOnStandbyNN() throws Exception {
|
||||
FSNamesystem fsn0 = cluster.getNamesystem(0);
|
||||
LightWeightCache<CacheEntry, CacheEntry> cacheSet =
|
||||
(LightWeightCache<CacheEntry, CacheEntry>) fsn0.getRetryCache().getCacheSet();
|
||||
assertEquals("Retry cache size is wrong", 26, cacheSet.size());
|
||||
assertEquals("Retry cache size is wrong", 34, cacheSet.size());
|
||||
|
||||
Map<CacheEntry, CacheEntry> oldEntries =
|
||||
new HashMap<CacheEntry, CacheEntry>();
|
||||
@ -187,7 +187,7 @@ public void testRetryCacheOnStandbyNN() throws Exception {
|
||||
FSNamesystem fsn1 = cluster.getNamesystem(1);
|
||||
cacheSet = (LightWeightCache<CacheEntry, CacheEntry>) fsn1
|
||||
.getRetryCache().getCacheSet();
|
||||
assertEquals("Retry cache size is wrong", 26, cacheSet.size());
|
||||
assertEquals("Retry cache size is wrong", 34, cacheSet.size());
|
||||
iter = cacheSet.iterator();
|
||||
while (iter.hasNext()) {
|
||||
CacheEntry entry = iter.next();
|
||||
|
Loading…
Reference in New Issue
Block a user