def __init__(self, options, properties, storage_type):
    self.dbPropKeys = DbPropKeys(
      JDBC_DATABASE_PROPERTY,
      JDBC_DRIVER_PROPERTY,
      JDBC_HOSTNAME_PROPERTY,
      JDBC_PORT_PROPERTY,
      JDBC_DATABASE_NAME_PROPERTY,
      JDBC_URL_PROPERTY)
    self.dbAuthKeys = MSSQLAuthenticationKeys(
      JDBC_USE_INTEGRATED_AUTH_PROPERTY,
      JDBC_USER_NAME_PROPERTY,
      JDBC_PASSWORD_PROPERTY,
      JDBC_RCA_PASSWORD_ALIAS,
      JDBC_PASSWORD_FILENAME
    )

    super(MSSQLAmbariDBConfig, self).__init__(options, properties, storage_type)

    if self.database_name is None or self.database_name is "":
      self.database_name = AMBARI_DATABASE_NAME

    self.persistence_property = PERSISTENCE_TYPE_PROPERTY

    self.env_var_db_name ='AMBARIDBNAME'
    self.env_var_db_log_name = 'AMBARIDBLOGNAME'

    # The values from options supersede the values from properties
    self.init_script_file = compress_backslashes(DBMSConfig._init_member_with_default(options, "init_db_script_file",
        "resources" + os.path.sep + "Ambari-DDL-SQLServer-CREATE.sql"))
    self.drop_tables_script_file = compress_backslashes(DBMSConfig._init_member_with_default(options, "cleanup_db_script_file",
        "resources" + os.path.sep + "Ambari-DDL-SQLServer-DROP.sql"))
  def __init__(self, options, properties, storage_type):
    self.dbPropKeys = DbPropKeys(
      JDBC_DATABASE_PROPERTY,
      JDBC_DRIVER_PROPERTY,
      JDBC_HOSTNAME_PROPERTY,
      JDBC_PORT_PROPERTY,
      JDBC_DATABASE_NAME_PROPERTY,
      JDBC_URL_PROPERTY)
    self.dbAuthKeys = SqlServerAuthenticationKeys(
      JDBC_USE_INTEGRATED_AUTH_PROPERTY,
      JDBC_USER_NAME_PROPERTY,
      JDBC_PASSWORD_PROPERTY,
      JDBC_RCA_PASSWORD_ALIAS,
      JDBC_PASSWORD_FILENAME
    )

    super(SQLServerAmbariDBConfig, self).__init__(options, properties, storage_type)

    if self.database_name is None or self.database_name is "":
      self.database_name = AMBARI_DATABASE_NAME

    self.persistence_property = PERSISTENCE_TYPE_PROPERTY

    self.env_var_db_name ='AMBARIDBNAME'
    self.env_var_db_log_name = 'AMBARIDBLOGNAME'
    self.env_var_db_owner = 'AMBARIDBOWNER'

    # The values from options supersede the values from properties
    self.init_script_file = compress_backslashes(DBMSConfig._init_member_with_default(options, "init_db_script_file",
        "resources" + os.path.sep + "Ambari-DDL-SQLServer-CREATE.sql"))
    self.drop_tables_script_file = compress_backslashes(DBMSConfig._init_member_with_default(options, "cleanup_db_script_file",
        "resources" + os.path.sep + "Ambari-DDL-SQLServer-DROP.sql"))
    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}'\""
        )
    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="******"'
Beispiel #5
0
    def __init__(self, options, properties, storage_type):
        super(SQLServerConfig, self).__init__(options, properties,
                                              storage_type)
        """
    #Just load the defaults. The derived classes will be able to modify them later
    """
        self.dbms = DATABASE_DBMS_SQLSERVER
        self.driver_class_name = DATABASE_DRIVER_NAME_SQLSERVER

        self.JDBC_DRIVER_INSTALL_MSG = 'Before starting Ambari Server, you must install the SQL Server JDBC driver.'

        # The values from options supersede the values from properties
        self.database_host = DBMSConfig._init_member_with_prop_default(
            options, "database_host", properties, self.dbPropKeys.server_key,
            "")
        try:
            if not self.database_host:
                self.database_host = options.default_database_host
            else:
                self.database_host = compress_backslashes(self.database_host)
        except:
            self.database_host = DATABASE_SERVER_SQLSERVER_DEFAULT
            pass
        self.database_port = DBMSConfig._init_member_with_prop_default(
            options, "database_port", properties, self.dbPropKeys.port_key,
            "1433")
        self.database_name = DBMSConfig._init_member_with_prop_default(
            options, "database_name", properties, self.dbPropKeys.db_name_key,
            configDefaults.DEFAULT_DB_NAME)

        self.use_windows_authentication = cbool(
            DBMSConfig._init_member_with_prop_default(
                options, "database_windows_auth", properties,
                self.dbAuthKeys.integrated_auth_key, False))
        self.database_username = DBMSConfig._init_member_with_prop_default(
            options, "database_username", properties,
            self.dbAuthKeys.user_name_key, DEFAULT_USERNAME)
        self.database_password = DBMSConfig._init_member_with_default(
            options, "database_password", "")
        if not self.database_password:
            self.database_password = DBMSConfig._read_password_from_properties(
                properties)

        self.database_url = self._build_sql_server_connection_string()

        self.persistence_property = None

        self.env_var_db_name = ""
        self.env_var_db_log_name = ""
        self.env_var_db_owner = ""

        self.init_script_file = ""
        self.drop_tables_script_file = ""
  def __init__(self, options, properties, storage_type):
    super(SQLServerConfig, self).__init__(options, properties, storage_type)

    """
    #Just load the defaults. The derived classes will be able to modify them later
    """
    self.dbms = DATABASE_DBMS_SQLSERVER
    self.driver_class_name = DATABASE_DRIVER_NAME_SQLSERVER

    self.JDBC_DRIVER_INSTALL_MSG = 'Before starting Ambari Server, you must install the SQL Server JDBC driver.'

    # The values from options supersede the values from properties
    self.database_host = DBMSConfig._init_member_with_prop_default(options, "database_host", properties, self.dbPropKeys.server_key, "")
    try:
      if not self.database_host:
        self.database_host = options.default_database_host
      else:
        self.database_host = compress_backslashes(self.database_host)
    except:
      self.database_host = DATABASE_SERVER_SQLSERVER_DEFAULT
      pass
    self.database_port = DBMSConfig._init_member_with_prop_default(options, "database_port",
                                                                   properties, self.dbPropKeys.port_key, "1433")
    self.database_name = DBMSConfig._init_member_with_prop_default(options, "database_name",
                                                                   properties, self.dbPropKeys.db_name_key, configDefaults.DEFAULT_DB_NAME)

    self.use_windows_authentication = cbool(DBMSConfig._init_member_with_prop_default(options, "database_windows_auth",
        properties, self.dbAuthKeys.integrated_auth_key, False))
    self.database_username = DBMSConfig._init_member_with_prop_default(options, "database_username",
                                                                       properties, self.dbAuthKeys.user_name_key, DEFAULT_USERNAME)
    self.database_password = DBMSConfig._init_member_with_default(options, "database_password", "")
    if not self.database_password:
      self.database_password = DBMSConfig._read_password_from_properties(properties)

    self.database_url = self._build_sql_server_connection_string()

    self.persistence_property = None

    self.env_var_db_name = ""
    self.env_var_db_log_name = ""
    self.env_var_db_owner = ""

    self.init_script_file = ""
    self.drop_tables_script_file = ""