HADOOP-14880. [KMS] Document&test missing KMS client side configs. Contributed by Gabor Bota.

(cherry picked from commit 97c70c7ac6)

Conflicts:
	hadoop-common-project/hadoop-kms/src/test/java/org/apache/hadoop/crypto/key/kms/server/TestKMS.java
(cherry picked from commit 21b9e4fb979ecbc8f254b76f6ed86e6ef63d74f3)
This commit is contained in:
Wei-Chiu Chuang 2017-10-19 06:02:13 -07:00
parent f1ff21e00c
commit 3b47f6bdfd
4 changed files with 21 additions and 6 deletions

View File

@ -114,10 +114,6 @@ public class KMSClientProvider extends KeyProvider implements CryptoExtension,
private static final String CONFIG_PREFIX = "hadoop.security.kms.client.";
/* It's possible to specify a timeout, in seconds, in the config file */
public static final String TIMEOUT_ATTR = CONFIG_PREFIX + "timeout";
public static final int DEFAULT_TIMEOUT = 60;
/* Number of times to retry authentication in the event of auth failure
* (normally happens due to stale authToken)
*/
@ -433,7 +429,9 @@ public class KMSClientProvider extends KeyProvider implements CryptoExtension,
throw new IOException(ex);
}
}
int timeout = conf.getInt(TIMEOUT_ATTR, DEFAULT_TIMEOUT);
int timeout = conf.getInt(
CommonConfigurationKeysPublic.KMS_CLIENT_TIMEOUT_SECONDS,
CommonConfigurationKeysPublic.KMS_CLIENT_TIMEOUT_DEFAULT);
authRetry = conf.getInt(AUTH_RETRY, DEFAULT_AUTH_RETRY);
configurator = new TimeoutConnConfigurator(timeout, sslFactory);
encKeyVersionQueue =

View File

@ -688,6 +688,15 @@ public class CommonConfigurationKeysPublic {
/** Default value for KMS_CLIENT_ENC_KEY_CACHE_EXPIRY (12 hrs)*/
public static final int KMS_CLIENT_ENC_KEY_CACHE_EXPIRY_DEFAULT = 43200000;
/**
* @see
* <a href="{@docRoot}/../hadoop-project-dist/hadoop-common/core-default.xml">
* core-default.xml</a>
*/
public static final String KMS_CLIENT_TIMEOUT_SECONDS =
"hadoop.security.kms.client.timeout";
public static final int KMS_CLIENT_TIMEOUT_DEFAULT = 60;
/**
* @see
* <a href="{@docRoot}/../hadoop-project-dist/hadoop-common/core-default.xml">

View File

@ -2138,6 +2138,14 @@
key will be dropped. Default = 12hrs
</description>
</property>
<property>
<name>hadoop.security.kms.client.timeout</name>
<value>60</value>
<description>
Sets value for KMS client connection timeout, and the read timeout
to KMS servers.
</description>
</property>
<property>
<name>hadoop.security.kms.client.failover.sleep.base.millis</name>

View File

@ -1635,7 +1635,7 @@ public class TestKMS {
public void testKMSTimeout() throws Exception {
File confDir = getTestDir();
Configuration conf = createBaseKMSConf(confDir);
conf.setInt(KMSClientProvider.TIMEOUT_ATTR, 1);
conf.setInt(CommonConfigurationKeysPublic.KMS_CLIENT_TIMEOUT_SECONDS, 1);
writeConf(confDir, conf);
ServerSocket sock;