Updated Branches: refs/heads/trunk ee63a0ce2 -> 35024a0e7
AMBARI-3927. Add support for MySQL Ambari DB (Vitaly Brodetskyi via dlysnichenko) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/35024a0e Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/35024a0e Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/35024a0e Branch: refs/heads/trunk Commit: 35024a0e742f2927304221ce66ff2d6d1d31c4a1 Parents: ee63a0c Author: Lisnichenko Dmitro <[email protected]> Authored: Fri Nov 29 13:40:13 2013 +0200 Committer: Lisnichenko Dmitro <[email protected]> Committed: Fri Nov 29 13:40:13 2013 +0200 ---------------------------------------------------------------------- ambari-server/src/main/python/ambari-server.py | 11 +++++++---- .../src/main/resources/Ambari-DDL-MySQL-CREATE.sql | 16 ++++++++++++---- ambari-server/src/test/python/TestAmbariServer.py | 2 +- 3 files changed, 20 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/35024a0e/ambari-server/src/main/python/ambari-server.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/python/ambari-server.py b/ambari-server/src/main/python/ambari-server.py index d2a9861..67e8036 100755 --- a/ambari-server/src/main/python/ambari-server.py +++ b/ambari-server/src/main/python/ambari-server.py @@ -291,7 +291,7 @@ DATABASE_INDEX = 0 PROMPT_DATABASE_OPTIONS = False USERNAME_PATTERN = "^[a-zA-Z_][a-zA-Z0-9_\-]*$" PASSWORD_PATTERN = "^[a-zA-Z0-9_-]*$" -DATABASE_NAMES =["postgres", "oracle"] +DATABASE_NAMES =["postgres", "oracle", "mysql"] DATABASE_STORAGE_NAMES =["Database","Service","Schema"] DATABASE_PORTS =["5432", "1521", "3306"] DATABASE_DRIVER_NAMES = ["org.postgresql.Driver", "oracle.jdbc.driver.OracleDriver", "com.mysql.jdbc.Driver"] @@ -1106,9 +1106,9 @@ def prompt_db_properties(args): database_num = str(DATABASE_INDEX + 1) database_num = get_validated_string_input( - "[1] - PostgreSQL (Embedded)\n[2] - Oracle\n==============================================================================\nEnter choice (" + database_num + "): ", + "[1] - PostgreSQL (Embedded)\n[2] - Oracle\n[3] - MySQL\n==============================================================================\nEnter choice (" + database_num + "): ", database_num, - "^[12]$", + "^[123]$", "Invalid number.", False ) @@ -1152,8 +1152,11 @@ def prompt_db_properties(args): IDTYPE_INDEX = int(idType) - 1 args.database_name = get_validated_service_name(args.database_name, IDTYPE_INDEX) + elif args.database == "mysql": + args.database_name = get_validated_db_name(args.database_name) + else: - # MySQL and other DB types + # other DB types pass pass else: http://git-wip-us.apache.org/repos/asf/ambari/blob/35024a0e/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql index 06de1ff..499e2c8 100644 --- a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql +++ b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql @@ -49,6 +49,9 @@ CREATE TABLE metainfo (`metainfo_key` VARCHAR(255) NOT NULL, `metainfo_value` LO CREATE TABLE ClusterHostMapping (cluster_id BIGINT NOT NULL, host_name VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id, host_name)); CREATE TABLE user_roles (role_name VARCHAR(255) NOT NULL, user_id INTEGER NOT NULL, PRIMARY KEY (role_name, user_id)); CREATE TABLE ambari_sequences (sequence_name VARCHAR(50) NOT NULL, value DECIMAL(38), PRIMARY KEY (sequence_name)); +CREATE TABLE confgroupclusterconfigmapping (config_group_id BIGINT NOT NULL, cluster_id BIGINT NOT NULL, config_type VARCHAR(255) NOT NULL, version_tag VARCHAR(255) NOT NULL, user_name VARCHAR(255) DEFAULT '_db', create_timestamp BIGINT NOT NULL, PRIMARY KEY(config_group_id, cluster_id, config_type)); +CREATE TABLE configgroup (group_id BIGINT, cluster_id BIGINT NOT NULL, group_name VARCHAR(255) NOT NULL, tag VARCHAR(1024) NOT NULL, description VARCHAR(1024), create_timestamp BIGINT NOT NULL, PRIMARY KEY(group_id), UNIQUE(group_name)); +CREATE TABLE configgrouphostmapping (config_group_id BIGINT NOT NULL, host_name VARCHAR(255) NOT NULL, PRIMARY KEY(config_group_id, host_name)); ALTER TABLE users ADD CONSTRAINT UNQ_users_0 UNIQUE (user_name, ldap_user); @@ -72,24 +75,29 @@ ALTER TABLE ClusterHostMapping ADD CONSTRAINT FK_ClusterHostMapping_host_name FO ALTER TABLE ClusterHostMapping ADD CONSTRAINT FK_ClusterHostMapping_cluster_id FOREIGN KEY (cluster_id) REFERENCES clusters (cluster_id); ALTER TABLE user_roles ADD CONSTRAINT FK_user_roles_user_id FOREIGN KEY (user_id) REFERENCES users (user_id); ALTER TABLE user_roles ADD CONSTRAINT FK_user_roles_role_name FOREIGN KEY (role_name) REFERENCES roles (role_name); +ALTER TABLE confgroupclusterconfigmapping ADD CONSTRAINT FK_confgroupclusterconfigmapping_config_tag FOREIGN KEY (version_tag, config_type, cluster_id) REFERENCES clusterconfig (version_tag, type_name, cluster_id); +ALTER TABLE confgroupclusterconfigmapping ADD CONSTRAINT FK_confgroupclusterconfigmapping_group_id FOREIGN KEY (config_group_id) REFERENCES configgroup (group_id); +ALTER TABLE configgroup ADD CONSTRAINT FK_configgroup_cluster_id FOREIGN KEY (cluster_id) REFERENCES clusters (cluster_id); +ALTER TABLE configgrouphostmapping ADD CONSTRAINT FK_configgrouphostmapping_configgroup_id FOREIGN KEY (config_group_id) REFERENCES configgroup (group_id); +ALTER TABLE configgrouphostmapping ADD CONSTRAINT FK_configgrouphostmapping_host_name FOREIGN KEY (host_name) REFERENCES hosts (host_name); INSERT INTO ambari_sequences(sequence_name, value) values ('cluster_id_seq', 0); INSERT INTO ambari_sequences(sequence_name, value) values ('host_role_command_id_seq', 0); INSERT INTO ambari_sequences(sequence_name, value) values ('user_id_seq', 1); -insert into ambari.roles(role_name) +insert into roles(role_name) select 'admin' union all select 'user'; -insert into ambari.users(user_id, user_name, user_password) +insert into users(user_id, user_name, user_password) select 1,'admin','538916f8943ec225d97a9a86a2c6ec0818c1cd400e09e03b660fdaaec4af29ddbb6f2b1033b81b00'; -insert into ambari.user_roles(role_name, user_id) +insert into user_roles(role_name, user_id) select 'admin',1; -insert into ambari.metainfo(`metainfo_key`, `metainfo_value`) +insert into metainfo(`metainfo_key`, `metainfo_value`) select 'version','${ambariVersion}'; http://git-wip-us.apache.org/repos/asf/ambari/blob/35024a0e/ambari-server/src/test/python/TestAmbariServer.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/python/TestAmbariServer.py b/ambari-server/src/test/python/TestAmbariServer.py index 352363b..573c379 100644 --- a/ambari-server/src/test/python/TestAmbariServer.py +++ b/ambari-server/src/test/python/TestAmbariServer.py @@ -2830,7 +2830,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV failed = False args = MagicMock() - ambari_server.DATABASE_INDEX = 2 + ambari_server.DATABASE_INDEX = 999 try: ambari_server.load_default_db_properties(args) except:
