Allow early host % on validate

On users validation, if host is not specified
it doesn't get's default value.
Change-Id: I489b99b393362f2587efbf03417c8623cbbdde3b
This commit is contained in:
Denis M 2013-10-02 15:12:38 +03:00
parent 0805d0a008
commit e88dc0381e
3 changed files with 34 additions and 5 deletions

View File

@ -50,7 +50,7 @@ def populate_users(users, initial_databases=None):
for user in users:
u = guest_models.MySQLUser()
u.name = user.get('name', '')
u.host = user.get('host')
u.host = user.get('host', '%')
user_identity = (u.name, u.host)
if user_identity in unique_identities:
raise exception.DatabaseInitialUserDuplicateError()

View File

@ -82,8 +82,6 @@ class User(object):
for user in users:
user_name = user['_name']
host_name = user['_host']
if host_name is None:
host_name = '%'
userhost = "%s@%s" % (user_name, host_name)
existing_users, _nadda = Users.load_with_client(
client,

View File

@ -149,7 +149,7 @@ class TestUserController(TestCase):
def test_validate_update_user_complete(self):
body = {"users": [{"name": "joe", "password": "",
"databases": [{"name": "testdb"}]}]}
"databases": [{"name": "testdb"}]}]}
schema = self.controller.get_schema('update_all', body)
validator = jsonschema.Draft4Validator(schema)
self.assertFalse(validator.is_valid(body))
@ -162,7 +162,7 @@ class TestUserController(TestCase):
def test_validate_update_user_with_db_short_password(self):
body = {"users": [{"name": "joe", "password": "",
"databases": [{"name": "testdb"}]}]}
"databases": [{"name": "testdb"}]}]}
schema = self.controller.get_schema('update_all', body)
validator = jsonschema.Draft4Validator(schema)
self.assertFalse(validator.is_valid(body))
@ -228,6 +228,37 @@ class TestUserController(TestCase):
validator = jsonschema.Draft4Validator(schema)
self.assertFalse(validator.is_valid(body))
def test_validate_host_in_user_attributes(self):
body_empty_host = {'user': {
'name': 'test',
'password': 'test',
'host': '%'
}}
body_with_host = {'user': {
'name': 'test',
'password': 'test',
'host': '1.1.1.1'
}}
body_none_host = {'user': {
'name': 'test',
'password': 'test',
'host': ""
}}
schema_empty_host = self.controller.get_schema('update',
body_empty_host)
schema_with_host = self.controller.get_schema('update',
body_with_host)
schema_none_host = self.controller.get_schema('update', body_none_host)
validator_empty_host = jsonschema.Draft4Validator(schema_empty_host)
validator_with_host = jsonschema.Draft4Validator(schema_with_host)
validator_none_host = jsonschema.Draft4Validator(schema_none_host)
self.assertTrue(validator_empty_host.is_valid(body_empty_host))
self.assertTrue(validator_with_host.is_valid(body_with_host))
self.assertFalse(validator_none_host.is_valid(body_none_host))
class TestUserAccessController(TestCase):
def test_validate_update_db(self):