Пример #1
0
    def __init__(self, options, properties, storage_type):
        super(PGConfig, self).__init__(options, properties, storage_type)

        # Init the database configuration data here, if any
        self.dbms = "postgres"
        self.dbms_full_name = "PostgreSQL"
        self.driver_class_name = "org.postgresql.Driver"
        self.driver_file_name = "postgresql-jdbc.jar"

        self.database_storage_name = "Database"

        # PostgreSQL seems to require additional schema coordinates
        self.postgres_schema = DBMSConfig._init_member_with_prop_default(
            options, "postgres_schema", properties, JDBC_POSTGRES_SCHEMA_PROPERTY, self.database_name
        )
        self.database_port = DBMSConfig._init_member_with_prop_default(
            options, "database_port", properties, JDBC_PORT_PROPERTY, "5432"
        )

        self.database_url_pattern = "jdbc:postgresql://{0}:{1}/{2}"
        self.database_url_pattern_alt = "jdbc:postgresql://{0}:{1}/{2}"

        self.JDBC_DRIVER_INSTALL_MSG = (
            "Before starting Ambari Server, "
            "you must copy the {0} JDBC driver JAR file to {1}.".format(
                self.dbms_full_name, configDefaults.JAVA_SHARE_PATH
            )
        )

        self._is_user_changed = False

        if self.persistence_type == STORAGE_TYPE_LOCAL:
            PGConfig.PG_STATUS_RUNNING = get_postgre_running_status(OS_TYPE)
            PGConfig.PG_HBA_DIR = get_postgre_hba_dir(OS_FAMILY)

            PGConfig.PG_HBA_CONF_FILE = os.path.join(PGConfig.PG_HBA_DIR, "pg_hba.conf")
            PGConfig.PG_HBA_CONF_FILE_BACKUP = os.path.join(PGConfig.PG_HBA_DIR, "pg_hba_bak.conf.old")
            PGConfig.POSTGRESQL_CONF_FILE = os.path.join(PGConfig.PG_HBA_DIR, "postgresql.conf")

            postgres_init_file_default = PGConfig.POSTGRES_EMBEDDED_INIT_FILE
            postgres_drop_file_default = PGConfig.POSTGRES_EMBEDDED_DROP_FILE
        else:
            postgres_init_file_default = PGConfig.POSTGRES_INIT_FILE
            postgres_drop_file_default = PGConfig.POSTGRES_DROP_FILE
        self.init_script_file = DBMSConfig._init_member_with_default(
            options, "init_script_file", postgres_init_file_default
        )
        self.drop_tables_script_file = DBMSConfig._init_member_with_default(
            options, "drop_script_file", postgres_drop_file_default
        )
        self.client_tool_usage_pattern = (
            "su -postgres --command=psql -f {0} -v username='******' -v password=\"'{2}'\""
        )
Пример #2
0
    def __init__(self, options, properties, storage_type):
        super(PGConfig, self).__init__(options, properties, storage_type)

        #Init the database configuration data here, if any
        self.dbms = "postgres"
        self.dbms_full_name = "PostgreSQL"
        self.driver_class_name = "org.postgresql.Driver"
        self.driver_file_name = "postgresql-jdbc.jar"

        self.database_storage_name = "Database"

        # PostgreSQL seems to require additional schema coordinates
        self.postgres_schema = DBMSConfig._init_member_with_prop_default(
            options, "postgres_schema", properties,
            JDBC_POSTGRES_SCHEMA_PROPERTY, self.database_name)
        self.database_port = DBMSConfig._init_member_with_prop_default(
            options, "database_port", properties, JDBC_PORT_PROPERTY, "5432")

        self.database_url_pattern = "jdbc:postgresql://{0}:{1}/{2}"
        self.database_url_pattern_alt = "jdbc:postgresql://{0}:{1}/{2}"

        self.JDBC_DRIVER_INSTALL_MSG = 'Before starting Ambari Server, ' \
                                       'you must copy the {0} JDBC driver JAR file to {1}.'.format(
            self.dbms_full_name, configDefaults.JAVA_SHARE_PATH)

        self._is_user_changed = False

        if self.persistence_type == STORAGE_TYPE_LOCAL:
            PGConfig.PG_STATUS_RUNNING = get_postgre_running_status()
            PGConfig.PG_HBA_DIR = get_postgre_hba_dir(OS_FAMILY)

            PGConfig.PG_HBA_CONF_FILE = os.path.join(PGConfig.PG_HBA_DIR,
                                                     "pg_hba.conf")
            PGConfig.PG_HBA_CONF_FILE_BACKUP = os.path.join(
                PGConfig.PG_HBA_DIR, "pg_hba_bak.conf.old")
            PGConfig.POSTGRESQL_CONF_FILE = os.path.join(
                PGConfig.PG_HBA_DIR, "postgresql.conf")

            postgres_init_file_default = PGConfig.POSTGRES_EMBEDDED_INIT_FILE
            postgres_drop_file_default = PGConfig.POSTGRES_EMBEDDED_DROP_FILE
        else:
            postgres_init_file_default = PGConfig.POSTGRES_INIT_FILE
            postgres_drop_file_default = PGConfig.POSTGRES_DROP_FILE
        self.init_script_file = DBMSConfig._init_member_with_default(
            options, "init_script_file", postgres_init_file_default)
        self.drop_tables_script_file = DBMSConfig._init_member_with_default(
            options, "drop_script_file", postgres_drop_file_default)
        self.client_tool_usage_pattern = 'su -postgres --command=psql -f {0} -v username=\'"{1}"\' -v password="******"'