Browse Source

AMBARI-5549. Add Existing Postgres 9.x Database option for Ambari db. (mpapirkovskyy)

Myroslav Papirkovskyy 11 years ago
parent
commit
1a262a0dc8

+ 2 - 2
ambari-project/pom.xml

@@ -194,9 +194,9 @@
         <version>2.4.0</version>
       </dependency>
       <dependency>
-        <groupId>postgresql</groupId>
+        <groupId>org.postgresql</groupId>
         <artifactId>postgresql</artifactId>
-        <version>9.1-901.jdbc4</version>
+        <version>9.3-1101-jdbc4</version>
       </dependency>
       <dependency>
         <groupId>com.google.guava</groupId>

+ 4 - 4
ambari-server/pom.xml

@@ -331,10 +331,10 @@
                   <location>src/main/resources/Ambari-DDL-Postgres-DROP.sql</location>
                 </source>
                 <source>
-                  <location>target/classes/Ambari-DDL-Postgres-REMOTE-CREATE.sql</location>
+                  <location>target/classes/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql</location>
                 </source>
                 <source>
-                  <location>src/main/resources/Ambari-DDL-Postgres-REMOTE-DROP.sql</location>
+                  <location>src/main/resources/Ambari-DDL-Postgres-EMBEDDED-DROP.sql</location>
                 </source>
                 <source>
                   <location>target/classes/Ambari-DDL-Oracle-CREATE.sql</location>
@@ -1230,9 +1230,9 @@
       <version>2.2.2</version>
     </dependency>
     <dependency>
-      <groupId>postgresql</groupId>
+      <groupId>org.postgresql</groupId>
       <artifactId>postgresql</artifactId>
-      <version>9.1-901.jdbc4</version>
+      <version>9.3-1101-jdbc4</version>
     </dependency>
     <dependency>
       <groupId>org.apache.httpcomponents</groupId>

+ 21 - 11
ambari-server/src/main/python/ambari-server.py

@@ -328,10 +328,10 @@ DATABASE_CLI_TOOLS_USAGE = ['su -postgres --command=psql -f {0} -v username=\'"{
                             'mysql --user={1} --password={2} {3}<{0}']
 
 MYSQL_INIT_SCRIPT = '/var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql'
