HADOOP-10611. KMS, keyVersion name should not be assumed to be keyName@versionNumber. (tucu)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1598775 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Alejandro Abdelnur 2014-05-30 23:19:11 +00:00
parent 05d8586bc0
commit 12cf17555f
4 changed files with 9 additions and 11 deletions

View File

@ -336,6 +336,9 @@ Trunk (Unreleased)
HADOOP-10645. TestKMS fails because race condition writing acl files. (tucu) HADOOP-10645. TestKMS fails because race condition writing acl files. (tucu)
HADOOP-10611. KMS, keyVersion name should not be assumed to be
keyName@versionNumber. (tucu)
OPTIMIZATIONS OPTIMIZATIONS
HADOOP-7761. Improve the performance of raw comparisons. (todd) HADOOP-7761. Improve the performance of raw comparisons. (todd)

View File

@ -517,8 +517,4 @@ public void flush() throws IOException {
// the server should not keep in memory state on behalf of clients either. // the server should not keep in memory state on behalf of clients either.
} }
@VisibleForTesting
public static String buildVersionName(String name, int version) {
return KeyProvider.buildVersionName(name, version);
}
} }

View File

@ -135,14 +135,11 @@ public KeyVersion createKey(String name,
@Override @Override
public void deleteKey(String name) throws IOException { public void deleteKey(String name) throws IOException {
Metadata metadata = provider.getMetadata(name);
List<String> versions = new ArrayList<String>(metadata.getVersions());
for (int i = 0; i < metadata.getVersions(); i++) {
versions.add(KeyProvider.buildVersionName(name, i));
}
provider.deleteKey(name); provider.deleteKey(name);
currentKeyCache.invalidate(name); currentKeyCache.invalidate(name);
keyVersionCache.invalidateAll(versions); // invalidating all key versions as we don't know which ones belonged to the
// deleted key
keyVersionCache.invalidateAll();
} }
@Override @Override

View File

@ -577,7 +577,9 @@ public Void run() throws Exception {
Assert.fail(ex.toString()); Assert.fail(ex.toString());
} }
try { try {
kp.getKeyVersion(KMSClientProvider.buildVersionName("k", 0)); // we are using JavaKeyStoreProvider for testing, so we know how
// the keyversion is created.
kp.getKeyVersion("k@0");
Assert.fail(); Assert.fail();
} catch (AuthorizationException ex) { } catch (AuthorizationException ex) {
//NOP //NOP