From f4cbaf6ccd3c6de14837fcf9532e44de1265bdf6 Mon Sep 17 00:00:00 2001 From: Petr Malik Date: Tue, 19 Apr 2016 13:28:08 -0400 Subject: [PATCH] Make 'default_password_length' datastore-specific Make 'default_password_length' per-datastore-property. Set max length to 24 in Couchbase config. Change-Id: I391bc68b44028412ed25490264cbb1e396d540d2 Closes-Bug: 1572230 --- ...h-datastore-specific-7cdb1bfeab6e6227.yaml | 4 ++ trove/common/cfg.py | 54 +++++++++++++++++-- trove/common/utils.py | 5 +- 3 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 releasenotes/notes/make-password-length-datastore-specific-7cdb1bfeab6e6227.yaml diff --git a/releasenotes/notes/make-password-length-datastore-specific-7cdb1bfeab6e6227.yaml b/releasenotes/notes/make-password-length-datastore-specific-7cdb1bfeab6e6227.yaml new file mode 100644 index 0000000000..dcfbe574cd --- /dev/null +++ b/releasenotes/notes/make-password-length-datastore-specific-7cdb1bfeab6e6227.yaml @@ -0,0 +1,4 @@ +--- +fixes: + - Make 'default_password_length' per-datastore-property. + Bug 1572230 diff --git a/trove/common/cfg.py b/trove/common/cfg.py index 1c6b43bd83..ef5d3effd1 100644 --- a/trove/common/cfg.py +++ b/trove/common/cfg.py @@ -231,8 +231,6 @@ common_opts = [ help="Permissions to grant to the 'root' user."), cfg.BoolOpt('root_grant_option', default=True, help="Assign the 'root' user GRANT permissions."), - cfg.IntOpt('default_password_length', default=36, - help='Character length of generated passwords.'), cfg.IntOpt('http_get_rate', default=200, help="Maximum number of HTTP 'GET' requests (per minute)."), cfg.IntOpt('http_post_rate', default=200, @@ -548,6 +546,10 @@ mysql_opts = [ cfg.IntOpt('guest_log_long_query_time', default=1000, help='The time in milliseconds that a statement must take in ' 'in order to be logged in the slow_query log.'), + cfg.IntOpt('default_password_length', default=36, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # Percona @@ -626,6 +628,11 @@ percona_opts = [ cfg.IntOpt('guest_log_long_query_time', default=1000, help='The time in milliseconds that a statement must take in ' 'in order to be logged in the slow_query log.'), + cfg.IntOpt('default_password_length', + default='${mysql.default_password_length}', + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # Percona XtraDB Cluster @@ -708,6 +715,11 @@ pxc_opts = [ cfg.IntOpt('guest_log_long_query_time', default=1000, help='The time in milliseconds that a statement must take in ' 'in order to be logged in the slow_query log.'), + cfg.IntOpt('default_password_length', + default='${mysql.default_password_length}', + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] @@ -780,6 +792,10 @@ redis_opts = [ help='Root controller implementation for redis.'), cfg.StrOpt('guest_log_exposed_logs', default='', help='List of Guest Logs to expose for publishing.'), + cfg.IntOpt('default_password_length', default=36, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # Cassandra @@ -853,6 +869,10 @@ cassandra_opts = [ '.cassandra.guestagent.CassandraGuestAgentStrategy', help='Class that implements datastore-specific Guest Agent API ' 'logic.'), + cfg.IntOpt('default_password_length', default=36, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # Couchbase @@ -911,6 +931,10 @@ couchbase_opts = [ help='Root controller implementation for couchbase.'), cfg.StrOpt('guest_log_exposed_logs', default='', help='List of Guest Logs to expose for publishing.'), + cfg.IntOpt('default_password_length', default=24, min=6, max=24, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # MongoDB @@ -998,6 +1022,10 @@ mongodb_opts = [ help='Root controller implementation for mongodb.'), cfg.StrOpt('guest_log_exposed_logs', default='', help='List of Guest Logs to expose for publishing.'), + cfg.IntOpt('default_password_length', default=36, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # PostgreSQL @@ -1052,6 +1080,10 @@ postgresql_opts = [ "in order to be logged in the 'general' log. A value of " "'0' logs all statements, while '-1' turns off " "statement logging."), + cfg.IntOpt('default_password_length', default=36, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # Apache CouchDB @@ -1108,7 +1140,10 @@ couchdb_opts = [ help='Databases to exclude when listing databases.', deprecated_name='ignore_dbs', deprecated_group='DEFAULT'), - + cfg.IntOpt('default_password_length', default=36, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # Vertica @@ -1173,6 +1208,10 @@ vertica_opts = [ help='List of Guest Logs to expose for publishing.'), cfg.IntOpt('min_ksafety', default=0, help='Minimum k-safety setting permitted for vertica clusters'), + cfg.IntOpt('default_password_length', default=36, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # DB2 @@ -1227,6 +1266,10 @@ db2_opts = [ help='Root controller implementation for db2.'), cfg.StrOpt('guest_log_exposed_logs', default='', help='List of Guest Logs to expose for publishing.'), + cfg.IntOpt('default_password_length', default=36, + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # MariaDB @@ -1320,6 +1363,11 @@ mariadb_opts = [ 'galera_common.guestagent.GaleraCommonGuestAgentStrategy', help='Class that implements datastore-specific Guest Agent API ' 'logic.'), + cfg.IntOpt('default_password_length', + default='${mysql.default_password_length}', + help='Character length of generated passwords.', + deprecated_name='default_password_length', + deprecated_group='DEFAULT'), ] # RPC version groups diff --git a/trove/common/utils.py b/trove/common/utils.py index 9531a3f483..79ce5ad9b7 100644 --- a/trove/common/utils.py +++ b/trove/common/utils.py @@ -281,7 +281,10 @@ def correct_id_with_req(id, request): def generate_random_password(password_length=None): - password_length = password_length or CONF.default_password_length + password_length = ( + password_length or + cfg.get_configuration_property('default_password_length') + ) return passlib_utils.generate_password(size=password_length)