From dd2b63c6f6336a870dd39756ef3d9e0224f96b45 Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Fri, 19 Jan 2018 15:08:50 +0100 Subject: [PATCH] online_data_migrations: allow passing command line params to migrations The existing extra_params only works for generic ironic-dbsync arguments (like --config-file), but not for arguments specific to migrations (like --max-count). Change-Id: I693738c8b4f7b99082fca56137af6cbe24c06213 Related-Bug: #1690185 --- manifests/db/online_data_migrations.pp | 11 +++++++++-- .../notes/migration-params-f9ec055f4ab5e98d.yaml | 7 +++++++ spec/classes/ironic_db_online_data_migrations_spec.rb | 7 ++++--- 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 releasenotes/notes/migration-params-f9ec055f4ab5e98d.yaml diff --git a/manifests/db/online_data_migrations.pp b/manifests/db/online_data_migrations.pp index cab14b37..7b6542ad 100644 --- a/manifests/db/online_data_migrations.pp +++ b/manifests/db/online_data_migrations.pp @@ -8,15 +8,22 @@ # to the ironic-dbsync command. # Defaults to undef # +# [*migration_params*] +# (optional) String of extra command line parameters to pass to migrations. +# Unlike extra_params, these apply to migrations themselves, not to the +# ironic-dbsync command. +# Defaults to undef +# class ironic::db::online_data_migrations( - $extra_params = undef, + $extra_params = undef, + $migration_params = undef, ) { include ::ironic::deps include ::ironic::params exec { 'ironic-db-online-data-migrations': - command => "${::ironic::params::dbsync_command} ${extra_params} online_data_migrations", + command => "${::ironic::params::dbsync_command} ${extra_params} online_data_migrations ${migration_params}", path => '/usr/bin', user => 'ironic', refreshonly => true, diff --git a/releasenotes/notes/migration-params-f9ec055f4ab5e98d.yaml b/releasenotes/notes/migration-params-f9ec055f4ab5e98d.yaml new file mode 100644 index 00000000..8af24f61 --- /dev/null +++ b/releasenotes/notes/migration-params-f9ec055f4ab5e98d.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + Add new parameter ``ironic::db::online_data_migrations::migration_params`` + to allow passing arguments to migration themselves (``extra_params`` passes + arguments to the ``ironic-dbsync`` command itself and cannot be used to + tune migrations). diff --git a/spec/classes/ironic_db_online_data_migrations_spec.rb b/spec/classes/ironic_db_online_data_migrations_spec.rb index f01b7a06..8f8591f4 100644 --- a/spec/classes/ironic_db_online_data_migrations_spec.rb +++ b/spec/classes/ironic_db_online_data_migrations_spec.rb @@ -6,7 +6,7 @@ describe 'ironic::db::online_data_migrations' do it 'runs ironic-db-sync' do is_expected.to contain_exec('ironic-db-online-data-migrations').with( - :command => 'ironic-dbsync --config-file /etc/ironic/ironic.conf online_data_migrations', + :command => 'ironic-dbsync --config-file /etc/ironic/ironic.conf online_data_migrations ', :path => '/usr/bin', :user => 'ironic', :refreshonly => 'true', @@ -24,13 +24,14 @@ describe 'ironic::db::online_data_migrations' do describe "overriding extra_params" do let :params do { - :extra_params => '--config-file /etc/ironic/ironic_01.conf', + :extra_params => '--config-file /etc/ironic/ironic_01.conf', + :migration_params => '--max-count 100', } end it { is_expected.to contain_exec('ironic-db-online-data-migrations').with( - :command => 'ironic-dbsync --config-file /etc/ironic/ironic.conf --config-file /etc/ironic/ironic_01.conf online_data_migrations', + :command => 'ironic-dbsync --config-file /etc/ironic/ironic.conf --config-file /etc/ironic/ironic_01.conf online_data_migrations --max-count 100', :path => '/usr/bin', :user => 'ironic', :refreshonly => 'true',