NCM::Component::postgresql

NAME

postgresql : NCM component to manage PostgreSQL configuration.

DESCRIPTION

This component allows to manage configuration of PostgreSQL. It’s very basic in functionality (originally developed for dcache usage).

DESCRIPTION

The component to configure postgresql databases

public methods

  • create_postgresql_config

Create main or hba config via textrender. Returns undef on failure, changed state otherwise. The data hash is either %MAIN_CONFIG or %HBA_CONFIG; or the pg_alter hashref (see pg_alter method).

  • fetch

Get $path from $config, if it does not exists, return $default. If $default is not defined, use empty string as default.

If $path is a relative path, it is assumed relative from $self->prefix.

  • get_version

Return version instance v$major.$minor.$remainder version information (from postmaster --version)

Return undef in case of problem.

  • initdb

Initialise the database. End result is a stopped initialised database.

Returns undef on failure.

  • prepare_service

Perform installation sanity check, and generates the pgsql sysconfig entry.

Returns undef on failure, the changed state of the pgsql sysconfig file otherwise

  • whoami

Return a hashref with configuration related data to indentify the service to use

  • service

Service instance to use

  • version

Return value from version method

  • pg

A hashref with postgresql basic configuration data, required to start the database.

  • dir

The database base directory

  • data

The database ‘data’ subdirectory

  • port

The database port

  • log

The database startup log

  • engine

Location of service binaries

  • suffix

Version related suffix (or empty string if none is required). E.g. ‘-9.2’, part of e.g. default servicename, pg_engine, …

  • exesuffix

Version related suffix for certain executables, like ‘92’ in ‘postgresql92-setup’.

  • defaultname

The default service name

  • servicename

The actual servicename

  • service

The NCM::Component::Postgresql::Service instance

  • commands

The NCM::Component::Postgresql::Commands instance

Return hashref or undef on failure. No errors are logged

  • sanity_check

Run some additional sanity checks, return undef on failure.

  • recovery_configuration

Handle recovery file creation

Returns undef on failure, changed recovery state otherwise.

  • start_postgres

Try to start postgres service, the cautious way.

Return undef on failure, SUCCESS otherwise.

  • pg_alter

Process roles and databases. Returns undef on failure.

The main purpose is to initialise postgresql.

  • roles

$roles_tree is the roles configuration hashref (via config->getTree(prefix/roles)).

Roles and only added and modified, never removed.

Return undef on failure.

  • databases

$dbs_tree is the databases configuration hashref (via config->getTree(prefix/databases)).

Databases are only created, never modified or removed.

Return undef on failure.

Operation order is

  • create database

  • initialise with installfile

  • create lang

  • apply langfile (if lang defined)

  • Configure

component Configure method