From 30d6d4c10257ca5b111c5f7a4106bae1b5ef9144 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Tue, 14 Nov 2023 21:36:43 +0900 Subject: [PATCH] sqlalchemy: Ensure backend package is installed Some of the backends supported by sqlalchemy (eg mysql + pymysql) require additional packages. This ensures the required packages are installed using the oslo::db defined type. Change-Id: I7fc4cea95a0a7ecba7def9db4f01c16ef1cfa2f3 --- manifests/management/sqlalchemy.pp | 10 ++++++++++ .../notes/sqlalchemy-package-3ac8b214e19bb380.yaml | 6 ++++++ spec/classes/zaqar_management_sqlalchemy_spec.rb | 4 ++++ 3 files changed, 20 insertions(+) create mode 100644 releasenotes/notes/sqlalchemy-package-3ac8b214e19bb380.yaml diff --git a/manifests/management/sqlalchemy.pp b/manifests/management/sqlalchemy.pp index 7cd6d19..816980e 100644 --- a/manifests/management/sqlalchemy.pp +++ b/manifests/management/sqlalchemy.pp @@ -3,8 +3,13 @@ # [*uri*] # SQLAlchemy Connection URI. Required. # +# [*package_ensure*] +# (Optional) Ensure state for package. +# Defaults to present. +# class zaqar::management::sqlalchemy( $uri, + $package_ensure = 'present', ) { include zaqar::deps @@ -13,4 +18,9 @@ class zaqar::management::sqlalchemy( 'drivers:management_store:sqlalchemy/uri': value => $uri, secret => true; } + oslo::db { 'zaqar_config': + connection => $uri, + backend_package_ensure => $package_ensure, + manage_config => false, + } } diff --git a/releasenotes/notes/sqlalchemy-package-3ac8b214e19bb380.yaml b/releasenotes/notes/sqlalchemy-package-3ac8b214e19bb380.yaml new file mode 100644 index 0000000..4592ecd --- /dev/null +++ b/releasenotes/notes/sqlalchemy-package-3ac8b214e19bb380.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The ``zaqar::management::sqlalchemy`` class now ensures the dependent + library packages such as PyMySQL is installed. The package's state can be + customized using the new ``package_ensure`` parameter. diff --git a/spec/classes/zaqar_management_sqlalchemy_spec.rb b/spec/classes/zaqar_management_sqlalchemy_spec.rb index e27846d..ecea5ef 100644 --- a/spec/classes/zaqar_management_sqlalchemy_spec.rb +++ b/spec/classes/zaqar_management_sqlalchemy_spec.rb @@ -30,6 +30,10 @@ describe 'zaqar::management::sqlalchemy' do is_expected.to contain_zaqar_config('drivers:management_store:sqlalchemy/uri').with( :value => 'mysql://user:pass@127.0.0.1/zaqar', ) + is_expected.to contain_oslo__db('zaqar_config').with( + :connection => 'mysql://user:pass@127.0.0.1/zaqar', + :backend_package_ensure => 'present' + ) end end