-DATABASE_INIT_SCRIPTS = ['/var/lib/ambari-server/resources/Ambari-DDL-Postgres-REMOTE-CREATE.sql',
+DATABASE_INIT_SCRIPTS = ['/var/lib/ambari-server/resources/Ambari-DDL-Postgres-CREATE.sql',
                          '/var/lib/ambari-server/resources/Ambari-DDL-Oracle-CREATE.sql',
                          MYSQL_INIT_SCRIPT]
-DATABASE_DROP_SCRIPTS = ['/var/lib/ambari-server/resources/Ambari-DDL-Postgres-REMOTE-DROP.sql',
+DATABASE_DROP_SCRIPTS = ['/var/lib/ambari-server/resources/Ambari-DDL-Postgres-DROP.sql',
                          '/var/lib/ambari-server/resources/Ambari-DDL-Oracle-DROP.sql',
                          '/var/lib/ambari-server/resources/Ambari-DDL-MySQL-DROP.sql']
 
@@ -1185,17 +1185,27 @@ def prompt_db_properties(args):
 
       database_num = str(DATABASE_INDEX + 1)
       database_num = get_validated_string_input(
-        "[1] - PostgreSQL (Embedded)\n[2] - Oracle\n[3] - MySQL\n==============================================================================\nEnter choice (" + database_num + "): ",
+        "[1] - PostgreSQL (Embedded)\n[2] - PostgreSQL (External)\n[3] - Oracle\n[4] - MySQL\n"
+        "==============================================================================\n"
+        "Enter choice (" + database_num + "): ",
         database_num,
-        "^[123]$",
+        "^[1234]$",
         "Invalid number.",
         False
       )
 
-      DATABASE_INDEX = int(database_num) - 1
-      args.dbms = DATABASE_NAMES[DATABASE_INDEX]
+      if int(database_num) == 1:
+        args.persistence_type = 'local'
+        args.database_index = 0
+        DATABASE_INDEX = 0
+      else:
+        args.persistence_type = 'remote'
+        args.database_index = int(database_num) - 2
+        DATABASE_INDEX = int(database_num) - 2
+
+      args.dbms = DATABASE_NAMES[args.database_index]
 
-      if args.dbms != "postgres":
+      if args.persistence_type != 'local':
         args.database_host = get_validated_string_input(
           "Hostname (" + args.database_host + "): ",
           args.database_host,
@@ -1231,7 +1241,7 @@ def prompt_db_properties(args):
           IDTYPE_INDEX = int(idType) - 1
           args.database_name = get_validated_service_name(args.database_name,
                                                           IDTYPE_INDEX)
-        elif args.dbms == "mysql":
+        elif args.dbms in ["mysql", "postgres"]:
           args.database_name = get_validated_db_name(args.database_name)
 
         else:
@@ -1377,7 +1387,7 @@ def execute_remote_script(args, scriptPath):
   if args.dbms == "postgres":
 
     os.environ["PGPASSWORD"] = args.database_password
-    retcode, out, err = run_in_shell('{0} {1}'.format(tool,  POSTGRES_EXEC_ARGS.format(
+    retcode, out, err = run_in_shell('{0} {1}'.format(tool, POSTGRES_EXEC_ARGS.format(
       args.database_host,
       args.database_port,
       args.database_name,
@@ -4004,11 +4014,11 @@ def main():
 
   parser.add_option('-f', '--init-script-file',
                       default='/var/lib/ambari-server/'
-                              'resources/Ambari-DDL-Postgres-CREATE.sql',
+                              'resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql',
                       help="File with setup script")
   parser.add_option('-r', '--drop-script-file', default="/var/lib/"
                               "ambari-server/resources/"
-                              "Ambari-DDL-Postgres-DROP.sql",
+                              "Ambari-DDL-Postgres-EMBEDDED-DROP.sql",
                       help="File with drop script")
   parser.add_option('-u', '--upgrade-script-file', default="/var/lib/"
                               "ambari-server/resources/upgrade/ddl/"

+ 5 - 83
ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql

@@ -15,119 +15,76 @@
 -- See the License for the specific language governing permissions and
 -- limitations under the License.
 --
-CREATE DATABASE :dbname;
-\connect :dbname;
-
-ALTER ROLE :username LOGIN ENCRYPTED PASSWORD :password;
-CREATE ROLE :username LOGIN ENCRYPTED PASSWORD :password;
-
-GRANT ALL PRIVILEGES ON DATABASE :dbname TO :username;
 
 CREATE SCHEMA ambari AUTHORIZATION :username;
-ALTER SCHEMA ambari OWNER TO :username;
 ALTER ROLE :username SET search_path TO 'ambari';
 
 ------create tables ang grant privileges to db user---------
 CREATE TABLE ambari.clusters (cluster_id BIGINT NOT NULL, cluster_info VARCHAR(255) NOT NULL, cluster_name VARCHAR(100) NOT NULL UNIQUE, desired_cluster_state VARCHAR(255) NOT NULL, desired_stack_version VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.clusters TO :username;
 
 CREATE TABLE ambari.clusterconfig (version_tag VARCHAR(255) NOT NULL, type_name VARCHAR(255) NOT NULL, cluster_id BIGINT NOT NULL, config_data VARCHAR(32000) NOT NULL, create_timestamp BIGINT NOT NULL, PRIMARY KEY (cluster_id, type_name, version_tag));
-GRANT ALL PRIVILEGES ON TABLE ambari.clusterconfig TO :username;
 
 CREATE TABLE ambari.clusterconfigmapping (cluster_id BIGINT NOT NULL, type_name VARCHAR(255) NOT NULL, version_tag VARCHAR(255) NOT NULL, create_timestamp BIGINT NOT NULL, selected INTEGER NOT NULL DEFAULT 0, user_name VARCHAR(255) NOT NULL DEFAULT '_db', PRIMARY KEY (cluster_id, type_name, create_timestamp));
-GRANT ALL PRIVILEGES ON TABLE ambari.clusterconfigmapping TO :username;
 
 CREATE TABLE ambari.clusterservices (service_name VARCHAR(255) NOT NULL, cluster_id BIGINT NOT NULL, service_enabled INTEGER NOT NULL, PRIMARY KEY (service_name, cluster_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.clusterservices TO :username;
 
 CREATE TABLE ambari.clusterstate (cluster_id BIGINT NOT NULL, current_cluster_state VARCHAR(255) NOT NULL, current_stack_version VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.clusterstate TO :username;
 
 CREATE TABLE ambari.hostcomponentdesiredstate (cluster_id BIGINT NOT NULL, component_name VARCHAR(255) NOT NULL, desired_stack_version VARCHAR(255) NOT NULL, desired_state VARCHAR(255) NOT NULL, host_name VARCHAR(255) NOT NULL, service_name VARCHAR(255) NOT NULL, admin_state VARCHAR(32), maintenance_state VARCHAR(32) NOT NULL, restart_required BOOLEAN NOT NULL, PRIMARY KEY (cluster_id, component_name, host_name, service_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.hostcomponentdesiredstate TO :username;
 
 CREATE TABLE ambari.hostcomponentstate (cluster_id BIGINT NOT NULL, component_name VARCHAR(255) NOT NULL, current_stack_version VARCHAR(255) NOT NULL, current_state VARCHAR(255) NOT NULL, host_name VARCHAR(255) NOT NULL, service_name VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id, component_name, host_name, service_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.hostcomponentstate TO :username;
 
 CREATE TABLE ambari.hosts (host_name VARCHAR(255) NOT NULL, cpu_count INTEGER NOT NULL, ph_cpu_count INTEGER, cpu_info VARCHAR(255) NOT NULL, discovery_status VARCHAR(2000) NOT NULL, host_attributes VARCHAR(20000) NOT NULL, ipv4 VARCHAR(255), ipv6 VARCHAR(255), public_host_name VARCHAR(255), last_registration_time BIGINT NOT NULL, os_arch VARCHAR(255) NOT NULL, os_info VARCHAR(1000) NOT NULL, os_type VARCHAR(255) NOT NULL, rack_info VARCHAR(255) NOT NULL, total_mem BIGINT NOT NULL, PRIMARY KEY (host_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.hosts TO :username;
 
 CREATE TABLE ambari.hoststate (agent_version VARCHAR(255) NOT NULL, available_mem BIGINT NOT NULL, current_state VARCHAR(255) NOT NULL, health_status VARCHAR(255), host_name VARCHAR(255) NOT NULL, time_in_state BIGINT NOT NULL, maintenance_state VARCHAR(512), PRIMARY KEY (host_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.hoststate TO :username;
 
 CREATE TABLE ambari.servicecomponentdesiredstate (component_name VARCHAR(255) NOT NULL, cluster_id BIGINT NOT NULL, desired_stack_version VARCHAR(255) NOT NULL, desired_state VARCHAR(255) NOT NULL, service_name VARCHAR(255) NOT NULL, PRIMARY KEY (component_name, cluster_id, service_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.servicecomponentdesiredstate TO :username;
 
 CREATE TABLE ambari.servicedesiredstate (cluster_id BIGINT NOT NULL, desired_host_role_mapping INTEGER NOT NULL, desired_stack_version VARCHAR(255) NOT NULL, desired_state VARCHAR(255) NOT NULL, service_name VARCHAR(255) NOT NULL, maintenance_state VARCHAR(32) NOT NULL, PRIMARY KEY (cluster_id, service_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.servicedesiredstate TO :username;
 
 CREATE TABLE ambari.roles (role_name VARCHAR(255) NOT NULL, PRIMARY KEY (role_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.roles TO :username;
 
 CREATE TABLE ambari.users (user_id INTEGER, ldap_user INTEGER NOT NULL DEFAULT 0, user_name VARCHAR(255) NOT NULL, create_time TIMESTAMP DEFAULT NOW(), user_password VARCHAR(255), PRIMARY KEY (user_id), UNIQUE (ldap_user, user_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.users TO :username;
 
 CREATE TABLE ambari.execution_command (command BYTEA, task_id BIGINT NOT NULL, PRIMARY KEY (task_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.execution_command TO :username;
 
 CREATE TABLE ambari.host_role_command (task_id BIGINT NOT NULL, attempt_count SMALLINT NOT NULL, event VARCHAR(32000) NOT NULL, exitcode INTEGER NOT NULL, host_name VARCHAR(255) NOT NULL, last_attempt_time BIGINT NOT NULL, request_id BIGINT NOT NULL, role VARCHAR(255), stage_id BIGINT NOT NULL, start_time BIGINT NOT NULL, end_time BIGINT, status VARCHAR(255), std_error BYTEA, std_out BYTEA, structured_out BYTEA, role_command VARCHAR(255), command_detail VARCHAR(255), custom_command_name VARCHAR(255), PRIMARY KEY (task_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.host_role_command TO :username;
 
 CREATE TABLE ambari.role_success_criteria (role VARCHAR(255) NOT NULL, request_id BIGINT NOT NULL, stage_id BIGINT NOT NULL, success_factor FLOAT NOT NULL, PRIMARY KEY (role, request_id, stage_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.role_success_criteria TO :username;
 
 CREATE TABLE ambari.stage (stage_id BIGINT NOT NULL, request_id BIGINT NOT NULL, cluster_id BIGINT NOT NULL, log_info VARCHAR(255) NOT NULL, request_context VARCHAR(255), cluster_host_info BYTEA NOT NULL, PRIMARY KEY (stage_id, request_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.stage TO :username;
 
 CREATE TABLE ambari.request (request_id BIGINT NOT NULL, cluster_id BIGINT, command_name VARCHAR(255), create_time BIGINT NOT NULL, end_time BIGINT NOT NULL, inputs BYTEA, request_context VARCHAR(255), request_type VARCHAR(255), request_schedule_id BIGINT, start_time BIGINT NOT NULL, status VARCHAR(255), PRIMARY KEY (request_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.request TO :username;
 
 CREATE TABLE ambari.requestresourcefilter (filter_id BIGINT NOT NULL, request_id BIGINT NOT NULL, service_name VARCHAR(255), component_name VARCHAR(255), hosts BYTEA, PRIMARY KEY (filter_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.requestresourcefilter TO :username;
 
 CREATE TABLE ambari.ClusterHostMapping (cluster_id BIGINT NOT NULL, host_name VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id, host_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.ClusterHostMapping TO :username;
 
 CREATE TABLE ambari.user_roles (role_name VARCHAR(255) NOT NULL, user_id INTEGER NOT NULL, PRIMARY KEY (role_name, user_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.user_roles TO :username;
 
 CREATE TABLE ambari.key_value_store ("key" VARCHAR(255), "value" VARCHAR, PRIMARY KEY ("key"));
-GRANT ALL PRIVILEGES ON TABLE ambari.key_value_store TO :username;
 
 CREATE TABLE ambari.hostconfigmapping (cluster_id BIGINT NOT NULL, host_name VARCHAR(255) NOT NULL, type_name VARCHAR(255) NOT NULL, version_tag VARCHAR(255) NOT NULL, service_name VARCHAR(255), create_timestamp BIGINT NOT NULL, selected INTEGER NOT NULL DEFAULT 0, user_name VARCHAR(255) NOT NULL DEFAULT '_db', PRIMARY KEY (cluster_id, host_name, type_name, create_timestamp));
-GRANT ALL PRIVILEGES ON TABLE ambari.hostconfigmapping TO :username;
 
 CREATE TABLE ambari.metainfo ("metainfo_key" VARCHAR(255), "metainfo_value" VARCHAR, PRIMARY KEY ("metainfo_key"));
-GRANT ALL PRIVILEGES ON TABLE ambari.metainfo TO :username;
 
 CREATE TABLE ambari.ambari_sequences (sequence_name VARCHAR(255) PRIMARY KEY, "value" BIGINT NOT NULL);
-GRANT ALL PRIVILEGES ON TABLE ambari.ambari_sequences TO :username;
 
 CREATE TABLE ambari.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));
-GRANT ALL PRIVILEGES ON TABLE ambari.configgroup TO :username;
 
 CREATE TABLE ambari.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));
-GRANT ALL PRIVILEGES ON TABLE ambari.confgroupclusterconfigmapping TO :username;
 
 CREATE TABLE ambari.configgrouphostmapping (config_group_id BIGINT NOT NULL, host_name VARCHAR(255) NOT NULL, PRIMARY KEY(config_group_id, host_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.configgrouphostmapping TO :username;
 
 CREATE TABLE ambari.requestschedule (schedule_id bigint, cluster_id bigint NOT NULL, description varchar(255), status varchar(255), batch_separation_seconds smallint, batch_toleration_limit smallint, create_user varchar(255), create_timestamp bigint, update_user varchar(255), update_timestamp bigint, minutes varchar(10), hours varchar(10), days_of_month varchar(10), month varchar(10), day_of_week varchar(10), yearToSchedule varchar(10), startTime varchar(50), endTime varchar(50), last_execution_status varchar(255), PRIMARY KEY(schedule_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.requestschedule TO :username;
 
 CREATE TABLE ambari.requestschedulebatchrequest (schedule_id bigint, batch_id bigint, request_id bigint, request_type varchar(255), request_uri varchar(1024), request_body BYTEA, request_status varchar(255), return_code smallint, return_message varchar(20000), PRIMARY KEY(schedule_id, batch_id));
-GRANT ALL PRIVILEGES ON TABLE ambari.requestschedulebatchrequest TO :username;
 
 CREATE TABLE ambari.blueprint (blueprint_name VARCHAR(255) NOT NULL, stack_name VARCHAR(255) NOT NULL, stack_version VARCHAR(255) NOT NULL, PRIMARY KEY(blueprint_name));
 CREATE TABLE ambari.hostgroup (blueprint_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, cardinality VARCHAR(255) NOT NULL, PRIMARY KEY(blueprint_name, name));
 CREATE TABLE ambari.hostgroup_component (blueprint_name VARCHAR(255) NOT NULL, hostgroup_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(blueprint_name, hostgroup_name, name));
 CREATE TABLE ambari.blueprint_configuration (blueprint_name varchar(255) NOT NULL, type_name varchar(255) NOT NULL, config_data varchar(32000) NOT NULL , PRIMARY KEY(blueprint_name, type_name));
 CREATE TABLE ambari.hostgroup_configuration (blueprint_name VARCHAR(255) NOT NULL, hostgroup_name VARCHAR(255) NOT NULL, type_name VARCHAR(255) NOT NULL, config_data TEXT NOT NULL, PRIMARY KEY(blueprint_name, hostgroup_name, type_name));
-GRANT ALL PRIVILEGES ON TABLE ambari.blueprint TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.hostgroup TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.hostgroup_component TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.blueprint_configuration TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.hostgroup_configuration TO :username;
 
 CREATE TABLE ambari.viewmain (view_name VARCHAR(255) NOT NULL, label VARCHAR(255), version VARCHAR(255), archive VARCHAR(255), PRIMARY KEY(view_name));
 CREATE TABLE ambari.viewinstancedata (view_name VARCHAR(255) NOT NULL, view_instance_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, value VARCHAR(2000) NOT NULL, PRIMARY KEY(view_name, view_instance_name, name));
@@ -135,12 +92,6 @@ CREATE TABLE ambari.viewinstance (view_name VARCHAR(255) NOT NULL, name VARCHAR(
 CREATE TABLE ambari.viewinstanceproperty (view_name VARCHAR(255) NOT NULL, view_instance_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, value VARCHAR(2000) NOT NULL, PRIMARY KEY(view_name, view_instance_name, name));
 CREATE TABLE ambari.viewparameter (view_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, description VARCHAR(255), required CHAR(1), PRIMARY KEY(view_name, name));
 CREATE TABLE ambari.viewresource (view_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, plural_name VARCHAR(255), id_property VARCHAR(255), subResource_names VARCHAR(255), provider VARCHAR(255), service VARCHAR(255), resource VARCHAR(255), PRIMARY KEY(view_name, name));
-GRANT ALL PRIVILEGES ON TABLE ambari.viewmain TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.viewinstancedata TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.viewinstance TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.viewinstanceproperty TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.viewparameter TO :username;
-GRANT ALL PRIVILEGES ON TABLE ambari.viewresource TO :username;
 
 --------altering tables by creating foreign keys----------
 ALTER TABLE ambari.clusterconfig ADD CONSTRAINT FK_clusterconfig_cluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
@@ -179,11 +130,11 @@ ALTER TABLE ambari.hostgroup_component ADD CONSTRAINT FK_hgc_blueprint_name FORE
 ALTER TABLE ambari.blueprint_configuration ADD CONSTRAINT FK_cfg_blueprint_name FOREIGN KEY (blueprint_name) REFERENCES ambari.blueprint(blueprint_name);
 ALTER TABLE ambari.hostgroup_configuration ADD CONSTRAINT FK_hg_cfg_bp_hg_name FOREIGN KEY (blueprint_name, hostgroup_name) REFERENCES ambari.hostgroup (blueprint_name, name);
 ALTER TABLE ambari.requestresourcefilter ADD CONSTRAINT FK_reqresfilter_req_id FOREIGN KEY (request_id) REFERENCES ambari.request (request_id);
-ALTER TABLE viewparameter ADD CONSTRAINT FK_viewparam_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
-ALTER TABLE viewresource ADD CONSTRAINT FK_viewres_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
-ALTER TABLE viewinstance ADD CONSTRAINT FK_viewinst_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
-ALTER TABLE viewinstanceproperty ADD CONSTRAINT FK_viewinstprop_view_name FOREIGN KEY (view_name, view_instance_name) REFERENCES viewinstance(view_name, name);
-ALTER TABLE viewinstancedata ADD CONSTRAINT FK_viewinstdata_view_name FOREIGN KEY (view_name, view_instance_name) REFERENCES viewinstance(view_name, name);
+ALTER TABLE ambari.viewparameter ADD CONSTRAINT FK_viewparam_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
+ALTER TABLE ambari.viewresource ADD CONSTRAINT FK_viewres_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
+ALTER TABLE ambari.viewinstance ADD CONSTRAINT FK_viewinst_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
+ALTER TABLE ambari.viewinstanceproperty ADD CONSTRAINT FK_viewinstprop_view_name FOREIGN KEY (view_name, view_instance_name) REFERENCES viewinstance(view_name, name);
+ALTER TABLE ambari.viewinstancedata ADD CONSTRAINT FK_viewinstdata_view_name FOREIGN KEY (view_name, view_instance_name) REFERENCES viewinstance(view_name, name);
 
 
 ---------inserting some data-----------
@@ -232,7 +183,6 @@ CREATE TABLE ambari.qrtz_job_details
     JOB_DATA BYTEA NULL,
     PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_job_details TO :username;
 
 CREATE TABLE ambari.qrtz_triggers
   (
@@ -256,7 +206,6 @@ CREATE TABLE ambari.qrtz_triggers
     FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
 	REFERENCES ambari.QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_triggers TO :username;
 
 CREATE TABLE ambari.qrtz_simple_triggers
   (
@@ -270,7 +219,6 @@ CREATE TABLE ambari.qrtz_simple_triggers
     FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
 	REFERENCES ambari.QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_simple_triggers TO :username;
 
 CREATE TABLE ambari.qrtz_cron_triggers
   (
@@ -283,7 +231,6 @@ CREATE TABLE ambari.qrtz_cron_triggers
     FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
 	REFERENCES ambari.QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_cron_triggers TO :username;
 
 CREATE TABLE ambari.qrtz_simprop_triggers
   (
@@ -305,7 +252,6 @@ CREATE TABLE ambari.qrtz_simprop_triggers
     FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
     REFERENCES ambari.QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_simprop_triggers TO :username;
 
 CREATE TABLE ambari.qrtz_blob_triggers
   (
@@ -317,7 +263,6 @@ CREATE TABLE ambari.qrtz_blob_triggers
     FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
         REFERENCES ambari.QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_blob_triggers TO :username;
 
 CREATE TABLE ambari.qrtz_calendars
   (
@@ -326,7 +271,6 @@ CREATE TABLE ambari.qrtz_calendars
     CALENDAR BYTEA NOT NULL,
     PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_calendars TO :username;
 
 
 CREATE TABLE ambari.qrtz_paused_trigger_grps
@@ -335,7 +279,6 @@ CREATE TABLE ambari.qrtz_paused_trigger_grps
     TRIGGER_GROUP  VARCHAR(200) NOT NULL,
     PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_paused_trigger_grps TO :username;
 
 CREATE TABLE ambari.qrtz_fired_triggers
   (
@@ -354,7 +297,6 @@ CREATE TABLE ambari.qrtz_fired_triggers
     REQUESTS_RECOVERY BOOL NULL,
     PRIMARY KEY (SCHED_NAME,ENTRY_ID)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_fired_triggers TO :username;
 
 CREATE TABLE ambari.qrtz_scheduler_state
   (
@@ -364,7 +306,6 @@ CREATE TABLE ambari.qrtz_scheduler_state
     CHECKIN_INTERVAL BIGINT NOT NULL,
     PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_scheduler_state TO :username;
 
 CREATE TABLE ambari.qrtz_locks
   (
@@ -372,7 +313,6 @@ CREATE TABLE ambari.qrtz_locks
     LOCK_NAME  VARCHAR(40) NOT NULL,
     PRIMARY KEY (SCHED_NAME,LOCK_NAME)
 );
-GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_locks TO :username;
 
 create index idx_qrtz_j_req_recovery on ambari.qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY);
 create index idx_qrtz_j_grp on ambari.qrtz_job_details(SCHED_NAME,JOB_GROUP);
@@ -399,17 +339,6 @@ create index idx_qrtz_ft_tg on ambari.qrtz_fired_triggers(SCHED_NAME,TRIGGER_GRO
 
 -- ambari log4j DDL
 
---------------------------------------------------
-----------initialisation of mapred db-------------
---------------------------------------------------
-CREATE DATABASE ambarirca;
-\connect ambarirca;
-
---CREATE ROLE "mapred" LOGIN ENCRYPTED PASSWORD 'mapred';
-CREATE USER "mapred" WITH PASSWORD 'mapred';
-GRANT ALL PRIVILEGES ON DATABASE ambarirca TO "mapred";
-
-------create tables ang grant privileges to db user---------
 CREATE TABLE workflow (
   workflowId       TEXT, workflowName TEXT,
   parentWorkflowId TEXT,
@@ -421,7 +350,6 @@ CREATE TABLE workflow (
   PRIMARY KEY (workflowId),
   FOREIGN KEY (parentWorkflowId) REFERENCES workflow (workflowId) ON DELETE CASCADE
 );
-GRANT ALL PRIVILEGES ON TABLE workflow TO "mapred";
 
 CREATE TABLE job (
   jobId        TEXT, workflowId TEXT, jobName TEXT, workflowEntityName TEXT,
@@ -436,7 +364,6 @@ CREATE TABLE job (
   PRIMARY KEY (jobId),
   FOREIGN KEY (workflowId) REFERENCES workflow (workflowId) ON DELETE CASCADE
 );
-GRANT ALL PRIVILEGES ON TABLE job TO "mapred";
 
 CREATE TABLE task (
   taskId        TEXT, jobId TEXT, taskType TEXT, splits TEXT,
@@ -445,7 +372,6 @@ CREATE TABLE task (
   PRIMARY KEY (taskId),
   FOREIGN KEY (jobId) REFERENCES job (jobId) ON DELETE CASCADE
 );
-GRANT ALL PRIVILEGES ON TABLE task TO "mapred";
 
 CREATE TABLE taskAttempt (
   taskAttemptId TEXT, taskId TEXT, jobId TEXT, taskType TEXT, taskTracker TEXT,
@@ -458,7 +384,6 @@ CREATE TABLE taskAttempt (
   FOREIGN KEY (jobId) REFERENCES job (jobId) ON DELETE CASCADE,
   FOREIGN KEY (taskId) REFERENCES task (taskId) ON DELETE CASCADE
 );
-GRANT ALL PRIVILEGES ON TABLE taskAttempt TO "mapred";
 
 CREATE TABLE hdfsEvent (
   timestamp   BIGINT,
@@ -469,7 +394,6 @@ CREATE TABLE hdfsEvent (
   dstPath     TEXT,
   permissions TEXT
 );
-GRANT ALL PRIVILEGES ON TABLE hdfsEvent TO "mapred";
 
 CREATE TABLE mapreduceEvent (
   timestamp   BIGINT,
@@ -481,7 +405,6 @@ CREATE TABLE mapreduceEvent (
   description TEXT,
   permissions TEXT
 );
-GRANT ALL PRIVILEGES ON TABLE mapreduceEvent TO "mapred";
 
 CREATE TABLE clusterEvent (
   timestamp BIGINT,
@@ -489,4 +412,3 @@ CREATE TABLE clusterEvent (
   error     TEXT, data TEXT,
   host      TEXT, rack TEXT
 );
-GRANT ALL PRIVILEGES ON TABLE clusterEvent TO "mapred";

+ 2 - 2
ambari-server/src/main/resources/Ambari-DDL-Postgres-DROP.sql

@@ -15,5 +15,5 @@
 -- See the License for the specific language governing permissions and
 -- limitations under the License.
 --
-DROP DATABASE :dbname;
-DROP DATABASE ambarirca;
+
+DROP SCHEMA ambari CASCADE;

+ 492 - 0
ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql

@@ -0,0 +1,492 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements.  See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership.  The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License.  You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+CREATE DATABASE :dbname;
+\connect :dbname;
+
+ALTER ROLE :username LOGIN ENCRYPTED PASSWORD :password;
+CREATE ROLE :username LOGIN ENCRYPTED PASSWORD :password;
+
+GRANT ALL PRIVILEGES ON DATABASE :dbname TO :username;
+
+CREATE SCHEMA ambari AUTHORIZATION :username;
+ALTER SCHEMA ambari OWNER TO :username;
+ALTER ROLE :username SET search_path TO 'ambari';
+
+------create tables ang grant privileges to db user---------
+CREATE TABLE ambari.clusters (cluster_id BIGINT NOT NULL, cluster_info VARCHAR(255) NOT NULL, cluster_name VARCHAR(100) NOT NULL UNIQUE, desired_cluster_state VARCHAR(255) NOT NULL, desired_stack_version VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.clusters TO :username;
+
+CREATE TABLE ambari.clusterconfig (version_tag VARCHAR(255) NOT NULL, type_name VARCHAR(255) NOT NULL, cluster_id BIGINT NOT NULL, config_data VARCHAR(32000) NOT NULL, create_timestamp BIGINT NOT NULL, PRIMARY KEY (cluster_id, type_name, version_tag));
+GRANT ALL PRIVILEGES ON TABLE ambari.clusterconfig TO :username;
+
+CREATE TABLE ambari.clusterconfigmapping (cluster_id BIGINT NOT NULL, type_name VARCHAR(255) NOT NULL, version_tag VARCHAR(255) NOT NULL, create_timestamp BIGINT NOT NULL, selected INTEGER NOT NULL DEFAULT 0, user_name VARCHAR(255) NOT NULL DEFAULT '_db', PRIMARY KEY (cluster_id, type_name, create_timestamp));
+GRANT ALL PRIVILEGES ON TABLE ambari.clusterconfigmapping TO :username;
+
+CREATE TABLE ambari.clusterservices (service_name VARCHAR(255) NOT NULL, cluster_id BIGINT NOT NULL, service_enabled INTEGER NOT NULL, PRIMARY KEY (service_name, cluster_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.clusterservices TO :username;
+
+CREATE TABLE ambari.clusterstate (cluster_id BIGINT NOT NULL, current_cluster_state VARCHAR(255) NOT NULL, current_stack_version VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.clusterstate TO :username;
+
+CREATE TABLE ambari.hostcomponentdesiredstate (cluster_id BIGINT NOT NULL, component_name VARCHAR(255) NOT NULL, desired_stack_version VARCHAR(255) NOT NULL, desired_state VARCHAR(255) NOT NULL, host_name VARCHAR(255) NOT NULL, service_name VARCHAR(255) NOT NULL, admin_state VARCHAR(32), maintenance_state VARCHAR(32) NOT NULL, restart_required BOOLEAN NOT NULL, PRIMARY KEY (cluster_id, component_name, host_name, service_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.hostcomponentdesiredstate TO :username;
+
+CREATE TABLE ambari.hostcomponentstate (cluster_id BIGINT NOT NULL, component_name VARCHAR(255) NOT NULL, current_stack_version VARCHAR(255) NOT NULL, current_state VARCHAR(255) NOT NULL, host_name VARCHAR(255) NOT NULL, service_name VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id, component_name, host_name, service_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.hostcomponentstate TO :username;
+
+CREATE TABLE ambari.hosts (host_name VARCHAR(255) NOT NULL, cpu_count INTEGER NOT NULL, ph_cpu_count INTEGER, cpu_info VARCHAR(255) NOT NULL, discovery_status VARCHAR(2000) NOT NULL, host_attributes VARCHAR(20000) NOT NULL, ipv4 VARCHAR(255), ipv6 VARCHAR(255), public_host_name VARCHAR(255), last_registration_time BIGINT NOT NULL, os_arch VARCHAR(255) NOT NULL, os_info VARCHAR(1000) NOT NULL, os_type VARCHAR(255) NOT NULL, rack_info VARCHAR(255) NOT NULL, total_mem BIGINT NOT NULL, PRIMARY KEY (host_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.hosts TO :username;
+
+CREATE TABLE ambari.hoststate (agent_version VARCHAR(255) NOT NULL, available_mem BIGINT NOT NULL, current_state VARCHAR(255) NOT NULL, health_status VARCHAR(255), host_name VARCHAR(255) NOT NULL, time_in_state BIGINT NOT NULL, maintenance_state VARCHAR(512), PRIMARY KEY (host_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.hoststate TO :username;
+
+CREATE TABLE ambari.servicecomponentdesiredstate (component_name VARCHAR(255) NOT NULL, cluster_id BIGINT NOT NULL, desired_stack_version VARCHAR(255) NOT NULL, desired_state VARCHAR(255) NOT NULL, service_name VARCHAR(255) NOT NULL, PRIMARY KEY (component_name, cluster_id, service_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.servicecomponentdesiredstate TO :username;
+
+CREATE TABLE ambari.servicedesiredstate (cluster_id BIGINT NOT NULL, desired_host_role_mapping INTEGER NOT NULL, desired_stack_version VARCHAR(255) NOT NULL, desired_state VARCHAR(255) NOT NULL, service_name VARCHAR(255) NOT NULL, maintenance_state VARCHAR(32) NOT NULL, PRIMARY KEY (cluster_id, service_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.servicedesiredstate TO :username;
+
+CREATE TABLE ambari.roles (role_name VARCHAR(255) NOT NULL, PRIMARY KEY (role_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.roles TO :username;
+
+CREATE TABLE ambari.users (user_id INTEGER, ldap_user INTEGER NOT NULL DEFAULT 0, user_name VARCHAR(255) NOT NULL, create_time TIMESTAMP DEFAULT NOW(), user_password VARCHAR(255), PRIMARY KEY (user_id), UNIQUE (ldap_user, user_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.users TO :username;
+
+CREATE TABLE ambari.execution_command (command BYTEA, task_id BIGINT NOT NULL, PRIMARY KEY (task_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.execution_command TO :username;
+
+CREATE TABLE ambari.host_role_command (task_id BIGINT NOT NULL, attempt_count SMALLINT NOT NULL, event VARCHAR(32000) NOT NULL, exitcode INTEGER NOT NULL, host_name VARCHAR(255) NOT NULL, last_attempt_time BIGINT NOT NULL, request_id BIGINT NOT NULL, role VARCHAR(255), stage_id BIGINT NOT NULL, start_time BIGINT NOT NULL, end_time BIGINT, status VARCHAR(255), std_error BYTEA, std_out BYTEA, structured_out BYTEA, role_command VARCHAR(255), command_detail VARCHAR(255), custom_command_name VARCHAR(255), PRIMARY KEY (task_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.host_role_command TO :username;
+
+CREATE TABLE ambari.role_success_criteria (role VARCHAR(255) NOT NULL, request_id BIGINT NOT NULL, stage_id BIGINT NOT NULL, success_factor FLOAT NOT NULL, PRIMARY KEY (role, request_id, stage_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.role_success_criteria TO :username;
+
+CREATE TABLE ambari.stage (stage_id BIGINT NOT NULL, request_id BIGINT NOT NULL, cluster_id BIGINT NOT NULL, log_info VARCHAR(255) NOT NULL, request_context VARCHAR(255), cluster_host_info BYTEA NOT NULL, PRIMARY KEY (stage_id, request_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.stage TO :username;
+
+CREATE TABLE ambari.request (request_id BIGINT NOT NULL, cluster_id BIGINT, command_name VARCHAR(255), create_time BIGINT NOT NULL, end_time BIGINT NOT NULL, inputs BYTEA, request_context VARCHAR(255), request_type VARCHAR(255), request_schedule_id BIGINT, start_time BIGINT NOT NULL, status VARCHAR(255), PRIMARY KEY (request_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.request TO :username;
+
+CREATE TABLE ambari.requestresourcefilter (filter_id BIGINT NOT NULL, request_id BIGINT NOT NULL, service_name VARCHAR(255), component_name VARCHAR(255), hosts BYTEA, PRIMARY KEY (filter_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.requestresourcefilter TO :username;
+
+CREATE TABLE ambari.ClusterHostMapping (cluster_id BIGINT NOT NULL, host_name VARCHAR(255) NOT NULL, PRIMARY KEY (cluster_id, host_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.ClusterHostMapping TO :username;
+
+CREATE TABLE ambari.user_roles (role_name VARCHAR(255) NOT NULL, user_id INTEGER NOT NULL, PRIMARY KEY (role_name, user_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.user_roles TO :username;
+
+CREATE TABLE ambari.key_value_store ("key" VARCHAR(255), "value" VARCHAR, PRIMARY KEY ("key"));
+GRANT ALL PRIVILEGES ON TABLE ambari.key_value_store TO :username;
+
+CREATE TABLE ambari.hostconfigmapping (cluster_id BIGINT NOT NULL, host_name VARCHAR(255) NOT NULL, type_name VARCHAR(255) NOT NULL, version_tag VARCHAR(255) NOT NULL, service_name VARCHAR(255), create_timestamp BIGINT NOT NULL, selected INTEGER NOT NULL DEFAULT 0, user_name VARCHAR(255) NOT NULL DEFAULT '_db', PRIMARY KEY (cluster_id, host_name, type_name, create_timestamp));
+GRANT ALL PRIVILEGES ON TABLE ambari.hostconfigmapping TO :username;
+
+CREATE TABLE ambari.metainfo ("metainfo_key" VARCHAR(255), "metainfo_value" VARCHAR, PRIMARY KEY ("metainfo_key"));
+GRANT ALL PRIVILEGES ON TABLE ambari.metainfo TO :username;
+
+CREATE TABLE ambari.ambari_sequences (sequence_name VARCHAR(255) PRIMARY KEY, "value" BIGINT NOT NULL);
+GRANT ALL PRIVILEGES ON TABLE ambari.ambari_sequences TO :username;
+
+CREATE TABLE ambari.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));
+GRANT ALL PRIVILEGES ON TABLE ambari.configgroup TO :username;
+
+CREATE TABLE ambari.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));
+GRANT ALL PRIVILEGES ON TABLE ambari.confgroupclusterconfigmapping TO :username;
+
+CREATE TABLE ambari.configgrouphostmapping (config_group_id BIGINT NOT NULL, host_name VARCHAR(255) NOT NULL, PRIMARY KEY(config_group_id, host_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.configgrouphostmapping TO :username;
+
+CREATE TABLE ambari.requestschedule (schedule_id bigint, cluster_id bigint NOT NULL, description varchar(255), status varchar(255), batch_separation_seconds smallint, batch_toleration_limit smallint, create_user varchar(255), create_timestamp bigint, update_user varchar(255), update_timestamp bigint, minutes varchar(10), hours varchar(10), days_of_month varchar(10), month varchar(10), day_of_week varchar(10), yearToSchedule varchar(10), startTime varchar(50), endTime varchar(50), last_execution_status varchar(255), PRIMARY KEY(schedule_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.requestschedule TO :username;
+
+CREATE TABLE ambari.requestschedulebatchrequest (schedule_id bigint, batch_id bigint, request_id bigint, request_type varchar(255), request_uri varchar(1024), request_body BYTEA, request_status varchar(255), return_code smallint, return_message varchar(20000), PRIMARY KEY(schedule_id, batch_id));
+GRANT ALL PRIVILEGES ON TABLE ambari.requestschedulebatchrequest TO :username;
+
+CREATE TABLE ambari.blueprint (blueprint_name VARCHAR(255) NOT NULL, stack_name VARCHAR(255) NOT NULL, stack_version VARCHAR(255) NOT NULL, PRIMARY KEY(blueprint_name));
+CREATE TABLE ambari.hostgroup (blueprint_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, cardinality VARCHAR(255) NOT NULL, PRIMARY KEY(blueprint_name, name));
+CREATE TABLE ambari.hostgroup_component (blueprint_name VARCHAR(255) NOT NULL, hostgroup_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(blueprint_name, hostgroup_name, name));
+CREATE TABLE ambari.blueprint_configuration (blueprint_name varchar(255) NOT NULL, type_name varchar(255) NOT NULL, config_data varchar(32000) NOT NULL , PRIMARY KEY(blueprint_name, type_name));
+CREATE TABLE ambari.hostgroup_configuration (blueprint_name VARCHAR(255) NOT NULL, hostgroup_name VARCHAR(255) NOT NULL, type_name VARCHAR(255) NOT NULL, config_data TEXT NOT NULL, PRIMARY KEY(blueprint_name, hostgroup_name, type_name));
+GRANT ALL PRIVILEGES ON TABLE ambari.blueprint TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.hostgroup TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.hostgroup_component TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.blueprint_configuration TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.hostgroup_configuration TO :username;
+
+CREATE TABLE ambari.viewmain (view_name VARCHAR(255) NOT NULL, label VARCHAR(255), version VARCHAR(255), archive VARCHAR(255), PRIMARY KEY(view_name));
+CREATE TABLE ambari.viewinstancedata (view_name VARCHAR(255) NOT NULL, view_instance_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, value VARCHAR(2000) NOT NULL, PRIMARY KEY(view_name, view_instance_name, name));
+CREATE TABLE ambari.viewinstance (view_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY(view_name, name));
+CREATE TABLE ambari.viewinstanceproperty (view_name VARCHAR(255) NOT NULL, view_instance_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, value VARCHAR(2000) NOT NULL, PRIMARY KEY(view_name, view_instance_name, name));
+CREATE TABLE ambari.viewparameter (view_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, description VARCHAR(255), required CHAR(1), PRIMARY KEY(view_name, name));
+CREATE TABLE ambari.viewresource (view_name VARCHAR(255) NOT NULL, name VARCHAR(255) NOT NULL, plural_name VARCHAR(255), id_property VARCHAR(255), subResource_names VARCHAR(255), provider VARCHAR(255), service VARCHAR(255), resource VARCHAR(255), PRIMARY KEY(view_name, name));
+GRANT ALL PRIVILEGES ON TABLE ambari.viewmain TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.viewinstancedata TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.viewinstance TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.viewinstanceproperty TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.viewparameter TO :username;
+GRANT ALL PRIVILEGES ON TABLE ambari.viewresource TO :username;
+
+--------altering tables by creating foreign keys----------
+ALTER TABLE ambari.clusterconfig ADD CONSTRAINT FK_clusterconfig_cluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.clusterservices ADD CONSTRAINT FK_clusterservices_cluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.clusterconfigmapping ADD CONSTRAINT clusterconfigmappingcluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.clusterstate ADD CONSTRAINT FK_clusterstate_cluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.hostcomponentdesiredstate ADD CONSTRAINT hstcmponentdesiredstatehstname FOREIGN KEY (host_name) REFERENCES ambari.hosts (host_name);
+ALTER TABLE ambari.hostcomponentdesiredstate ADD CONSTRAINT hstcmpnntdesiredstatecmpnntnme FOREIGN KEY (component_name, cluster_id, service_name) REFERENCES ambari.servicecomponentdesiredstate (component_name, cluster_id, service_name);
+ALTER TABLE ambari.hostcomponentstate ADD CONSTRAINT hstcomponentstatecomponentname FOREIGN KEY (component_name, cluster_id, service_name) REFERENCES ambari.servicecomponentdesiredstate (component_name, cluster_id, service_name);
+ALTER TABLE ambari.hostcomponentstate ADD CONSTRAINT hostcomponentstate_host_name FOREIGN KEY (host_name) REFERENCES ambari.hosts (host_name);
+ALTER TABLE ambari.hoststate ADD CONSTRAINT FK_hoststate_host_name FOREIGN KEY (host_name) REFERENCES ambari.hosts (host_name);
+ALTER TABLE ambari.servicecomponentdesiredstate ADD CONSTRAINT srvccmponentdesiredstatesrvcnm FOREIGN KEY (service_name, cluster_id) REFERENCES ambari.clusterservices (service_name, cluster_id);
+ALTER TABLE ambari.servicedesiredstate ADD CONSTRAINT servicedesiredstateservicename FOREIGN KEY (service_name, cluster_id) REFERENCES ambari.clusterservices (service_name, cluster_id);
+ALTER TABLE ambari.execution_command ADD CONSTRAINT FK_execution_command_task_id FOREIGN KEY (task_id) REFERENCES ambari.host_role_command (task_id);
+ALTER TABLE ambari.host_role_command ADD CONSTRAINT FK_host_role_command_stage_id FOREIGN KEY (stage_id, request_id) REFERENCES ambari.stage (stage_id, request_id);
+ALTER TABLE ambari.host_role_command ADD CONSTRAINT FK_host_role_command_host_name FOREIGN KEY (host_name) REFERENCES ambari.hosts (host_name);
+ALTER TABLE ambari.role_success_criteria ADD CONSTRAINT role_success_criteria_stage_id FOREIGN KEY (stage_id, request_id) REFERENCES ambari.stage (stage_id, request_id);
+ALTER TABLE ambari.stage ADD CONSTRAINT FK_stage_cluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.stage ADD CONSTRAINT FK_stage_request_id FOREIGN KEY (request_id) REFERENCES ambari.request (request_id);
+ALTER TABLE ambari.request ADD CONSTRAINT FK_request_cluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.request ADD CONSTRAINT FK_request_schedule_id FOREIGN KEY (request_schedule_id) REFERENCES ambari.requestschedule (schedule_id);
+ALTER TABLE ambari.ClusterHostMapping ADD CONSTRAINT ClusterHostMapping_cluster_id FOREIGN KEY (host_name) REFERENCES ambari.hosts (host_name);
+ALTER TABLE ambari.ClusterHostMapping ADD CONSTRAINT ClusterHostMapping_host_name FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.user_roles ADD CONSTRAINT FK_user_roles_user_id FOREIGN KEY (user_id) REFERENCES ambari.users (user_id);
+ALTER TABLE ambari.user_roles ADD CONSTRAINT FK_user_roles_role_name FOREIGN KEY (role_name) REFERENCES ambari.roles (role_name);
+ALTER TABLE ambari.hostconfigmapping ADD CONSTRAINT FK_hostconfmapping_cluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.hostconfigmapping ADD CONSTRAINT FK_hostconfmapping_host_name FOREIGN KEY (host_name) REFERENCES ambari.hosts (host_name);
+ALTER TABLE ambari.configgroup ADD CONSTRAINT FK_configgroup_cluster_id FOREIGN KEY (cluster_id) REFERENCES ambari.clusters (cluster_id);
+ALTER TABLE ambari.confgroupclusterconfigmapping ADD CONSTRAINT FK_confg FOREIGN KEY (version_tag, config_type, cluster_id) REFERENCES ambari.clusterconfig (version_tag, type_name, cluster_id);
+ALTER TABLE ambari.confgroupclusterconfigmapping ADD CONSTRAINT FK_cgccm_gid FOREIGN KEY (config_group_id) REFERENCES ambari.configgroup (group_id);
+ALTER TABLE ambari.configgrouphostmapping ADD CONSTRAINT FK_cghm_cgid FOREIGN KEY (config_group_id) REFERENCES ambari.configgroup (group_id);
+ALTER TABLE ambari.configgrouphostmapping ADD CONSTRAINT FK_cghm_hname FOREIGN KEY (host_name) REFERENCES ambari.hosts (host_name);
+ALTER TABLE ambari.requestschedulebatchrequest ADD CONSTRAINT FK_rsbatchrequest_schedule_id FOREIGN KEY (schedule_id) REFERENCES ambari.requestschedule (schedule_id);
+ALTER TABLE ambari.hostgroup ADD CONSTRAINT FK_hg_blueprint_name FOREIGN KEY (blueprint_name) REFERENCES ambari.blueprint(blueprint_name);
+ALTER TABLE ambari.hostgroup_component ADD CONSTRAINT FK_hgc_blueprint_name FOREIGN KEY (blueprint_name, hostgroup_name) REFERENCES ambari.hostgroup (blueprint_name, name);
+ALTER TABLE ambari.blueprint_configuration ADD CONSTRAINT FK_cfg_blueprint_name FOREIGN KEY (blueprint_name) REFERENCES ambari.blueprint(blueprint_name);
+ALTER TABLE ambari.hostgroup_configuration ADD CONSTRAINT FK_hg_cfg_bp_hg_name FOREIGN KEY (blueprint_name, hostgroup_name) REFERENCES ambari.hostgroup (blueprint_name, name);
+ALTER TABLE ambari.requestresourcefilter ADD CONSTRAINT FK_reqresfilter_req_id FOREIGN KEY (request_id) REFERENCES ambari.request (request_id);
+ALTER TABLE ambari.viewparameter ADD CONSTRAINT FK_viewparam_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
+ALTER TABLE ambari.viewresource ADD CONSTRAINT FK_viewres_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
+ALTER TABLE ambari.viewinstance ADD CONSTRAINT FK_viewinst_view_name FOREIGN KEY (view_name) REFERENCES viewmain(view_name);
+ALTER TABLE ambari.viewinstanceproperty ADD CONSTRAINT FK_viewinstprop_view_name FOREIGN KEY (view_name, view_instance_name) REFERENCES viewinstance(view_name, name);
+ALTER TABLE ambari.viewinstancedata ADD CONSTRAINT FK_viewinstdata_view_name FOREIGN KEY (view_name, view_instance_name) REFERENCES viewinstance(view_name, name);
+
+
+---------inserting some data-----------
+BEGIN;
+INSERT INTO ambari.ambari_sequences (sequence_name, "value")
+  SELECT 'cluster_id_seq', 1
+  UNION ALL
+  SELECT 'user_id_seq', 2
+  UNION ALL
+  SELECT 'host_role_command_id_seq', 1
+  union all
+  select 'configgroup_id_seq', 1
+  union all
+  select 'requestschedule_id_seq', 1
+  union all
+  select 'resourcefilter_id_seq', 1;
+
+INSERT INTO ambari.Roles (role_name)
+  SELECT 'admin'
+  UNION ALL
+  SELECT 'user';
+
+INSERT INTO ambari.Users (user_id, user_name, user_password)
+  SELECT 1, 'admin', '538916f8943ec225d97a9a86a2c6ec0818c1cd400e09e03b660fdaaec4af29ddbb6f2b1033b81b00';
+
+INSERT INTO ambari.user_roles (role_name, user_id)
+  SELECT 'admin', 1;
+
+INSERT INTO ambari.metainfo (metainfo_key, metainfo_value)
+  SELECT 'version', '${ambariVersion}';
+COMMIT;
+
+-- Quartz tables
+
+CREATE TABLE ambari.qrtz_job_details
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  JOB_NAME  VARCHAR(200) NOT NULL,
+  JOB_GROUP VARCHAR(200) NOT NULL,
+  DESCRIPTION VARCHAR(250) NULL,
+  JOB_CLASS_NAME   VARCHAR(250) NOT NULL,
+  IS_DURABLE BOOL NOT NULL,
+  IS_NONCONCURRENT BOOL NOT NULL,
+  IS_UPDATE_DATA BOOL NOT NULL,
+  REQUESTS_RECOVERY BOOL NOT NULL,
+  JOB_DATA BYTEA NULL,
+  PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_job_details TO :username;
+
+CREATE TABLE ambari.qrtz_triggers
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  TRIGGER_NAME VARCHAR(200) NOT NULL,
+  TRIGGER_GROUP VARCHAR(200) NOT NULL,
+  JOB_NAME  VARCHAR(200) NOT NULL,
+  JOB_GROUP VARCHAR(200) NOT NULL,
+  DESCRIPTION VARCHAR(250) NULL,
+  NEXT_FIRE_TIME BIGINT NULL,
+  PREV_FIRE_TIME BIGINT NULL,
+  PRIORITY INTEGER NULL,
+  TRIGGER_STATE VARCHAR(16) NOT NULL,
+  TRIGGER_TYPE VARCHAR(8) NOT NULL,
+  START_TIME BIGINT NOT NULL,
+  END_TIME BIGINT NULL,
+  CALENDAR_NAME VARCHAR(200) NULL,
+  MISFIRE_INSTR SMALLINT NULL,
+  JOB_DATA BYTEA NULL,
+  PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+  FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+  REFERENCES ambari.QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_triggers TO :username;
+
+CREATE TABLE ambari.qrtz_simple_triggers
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  TRIGGER_NAME VARCHAR(200) NOT NULL,
+  TRIGGER_GROUP VARCHAR(200) NOT NULL,
+  REPEAT_COUNT BIGINT NOT NULL,
+  REPEAT_INTERVAL BIGINT NOT NULL,
+  TIMES_TRIGGERED BIGINT NOT NULL,
+  PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+  FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+  REFERENCES ambari.QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_simple_triggers TO :username;
+
+CREATE TABLE ambari.qrtz_cron_triggers
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  TRIGGER_NAME VARCHAR(200) NOT NULL,
+  TRIGGER_GROUP VARCHAR(200) NOT NULL,
+  CRON_EXPRESSION VARCHAR(120) NOT NULL,
+  TIME_ZONE_ID VARCHAR(80),
+  PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+  FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+  REFERENCES ambari.QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_cron_triggers TO :username;
+
+CREATE TABLE ambari.qrtz_simprop_triggers
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  TRIGGER_NAME VARCHAR(200) NOT NULL,
+  TRIGGER_GROUP VARCHAR(200) NOT NULL,
+  STR_PROP_1 VARCHAR(512) NULL,
+  STR_PROP_2 VARCHAR(512) NULL,
+  STR_PROP_3 VARCHAR(512) NULL,
+  INT_PROP_1 INT NULL,
+  INT_PROP_2 INT NULL,
+  LONG_PROP_1 BIGINT NULL,
+  LONG_PROP_2 BIGINT NULL,
+  DEC_PROP_1 NUMERIC(13,4) NULL,
+  DEC_PROP_2 NUMERIC(13,4) NULL,
+  BOOL_PROP_1 BOOL NULL,
+  BOOL_PROP_2 BOOL NULL,
+  PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+  FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+  REFERENCES ambari.QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_simprop_triggers TO :username;
+
+CREATE TABLE ambari.qrtz_blob_triggers
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  TRIGGER_NAME VARCHAR(200) NOT NULL,
+  TRIGGER_GROUP VARCHAR(200) NOT NULL,
+  BLOB_DATA BYTEA NULL,
+  PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+  FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+  REFERENCES ambari.QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_blob_triggers TO :username;
+
+CREATE TABLE ambari.qrtz_calendars
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  CALENDAR_NAME  VARCHAR(200) NOT NULL,
+  CALENDAR BYTEA NOT NULL,
+  PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_calendars TO :username;
+
+
+CREATE TABLE ambari.qrtz_paused_trigger_grps
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  TRIGGER_GROUP  VARCHAR(200) NOT NULL,
+  PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_paused_trigger_grps TO :username;
+
+CREATE TABLE ambari.qrtz_fired_triggers
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  ENTRY_ID VARCHAR(95) NOT NULL,
+  TRIGGER_NAME VARCHAR(200) NOT NULL,
+  TRIGGER_GROUP VARCHAR(200) NOT NULL,
+  INSTANCE_NAME VARCHAR(200) NOT NULL,
+  FIRED_TIME BIGINT NOT NULL,
+  SCHED_TIME BIGINT NOT NULL,
+  PRIORITY INTEGER NOT NULL,
+  STATE VARCHAR(16) NOT NULL,
+  JOB_NAME VARCHAR(200) NULL,
+  JOB_GROUP VARCHAR(200) NULL,
+  IS_NONCONCURRENT BOOL NULL,
+  REQUESTS_RECOVERY BOOL NULL,
+  PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_fired_triggers TO :username;
+
+CREATE TABLE ambari.qrtz_scheduler_state
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  INSTANCE_NAME VARCHAR(200) NOT NULL,
+  LAST_CHECKIN_TIME BIGINT NOT NULL,
+  CHECKIN_INTERVAL BIGINT NOT NULL,
+  PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_scheduler_state TO :username;
+
+CREATE TABLE ambari.qrtz_locks
+(
+  SCHED_NAME VARCHAR(120) NOT NULL,
+  LOCK_NAME  VARCHAR(40) NOT NULL,
+  PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+GRANT ALL PRIVILEGES ON TABLE ambari.qrtz_locks TO :username;
+
+create index idx_qrtz_j_req_recovery on ambari.qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY);
+create index idx_qrtz_j_grp on ambari.qrtz_job_details(SCHED_NAME,JOB_GROUP);
+
+create index idx_qrtz_t_j on ambari.qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP);
+create index idx_qrtz_t_jg on ambari.qrtz_triggers(SCHED_NAME,JOB_GROUP);
+create index idx_qrtz_t_c on ambari.qrtz_triggers(SCHED_NAME,CALENDAR_NAME);
+create index idx_qrtz_t_g on ambari.qrtz_triggers(SCHED_NAME,TRIGGER_GROUP);
+create index idx_qrtz_t_state on ambari.qrtz_triggers(SCHED_NAME,TRIGGER_STATE);
+create index idx_qrtz_t_n_state on ambari.qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+create index idx_qrtz_t_n_g_state on ambari.qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+create index idx_qrtz_t_next_fire_time on ambari.qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME);
+create index idx_qrtz_t_nft_st on ambari.qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
+create index idx_qrtz_t_nft_misfire on ambari.qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
+create index idx_qrtz_t_nft_st_misfire on ambari.qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
+create index idx_qrtz_t_nft_st_misfire_grp on ambari.qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
+
+create index idx_qrtz_ft_trig_inst_name on ambari.qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME);
+create index idx_qrtz_ft_inst_job_req_rcvry on ambari.qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
+create index idx_qrtz_ft_j_g on ambari.qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP);
+create index idx_qrtz_ft_jg on ambari.qrtz_fired_triggers(SCHED_NAME,JOB_GROUP);
+create index idx_qrtz_ft_t_g on ambari.qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
+create index idx_qrtz_ft_tg on ambari.qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP);
+
+-- ambari log4j DDL
+
+--------------------------------------------------
+----------initialisation of mapred db-------------
+--------------------------------------------------
+CREATE DATABASE ambarirca;
+\connect ambarirca;
+
+--CREATE ROLE "mapred" LOGIN ENCRYPTED PASSWORD 'mapred';
+CREATE USER "mapred" WITH PASSWORD 'mapred';
+GRANT ALL PRIVILEGES ON DATABASE ambarirca TO "mapred";
+
+------create tables ang grant privileges to db user---------
+CREATE TABLE workflow (
+  workflowId       TEXT, workflowName TEXT,
+  parentWorkflowId TEXT,
+  workflowContext  TEXT, userName TEXT,
+  startTime        BIGINT, lastUpdateTime BIGINT,
+  numJobsTotal     INTEGER, numJobsCompleted INTEGER,
+  inputBytes       BIGINT, outputBytes BIGINT,
+  duration         BIGINT,
+  PRIMARY KEY (workflowId),
+  FOREIGN KEY (parentWorkflowId) REFERENCES workflow (workflowId) ON DELETE CASCADE
+);
+GRANT ALL PRIVILEGES ON TABLE workflow TO "mapred";
+
+CREATE TABLE job (
+  jobId        TEXT, workflowId TEXT, jobName TEXT, workflowEntityName TEXT,
+  userName     TEXT, queue TEXT, acls TEXT, confPath TEXT,
+  submitTime   BIGINT, launchTime BIGINT, finishTime BIGINT,
+  maps         INTEGER, reduces INTEGER, status TEXT, priority TEXT,
+  finishedMaps INTEGER, finishedReduces INTEGER,
+  failedMaps   INTEGER, failedReduces INTEGER,
+  mapsRuntime  BIGINT, reducesRuntime BIGINT,
+  mapCounters  TEXT, reduceCounters TEXT, jobCounters TEXT,
+  inputBytes   BIGINT, outputBytes BIGINT,
+  PRIMARY KEY (jobId),
+  FOREIGN KEY (workflowId) REFERENCES workflow (workflowId) ON DELETE CASCADE
+);
+GRANT ALL PRIVILEGES ON TABLE job TO "mapred";
+
+CREATE TABLE task (
+  taskId        TEXT, jobId TEXT, taskType TEXT, splits TEXT,
+  startTime     BIGINT, finishTime BIGINT, status TEXT, error TEXT, counters TEXT,
+  failedAttempt TEXT,
+  PRIMARY KEY (taskId),
+  FOREIGN KEY (jobId) REFERENCES job (jobId) ON DELETE CASCADE
+);
+GRANT ALL PRIVILEGES ON TABLE task TO "mapred";
+
+CREATE TABLE taskAttempt (
+  taskAttemptId TEXT, taskId TEXT, jobId TEXT, taskType TEXT, taskTracker TEXT,
+  startTime     BIGINT, finishTime BIGINT,
+  mapFinishTime BIGINT, shuffleFinishTime BIGINT, sortFinishTime BIGINT,
+  locality      TEXT, avataar TEXT,
+  status        TEXT, error TEXT, counters TEXT,
+  inputBytes    BIGINT, outputBytes BIGINT,
+  PRIMARY KEY (taskAttemptId),
+  FOREIGN KEY (jobId) REFERENCES job (jobId) ON DELETE CASCADE,
+  FOREIGN KEY (taskId) REFERENCES task (taskId) ON DELETE CASCADE
+);
+GRANT ALL PRIVILEGES ON TABLE taskAttempt TO "mapred";
+
+CREATE TABLE hdfsEvent (
+  timestamp   BIGINT,
+  userName    TEXT,
+  clientIP    TEXT,
+  operation   TEXT,
+  srcPath     TEXT,
+  dstPath     TEXT,
+  permissions TEXT
+);
+GRANT ALL PRIVILEGES ON TABLE hdfsEvent TO "mapred";
+
+CREATE TABLE mapreduceEvent (
+  timestamp   BIGINT,
+  userName    TEXT,
+  clientIP    TEXT,
+  operation   TEXT,
+  target      TEXT,
+  result      TEXT,
+  description TEXT,
+  permissions TEXT
+);
+GRANT ALL PRIVILEGES ON TABLE mapreduceEvent TO "mapred";
+
+CREATE TABLE clusterEvent (
+  timestamp BIGINT,
+  service   TEXT, status TEXT,
+  error     TEXT, data TEXT,
+  host      TEXT, rack TEXT
+);
+GRANT ALL PRIVILEGES ON TABLE clusterEvent TO "mapred";

+ 2 - 2
ambari-server/src/main/resources/Ambari-DDL-Postgres-REMOTE-DROP.sql → ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-DROP.sql

@@ -15,5 +15,5 @@
 -- See the License for the specific language governing permissions and
 -- limitations under the License.
 --
-
-DROP SCHEMA ambari CASCADE;
+DROP DATABASE :dbname;
+DROP DATABASE ambarirca;

+ 0 - 20
ambari-server/src/main/resources/Ambari-DDL-Postgres-REMOTE-CREATE.sql

@@ -1,20 +0,0 @@
---
--- Licensed to the Apache Software Foundation (ASF) under one
--- or more contributor license agreements.  See the NOTICE file
--- distributed with this work for additional information
--- regarding copyright ownership.  The ASF licenses this file
--- to you under the Apache License, Version 2.0 (the
--- "License"); you may not use this file except in compliance
--- with the License.  You may obtain a copy of the License at
---
---     http://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
---
-
-
--- Not used - will be merged with the local DDL later.

+ 0 - 315
ambari-server/src/main/resources/Ambari-DDL.sql

@@ -1,315 +0,0 @@
---
--- Licensed to the Apache Software Foundation (ASF) under one
--- or more contributor license agreements.  See the NOTICE file
--- distributed with this work for additional information
--- regarding copyright ownership.  The ASF licenses this file
--- to you under the Apache License, Version 2.0 (the
--- "License"); you may not use this file except in compliance
--- with the License.  You may obtain a copy of the License at
---
---     http://www.apache.org/licenses/LICENSE-2.0
---
--- Unless required by applicable law or agreed to in writing, software
--- distributed under the License is distributed on an "AS IS" BASIS,
--- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--- See the License for the specific language governing permissions and
--- limitations under the License.
---
-
-DROP SCHEMA IF EXISTS ambari CASCADE;
-
-DROP ROLE IF EXISTS "ambari-server";
-
-CREATE ROLE "ambari-server" LOGIN ENCRYPTED PASSWORD 'bigdata';
-
-CREATE SCHEMA ambari
-  AUTHORIZATION "ambari-server";
-
-COMMENT ON SCHEMA ambari
-  IS 'test schema';
-
-SET search_path TO ambari;
-
-/* Table for storing user information*/
-CREATE TABLE Users
-(
-user_name VARCHAR,
-user_password VARCHAR,
-ldap_user boolean DEFAULT FALSE NOT NULL,
-create_time TIMESTAMP DEFAULT now() NOT NULL,
-PRIMARY KEY(user_name, ldap_user)
-);
-
-/*Table for storing roles list - can be dropped out if list of roles is predefined and limited on upper layer*/
-CREATE TABLE Roles
-(
-role_name VARCHAR PRIMARY KEY
-);
-
-/*Users - Roles mapping table*/
-CREATE TABLE user_roles
-(
-user_name VARCHAR,
-ldap_user boolean default false,
-role_name VARCHAR references Roles(role_name),
-PRIMARY KEY(user_name, ldap_user, role_name),
-FOREIGN KEY(user_name, ldap_user) REFERENCES Users(user_name, ldap_user)
-);
-
-/* Overall clusters table - all created/managed clusters */
-CREATE TABLE Clusters
-(
-cluster_id BIGSERIAL,
-cluster_name VARCHAR(100) UNIQUE NOT NULL,
-desired_cluster_state VARCHAR DEFAULT '' NOT NULL,
-cluster_info VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (cluster_id)
-);
-
-/* All hosts for all clusters */
-CREATE TABLE Hosts
-(
-host_name VARCHAR NOT NULL,
-ipv4 VARCHAR UNIQUE,
-ipv6 VARCHAR UNIQUE,
-total_mem BIGINT DEFAULT '0' NOT NULL,
-cpu_count INTEGER DEFAULT '0' NOT NULL,
-ph_cpu_count INTEGER DEFAULT '0' NOT NULL,
-cpu_info VARCHAR DEFAULT '' NOT NULL,
-os_arch VARCHAR DEFAULT '' NOT NULL,
-os_info VARCHAR DEFAULT '' NOT NULL,
-os_type VARCHAR DEFAULT '' NOT NULL,
-discovery_status VARCHAR DEFAULT '' NOT NULL,
-last_registration_time BIGINT DEFAULT '0' NOT NULL,
-rack_info VARCHAR DEFAULT '/default-rack' NOT NULL,
-host_attributes VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (host_name)
-);
-
-/* Cluster Hosts mapping table */
-CREATE TABLE ClusterHostMapping
-(
-  cluster_id BIGINT references Clusters(cluster_id),
-  host_name VARCHAR references Hosts(host_name),
-  PRIMARY KEY(cluster_id, host_name)
-);
-
-CREATE TABLE ClusterServices
-(
-cluster_id BIGINT NOT NULL references Clusters(cluster_id),
-service_name VARCHAR,
-service_enabled INTEGER DEFAULT '0' NOT NULL,
-PRIMARY KEY (cluster_id,service_name)
-);
-
-/* Configs at a service level */
-/* This will be used in most scenarios for homogenous clusters */
-/* Snapshot is a blob for all properties and their values. There is no separate row for each property */
-/* A special service called AMBARI or GLOBAL can be leveraged for global level configs */
-CREATE TABLE ServiceConfig
-(
-config_version SERIAL /*INTEGER NOT NULL AUTO_INCREMENT*/,
-cluster_id BIGINT NOT NULL,
-service_name VARCHAR NOT NULL,
-config_snapshot VARCHAR DEFAULT '' NOT NULL,
-config_snapshot_time timestamp NOT NULL,
-PRIMARY KEY (config_version),
-FOREIGN KEY (cluster_id, service_name) REFERENCES ClusterServices(cluster_id, service_name)
-);
-
-/* Configs that are overridden at the component level */
-/* Combination of serviceconfig and servicecomponentconfig table 
-    defines the config for a given component. 
-    Absence of an entry implies the component’s configs are same as that of the overall service config */
-CREATE TABLE ServiceComponentConfig
-(
-config_version SERIAL /*INTEGER NOT NULL AUTO_INCREMENT*/,
-cluster_id BIGINT NOT NULL,
-service_name VARCHAR NOT NULL,
-component_name VARCHAR NOT NULL,
-config_snapshot VARCHAR DEFAULT '' NOT NULL,
-config_snapshot_time timestamp NOT NULL,
-PRIMARY KEY (config_version),
-FOREIGN KEY (cluster_id, service_name) REFERENCES ClusterServices(cluster_id, service_name)
-);
-
-/* For overridding configs on a per host level for heterogenous clusters */
-CREATE TABLE ServiceComponentHostConfig
-(
-config_version SERIAL /*INTEGER NOT NULL AUTO_INCREMENT*/,
-cluster_id BIGINT NOT NULL,
-service_name VARCHAR NOT NULL,
-component_name VARCHAR NOT NULL,
-host_name VARCHAR NOT NULL references Hosts(host_name),
-config_snapshot VARCHAR DEFAULT '' NOT NULL,
-config_snapshot_time timestamp NOT NULL,
-PRIMARY KEY (config_version),
-FOREIGN KEY (cluster_id, service_name) REFERENCES ClusterServices(cluster_id, service_name)
-);
-
-CREATE TABLE ServiceDesiredState
-(
-cluster_id BIGINT,
-service_name VARCHAR DEFAULT '' NOT NULL,
-desired_state VARCHAR DEFAULT '' NOT NULL,
-desired_host_role_mapping INTEGER DEFAULT '0' NOT NULL,
-desired_stack_version VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (cluster_id, service_name),
-FOREIGN KEY (cluster_id, service_name) REFERENCES ClusterServices(cluster_id, service_name)
-);
-
-CREATE TABLE HostComponentMapping /*HostRoleMapping*/
-(
-cluster_id BIGINT,
-service_name VARCHAR DEFAULT '' NOT NULL,
-host_component_mapping_id SERIAL /*INTEGER NOT NULL AUTO_INCREMENT*/,
-host_component_mapping_snapshot VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (cluster_id, service_name, host_component_mapping_id),
-FOREIGN KEY (cluster_id, service_name) REFERENCES ClusterServices(cluster_id, service_name)
-);
-
-
-CREATE TABLE ClusterState
-(
-cluster_id BIGINT NOT NULL references Clusters(cluster_id),
-current_cluster_state VARCHAR DEFAULT '' NOT NULL,
-current_stack_version VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (cluster_id)
-);
-
-CREATE TABLE HostState
-(
-/*cluster_id INTEGER references Clusters(cluster_id),*/
-host_name VARCHAR NOT NULL references Hosts(host_name),
-available_mem INTEGER DEFAULT '0' NOT NULL,
-last_heartbeat_time INTEGER DEFAULT '0' NOT NULL,
-time_in_state INTEGER DEFAULT '0' NOT NULL,
-agent_version VARCHAR DEFAULT '' NOT NULL,
-health_status VARCHAR,
-current_state VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (host_name)
-);
-
-
-CREATE TABLE ServiceComponentDesiredState
-(
-cluster_id BIGINT references Clusters(cluster_id),
-service_name VARCHAR DEFAULT '' NOT NULL,
-component_name VARCHAR DEFAULT '' NOT NULL,
-desired_state VARCHAR DEFAULT '' NOT NULL,
-desired_stack_version VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (cluster_id,service_name,component_name),
-FOREIGN KEY (cluster_id, service_name) REFERENCES ClusterServices(cluster_id, service_name)
-);
-
-
-CREATE TABLE HostComponentState
-(
-cluster_id BIGINT,
-service_name VARCHAR DEFAULT '' NOT NULL,
-host_name VARCHAR DEFAULT '' NOT NULL references Hosts(host_name),
-component_name VARCHAR DEFAULT '' NOT NULL,
-current_state VARCHAR DEFAULT '' NOT NULL,
-current_config_version VARCHAR DEFAULT '' NOT NULL,
-current_stack_version VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (cluster_id, service_name, host_name, component_name),
-FOREIGN KEY (cluster_id, service_name, component_name) REFERENCES ServiceComponentDesiredState(cluster_id, service_name, component_name)
-);
-
-CREATE TABLE HostComponentDesiredState
-(
-cluster_id BIGINT,
-service_name VARCHAR DEFAULT '' NOT NULL,
-host_name VARCHAR NOT NULL references Hosts(host_name),
-component_name VARCHAR DEFAULT '' NOT NULL,
-desired_state VARCHAR DEFAULT '' NOT NULL,
-desired_config_version VARCHAR DEFAULT '' NOT NULL, /* desired config version defines a combined version of service/component/node-component config versions */
-desired_stack_version VARCHAR DEFAULT '' NOT NULL,
-PRIMARY KEY (cluster_id,host_name,component_name),
-FOREIGN KEY (cluster_id, service_name, component_name) REFERENCES ServiceComponentDesiredState(cluster_id, service_name, component_name)
-);
-
-CREATE TABLE STAGE
-(
-   cluster_id BIGINT references Clusters(cluster_id),
-   request_id BIGINT DEFAULT '0',
-   stage_id BIGINT DEFAULT '0' NOT NULL,
-   log_info VARCHAR DEFAULT '' NOT NULL,
-   PRIMARY KEY (request_id, stage_id)
-);
-
-CREATE TABLE HOST_ROLE_COMMAND
-(
-   task_id BIGSERIAL NOT NULL,
-   request_id BIGINT NOT NULL,
-   stage_id BIGINT NOT NULL,
-   host_name VARCHAR DEFAULT '' NOT NULL references Hosts(host_name),
-   role VARCHAR DEFAULT '' NOT NULL,
-   command VARCHAR DEFAULT '' NOT NULL,
-   event VARCHAR DEFAULT '' NOT NULL, /** Refer to ServiceComponentHostEventType.java */
-   exitCode INTEGER DEFAULT '0' NOT NULL,
-   status VARCHAR DEFAULT '' NOT NULL, /** PENDING, QUEUED, IN_PROGRESS, COMPLETED, FAILED, TIMEDOUT, ABORTED **/
-   std_error VARCHAR DEFAULT '' NOT NULL,
-   std_out VARCHAR DEFAULT '' NOT NULL,
-   start_time BIGINT DEFAULT -1 NOT NULL,
-   last_attempt_time BIGINT DEFAULT -1 NOT NULL,
-   attempt_count SMALLINT DEFAULT 0 NOT NULL,
-   PRIMARY KEY (task_id),
-   FOREIGN KEY (request_id, stage_id) REFERENCES STAGE(request_id, stage_id)
-);
-
-CREATE TABLE EXECUTION_COMMAND
-(
-   task_id BIGINT DEFAULT '0' NOT NULL references HOST_ROLE_COMMAND(task_id),
-   command VARCHAR NOT NULL, /** Serialized ExecutionCommand **/
-   PRIMARY KEY(task_id)
-);
-
-
-CREATE TABLE ROLE_SUCCESS_CRITERIA
-(
-   request_id BIGINT NOT NULL,
-   stage_id BIGINT NOT NULL,
-   role VARCHAR DEFAULT '' NOT NULL,
-   success_factor FLOAT DEFAULT 1,
-   PRIMARY KEY(role, request_id, stage_id),
-   FOREIGN KEY (request_id, stage_id) REFERENCES STAGE(request_id, stage_id)
-);
-
---CREATE TABLE ActionStatus 
---(
---cluster_id INTEGER references Clusters(cluster_id),
---host_name VARCHAR DEFAULT '' NOT NULL references Hosts(host_name),
---role VARCHAR DEFAULT '' NOT NULL,
---request_id INTEGER DEFAULT '0' NOT NULL,
---stage_id INTEGER DEFAULT '0' NOT NULL,
---event VARCHAR DEFAULT '' NOT NULL,
---task_id INTEGER DEFAULT '0' NOT NULL,
---status VARCHAR DEFAULT '' NOT NULL, /* PENDING, QUEUED, COMPLETED, FAILED,, ABORTED */ 
---log_info VARCHAR DEFAULT '' NOT NULL,
---continue_criteria bytea /*BLOB*/ DEFAULT '' NOT NULL, /* Define continuation criteria for moving to next stage */
---PRIMARY KEY (cluster_id, host_name, role, request_id, stage_id)
---);
-
-
-GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA ambari TO "ambari-server";
-GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA ambari TO "ambari-server";
-
-BEGIN;
-
-insert into Roles(role_name) 
-select 'admin'
-union all
-select 'user';
-
-insert into Users(user_name, user_password)
-select 'administrator','538916f8943ec225d97a9a86a2c6ec0818c1cd400e09e03b660fdaaec4af29ddbb6f2b1033b81b00'
-union all
-select 'test','d2f5da28bf8353e836fbae0a7f586b9cbda03f590910998957383371fbacba7e4088394991305ef8';
-
-insert into user_roles(user_name,role_name)
-select 'test','user'
-union all
-select 'administrator','admin';
-
-COMMIT;

+ 2 - 2
ambari-server/src/test/python/TestAmbariServer.py

@@ -2102,7 +2102,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
   def test_prompt_db_properties_oracle_sname(self, gyni_mock, gvsi_mock, rp_mock, smk_mock):
     ambari_server.PROMPT_DATABASE_OPTIONS = True
     gyni_mock.return_value = True
-    list_of_return_values = ["ambari-server", "ambari", "1", "1521", "localhost", "2"]
+    list_of_return_values = ["ambari-server", "ambari", "1", "1521", "localhost", "3"]
 
     def side_effect(*args, **kwargs):
       return list_of_return_values.pop()
@@ -2128,7 +2128,7 @@ MIIFHjCCAwYCCQDpHKOBI+Lt0zANBgkqhkiG9w0BAQUFADBRMQswCQYDVQQGEwJV
   def test_prompt_db_properties_oracle_sid(self, gyni_mock, gvsi_mock, rp_mock, smk_mock):
     ambari_server.PROMPT_DATABASE_OPTIONS = True
     gyni_mock.return_value = True
-    list_of_return_values = ["ambari-server", "ambari", "2", "1521", "localhost", "2"]
+    list_of_return_values = ["ambari-server", "ambari", "2", "1521", "localhost", "3"]
 
     def side_effect(*args, **kwargs):
       return list_of_return_values.pop()