Update containers to CentOS Stream 8
[barometer.git] / puppet-barometer / manifests / db.pp
1 # == Class: barometer::db
2 #
3 #  Configure the barometer database
4 #
5 # === Parameters
6 #
7 # [*database_connection*]
8 #   (Optional) Url used to connect to database.
9 #   Defaults to 'sqlite:////var/lib/barometer/barometer.sqlite'.
10 #
11 # [*database_idle_timeout*]
12 #   (Optional) Timeout when db connections should be reaped.
13 #   Defaults to $::os_service_default
14 #
15 # [*database_db_max_retries*]
16 #   (optional) Maximum retries in case of connection error or deadlock error
17 #   before error is raised. Set to -1 to specify an infinite retry count.
18 #   Defaults to $::os_service_default
19 #
20 # [*database_max_retries*]
21 #   (Optional) Maximum number of database connection retries during startup.
22 #   Setting -1 implies an infinite retry count.
23 #   Defaults to $::os_service_default
24 #
25 # [*database_retry_interval*]
26 #   (Optional) Interval between retries of opening a database connection.
27 #   Defaults to $::os_service_default
28 #
29 # [*database_min_pool_size*]
30 #   (Optional) Minimum number of SQL connections to keep open in a pool.
31 #   Defaults to $::os_service_default
32 #
33 # [*database_max_pool_size*]
34 #   (Optional)Maximum number of SQL connections to keep open in a pool.
35 #   Defaults to $::os_service_default
36 #
37 # [*database_max_overflow*]
38 #   (Optional) If set, use this value for max_overflow with sqlalchemy.
39 #   Defaults to $::os_service_default
40 #
41 class barometer::db (
42   $database_connection     = 'sqlite:////var/lib/barometer/barometer.sqlite',
43   $database_idle_timeout   = $::os_service_default,
44   $database_min_pool_size  = $::os_service_default,
45   $database_max_pool_size  = $::os_service_default,
46   $database_db_max_retries = $::os_service_default,
47   $database_max_retries    = $::os_service_default,
48   $database_retry_interval = $::os_service_default,
49   $database_max_overflow   = $::os_service_default,
50 ) {
51
52   validate_re($database_connection,
53     '^(sqlite|mysql(\+pymysql)?|postgresql):\/\/(\S+:\S+@\S+\/\S+)?')
54
55   oslo::db { 'barometer_config':
56     connection     => $database_connection,
57     idle_timeout   => $database_idle_timeout,
58     min_pool_size  => $database_min_pool_size,
59     db_max_retries => $database_db_max_retries,
60     max_retries    => $database_max_retries,
61     retry_interval => $database_retry_interval,
62     max_pool_size  => $database_max_pool_size,
63     max_overflow   => $database_max_overflow,
64   }
65 }