├── .gitignore ├── .gitreview ├── .pdkignore ├── .zuul.yaml ├── CHANGELOG.md ├── CONTRIBUTING.rst ├── Gemfile ├── LICENSE ├── README.md ├── Rakefile ├── bindep.txt ├── doc └── requirements.txt ├── lib └── puppet │ ├── provider │ ├── manila.rb │ ├── manila_api_paste_ini │ │ └── ini_setting.rb │ ├── manila_api_uwsgi_config │ │ └── ini_setting.rb │ ├── manila_config │ │ └── openstackconfig.rb │ ├── manila_rootwrap_config │ │ └── ini_setting.rb │ └── manila_type │ │ └── openstack.rb │ └── type │ ├── manila_api_paste_ini.rb │ ├── manila_api_uwsgi_config.rb │ ├── manila_config.rb │ ├── manila_rootwrap_config.rb │ └── manila_type.rb ├── manifests ├── api.pp ├── backend │ ├── cephfs.pp │ ├── dellemc_isilon.pp │ ├── dellemc_powermax.pp │ ├── dellemc_unity.pp │ ├── dellemc_vnx.pp │ ├── flashblade.pp │ ├── ganesha.pp │ ├── generic.pp │ ├── glusterfs.pp │ ├── glusternative.pp │ ├── glusternfs.pp │ ├── hitachi_hnas.pp │ ├── lvm.pp │ ├── netapp.pp │ └── service_instance.pp ├── backends.pp ├── client.pp ├── compute │ └── nova.pp ├── config.pp ├── coordination.pp ├── cors.pp ├── cron │ └── db_purge.pp ├── data.pp ├── data │ └── backup │ │ └── nfs.pp ├── db.pp ├── db │ ├── mysql.pp │ ├── postgresql.pp │ └── sync.pp ├── deps.pp ├── ganesha.pp ├── healthcheck.pp ├── image │ └── glance.pp ├── init.pp ├── keystone │ ├── auth.pp │ └── authtoken.pp ├── logging.pp ├── network │ ├── neutron.pp │ ├── neutron_network.pp │ ├── neutron_single_network.pp │ └── standalone.pp ├── params.pp ├── policy.pp ├── quota.pp ├── reports.pp ├── scheduler.pp ├── scheduler │ └── filter.pp ├── setup_test_volume.pp ├── share.pp ├── volume │ └── cinder.pp └── wsgi │ ├── apache.pp │ └── uwsgi.pp ├── metadata.json ├── releasenotes ├── notes │ ├── Add-cephfs_volume_mode-parameter-8f6bf0eb5b6fc425.yaml │ ├── add-cephfs_ganesha_export_ips-parameter-e13d48ae6969bba3.yaml │ ├── add-cephfsnative-3126f053d9618a3d.yaml │ ├── add-flashblade-66b88affa066ad31.yaml │ ├── add-hitachihnas-3925789fa9c30ab5.yaml │ ├── add-log_file-for-logging-9ad61310c2a6c973.yaml │ ├── add-pool_timeout-option-for-db-931acdebaa940b48.yaml │ ├── add-replica-quotas-9d838dc338d4cfce.yaml │ ├── add-share-backend-availability-zone-parameters-1bcf6b1066dc82cf.yaml │ ├── add-use_journal-option-for-logging-b646bbb366ef8438.yaml │ ├── add_db_max_retries-0rt56db43fderty6.yaml │ ├── add_db_sync_timeout-b83dcd8a9c6f0b4c.yaml │ ├── add_host_parameter-1a16fb834cc3ff98.yaml │ ├── add_lvm_backend-61200603bcb4139e.yaml │ ├── add_messaging_default_parameters-3a3498137813a8d6.yaml │ ├── add_messaging_notification_parameters-71a4983f237e3199.yaml │ ├── add_mysql_enable_ndb-option-b963ed39971e15fc.yaml │ ├── add_network_plugin_addr_family_parameters-7cca69252e71083f.yaml │ ├── add_oslo_amqp_parameters-aeceadad34451e8a.yaml │ ├── add_rabbit_kombu_options-a3b52f3aec9b3a48.yaml │ ├── add_service_workers_option-1c0728975b024eac.yaml │ ├── add_transport_url_parameters-675ef5f76fc5e8d2.yaml │ ├── add_watch_log_file-option-9aeec2b721b3c9f6.yaml │ ├── admin_only_metadata-5566bb80f0591662.yaml │ ├── amqp_auto_delete-052b56b650d9b05a.yaml │ ├── amqp_container_name-use_default-2ea9e17fcb213273.yaml │ ├── apache-headers-a2f35e9fae4c7667.yaml │ ├── api_paste_ini-separator-89185d9497e0aa6e.yaml │ ├── auth_type-fix-62bc3acab9700deb.yaml │ ├── authtoken-4c9708f4e3b9605d.yaml │ ├── authtoken_manage_memcache_package-4b61e2686c38d698.yaml │ ├── backend-ganesha-opts-1879e014a3796efd.yaml │ ├── backend-service_instance-718b9dca8005e17d.yaml │ ├── backup-quota-opts-3f7235d49b3fa74f.yaml │ ├── bug-1741425-add-glance-section-opts-48d861c132295bdd.yaml │ ├── bug-1968514-c313f818444957fa.yaml │ ├── bug-2079986-6ec7172fb10d836b.yaml │ ├── centos-9-support-bef2b97780479782.yaml │ ├── cephfs-install-ceph-common-9e6d25c472906b3a.yaml │ ├── cephfs_cached_allocated_capacity_update_interval-7a2a022df70c7c40.yaml │ ├── cephfs_filesystem_name-1fb08f432fdf9af1.yaml │ ├── cephfs_nfs_cluster_id-cab5f8d5044e6b06.yaml │ ├── change-emc_ssl_cert_verify-2a6204b63853bdf1.yaml │ ├── change-emc_ssl_cert_verify-update-63800b069921f44c.yaml │ ├── change-keystone-v3-5869a77ea56e5e49.yaml │ ├── cleanup-glusterfs-native-deprecation-77a26e6b98b74147.yaml │ ├── cleanup-manila-api-83ef761e950fed94.yaml │ ├── cleanup-netapp-deprecation-6951452b46357d22.yaml │ ├── cleanup-service_instance-b93ed57e6428ee56.yaml │ ├── configure_service-054ca05f190ce796.yaml │ ├── configure_user-and-user_role-6da5eacad6569b6f.yaml │ ├── consistent-project-name-55f3f0d8b3dba962.yaml │ ├── coordination-07f3f700248c38fb.yaml │ ├── cors-e81d93f888673010.yaml │ ├── cron-db_purge-749e862ad2d40647.yaml │ ├── cron-ensure-03e8480fc11340f9.yaml │ ├── default-domain-58d9ea68fa468e75.yaml │ ├── dellemc-rebrand-driverurl-c4651935ac341482.yaml │ ├── dellemc-unity-support-13151e66bae44974.yaml │ ├── dellemc-vnx-support-238ddf33cccfb73c.yaml │ ├── dellemc_powermax-6ded05263d935f14.yaml │ ├── deprecate-ceph-nfs-protocol-helper-options-9a17db8fdeb1cfe3.yaml │ ├── deprecate-cephfs-enable-snapshots-0a12425e90961ab7.yaml │ ├── deprecate-cephfsnative-add-cephfs-8ea802ec233c7618.yaml │ ├── deprecate-default-backend-2f553e0771ae4aeb.yaml │ ├── deprecate-dellemc-vnx-c2240bf4b18d3295.yaml │ ├── deprecate-dellemc_vmax-c33b3e75c5324458.yaml │ ├── deprecate-driver_handles_share_servers-20f4d2f1d08154ef.yaml │ ├── deprecate-glusterfs-93944c0feb40a978.yaml │ ├── deprecate-lvm-driver_handles_share_servers-f3fd2b4b69e66ac5.yaml │ ├── deprecate-os-region-name-a8713ef980135d13.yaml │ ├── deprecate-rabbit_heartbeat_in_pthread-3ff7d032cec960f8.yaml │ ├── deprecate-share-v2-user-82b59ca6db8741d3.yaml │ ├── deprecate-watch_log_file-1e4d226501fc897e.yaml │ ├── deprecate_allow_insecure_clients-option-8c7b4bedf8927ddb.yaml │ ├── deprecate_auth_uri_parameter-a62f029d62db64d6.yaml │ ├── deprecate_database_min_pool_size-option-a8a1e54331198674.yaml │ ├── deprecate_database_options-d3e1be522be3d7fa.yaml │ ├── deprecate_idle_timeout_parameter-b84f836d88d9d3e0.yaml │ ├── deprecate_managing_rabbit_resources-4e72b17c47efacb1.yaml │ ├── deprecate_pki_related_parameters-b0901e5e64816b64.yaml │ ├── deprecate_revocation_cache_time_parameter-364888537fa13493.yaml │ ├── deprecate_rpc_backend_parameter-2aed9dd1387a910f.yaml │ ├── deprecate_service_instance_network_helper_type_parameter-781ea3e658e9c535.yaml │ ├── deprecate_signing_dir_parameter-3491335a3f8135ef.yaml │ ├── deprecate_standalone_network_plugin_ip_version-4df7ff7851f72c2b.yaml │ ├── disable-apache-ssl-434fc2d002f3e9fd.yaml │ ├── disable-user-v2-31ceee5fee7653fa.yaml │ ├── drop-fedora-1286836dbad8c56b.yaml │ ├── drop-project-id-endpoint-1711aaf3e3853e02.yaml │ ├── drop_qpid-6f04f70e84cc0711.yaml │ ├── enable_cancel_on_failover-69ec2ef2834a1c0f.yaml │ ├── executor_thread_pool_size-5cbf844897b55c15.yaml │ ├── external-ganesha-parameters-9aebf44f7cf01438.yaml │ ├── external_hooks_support-1d50aedc98ae3509.yaml │ ├── fix_log_dir_documentation-fec12bba690f7ac9.yaml │ ├── ganesha-ubuntu-a7f1714bed431c03.yaml │ ├── hc-enable_by_file_paths-3705d815bd91d96e.yaml │ ├── healthcheck-a8866f3194375299.yaml │ ├── healthcheck-allowed_source_ranges-9f3c9485a7e9a585.yaml │ ├── healthcheck-ignore_proxied_requests-afb188f727cc47b5.yaml │ ├── hnas-deprecate-default-share_backend_name-2e320eb43f688127.yaml │ ├── hnas-remove-default-share_backend_name-35673dc1ae9fce46.yaml │ ├── httpd-logs-piped-syslog-43134282b13c9f83.yaml │ ├── isilon-driver-1409cf7661e3438.yaml │ ├── keystone-auth-name-c4651935ac341481.yaml │ ├── keystone-authtoken-interface-a8c03fe93a850caa.yaml │ ├── keystone-authtoken-service_type-0329b10e9f679c28.yaml │ ├── log-json-ef010cef78941896.yaml │ ├── lvm_share_export_ips-397716e813e7b44f.yaml │ ├── manage-storops-4d7fafc683998bf8.yaml │ ├── manila-data-61845c37605e9afe.yaml │ ├── manila-share-opts-197486b3a132dc58.yaml │ ├── manila-type-cleanup-cb2dc6b8ab974a04.yaml │ ├── manila-wsgi-893b66e84d4a9133.yaml │ ├── manila_type-42266cf70a5f0f66.yaml │ ├── max_over_subscription_ratio-09859021cab23b43.yaml │ ├── max_request_body_size-b3b7e87591bd6711.yaml │ ├── migrate-policy-format-from-json-to-yaml-8ea18798ec127939.yaml │ ├── more-scheduler-opts-49f6a5b477414e49.yaml │ ├── netapp_delete_retention_hours-dea6a16be079ec82.yaml │ ├── neutron-network-d3ebedd26c3877a4.yaml │ ├── notification-retry-aa74daf49f95fd93.yaml │ ├── nova-api_micro_version-0d73fb87757e0c3e.yaml │ ├── openstack_db_tag-b328cfe24b29b287.yaml │ ├── oslo-reports-939f22ec1731caed.yaml │ ├── oslo_policy-enforce_scope-4c21242c59e863ff.yaml │ ├── periodic-tunables-e228f296c38202cd.yaml │ ├── policy-dirs-894617eebc2b8b8c.yaml │ ├── policy-enforce_new_defaults-533e1cd72745c6cc.yaml │ ├── policy-json-50a35d8dcfd6e5a9.yaml │ ├── policy_default_rule-419090085cdd7a5f.yaml │ ├── policy_purge_config-3016d1e624d6eb31.yaml │ ├── prepare-to-change-apache-ssl-ff1a2eaa73077e86.yaml │ ├── provider-system-scope-cb9a22337ffe738d.yaml │ ├── puppet-8-c1ee78d56d5391e2.yaml │ ├── puppet4-mysql-func-bb1aa0cdcee7bd3c.yaml │ ├── pymysql-e57bf1f0289dd426.yaml │ ├── quota-cleanup-zed-aeba6037d7306a08.yaml │ ├── quota-params-3ef809a6fd67f3ee.yaml │ ├── quota-per_share_gigabytes-92bba81cf77a1879.yaml │ ├── rabbit-connection-params-deprecation-2a546f72e4fe090d.yaml │ ├── rabbit-heartbeat-opts-8fb5943ea07e45a1.yaml │ ├── rabbit_qos_prefetch_count-68848b61eb02a854.yaml │ ├── rabbit_transient_queues_ttl-bad0a37a1a6a679d.yaml │ ├── rabbit_transient_quorum_queue-a5876e65d3e17a4a.yaml │ ├── rabbitmq-heartbeat-over-pthread-aaded1af4d67302c.yaml │ ├── release-note-ubuntu-py3-55b40f1c04793ddc.yaml │ ├── remove-amqp1-e78bcf1db5a31c8b.yaml │ ├── remove-amqp_allow_insecure_clients-dd3e13044b0b8f90.yaml │ ├── remove-auth-uri-95c3c544751c107a.yaml │ ├── remove-centos-8-893e056a7841e203.yaml │ ├── remove-cephfs-enable-snapshots-7e99bff7aee9cb53.yaml │ ├── remove-cephfsnative-fd796d36cc8ebb38.yaml │ ├── remove-database-params-f0640bd1c0cb8ceb.yaml │ ├── remove-default-backend-opts-b87e888a7b3cc6a7.yaml │ ├── remove-dellemc_vmax-43f6aa8836d6c2d3.yaml │ ├── remove-deprecated-cinder-params-c5dfd5ece0c1079c.yaml │ ├── remove-deprecated-logging-1f9da83a74e11491.yaml │ ├── remove-deprecated-rabbit-params-8f24b9cfcc592596.yaml │ ├── remove-glusterfs_native_path_to_private_key-a62249bb5b10d425.yaml │ ├── remove-netapp_root_volume_name-ca5ef70ee36f8082.yaml │ ├── remove-nova-neutron-with-keystonev2-d10ce348a2729c83.yaml │ ├── remove-puppet-6-5d1f7385d5b2df6a.yaml │ ├── remove-watch_log_file-3f4a2dc994a7e6b3.yaml │ ├── remove_deprecated_keystone_auth_options-24de43e2bff17004.yaml │ ├── remove_deprecated_keystone_revocation_cache_time_option-8dfc4bf34bd28386.yaml │ ├── remove_deprecated_keystone_signing_dir_option-a2cbd7fdd9f8fa19.yaml │ ├── remove_deprecated_mysql_module_option-87667965412c38ff.yaml │ ├── remove_deprecated_pki_related_options-b481a496cf1cd485.yaml │ ├── remove_idle_timeout_option-a5f6ec4a08f01a9b.yaml │ ├── remove_managing_rabbimq_resources-938aa73d2c2b66b2.yaml │ ├── remove_nova_network_plugins-ad288a6664b2b40b.yaml │ ├── remove_old_authtoken_options-dc165736e2e8f177.yaml │ ├── remove_posix-d1f775df21874348.yaml │ ├── remove_qpid-0b446db43fdea617.yaml │ ├── remove_service_instance_network_helper_type_parameter-574fa1d1f11ed47b.yaml │ ├── remove_standalone_network_plugin_ip_version-357046cc8a22640a.yaml │ ├── remove_verbose-13ab0dedad9cad36.yaml │ ├── reserved-share-percentage-139652f3b6aa1db3.yaml │ ├── revert-provider-system-scope-988e0c210359aad7.yaml │ ├── rootwrap-f6fb438dc6b03308.yaml │ ├── scheduler-driver-no-false-value-c24c863fdbae47e9.yaml │ ├── scheduler_driver-os_service_default-5b7e2e78d93c6abe.yaml │ ├── service_down_time-219e922d258570fc.yaml │ ├── service_token_roles-37d50448c63052b9.yaml │ ├── service_token_roles_required-8365413050d17559.yaml │ ├── setup_test_volume-49782be9c2558cee.yaml │ ├── share-backup-options-0efb0648029cb19a.yaml │ ├── stop-reading-authtoken-opts-fb13932d73d35fca.yaml │ ├── switch_to_oslo-d134ad3134697ef2.yaml │ ├── system_scope-all-4a661d5cc27d448a.yaml │ ├── system_scope-keystone-57f90004f977fe29.yaml │ ├── ubuntu-jammy-481cfc17f5403522.yaml │ ├── ubuntu-noble-868ddca9503650ec.yaml │ ├── unity-report_default_filter_function-5d42810bbbeabca7.yaml │ ├── unity_driver_b1c2e3ec708e11e7.yaml │ ├── unity_share_server-31bce3e772e0b617.yaml │ ├── update-cinder-auth-params-987a691d2e17ac92.yaml │ ├── update-nova-neutron-with-keystonev3-3386a497d476d7d8.yaml │ ├── use-reno-1caaec4ba5aa4285.yaml │ ├── uwsgi-7ada89bee7842ad4.yaml │ ├── verbose-deprecation-2a79546d0949ec91.yaml │ ├── vmax_driver_76239462709d11e7.yaml │ └── vnx_driver_67236f6670a011e7.yaml └── source │ ├── 2023.1.rst │ ├── 2023.2.rst │ ├── 2024.1.rst │ ├── 2024.2.rst │ ├── 2025.1.rst │ ├── _static │ └── .placeholder │ ├── conf.py │ ├── index.rst │ ├── mitaka.rst │ ├── newton.rst │ ├── ocata.rst │ ├── pike.rst │ ├── queens.rst │ ├── rocky.rst │ ├── stein.rst │ ├── train.rst │ ├── unreleased.rst │ ├── ussuri.rst │ ├── victoria.rst │ ├── wallaby.rst │ ├── xena.rst │ ├── yoga.rst │ └── zed.rst ├── setup.cfg ├── setup.py ├── spec ├── acceptance │ ├── 10_basic_manila_spec.rb │ └── 99_manila_config_spec.rb ├── classes │ ├── manila_api_spec.rb │ ├── manila_backends_spec.rb │ ├── manila_client_spec.rb │ ├── manila_compute_nova_spec.rb │ ├── manila_config_spec.rb │ ├── manila_coordination_spec.rb │ ├── manila_cors_spec.rb │ ├── manila_cron_db_purge_spec.rb │ ├── manila_data_backup_nfs_spec.rb │ ├── manila_data_spec.rb │ ├── manila_db_mysql_spec.rb │ ├── manila_db_postgresql_spec.rb │ ├── manila_db_spec.rb │ ├── manila_db_sync_spec.rb │ ├── manila_ganesha_spec.rb │ ├── manila_healthcheck_spec.rb │ ├── manila_image_glance_spec.rb │ ├── manila_init_spec.rb │ ├── manila_keystone_auth_spec.rb │ ├── manila_keystone_authtoken_spec.rb │ ├── manila_logging_spec.rb │ ├── manila_network_neutron_spec.rb │ ├── manila_params_spec.rb │ ├── manila_policy_spec.rb │ ├── manila_quota_spec.rb │ ├── manila_reports_spec.rb │ ├── manila_scheduler_filter_spec.rb │ ├── manila_scheduler_spec.rb │ ├── manila_setup_test_volume_spec.rb │ ├── manila_share_spec.rb │ ├── manila_volume_cinder_spec.rb │ ├── manila_wsgi_apache_spec.rb │ └── manila_wsgi_uwsgi_spec.rb ├── defines │ ├── manila_backend_cephfs_spec.rb │ ├── manila_backend_dellemc_isilon_spec.rb │ ├── manila_backend_dellemc_powermax_spec.rb │ ├── manila_backend_dellemc_unity_spec.rb │ ├── manila_backend_dellemc_vnx_spec.rb │ ├── manila_backend_flashblade_spec.rb │ ├── manila_backend_ganesha_spec.rb │ ├── manila_backend_generic_spec.rb │ ├── manila_backend_glusterfs_spec.rb │ ├── manila_backend_glusternative_spec.rb │ ├── manila_backend_glusternfs_spec.rb │ ├── manila_backend_hitachi_hnas_spec.rb │ ├── manila_backend_lvm_spec.rb │ ├── manila_backend_netapp_spec.rb │ ├── manila_backend_service_instance_spec.rb │ ├── manila_network_neutron_network_spec.rb │ ├── manila_network_neutron_single_network_spec.rb │ └── manila_network_standalone_spec.rb ├── shared_examples.rb ├── spec_helper.rb ├── spec_helper_acceptance.rb └── unit │ ├── provider │ ├── manila_api_paste_ini │ │ └── ini_setting_spec.rb │ ├── manila_api_uwsgi_config │ │ └── ini_setting_spec.rb │ ├── manila_config │ │ └── openstackconfig_spec.rb │ ├── manila_rootwrap_config │ │ └── ini_setting_spec.rb │ └── manila_type │ │ └── openstack_spec.rb │ └── type │ ├── manila_api_paste_ini_spec.rb │ ├── manila_api_uwsgi_config_spec.rb │ ├── manila_config_spec.rb │ ├── manila_rootwrap_config_spec.rb │ └── manila_type_spec.rb └── tox.ini /.gitignore: -------------------------------------------------------------------------------- 1 | # Add patterns in here to exclude files created by tools integrated with this 2 | # repository, such as test frameworks from the project's recommended workflow, 3 | # rendered documentation and package builds. 4 | # 5 | # Don't add patterns to exclude files created by preferred personal tools 6 | # (editors, IDEs, your operating system itself even). These should instead be 7 | # maintained outside the repository, for example in a ~/.gitignore file added 8 | # with: 9 | # 10 | # git config --global core.excludesfile '~/.gitignore' 11 | 12 | pkg/ 13 | Gemfile.lock 14 | vendor/ 15 | spec/fixtures/ 16 | .vagrant/ 17 | .bundle/ 18 | coverage/ 19 | .idea/ 20 | *.iml 21 | /openstack 22 | /log 23 | 24 | # Files created by releasenotes build 25 | releasenotes/build 26 | .tox 27 | -------------------------------------------------------------------------------- /.gitreview: -------------------------------------------------------------------------------- 1 | [gerrit] 2 | host=review.opendev.org 3 | port=29418 4 | project=openstack/puppet-manila.git 5 | -------------------------------------------------------------------------------- /.pdkignore: -------------------------------------------------------------------------------- 1 | # common list used in puppetlabs repos 2 | .git/ 3 | .*.sw[op] 4 | .metadata 5 | .yardoc 6 | .yardwarns 7 | *.iml 8 | /.bundle/ 9 | /.idea/ 10 | /.vagrant/ 11 | /coverage/ 12 | /bin/ 13 | /doc/ 14 | /Gemfile.local 15 | /Gemfile.lock 16 | /junit/ 17 | /log/ 18 | /pkg/ 19 | /spec/fixtures/manifests/ 20 | /spec/fixtures/modules/* 21 | /tmp/ 22 | /vendor/ 23 | /convert_report.txt 24 | /update_report.txt 25 | .DS_Store 26 | .project 27 | .envrc 28 | /inventory.yaml 29 | /spec/fixtures/litmus_inventory.yaml 30 | /.fixtures.yml 31 | /Gemfile 32 | /.gitattributes 33 | /.gitignore 34 | /.pdkignore 35 | /.puppet-lint.rc 36 | /Rakefile 37 | /rakelib/ 38 | /.rspec 39 | /..yml 40 | /.yardopts 41 | /spec/ 42 | /.vscode/ 43 | /.sync.yml 44 | /.devcontainer/ 45 | # OpenStack-specific files 46 | /bindep.txt 47 | /.gitreview 48 | /releasenotes/ 49 | /setup.cfg 50 | /setup.py 51 | /tox.ini 52 | /.zuul.yaml 53 | -------------------------------------------------------------------------------- /.zuul.yaml: -------------------------------------------------------------------------------- 1 | - project: 2 | templates: 3 | - puppet-openstack-check-jobs 4 | - puppet-openstack-module-unit-jobs 5 | - puppet-openstack-integration-jobs-scenario004 6 | - puppet-openstack-integration-jobs-scenario005 7 | - puppet-openstack-litmus-jobs 8 | - release-notes-jobs-python3 9 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 8.0.0 and beyond 2 | 3 | From 8.0.0 release and beyond, release notes are published on 4 | [docs.openstack.org](http://docs.openstack.org/releasenotes/puppet-manila/). 5 | 6 | ##2015-11-25 - 7.0.0 7 | ###Summary 8 | 9 | This is a backwards-incompatible major release for OpenStack Liberty. 10 | 11 | ####Backwards-incompatible changes 12 | - rabbitmq: do not manage rabbitmq service anymore 13 | - move qpid settings to oslo_messaging_qpid section 14 | 15 | ####Features 16 | - keystone/auth: make service description configurable 17 | - add related parameters to manila::quota 18 | - add tag to package and service resources 19 | - add support to configure GlusterFS drivers with Manila shares 20 | - reflect provider change in puppet-openstacklib 21 | - put all the logging related parameters to the logging class 22 | - simplify rpc_backend parameter 23 | - add options to enable Manila to run with NFS-Ganesha backend 24 | - introduce manila::db class 25 | - db: Use postgresql lib class for psycopg package 26 | - add related parameters to oslo_messaging_amqp section 27 | 28 | ####Bugfixes 29 | - rely on autorequire for config resource ordering 30 | - api: require ::keystone::python 31 | 32 | ####Maintenance 33 | - acceptance: enable debug & verbosity for OpenStack logs 34 | - initial msync run for all Puppet OpenStack modules 35 | - fix rspec 3.x syntax 36 | - try to use zuul-cloner to prepare fixtures 37 | - remove class_parameter_defaults puppet-lint check 38 | - acceptance: use common bits from puppet-openstack-integration 39 | 40 | ##2015-10-10 - 6.1.0 41 | ### Summary 42 | 43 | This is a maintenance release in the Kilo series. 44 | 45 | ####Maintenance 46 | - acceptance: checkout stable/kilo puppet modules 47 | 48 | ##2015-07-08 - 6.0.0 49 | ###Summary 50 | 51 | - Initial release of the puppet-manila module 52 | -------------------------------------------------------------------------------- /CONTRIBUTING.rst: -------------------------------------------------------------------------------- 1 | The source repository for this project can be found at: 2 | 3 | https://opendev.org/openstack/puppet-manila 4 | 5 | Pull requests submitted through GitHub are not monitored. 6 | 7 | To start contributing to OpenStack, follow the steps in the contribution guide 8 | to set up and use Gerrit: 9 | 10 | https://docs.openstack.org/contributors/code-and-documentation/quick-start.html 11 | 12 | Bugs should be filed on Launchpad: 13 | 14 | https://bugs.launchpad.net/puppet-manila 15 | 16 | For more specific information about contributing to this repository, see the 17 | Puppet OpenStack contributor guide: 18 | 19 | https://docs.openstack.org/puppet-openstack-guide/latest/contributor/contributing.html 20 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | source ENV['GEM_SOURCE'] || "https://rubygems.org" 2 | 3 | group :development, :test, :system_tests do 4 | spec_helper_dir = '/home/zuul/src/opendev.org/openstack/puppet-openstack_spec_helper' 5 | if File.directory?(spec_helper_dir) 6 | if ENV['ZUUL_PROJECT'] == 'openstack/puppet-openstack_spec_helper' 7 | gem 'puppet-openstack_spec_helper', 8 | :path => '../..', 9 | :require => 'false' 10 | else 11 | gem 'puppet-openstack_spec_helper', 12 | :path => spec_helper_dir, 13 | :require => 'false' 14 | end 15 | else 16 | spec_helper_version = ENV['ZUUL_BRANCH'] || "master" 17 | gem 'puppet-openstack_spec_helper', 18 | :git => 'https://opendev.org/openstack/puppet-openstack_spec_helper', 19 | :ref => spec_helper_version, 20 | :require => 'false' 21 | end 22 | end 23 | 24 | if facterversion = ENV['FACTER_GEM_VERSION'] 25 | gem 'facter', facterversion, :require => false 26 | else 27 | gem 'facter', :require => false 28 | end 29 | 30 | if puppetversion = ENV['PUPPET_GEM_VERSION'] 31 | gem 'puppet', puppetversion, :require => false 32 | else 33 | gem 'puppet', :require => false 34 | end 35 | 36 | # vim:ft=ruby 37 | -------------------------------------------------------------------------------- /Rakefile: -------------------------------------------------------------------------------- 1 | require 'puppet-openstack_spec_helper/rake_tasks' 2 | -------------------------------------------------------------------------------- /bindep.txt: -------------------------------------------------------------------------------- 1 | # This is a cross-platform list tracking distribution packages needed by tests; 2 | # see https://docs.openstack.org/infra/bindep/ for additional information. 3 | 4 | libxml2-devel [test platform:rpm] 5 | libxml2-dev [test platform:dpkg] 6 | libxslt-devel [test platform:rpm] 7 | libxslt1-dev [test platform:dpkg] 8 | ruby-devel [test platform:rpm] 9 | ruby-dev [test platform:dpkg] 10 | zlib1g-dev [test platform:dpkg] 11 | zlib-devel [test platform:rpm] 12 | puppet [build] 13 | -------------------------------------------------------------------------------- /doc/requirements.txt: -------------------------------------------------------------------------------- 1 | # This is required for the docs build jobs 2 | sphinx>=3.5.1 # BSD 3 | openstackdocstheme>=2.2.7 # Apache-2.0 4 | 5 | # This is required for the releasenotes build jobs 6 | reno>=3.2.0 # Apache-2.0 7 | -------------------------------------------------------------------------------- /lib/puppet/provider/manila.rb: -------------------------------------------------------------------------------- 1 | # Since there's only one manila_* type for API resources now, 2 | # this probably could have all gone in the provider file. 3 | # But maybe this is good long-term. 4 | require 'puppet/provider/openstack' 5 | require 'puppet/provider/openstack/auth' 6 | 7 | class Puppet::Provider::Manila < Puppet::Provider::Openstack 8 | 9 | extend Puppet::Provider::Openstack::Auth 10 | 11 | end 12 | -------------------------------------------------------------------------------- /lib/puppet/provider/manila_api_paste_ini/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:manila_api_paste_ini).provide( 2 | :ini_setting, 3 | :parent => Puppet::Type.type(:openstack_config).provider(:ini_setting) 4 | ) do 5 | 6 | def self.file_path 7 | '/etc/manila/api-paste.ini' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/provider/manila_api_uwsgi_config/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:manila_api_uwsgi_config).provide( 2 | :ini_setting, 3 | :parent => Puppet::Type.type(:openstack_config).provider(:ini_setting) 4 | ) do 5 | def self.file_path 6 | '/etc/manila/manila-api-uwsgi.ini' 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /lib/puppet/provider/manila_config/openstackconfig.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:manila_config).provide( 2 | :openstackconfig, 3 | :parent => Puppet::Type.type(:openstack_config).provider(:ruby) 4 | ) do 5 | 6 | def self.file_path 7 | '/etc/manila/manila.conf' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/provider/manila_rootwrap_config/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:manila_rootwrap_config).provide( 2 | :ini_setting, 3 | :parent => Puppet::Type.type(:openstack_config).provider(:ini_setting) 4 | ) do 5 | 6 | def self.file_path 7 | '/etc/manila/rootwrap.conf' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/type/manila_api_paste_ini.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:manila_api_paste_ini) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from /etc/manila/api-paste.ini' 7 | newvalues(/\S+\/\S+/) 8 | end 9 | 10 | newproperty(:value) do 11 | desc 'The value of the setting to be defined.' 12 | munge do |value| 13 | value = value.to_s.strip 14 | value.capitalize! if value =~ /^(true|false)$/i 15 | value 16 | end 17 | 18 | def is_to_s( currentvalue ) 19 | if resource.secret? 20 | return '[old secret redacted]' 21 | else 22 | return currentvalue 23 | end 24 | end 25 | 26 | def should_to_s( newvalue ) 27 | if resource.secret? 28 | return '[new secret redacted]' 29 | else 30 | return newvalue 31 | end 32 | end 33 | end 34 | 35 | newparam(:secret, :boolean => true) do 36 | desc 'Whether to hide the value from Puppet logs. Defaults to `false`.' 37 | 38 | newvalues(:true, :false) 39 | 40 | defaultto false 41 | end 42 | 43 | newparam(:ensure_absent_val) do 44 | desc 'A value that is specified as the value property will behave as if ensure => absent was specified' 45 | defaultto('') 46 | end 47 | 48 | newparam(:key_val_separator) do 49 | desc 'The separator string to use between each setting name and value.' 50 | defaultto('=') 51 | end 52 | 53 | autorequire(:anchor) do 54 | ['manila::install::end'] 55 | end 56 | 57 | end 58 | -------------------------------------------------------------------------------- /lib/puppet/type/manila_api_uwsgi_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:manila_api_uwsgi_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from /etc/manila/manila-api-uwsgi.ini' 7 | newvalues(/\S+\/\S+/) 8 | end 9 | 10 | newproperty(:value) do 11 | desc 'The value of the setting to be defined.' 12 | munge do |value| 13 | value = value.to_s.strip 14 | value.capitalize! if value =~ /^(true|false)$/i 15 | value 16 | end 17 | newvalues(/^[\S ]*$/) 18 | end 19 | 20 | newparam(:ensure_absent_val) do 21 | desc 'A value that is specified as the value property will behave as if ensure => absent was specified' 22 | defaultto('') 23 | end 24 | 25 | autorequire(:anchor) do 26 | ['manila::install::end'] 27 | end 28 | 29 | end 30 | -------------------------------------------------------------------------------- /lib/puppet/type/manila_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:manila_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from manila.conf' 7 | newvalues(/\S+\/\S+/) 8 | end 9 | 10 | newproperty(:value, :array_matching => :all) do 11 | desc 'The value of the setting to be defined.' 12 | def insync?(is) 13 | return true if @should.empty? 14 | return false unless is.is_a? Array 15 | return false unless is.length == @should.length 16 | return ( 17 | is & @should == is or 18 | is & @should.map(&:to_s) == is 19 | ) 20 | end 21 | munge do |value| 22 | value = value.to_s.strip 23 | value.capitalize! if value =~ /^(true|false)$/i 24 | value 25 | end 26 | 27 | def is_to_s( currentvalue ) 28 | if resource.secret? 29 | return '[old secret redacted]' 30 | else 31 | return currentvalue 32 | end 33 | end 34 | 35 | def should_to_s( newvalue ) 36 | if resource.secret? 37 | return '[new secret redacted]' 38 | else 39 | return newvalue 40 | end 41 | end 42 | end 43 | 44 | newparam(:secret, :boolean => true) do 45 | desc 'Whether to hide the value from Puppet logs. Defaults to `false`.' 46 | 47 | newvalues(:true, :false) 48 | 49 | defaultto false 50 | end 51 | 52 | newparam(:ensure_absent_val) do 53 | desc 'A value that is specified as the value property will behave as if ensure => absent was specified' 54 | defaultto('') 55 | end 56 | 57 | autorequire(:anchor) do 58 | ['manila::install::end'] 59 | end 60 | 61 | end 62 | -------------------------------------------------------------------------------- /lib/puppet/type/manila_rootwrap_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:manila_rootwrap_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from /etc/manila/rootwrap.conf' 7 | newvalues(/\S+\/\S+/) 8 | end 9 | 10 | newparam(:ensure_absent_val) do 11 | desc 'A value that is specified as the value property will behave as if ensure => absent was specified' 12 | defaultto('') 13 | end 14 | 15 | newproperty(:value) do 16 | desc 'The value of the setting to be defined.' 17 | munge do |value| 18 | value = value.to_s.strip 19 | value.capitalize! if value =~ /^(true|false)$/i 20 | value 21 | end 22 | newvalues(/^[\S ]*$/) 23 | end 24 | 25 | autorequire(:anchor) do 26 | ['manila::install::end'] 27 | end 28 | 29 | end 30 | -------------------------------------------------------------------------------- /lib/puppet/type/manila_type.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:manila_type) do 2 | 3 | desc 'Type for managing manila types.' 4 | 5 | ensurable 6 | 7 | newparam(:name, :namevar => true) do 8 | newvalues(/\S+/) 9 | end 10 | 11 | newparam(:is_public, :boolean => true) do 12 | desc 'Whether the type is public or not. Default to `true`' 13 | newvalues(:true, :false) 14 | defaultto true 15 | end 16 | 17 | newparam(:driver_handles_share_servers, :boolean => true) do 18 | desc 'Whether the driver handles share servers. Default to `false`' 19 | newvalues(:true, :false) 20 | defaultto false 21 | end 22 | 23 | newparam(:snapshot_support, :boolean => true) do 24 | desc 'Filter backends by their capability to create share snapshots' 25 | newvalues(:true, :false) 26 | defaultto false 27 | end 28 | 29 | newparam(:create_share_from_snapshot_support, :boolean => true) do 30 | desc 'Filter backends by their capability to create shares from snapshots.' 31 | newvalues(:true, :false) 32 | defaultto false 33 | end 34 | 35 | newparam(:revert_to_snapshot_support, :boolean => true) do 36 | desc 'Filter backends by their capability to revert shares to snapshots.' 37 | newvalues(:true, :false) 38 | defaultto false 39 | end 40 | 41 | newparam(:mount_snapshot_support, :boolean => true) do 42 | desc 'Filter backends by their capability to mount share snapshots.' 43 | newvalues(:true, :false) 44 | defaultto false 45 | end 46 | 47 | autorequire(:anchor) do 48 | ['manila::service::end'] 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /manifests/backends.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::backends 2 | # 3 | # Class to set the enabled_backends list 4 | # 5 | # === Parameters 6 | # 7 | # [*enabled_share_backends*] 8 | # (Required) a list of ini sections to enable. 9 | # This should contain names used in manila::backend::* resources. 10 | # Example: ['share1', 'share2', 'sata3'] 11 | # 12 | # Author: Andrew Woodward 13 | class manila::backends ( 14 | Variant[String[1], Array[String[1], 1]] $enabled_share_backends 15 | ) { 16 | 17 | include manila::deps 18 | 19 | # Maybe this could be extended to dynamically find the enabled names 20 | manila_config { 21 | 'DEFAULT/enabled_share_backends': value => join(any2array($enabled_share_backends), ','); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /manifests/client.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::client 2 | # 3 | # Installs Manila python client. 4 | # 5 | # === Parameters 6 | # 7 | # [*package_ensure*] 8 | # Ensure state for package. Defaults to 'present'. 9 | # 10 | class manila::client ( 11 | $package_ensure = 'present' 12 | ) { 13 | 14 | include manila::deps 15 | include manila::params 16 | 17 | package { 'python-manilaclient': 18 | ensure => $package_ensure, 19 | name => $::manila::params::client_package, 20 | tag => ['openstack', 'openstackclient'], 21 | } 22 | 23 | include openstacklib::openstackclient 24 | } 25 | -------------------------------------------------------------------------------- /manifests/config.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::config 2 | # 3 | # This class is used to manage arbitrary manila configurations. 4 | # 5 | # example xxx_config 6 | # (optional) Allow configuration of arbitrary manila configurations. 7 | # The value is an hash of xxx_config resources. Example: 8 | # { 'DEFAULT/foo' => { value => 'fooValue'}, 9 | # 'DEFAULT/bar' => { value => 'barValue'} 10 | # } 11 | # 12 | # In yaml format, Example: 13 | # xxx_config: 14 | # DEFAULT/foo: 15 | # value: fooValue 16 | # DEFAULT/bar: 17 | # value: barValue 18 | # 19 | # === Parameters 20 | # 21 | # [*manila_config*] 22 | # (optional) Allow configuration of manila.conf configurations. 23 | # 24 | # [*api_paste_ini_config*] 25 | # (optional) Allow configuration of api-paste.ini configurations. 26 | # 27 | # [*manila_rootwrap_config*] 28 | # (optional) Allow configuration of rootwrap.conf configurations. 29 | # 30 | # NOTE: The configuration MUST NOT be already handled by this module 31 | # or Puppet catalog compilation will fail with duplicate resources. 32 | # 33 | class manila::config ( 34 | Hash $manila_config = {}, 35 | Hash $api_paste_ini_config = {}, 36 | Hash $manila_rootwrap_config = {}, 37 | ) { 38 | 39 | include manila::deps 40 | 41 | create_resources('manila_config', $manila_config) 42 | create_resources('manila_api_paste_ini', $api_paste_ini_config) 43 | create_resources('manila_rootwrap_config', $manila_rootwrap_config) 44 | } 45 | -------------------------------------------------------------------------------- /manifests/coordination.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::coordination 2 | # 3 | # Setup and configure Manila coordination settings. 4 | # 5 | # === Parameters 6 | # 7 | # [*backend_url*] 8 | # (Optional) Coordination backend URL. 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | class manila::coordination ( 12 | $backend_url = $facts['os_service_default'], 13 | ) { 14 | 15 | include manila::deps 16 | 17 | oslo::coordination{ 'manila_config': 18 | backend_url => $backend_url 19 | } 20 | 21 | # all coordination settings should be applied and all packages should be 22 | # installed before service startup 23 | Oslo::Coordination['manila_config'] -> Anchor['manila::service::begin'] 24 | } 25 | -------------------------------------------------------------------------------- /manifests/cors.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::cors 2 | # 3 | # Configure the manila cors 4 | # 5 | # === Parameters 6 | # 7 | # [*allowed_origin*] 8 | # (Optional) Indicate whether this resource may be shared with the domain 9 | # received in the requests "origin" header. 10 | # (string value) 11 | # Defaults to $facts['os_service_default']. 12 | # 13 | # [*allow_credentials*] 14 | # (Optional) Indicate that the actual request can include user credentials. 15 | # (boolean value) 16 | # Defaults to $facts['os_service_default']. 17 | # 18 | # [*expose_headers*] 19 | # (Optional) Indicate which headers are safe to expose to the API. 20 | # (list value) 21 | # Defaults to $facts['os_service_default']. 22 | # 23 | # [*max_age*] 24 | # (Optional) Maximum cache age of CORS preflight requests. 25 | # (integer value) 26 | # Defaults to $facts['os_service_default']. 27 | # 28 | # [*allow_methods*] 29 | # (Optional) Indicate which methods can be used during the actual request. 30 | # (list value) 31 | # Defaults to $facts['os_service_default']. 32 | # 33 | # [*allow_headers*] 34 | # (Optional) Indicate which header field names may be used during the actual 35 | # request. 36 | # (list value) 37 | # Defaults to $facts['os_service_default']. 38 | # 39 | class manila::cors ( 40 | $allowed_origin = $facts['os_service_default'], 41 | $allow_credentials = $facts['os_service_default'], 42 | $expose_headers = $facts['os_service_default'], 43 | $max_age = $facts['os_service_default'], 44 | $allow_methods = $facts['os_service_default'], 45 | $allow_headers = $facts['os_service_default'], 46 | ) { 47 | 48 | include manila::deps 49 | 50 | oslo::cors { 'manila_config': 51 | allowed_origin => $allowed_origin, 52 | allow_credentials => $allow_credentials, 53 | expose_headers => $expose_headers, 54 | max_age => $max_age, 55 | allow_methods => $allow_methods, 56 | allow_headers => $allow_headers, 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /manifests/data/backup/nfs.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::data::backup::nfs 2 | # 3 | # Setup Manila to backup shares into NFS 4 | # 5 | # === Parameters 6 | # 7 | # [*backup_mount_export*] 8 | # (Required) NFS backup export location. 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | # [*backup_mount_template*] 12 | # (Optional) The template for mounting NFS shares. 13 | # Defaults to $facts['os_service_default'] 14 | # 15 | # [*backup_unmount_template*] 16 | # (Optional) The template for unmounting NFS shares. 17 | # Defaults to $facts['os_service_default'] 18 | # 19 | # [*backup_mount_proto*] 20 | # (Optional) Mount Protocol for mounting NFS shares. 21 | # Defaults to $facts['os_service_default'] 22 | # 23 | # [*backup_mount_options*] 24 | # (Optional) Mount ptions passed to the NFS client. 25 | # Defaults to $facts['os_service_default'] 26 | # 27 | # [*package_ensure*] 28 | # (optional) Ensure state for package. Defaults to 'present'. 29 | # 30 | class manila::data::backup::nfs ( 31 | String[1] $backup_mount_export, 32 | $backup_mount_template = $facts['os_service_default'], 33 | $backup_unmount_template = $facts['os_service_default'], 34 | $backup_mount_proto = $facts['os_service_default'], 35 | $backup_mount_options = $facts['os_service_default'], 36 | $package_ensure = 'present', 37 | ) { 38 | 39 | include manila::deps 40 | include manila::params 41 | 42 | manila_config { 43 | 'DEFAULT/backup_mount_template': value => $backup_mount_template; 44 | 'DEFAULT/backup_unmount_template': value => $backup_unmount_template; 45 | 'DEFAULT/backup_mount_export': value => $backup_mount_export; 46 | 'DEFAULT/backup_mount_proto': value => $backup_mount_proto; 47 | 'DEFAULT/backup_mount_options': value => $backup_mount_options; 48 | } 49 | 50 | ensure_packages('nfs-client', { 51 | name => $::manila::params::nfs_client_package_name, 52 | ensure => $package_ensure, 53 | }) 54 | Package<| title == 'nfs-client' |> { tag +> 'manila-support-package' } 55 | } 56 | -------------------------------------------------------------------------------- /manifests/db/mysql.pp: -------------------------------------------------------------------------------- 1 | # The manila::db::mysql class creates a MySQL database for manila. 2 | # It must be used on the MySQL server 3 | # 4 | # == Parameters 5 | # 6 | # [*password*] 7 | # (Required) password to connect to the database. 8 | # 9 | # [*dbname*] 10 | # (Optional) name of the database. 11 | # Defaults to manila. 12 | # 13 | # [*user*] 14 | # (Optional) user to connect to the database. 15 | # Defaults to manila. 16 | # 17 | # [*host*] 18 | # (Optional) the default source host user is allowed to connect from. 19 | # Defaults to 'localhost' 20 | # 21 | # [*allowed_hosts*] 22 | # (Optional) other hosts the user is allowed to connect from. 23 | # Defaults to undef. 24 | # 25 | # [*charset*] 26 | # (Optional) the database charset. 27 | # Defaults to 'utf8' 28 | # 29 | # [*collate*] 30 | # (Optional) the database collation. 31 | # Defaults to 'utf8_general_ci' 32 | # 33 | # [*cluster_id*] 34 | # (Optional) The cluster id. 35 | # Defaults to 'localzone'. 36 | # 37 | class manila::db::mysql ( 38 | String[1] $password, 39 | $dbname = 'manila', 40 | $user = 'manila', 41 | $host = '127.0.0.1', 42 | $allowed_hosts = undef, 43 | $charset = 'utf8', 44 | $collate = 'utf8_general_ci', 45 | $cluster_id = 'localzone', 46 | ) { 47 | 48 | include manila::deps 49 | 50 | openstacklib::db::mysql { 'manila': 51 | user => $user, 52 | password => $password, 53 | dbname => $dbname, 54 | host => $host, 55 | charset => $charset, 56 | collate => $collate, 57 | allowed_hosts => $allowed_hosts, 58 | } 59 | 60 | Anchor['manila::db::begin'] 61 | ~> Class['manila::db::mysql'] 62 | ~> Anchor['manila::db::end'] 63 | } 64 | -------------------------------------------------------------------------------- /manifests/db/postgresql.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::db::postgresql 2 | # 3 | # Class that configures postgresql for manila 4 | # Requires the Puppetlabs postgresql module. 5 | # 6 | # === Parameters 7 | # 8 | # [*password*] 9 | # (Required) Password to connect to the database. 10 | # 11 | # [*dbname*] 12 | # (Optional) Name of the database. 13 | # Defaults to 'manila'. 14 | # 15 | # [*user*] 16 | # (Optional) User to connect to the database. 17 | # Defaults to 'manila'. 18 | # 19 | # [*encoding*] 20 | # (Optional) The charset to use for the database. 21 | # Default to undef. 22 | # 23 | # [*privileges*] 24 | # (Optional) Privileges given to the database user. 25 | # Default to 'ALL' 26 | # 27 | class manila::db::postgresql( 28 | $password, 29 | $dbname = 'manila', 30 | $user = 'manila', 31 | $encoding = undef, 32 | $privileges = 'ALL', 33 | ) { 34 | 35 | include manila::deps 36 | 37 | openstacklib::db::postgresql { 'manila': 38 | password => $password, 39 | dbname => $dbname, 40 | user => $user, 41 | encoding => $encoding, 42 | privileges => $privileges, 43 | } 44 | 45 | Anchor['manila::db::begin'] 46 | ~> Class['manila::db::postgresql'] 47 | ~> Anchor['manila::db::end'] 48 | 49 | } 50 | -------------------------------------------------------------------------------- /manifests/db/sync.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Class to execute manila dbsync 3 | # 4 | # ==Parameters 5 | # 6 | # [*db_sync_timeout*] 7 | # (Optional) Timeout for the execution of the db_sync 8 | # Defaults to 300 9 | # 10 | class manila::db::sync( 11 | $db_sync_timeout = 300, 12 | ) { 13 | 14 | include manila::deps 15 | include manila::params 16 | 17 | exec { 'manila-manage db_sync': 18 | command => $::manila::params::db_sync_command, 19 | path => '/usr/bin', 20 | user => $::manila::params::user, 21 | refreshonly => true, 22 | try_sleep => 5, 23 | tries => 10, 24 | timeout => $db_sync_timeout, 25 | logoutput => 'on_failure', 26 | subscribe => [ 27 | Anchor['manila::install::end'], 28 | Anchor['manila::config::end'], 29 | Anchor['manila::dbsync::begin'] 30 | ], 31 | notify => Anchor['manila::dbsync::end'], 32 | tag => 'openstack-db', 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /manifests/ganesha.pp: -------------------------------------------------------------------------------- 1 | # 2 | # == Class: manila::ganesha 3 | # 4 | # Class to set NFS Ganesha options for share drivers 5 | # 6 | # === Parameters 7 | # [*ganesha_config_dir*] 8 | # (optional) Directory where Ganesha config files are stored. 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | # [*ganesha_config_path*] 12 | # (optional) Path to main Ganesha config file. 13 | # Defaults to $facts['os_service_default'] 14 | # 15 | # [*ganesha_service_name*] 16 | # (optional) Name of the ganesha nfs service. 17 | # Defaults to $facts['os_service_default'] 18 | # 19 | # [*ganesha_db_path*] 20 | # (optional) Location of Ganesha database file (Ganesha module only). 21 | # Defaults to $facts['os_service_default'] 22 | # 23 | # [*ganesha_export_dir*] 24 | # (optional) Path to directory containing Ganesha export configuration. 25 | # (Ganesha module only.) 26 | # Defaults to $facts['os_service_default'] 27 | # 28 | # [*ganesha_export_template_dir*] 29 | # (optional) Path to directory containing Ganesha export block templates. 30 | # (Ganesha module only.) 31 | # Defaults to $facts['os_service_default'] 32 | # 33 | class manila::ganesha ( 34 | $ganesha_config_dir = $facts['os_service_default'], 35 | $ganesha_config_path = $facts['os_service_default'], 36 | $ganesha_service_name = $facts['os_service_default'], 37 | $ganesha_db_path = $facts['os_service_default'], 38 | $ganesha_export_dir = $facts['os_service_default'], 39 | $ganesha_export_template_dir = $facts['os_service_default'], 40 | ) { 41 | 42 | include manila::deps 43 | 44 | manila::backend::ganesha { 'DEFAULT': 45 | ganesha_config_dir => $ganesha_config_dir, 46 | ganesha_config_path => $ganesha_config_path, 47 | ganesha_service_name => $ganesha_service_name, 48 | ganesha_db_path => $ganesha_db_path, 49 | ganesha_export_dir => $ganesha_export_dir, 50 | ganesha_export_template_dir => $ganesha_export_template_dir, 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /manifests/healthcheck.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::healthcheck 2 | # 3 | # Configure oslo_middleware options in healthcheck section 4 | # 5 | # == Params 6 | # 7 | # [*detailed*] 8 | # (Optional) Show more detailed information as part of the response. 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | # [*backends*] 12 | # (Optional) Additional backends that can perform health checks and report 13 | # that information back as part of a request. 14 | # Defaults to $facts['os_service_default'] 15 | # 16 | # [*allowed_source_ranges*] 17 | # (Optional) A list of network addresses to limit source ip allowed to access 18 | # healthcheck information. 19 | # Defaults to $facts['os_service_default'] 20 | # 21 | # [*ignore_proxied_requests*] 22 | # (Optional) Ignore requests with proxy headers 23 | # Defaults to $facts['os_service_default'] 24 | # 25 | # [*disable_by_file_path*] 26 | # (Optional) Check the presence of a file to determine if an application 27 | # is running on a port. 28 | # Defaults to $facts['os_service_default'] 29 | # 30 | # [*disable_by_file_paths*] 31 | # (Optional) Check the presence of a file to determine if an application 32 | # is running on a port. Expects a "port:path" list of strings. 33 | # Defaults to $facts['os_service_default'] 34 | # 35 | # [*enable_by_file_paths*] 36 | # (Optional) Check the presence of files. Used by EnableByFilesHealthcheck 37 | # plugin. 38 | # Defaults to $facts['os_service_default'] 39 | # 40 | class manila::healthcheck ( 41 | $detailed = $facts['os_service_default'], 42 | $backends = $facts['os_service_default'], 43 | $allowed_source_ranges = $facts['os_service_default'], 44 | $ignore_proxied_requests = $facts['os_service_default'], 45 | $disable_by_file_path = $facts['os_service_default'], 46 | $disable_by_file_paths = $facts['os_service_default'], 47 | $enable_by_file_paths = $facts['os_service_default'], 48 | ) { 49 | 50 | include manila::deps 51 | 52 | oslo::healthcheck { 'manila_config': 53 | detailed => $detailed, 54 | backends => $backends, 55 | allowed_source_ranges => $allowed_source_ranges, 56 | ignore_proxied_requests => $ignore_proxied_requests, 57 | disable_by_file_path => $disable_by_file_path, 58 | disable_by_file_paths => $disable_by_file_paths, 59 | enable_by_file_paths => $enable_by_file_paths, 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /manifests/network/neutron_network.pp: -------------------------------------------------------------------------------- 1 | # == define: manila::network::neutron_network 2 | # 3 | # Setup and configure the Neutron network plugin 4 | # 5 | # === Parameters 6 | # 7 | # [*neutron_physical_net_name*] 8 | # (required) The name of the physical network to determine which net segment 9 | # is used. 10 | # 11 | # [*network_plugin_ipv4_enabled*] 12 | # (optional) Whether to support Ipv4 network resource. 13 | # Defaults to $facts['os_service_default']. 14 | # 15 | # [*network_plugin_ipv6_enabled*] 16 | # (optional) whether to support IPv6 network resource. 17 | # Defaults to $facts['os_service_default']. 18 | # 19 | define manila::network::neutron_network ( 20 | $neutron_physical_net_name, 21 | $network_plugin_ipv4_enabled = $facts['os_service_default'], 22 | $network_plugin_ipv6_enabled = $facts['os_service_default'], 23 | ) { 24 | 25 | $neutron_single_plugin_name = 'manila.network.neutron.neutron_network_plugin.NeutronNetworkPlugin' 26 | 27 | manila_config { 28 | "${name}/network_api_class": value => $neutron_single_plugin_name; 29 | "${name}/neutron_physical_net_name": value => $neutron_physical_net_name; 30 | "${name}/network_plugin_ipv4_enabled": value => $network_plugin_ipv4_enabled; 31 | "${name}/network_plugin_ipv6_enabled": value => $network_plugin_ipv6_enabled; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /manifests/network/neutron_single_network.pp: -------------------------------------------------------------------------------- 1 | # == define: manila::network::neutron_single_network 2 | # 3 | # Setup and configure the Neutron single network plugin 4 | # 5 | # === Parameters 6 | # 7 | # [*neutron_net_id*] 8 | # (required) Default Neutron network that will be used for share server 9 | # creation. 10 | # 11 | # [*neutron_subnet_id*] 12 | # (required) Default Neutron subnet that will be used for share server 13 | # creation. Should be assigned to network defined in opt 14 | # 'neutron_net_id'. 15 | # 16 | # [*network_plugin_ipv4_enabled*] 17 | # (optional) Whether to support Ipv4 network resource. 18 | # Defaults to $facts['os_service_default']. 19 | # 20 | # [*network_plugin_ipv6_enabled*] 21 | # (optional) whether to support IPv6 network resource. 22 | # Defaults to $facts['os_service_default']. 23 | # 24 | define manila::network::neutron_single_network ( 25 | $neutron_net_id, 26 | $neutron_subnet_id, 27 | $network_plugin_ipv4_enabled = $facts['os_service_default'], 28 | $network_plugin_ipv6_enabled = $facts['os_service_default'], 29 | ) { 30 | 31 | $neutron_single_plugin_name = 'manila.network.neutron.neutron_network_plugin.NeutronSingleNetworkPlugin' 32 | 33 | manila_config { 34 | "${name}/network_api_class": value => $neutron_single_plugin_name; 35 | "${name}/neutron_net_id": value => $neutron_net_id; 36 | "${name}/neutron_subnet_id": value => $neutron_subnet_id; 37 | "${name}/network_plugin_ipv4_enabled": value => $network_plugin_ipv4_enabled; 38 | "${name}/network_plugin_ipv6_enabled": value => $network_plugin_ipv6_enabled; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /manifests/network/standalone.pp: -------------------------------------------------------------------------------- 1 | # == define: manila::network::standalone 2 | # 3 | # Setup and configure Manila standalone network communication 4 | # 5 | # === Parameters 6 | # 7 | # [*standalone_network_plugin_gateway*] 8 | # (required) Gateway IPv4 address that should be used. Required 9 | # 10 | # [*standalone_network_plugin_mask*] 11 | # (required) Network mask that will be used. Can be either decimal 12 | # like '24' or binary like '255.255.255.0'. Required. 13 | # 14 | # [*standalone_network_plugin_segmentation_id*] 15 | # (optional) Set it if network has segmentation (VLAN, VXLAN, etc...). 16 | # It will be assigned to share-network and share drivers will be 17 | # able to use this for network interfaces within provisioned 18 | # share servers. Optional. Example: 1001 19 | # Defaults to $facts['os_service_default'] 20 | # 21 | # [*standalone_network_plugin_allowed_ip_ranges*] 22 | # (optional) Can be IP address, range of IP addresses or list of addresses 23 | # or ranges. Contains addresses from IP network that are allowed 24 | # to be used. If empty, then will be assumed that all host 25 | # addresses from network can be used. Optional. 26 | # Examples: 10.0.0.10 or 10.0.0.10-10.0.0.20 or 27 | # 10.0.0.10-10.0.0.20,10.0.0.30-10.0.0.40,10.0.0.50 28 | # Defaults to $facts['os_service_default'] 29 | # 30 | # [*network_plugin_ipv4_enabled*] 31 | # (optional) Whether to support Ipv4 network resource 32 | # Defaults to $facts['os_service_default'] 33 | # 34 | # [*network_plugin_ipv6_enabled*] 35 | # (optional) whether to support IPv6 network resource 36 | # Defaults to $facts['os_service_default'] 37 | # 38 | define manila::network::standalone ( 39 | $standalone_network_plugin_gateway, 40 | $standalone_network_plugin_mask, 41 | $standalone_network_plugin_segmentation_id = $facts['os_service_default'], 42 | $standalone_network_plugin_allowed_ip_ranges = $facts['os_service_default'], 43 | $network_plugin_ipv4_enabled = $facts['os_service_default'], 44 | $network_plugin_ipv6_enabled = $facts['os_service_default'], 45 | ) { 46 | 47 | $standalone_plugin_name = 'manila.network.standalone_network_plugin.StandaloneNetworkPlugin' 48 | 49 | manila_config { 50 | "${name}/network_api_class": 51 | value => $standalone_plugin_name; 52 | "${name}/standalone_network_plugin_gateway": 53 | value => $standalone_network_plugin_gateway; 54 | "${name}/standalone_network_plugin_mask": 55 | value => $standalone_network_plugin_mask; 56 | "${name}/standalone_network_plugin_segmentation_id": 57 | value => $standalone_network_plugin_segmentation_id; 58 | "${name}/standalone_network_plugin_allowed_ip_ranges": 59 | value => join(any2array($standalone_network_plugin_allowed_ip_ranges), ','); 60 | "${name}/network_plugin_ipv4_enabled": 61 | value => $network_plugin_ipv4_enabled; 62 | "${name}/network_plugin_ipv6_enabled": 63 | value => $network_plugin_ipv6_enabled; 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /manifests/params.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::params 2 | # 3 | # Parameters for puppet-manila 4 | # 5 | class manila::params { 6 | include openstacklib::defaults 7 | 8 | $client_package = 'python3-manilaclient' 9 | $db_sync_command = 'manila-manage db sync' 10 | $user = 'manila' 11 | $group = 'manila' 12 | 13 | case $facts['os']['family'] { 14 | 'Debian': { 15 | $lock_path = '/var/lock/manila' 16 | $package_name = 'manila-common' 17 | $api_package = 'manila-api' 18 | $api_service = 'manila-api' 19 | $data_package = 'manila-data' 20 | $data_service = 'manila-data' 21 | $scheduler_package = 'manila-scheduler' 22 | $scheduler_service = 'manila-scheduler' 23 | $share_package = 'manila-share' 24 | $share_service = 'manila-share' 25 | $gluster_client_package_name = 'glusterfs-client' 26 | $gluster_package_name = 'glusterfs-common' 27 | $manila_wsgi_script_path = '/usr/lib/cgi-bin/manila' 28 | $manila_wsgi_script_source = '/usr/bin/manila-wsgi' 29 | $nfs_client_package_name = 'nfs-common' 30 | $ceph_common_package_name = 'ceph-common' 31 | } 32 | 'RedHat': { 33 | $lock_path = '/var/lib/manila/tmp' 34 | $package_name = 'openstack-manila' 35 | $api_package = false 36 | $api_service = 'openstack-manila-api' 37 | $data_package = false 38 | $data_service = 'openstack-manila-data' 39 | $scheduler_package = false 40 | $scheduler_service = 'openstack-manila-scheduler' 41 | $share_package = 'openstack-manila-share' 42 | $share_service = 'openstack-manila-share' 43 | $gluster_client_package_name = 'glusterfs-fuse' 44 | $gluster_package_name = 'glusterfs' 45 | $manila_wsgi_script_path = '/var/www/cgi-bin/manila' 46 | $manila_wsgi_script_source = '/usr/bin/manila-wsgi' 47 | $nfs_client_package_name = 'nfs-utils' 48 | $ceph_common_package_name = 'ceph-common' 49 | } 50 | default: { 51 | fail("unsupported osfamily ${facts['os']['family']}, currently Debian and Redhat are the only supported platforms") 52 | } 53 | 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /manifests/policy.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::policy 2 | # 3 | # Configure the manila policies 4 | # 5 | # === Parameters 6 | # 7 | # [*enforce_scope*] 8 | # (Optional) Whether or not to enforce scope when evaluating policies. 9 | # Defaults to $facts['os_service_default']. 10 | # 11 | # [*enforce_new_defaults*] 12 | # (Optional) Whether or not to use old deprecated defaults when evaluating 13 | # policies. 14 | # Defaults to $facts['os_service_default']. 15 | # 16 | # [*policies*] 17 | # (Optional) Set of policies to configure for manila 18 | # Example : 19 | # { 20 | # 'manila-context_is_admin' => { 21 | # 'key' => 'context_is_admin', 22 | # 'value' => 'true' 23 | # }, 24 | # 'manila-default' => { 25 | # 'key' => 'default', 26 | # 'value' => 'rule:admin_or_owner' 27 | # } 28 | # } 29 | # Defaults to empty hash. 30 | # 31 | # [*policy_path*] 32 | # (Optional) Path to the manila policy.yaml file 33 | # Defaults to /etc/manila/policy.yaml 34 | # 35 | # [*policy_default_rule*] 36 | # (Optional) Default rule. Enforced when a requested rule is not found. 37 | # Defaults to $facts['os_service_default']. 38 | # 39 | # [*policy_dirs*] 40 | # (Optional) Path to the manila policy folder 41 | # Defaults to $facts['os_service_default'] 42 | # 43 | # [*purge_config*] 44 | # (optional) Whether to set only the specified policy rules in the policy 45 | # file. 46 | # Defaults to false. 47 | # 48 | class manila::policy ( 49 | $enforce_scope = $facts['os_service_default'], 50 | $enforce_new_defaults = $facts['os_service_default'], 51 | Hash $policies = {}, 52 | $policy_path = '/etc/manila/policy.yaml', 53 | $policy_default_rule = $facts['os_service_default'], 54 | $policy_dirs = $facts['os_service_default'], 55 | Boolean $purge_config = false, 56 | ) { 57 | 58 | include manila::deps 59 | include manila::params 60 | 61 | $policy_parameters = { 62 | policies => $policies, 63 | policy_path => $policy_path, 64 | file_user => 'root', 65 | file_group => $::manila::params::group, 66 | file_format => 'yaml', 67 | purge_config => $purge_config, 68 | tag => 'manila', 69 | } 70 | 71 | create_resources('openstacklib::policy', { $policy_path => $policy_parameters }) 72 | 73 | # policy config should occur in the config block also. 74 | Anchor['manila::config::begin'] 75 | -> Openstacklib::Policy[$policy_path] 76 | -> Anchor['manila::config::end'] 77 | 78 | oslo::policy { 'manila_config': 79 | enforce_scope => $enforce_scope, 80 | enforce_new_defaults => $enforce_new_defaults, 81 | policy_file => $policy_path, 82 | policy_default_rule => $policy_default_rule, 83 | policy_dirs => $policy_dirs, 84 | } 85 | 86 | } 87 | -------------------------------------------------------------------------------- /manifests/reports.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::reports 2 | # 3 | # Configure oslo_reports options 4 | # 5 | # === Parameters 6 | # 7 | # [*log_dir*] 8 | # (Optional) Path to a log directory where to create a file 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | # [*file_event_handler*] 12 | # (Optional) The path to a file to watch for changes to trigger the reports. 13 | # Defaults to $facts['os_service_default'] 14 | # 15 | # [*file_event_handler_interval*] 16 | # (Optional) How many seconds to wait between pools when file_event_handler 17 | # is set. 18 | # Defaults to $facts['os_service_default'] 19 | # 20 | class manila::reports( 21 | $log_dir = $facts['os_service_default'], 22 | $file_event_handler = $facts['os_service_default'], 23 | $file_event_handler_interval = $facts['os_service_default'], 24 | ) { 25 | 26 | include manila::deps 27 | 28 | oslo::reports { 'manila_config': 29 | log_dir => $log_dir, 30 | file_event_handler => $file_event_handler, 31 | file_event_handler_interval => $file_event_handler_interval, 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /manifests/scheduler.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::scheduler 2 | # 3 | # Install and manage Manila scheduler. 4 | # 5 | # === Parameters 6 | # 7 | # [*driver*] 8 | # (Optional) Default scheduler driver to use 9 | # Defaults to $facts['os_service_default']. 10 | # 11 | # [*host_manager*] 12 | # (Optional) The scheduler host manager class to use 13 | # Defaults to $facts['os_service_default']. 14 | # 15 | # [*max_attempts*] 16 | # (Optional) Maximum number of attempts to schedule a share 17 | # Defaults to $facts['os_service_default']. 18 | # 19 | # [*package_ensure*] 20 | # (Optional) The state of the scheduler package 21 | # Defaults to 'present'. 22 | # 23 | # [*enabled*] 24 | # (Optional) Whether to run the scheduler service 25 | # Defaults to true. 26 | # 27 | # [*manage_service*] 28 | # (Optional) Whether to start/stop the service 29 | # Defaults to true. 30 | # 31 | # DEPRECATED PARAMETERS 32 | # 33 | # [*scheduler_driver*] 34 | # (Optional) Default scheduler driver to use 35 | # Defaults to undef 36 | # 37 | class manila::scheduler ( 38 | $driver = $facts['os_service_default'], 39 | $host_manager = $facts['os_service_default'], 40 | $max_attempts = $facts['os_service_default'], 41 | $package_ensure = 'present', 42 | Boolean $enabled = true, 43 | Boolean $manage_service = true, 44 | # DEPRECATED PARAMETERS 45 | $scheduler_driver = undef 46 | ) { 47 | 48 | include manila::deps 49 | include manila::params 50 | 51 | if $scheduler_driver != undef { 52 | warning("The scheduler_driver parameter has been deprecated. \ 53 | Use the driver parameter instead") 54 | $driver_real = $scheduler_driver 55 | } else { 56 | $driver_real = $driver 57 | } 58 | 59 | manila_config { 60 | 'DEFAULT/scheduler_driver': value => $driver_real; 61 | 'DEFAULT/scheduler_host_manager': value => $host_manager; 62 | 'DEFAULT/scheduler_max_attempts': value => $max_attempts; 63 | } 64 | 65 | if $::manila::params::scheduler_package { 66 | package { 'manila-scheduler': 67 | ensure => $package_ensure, 68 | name => $::manila::params::scheduler_package, 69 | tag => ['openstack', 'manila-package'], 70 | } 71 | } 72 | 73 | if $manage_service { 74 | if $enabled { 75 | $ensure = 'running' 76 | } else { 77 | $ensure = 'stopped' 78 | } 79 | 80 | service { 'manila-scheduler': 81 | ensure => $ensure, 82 | name => $::manila::params::scheduler_service, 83 | enable => $enabled, 84 | hasstatus => true, 85 | tag => 'manila-service', 86 | } 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /manifests/scheduler/filter.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila:scheduler::filter 2 | # 3 | # This class is aim to configure manila.scheduler filter 4 | # 5 | # === Parameters: 6 | # 7 | # [*default_filters*] 8 | # (Optional) List of filter class names to use for filtering hosts. 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | # [*default_weighers*] 12 | # (Optional) List of weigher class names to use for weighning hosts. 13 | # Defaults to $facts['os_service_default'] 14 | # 15 | # [*default_share_group_filters*] 16 | # (Optional) List of filter class names to use for filtering hosts creating 17 | # share group. 18 | # Defaults to $facts['os_service_default'] 19 | # 20 | # [*default_extend_filters*] 21 | # (Optional) List of filter class names to use for filtering hosts 22 | # extending share. 23 | # Defaults to $facts['os_service_default'] 24 | # 25 | # [*pool_weight_multiplier*] 26 | # (Optional) Multiplier used for weighing existing share servers in a pool 27 | # Defaults to $facts['os_service_default'] 28 | # 29 | # [*capacity_weight_multiplier*] 30 | # (Optional) Multiplier used for weighing share capacity. 31 | # Defaults to $facts['os_service_default'] 32 | # 33 | class manila::scheduler::filter ( 34 | $default_filters = $facts['os_service_default'], 35 | $default_weighers = $facts['os_service_default'], 36 | $default_share_group_filters = $facts['os_service_default'], 37 | $default_extend_filters = $facts['os_service_default'], 38 | $pool_weight_multiplier = $facts['os_service_default'], 39 | $capacity_weight_multiplier = $facts['os_service_default'], 40 | ) { 41 | 42 | include manila::deps 43 | 44 | manila_config { 45 | 'DEFAULT/scheduler_default_filters': 46 | value => join(any2array($default_filters),','); 47 | 'DEFAULT/scheduler_default_weighers': 48 | value => join(any2array($default_weighers),','); 49 | 'DEFAULT/scheduler_default_share_group_filters': 50 | value => join(any2array($default_share_group_filters),','); 51 | 'DEFAULT/scheduler_default_extend_filters': 52 | value => join(any2array($default_extend_filters),','); 53 | 'DEFAULT/pool_weight_multiplier': 54 | value => $pool_weight_multiplier; 55 | 'DEFAULT/capacity_weight_multiplier': 56 | value => $capacity_weight_multiplier; 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /manifests/setup_test_volume.pp: -------------------------------------------------------------------------------- 1 | # == Class: manila::setup_test_volume 2 | # 3 | # Setup a volume group on a loop device for test purposes. 4 | # 5 | # === Parameters 6 | # 7 | # [*volume_name*] 8 | # (Optional) Volume group name. 9 | # Defaults to 'lvm-shares'. 10 | # 11 | # [*size*] 12 | # (Optional) Volume group size. 13 | # Defaults to '4G'. 14 | # 15 | # [*loopback_device*] 16 | # (Optional) Loop device name. 17 | # Defaults to '/dev/loop2'. 18 | # 19 | # [*volume_path*] 20 | # (Optional) Volume image location. 21 | # Defaults to '/var/lib/manila'. 22 | # 23 | class manila::setup_test_volume( 24 | String[1] $volume_name = 'lvm-shares', 25 | Stdlib::Absolutepath $volume_path = '/var/lib/manila', 26 | $size = '4G', 27 | $loopback_device = '/dev/loop2' 28 | ) { 29 | 30 | include manila::deps 31 | 32 | ensure_packages ( 'lvm2', { 33 | ensure => present, 34 | }) 35 | Package<| title == 'lvm2' |> { tag +> 'manila-support-package' } 36 | 37 | exec { "create_${volume_path}/${volume_name}": 38 | command => "dd if=/dev/zero of=\"${volume_path}/${volume_name}\" bs=1 count=0 seek=${size}", 39 | path => ['/bin','/usr/bin','/sbin','/usr/sbin'], 40 | unless => "stat ${volume_path}/${volume_name}", 41 | require => Anchor['manila::install::end'], 42 | subscribe => Package['lvm2'] 43 | } 44 | ~> file { "${volume_path}/${volume_name}": 45 | mode => '0640', 46 | } 47 | ~> exec { "losetup ${loopback_device} ${volume_path}/${volume_name}": 48 | command => "losetup ${loopback_device} ${volume_path}/${volume_name} && udevadm settle", 49 | path => ['/bin','/usr/bin','/sbin','/usr/sbin'], 50 | unless => "losetup ${loopback_device}", 51 | refreshonly => true, 52 | } 53 | ~> exec { "pvcreate ${loopback_device}": 54 | path => ['/bin','/usr/bin','/sbin','/usr/sbin'], 55 | unless => "pvs ${loopback_device}", 56 | refreshonly => true, 57 | } 58 | ~> exec { "vgcreate ${volume_name} ${loopback_device}": 59 | path => ['/bin','/usr/bin','/sbin','/usr/sbin'], 60 | unless => "vgs ${volume_name}", 61 | refreshonly => true, 62 | } 63 | -> Anchor['manila::service::begin'] 64 | } 65 | -------------------------------------------------------------------------------- /manifests/wsgi/uwsgi.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2021 Thomas Goirand 3 | # 4 | # Author: Thomas Goirand 5 | # 6 | # == Class: manila::wsgi::uwsgi 7 | # 8 | # Configure the UWSGI service for Manila API. 9 | # 10 | # == Parameters 11 | # 12 | # [*processes*] 13 | # (Optional) Number of processes. 14 | # Defaults to $facts['os_workers']. 15 | # 16 | # [*threads*] 17 | # (Optional) Number of threads. 18 | # Defaults to 32. 19 | # 20 | # [*listen_queue_size*] 21 | # (Optional) Socket listen queue size. 22 | # Defaults to 100 23 | # 24 | class manila::wsgi::uwsgi ( 25 | $processes = $facts['os_workers'], 26 | $threads = 32, 27 | $listen_queue_size = 100, 28 | ){ 29 | 30 | include manila::deps 31 | 32 | if $facts['os']['name'] != 'Debian'{ 33 | warning('This class is only valid for Debian, as other operating systems are not using uwsgi by default.') 34 | } 35 | 36 | manila_api_uwsgi_config { 37 | 'uwsgi/processes': value => $processes; 38 | 'uwsgi/threads': value => $threads; 39 | 'uwsgi/listen': value => $listen_queue_size; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "author": "NetApp and OpenStack Contributors", 3 | "dependencies": [ 4 | { 5 | "name": "puppetlabs/inifile", 6 | "version_requirement": ">=2.0.0 <7.0.0" 7 | }, 8 | { 9 | "name": "openstack/keystone", 10 | "version_requirement": ">=26.0.0 <27.0.0" 11 | }, 12 | { 13 | "name": "openstack/glance", 14 | "version_requirement": ">=26.0.0 <27.0.0" 15 | }, 16 | { 17 | "name": "puppetlabs/stdlib", 18 | "version_requirement": ">=5.0.0 <10.0.0" 19 | }, 20 | { 21 | "name": "openstack/openstacklib", 22 | "version_requirement": ">=26.0.0 <27.0.0" 23 | }, 24 | { 25 | "name": "openstack/oslo", 26 | "version_requirement": ">=26.0.0 <27.0.0" 27 | } 28 | ], 29 | "description": "Installs and configures OpenStack Manila (Shared Filesystems).", 30 | "issues_url": "https://bugs.launchpad.net/puppet-manila", 31 | "license": "Apache-2.0", 32 | "name": "openstack-manila", 33 | "operatingsystem_support": [ 34 | { 35 | "operatingsystem": "Debian", 36 | "operatingsystemrelease": [ 37 | "12" 38 | ] 39 | }, 40 | { 41 | "operatingsystem": "RedHat", 42 | "operatingsystemrelease": [ 43 | "9" 44 | ] 45 | }, 46 | { 47 | "operatingsystem": "CentOS", 48 | "operatingsystemrelease": [ 49 | "9" 50 | ] 51 | }, 52 | { 53 | "operatingsystem": "Ubuntu", 54 | "operatingsystemrelease": [ 55 | "24.04" 56 | ] 57 | } 58 | ], 59 | "project_page": "https://launchpad.net/puppet-manila", 60 | "requirements": [ 61 | { 62 | "name": "puppet", 63 | "version_requirement": ">= 7.0.0 < 9.0.0" 64 | } 65 | ], 66 | "source": "https://opendev.org/openstack/puppet-manila.git", 67 | "summary": "Puppet module for OpenStack Manila", 68 | "version": "26.0.0" 69 | } 70 | -------------------------------------------------------------------------------- /releasenotes/notes/Add-cephfs_volume_mode-parameter-8f6bf0eb5b6fc425.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Support setting values for ``cephfs_volume_mode`` parameter which controls 5 | the rwx mode of the cephfs volumes, snapshots, and groups of these 6 | that back manila shares. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add-cephfs_ganesha_export_ips-parameter-e13d48ae6969bba3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support for configuring a list of IP addresses (or hostnames) on which 5 | Manila will listen for mounts and provide NFS service via the 6 | ``cephfs_ganesha_export_ips`` parameter. 7 | 8 | -------------------------------------------------------------------------------- /releasenotes/notes/add-cephfsnative-3126f053d9618a3d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Allow to configure Manila with CephFSnative backend. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add-flashblade-66b88affa066ad31.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add support for Pure Storage FlashBlade Driver 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add-hitachihnas-3925789fa9c30ab5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Allow to configure Manila with HITACHI HNAS backend. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add-log_file-for-logging-9ad61310c2a6c973.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add the log_file option for logging. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add-pool_timeout-option-for-db-931acdebaa940b48.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Adds the pool_timeout option for configuring oslo.db. This will 5 | configure this value for pool_timeout with SQLAlchemy. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add-replica-quotas-9d838dc338d4cfce.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following new options were added so that operators can set quota 5 | parameters for share replica. 6 | 7 | - ``manila::quota::quota_share_replicas`` 8 | - ``manila::quota::quota_replica_gigabytes`` 9 | -------------------------------------------------------------------------------- /releasenotes/notes/add-share-backend-availability-zone-parameters-1bcf6b1066dc82cf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add new "backend_availability_zone" parameter to every share 5 | backend. The parameters are optional, and when set they override the 6 | DEFAULT/storage_availability_zone for the corresponding backend. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add-use_journal-option-for-logging-b646bbb366ef8438.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Adds the use_journal option for configuring oslo.log. This will enable 5 | passing the logs to journald. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add_db_max_retries-0rt56db43fderty6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add support for db_max_retries param 4 | The db_max_retries parameter regulates 5 | the number of reconnection attempts performed 6 | after an error raised rather than at startup. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add_db_sync_timeout-b83dcd8a9c6f0b4c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Adds db_sync_timeout parameter to db sync. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add_host_parameter-1a16fb834cc3ff98.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new parameter "host", an opaque identifier for the node, not 4 | necessarily a host name, FQDN, or IP address. May be used for more 5 | than one node when these are in an HA cluster. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add_lvm_backend-61200603bcb4139e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Allow to configure Manila with LVM backend. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add_messaging_default_parameters-3a3498137813a8d6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new parameter "rpc_response_timeout", seconds to wait for a 4 | response from a call 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add_messaging_notification_parameters-71a4983f237e3199.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new parameter "notification_topics", AMQP topic used for 4 | OpenStack notifications. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add_mysql_enable_ndb-option-b963ed39971e15fc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add mysql_enable_ndb parameter to select mysql storage engine. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add_network_plugin_addr_family_parameters-7cca69252e71083f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | In Pike manila proper added IPv6 support for network plugins and drivers 5 | so we now support the configuration parameters ``network_plugin_ipv4_enabled`` 6 | and ``network_plugin_ipv6_enabled``. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add_oslo_amqp_parameters-aeceadad34451e8a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add additional oslo.messaging amqp parameters (SASL, username) 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add_rabbit_kombu_options-a3b52f3aec9b3a48.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Adds the kombu_failover_strategy option for configuring oslo.messaging.rabbit. 5 | This will determines how the next RabbitMQ node is chosen in case the one we 6 | are currently connected to becomes unavailable. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add_service_workers_option-1c0728975b024eac.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add service_workers option to configure the number of API workers 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add_transport_url_parameters-675ef5f76fc5e8d2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add oslo.messaging transport_url parameters via puppet-oslo resource -------------------------------------------------------------------------------- /releasenotes/notes/add_watch_log_file-option-9aeec2b721b3c9f6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::logging::watch_log_file`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/admin_only_metadata-5566bb80f0591662.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::api::admin_only_metadata`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/amqp_auto_delete-052b56b650d9b05a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add a new ``amqp_auto_delete`` parameter, so that transient queues are 5 | automatically deleted. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/amqp_container_name-use_default-2ea9e17fcb213273.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | The default value of ``manila::amqp_container_name`` has been updated and 5 | now the service default value is used by default, so that a unique value 6 | is generated by the `oslo.meesaging` library. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/apache-headers-a2f35e9fae4c7667.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::wsgi::apache`` class now supports customizing 5 | request/response headers added by apache. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/api_paste_ini-separator-89185d9497e0aa6e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``key_val_separator`` parameter has been added to 5 | the ``manila_api_paste_ini`` resource type. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/auth_type-fix-62bc3acab9700deb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Now the following classes set keystone_credential parameters lik username 5 | in manila.conf, even auth_type is not ``password``. This fixes the problem 6 | with the other auth_type value like ``v3password``. 7 | 8 | - ``manila::compute::nova`` 9 | - ``manila::network::neutron`` 10 | - ``manila::volume::cinder`` 11 | -------------------------------------------------------------------------------- /releasenotes/notes/authtoken-4c9708f4e3b9605d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Added manila::keystone::authtoken class to configure the 4 | keystone_authtoken section in configuration file with all 5 | keystone middleware parameters. 6 | deprecations: 7 | - manila::api::keystone_user is deprecated in favor of 8 | manila::keystone::authtoken::username 9 | - manila::api::keystone_tenant is deprecated in favor of 10 | manila::keystone::authtoken::project_name 11 | - manila::api::keystone_password is deprecated in favor of 12 | manila::keystone::authtoken::password 13 | - manila::api::keystone_auth_uri is deprecated in favor of 14 | manila::keystone::authtoken::auth_uri 15 | - manila::api::keystone_auth_admin_prefix is deprecated and will be removed 16 | in a future release 17 | - manila::api::keystone_auth_host is deprecated and will be removed 18 | in a future release 19 | - manila::api::keystone_auth_port is deprecated and will be removed 20 | in a future release 21 | - manila::api::keystone_auth_protocol is deprecated and will be removed 22 | in a future release 23 | - manila::api::service_port is deprecated and will be removed 24 | in a future release 25 | -------------------------------------------------------------------------------- /releasenotes/notes/authtoken_manage_memcache_package-4b61e2686c38d698.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Passes parameter to keystone authtoken define to manage python-memcache package install. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/backend-ganesha-opts-1879e014a3796efd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::backend::ganesha`` resource type has been added. This allows 5 | configuring Ganesha share which is supported by some drivers like CephFS. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/backend-service_instance-718b9dca8005e17d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``manila::service_instance`` defined type has been deprecated, in favor 5 | of the new ``manila::backend::service_instance`` defined type. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/backup-quota-opts-3f7235d49b3fa74f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters have been added to the ``manila::quota`` class. 5 | 6 | - ``backups`` 7 | - ``backup_gigabytes`` 8 | -------------------------------------------------------------------------------- /releasenotes/notes/bug-1741425-add-glance-section-opts-48d861c132295bdd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | A new class has been introduced ("manila::image::glance") to allow 5 | configuration parameters necessary for the usage of glanceclient 6 | within Manila's service instance module. See `Launchpad bug 1741425 7 | `_ for more details. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/bug-1968514-c313f818444957fa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixed the wrong user name parameter of HNAS share driver. Because of this 5 | fix, the ``hitachi_hnas_username`` parameters was renamed to 6 | ``hitachi_hnas_user``. See `Launchpad bug 1968514 7 | `_ for more details. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/bug-2079986-6ec7172fb10d836b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``manila::notification_driver`` parameter now defaults to 5 | the os_service_default fact, which is the default value more globally used 6 | by the other Puppet OpenStack modules. Set the parameter to ``messaging`` 7 | to keep using the previous default value. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/centos-9-support-bef2b97780479782.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Now this module supports CentOS 9 and Red Hat Enterprise Linux 9. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/cephfs-install-ceph-common-9e6d25c472906b3a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::backend::cephfs`` defined resource type now ensures that 5 | the ``ceph-common`` package is installed so that the python libraries 6 | required by cephfs share driver are installed. The installation can be 7 | disabled by setting the new ``manage_package`` parameter to ``False``. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/cephfs_cached_allocated_capacity_update_interval-7a2a022df70c7c40.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::backend::cephfs::cephfs_cached_allocated_capacity_update_interval`` 5 | parameter has been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/cephfs_filesystem_name-1fb08f432fdf9af1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::backend::cephfs::cephfs_filesystem_name`` parameter has 5 | been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/cephfs_nfs_cluster_id-cab5f8d5044e6b06.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::backend::cephfs::cephfs_nfs_cluster_id`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/change-emc_ssl_cert_verify-2a6204b63853bdf1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Defaut value of the ``emc_ssl_cert_verify`` parameter in the following 5 | resource types will be changed from ``false`` to service default which 6 | is effectively ``true``. Make sure the parameter is set if needed. 7 | 8 | - ``manila::backend::dellemc_unity`` 9 | - ``manila::backend::dellemc_vnx`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/change-emc_ssl_cert_verify-update-63800b069921f44c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Defaut value of the ``emc_ssl_cert_verify`` parameter in the following 5 | resource types has been changed from ``false`` to service default which 6 | is effectively ``true``. 7 | 8 | - ``manila::backend::dellemc_unity`` 9 | - ``manila::backend::dellemc_vnx`` 10 | 11 | -------------------------------------------------------------------------------- /releasenotes/notes/change-keystone-v3-5869a77ea56e5e49.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The default value for manila::type::os_auth_url is changed from 5 | http://127.0.0.1:5000/v2.0/ to http://127.0.0.1:5000/v3/ 6 | - | 7 | The default value for manila::volume::cinder::cinder_admin_auth_url 8 | is changed from http://localhost:5000/v2.0 to http://localhost:5000/v3 9 | - | 10 | The default value for manila::type_set::os_auth_url is changed from 11 | http://localhost:5000/v2.0 to http://localhost:5000/v3 12 | -------------------------------------------------------------------------------- /releasenotes/notes/cleanup-glusterfs-native-deprecation-77a26e6b98b74147.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The parameter 'manila::backend::glusternative::glusterfs_native_path_to_private_key' 5 | has been deprecated and replaced with 6 | 'manila::backend::glusternative::glusterfs_path_to_private_key'. The 7 | older option will be removed in a future release. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/cleanup-manila-api-83ef761e950fed94.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters in ``manila::api`` class has been removed. 5 | 6 | - ``service_port`` 7 | - ``os_region_name`` 8 | -------------------------------------------------------------------------------- /releasenotes/notes/cleanup-netapp-deprecation-6951452b46357d22.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The parameter 'manila::backend::netapp::netapp_root_volume_name' has 5 | been deprecated and replaced by 'manila::backend::netapp::netapp_root_volume'. 6 | The older option will be removed in a future release. 7 | - | 8 | The parameter 'manila::share::netapp::netapp_root_volume_name' has 9 | been deprecated and replaced by 'manila::share::netapp::netapp_root_volume'. 10 | The older option will be removed in a future release. 11 | -------------------------------------------------------------------------------- /releasenotes/notes/cleanup-service_instance-b93ed57e6428ee56.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated ``manila::service_instance`` defined resource type has been 5 | removed. Use the ``manila::backend::service_instance`` defined resource 6 | type instead. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/configure_service-054ca05f190ce796.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters have been added to the ``manila::keystone::auth`` 5 | class. 6 | 7 | - ``configure_service`` 8 | - ``configure_service_v2`` 9 | -------------------------------------------------------------------------------- /releasenotes/notes/configure_user-and-user_role-6da5eacad6569b6f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters have been added to the ``manila::keystone::auth`` 5 | class. 6 | 7 | - ``configure_user`` 8 | - ``configure_user_v2`` 9 | - ``configure_user_role`` 10 | - ``configure_user_role_v2`` 11 | -------------------------------------------------------------------------------- /releasenotes/notes/consistent-project-name-55f3f0d8b3dba962.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The default value of manila::compute::nova::project_name, 5 | manila::network::neutron::project_name and 6 | manila::volume::cinder::cinder_admin_tenant_name has been changed from 7 | 'service' to 'services'. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/coordination-07f3f700248c38fb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::coordination`` class has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/cors-e81d93f888673010.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::cors`` class has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/cron-db_purge-749e862ad2d40647.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::cron::db_purge`` class has been added. This class can be 5 | used to set up cron job to purge soft-deleted records from database. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/cron-ensure-03e8480fc11340f9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::cron::db_purge::ensure`` parameter has been added, so 5 | that status of the cron job can be customized. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/default-domain-58d9ea68fa468e75.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | issues: 3 | - | 4 | Keystone v2.0 API was removed so we need to set a default value 5 | for user_domain_name and project_domain name, which will be 6 | Default as it is already in some other classes in modules. 7 | 8 | -------------------------------------------------------------------------------- /releasenotes/notes/dellemc-rebrand-driverurl-c4651935ac341482.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - The Dell EMC Manila driver urls updated to the correct path 4 | to fix the deprecation warnings. 5 | 6 | -------------------------------------------------------------------------------- /releasenotes/notes/dellemc-unity-support-13151e66bae44974.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | This patch adds following 3 options for DellEMC Unity driver: 5 | * network_plugin_ipv6_enabled: this option is set to True by default 6 | * emc_ssl_cert_verify: this option is set to False by default 7 | * emc_ssl_cert_path 8 | -------------------------------------------------------------------------------- /releasenotes/notes/dellemc-vnx-support-238ddf33cccfb73c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | This patch adds following 3 options for DellEMC VNX driver: 5 | * network_plugin_ipv6_enabled: this option is set to True by default 6 | * emc_ssl_cert_verify: this option is set to False by default 7 | * emc_ssl_cert_path 8 | -------------------------------------------------------------------------------- /releasenotes/notes/dellemc_powermax-6ded05263d935f14.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Support for Dell EMC PowerMax backend has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-ceph-nfs-protocol-helper-options-9a17db8fdeb1cfe3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following parameters of the ``manila::backend::cephfs`` class are 5 | deprecated now, because the corresponding options in manila are already 6 | deprecated. 7 | 8 | - ``cephfs_ganesha_server_is_remote`` 9 | - ``cephfs_ganesha_server_username`` 10 | - ``cephfs_ganesha_path_to_private_key`` 11 | - ``cephfs_ganesha_server_password`` 12 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-cephfs-enable-snapshots-0a12425e90961ab7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The parameter 'manila::backend::cephfs::cephfs_enable_snapshots' has been 5 | deprecated. Manila's CephFS driver has changed the default behavior in 6 | the Victoria cycle to always support snapshots, because they are fully 7 | supported in Ceph Nautilus, the minimum version of Ceph supported by 8 | Manila. Since the ``cephfs_enable_snapshots`` config option will be removed 9 | in a future release, we recommend that you stop relying on it. Manila's 10 | snapshots can be disabled by virtue of share type extra specs if 11 | desired. 12 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-cephfsnative-add-cephfs-8ea802ec233c7618.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Added new cephfs class which supports both direct cephfs access or through 5 | ganesha-nfs server. 6 | deprecations: 7 | - | 8 | Deprecated cephfsnative class in favor of the new cephfs class. 9 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-default-backend-2f553e0771ae4aeb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following classes were formally deprecated. Use 5 | the ``manila::backend::*`` defined resource types instead. 6 | 7 | - ``manila::share::generic`` 8 | - ``manila::share::hitachi_hnas`` 9 | - ``manila::share::netapp`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-dellemc-vnx-c2240bf4b18d3295.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | Support for Dell EMC VNX share driver has been deprecated and will be 5 | removed in a future release. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-dellemc_vmax-c33b3e75c5324458.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | Support for the Dell EMC VMAX backend has been deprecated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-driver_handles_share_servers-20f4d2f1d08154ef.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following parmaeters have been deprecated and has no effect now. 5 | 6 | - ``manila::backend::dellemc_isilon::driver_handles_share_servers`` 7 | - ``manila::backend::dellemc_vmax::driver_handles_share_servers`` 8 | - ``manila::backend::dellemc_vnx::driver_handles_share_servers`` 9 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-glusterfs-93944c0feb40a978.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following defined resource types have been deprecated and will be 5 | removed in a future release. 6 | 7 | - ``manila::backend::glusterfs`` 8 | - ``manila::backend::glusternative`` 9 | - ``manila::backend::glusternfs`` 10 | 11 | - | 12 | The ``manila::share::glustefs`` class has been deprecated and will be 13 | removed in a future release. 14 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-lvm-driver_handles_share_servers-f3fd2b4b69e66ac5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``manila::backend::lvm::driver_handles_share_servers`` parameter has 5 | been deprecated and has no effect now. The ``driver_handles_share_servers`` 6 | option for lvm backends are always set to ``False``. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-os-region-name-a8713ef980135d13.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The configuration option "os_region_name" from the [DEFAULT] is 5 | deprecated and will be removed in a future release. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-rabbit_heartbeat_in_pthread-3ff7d032cec960f8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``manila::rabbit_heartbeat_in_pthread`` parameter has been deprecated 5 | and will be removed in the future release. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-share-v2-user-82b59ca6db8741d3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | Management of manila v2 user by the ``manila::keystone::auth`` class has 5 | been deprecated and will be removed in a future release. Because of this 6 | change the following parameters of the auth class have been deprecated. 7 | 8 | - ``password_v2`` 9 | - ``email_v2`` 10 | - ``auth_name_v2`` 11 | - ``configure_user_v2`` 12 | - ``configure_user_role_v2`` 13 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-watch_log_file-1e4d226501fc897e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``manila::logging::watch_log_file`` parameter has been deprecated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_allow_insecure_clients-option-8c7b4bedf8927ddb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - allow_insecure_clients option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_auth_uri_parameter-a62f029d62db64d6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - auth_uri is deprecated and will be removed in a future release. 4 | Please use www_authenticate_uri instead. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_database_min_pool_size-option-a8a1e54331198674.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - database_min_pool_size option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_database_options-d3e1be522be3d7fa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following options have been deprecated, as those options have been 5 | moved to manila::db class. 6 | 7 | - ``manila::sql_connection`` 8 | - ``manila::sql_idle_timeout`` 9 | - ``manila::database_max_overflow`` 10 | - ``manila::database_max_pool_size`` 11 | - ``manila::database_max_retries`` 12 | - ``manila::database_retry_interval`` 13 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_idle_timeout_parameter-b84f836d88d9d3e0.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - database_idle_timeout is deprecated and will be removed in a future 4 | release. Please use database_connection_recycle_time instead. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_managing_rabbit_resources-4e72b17c47efacb1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprications: 3 | - Deprecated managing of rabbit resources. 4 | It will be dropped in the next release.es the prelude. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_pki_related_parameters-b0901e5e64816b64.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - check_revocations_for_cached option is now deprecated for removal, the 4 | parameter has no effect. 5 | - hash_algorithms option is now deprecated for removal, the parameter 6 | has no effect. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_revocation_cache_time_parameter-364888537fa13493.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - revocation_cache_time option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_rpc_backend_parameter-2aed9dd1387a910f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - manila::rpc_backend is deprecated and will be removed in a future 4 | release. Please use manila::default_transport_url instead. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_service_instance_network_helper_type_parameter-781ea3e658e9c535.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - service_instance_network_helper_type is now deprecated for 4 | removal; the parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_signing_dir_parameter-3491335a3f8135ef.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - signing_dir option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_standalone_network_plugin_ip_version-4df7ff7851f72c2b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``standalone_network_plugin_ip_version`` parameter was 5 | deprecated for removal in pike and has no effect so it is 6 | marked as deprecated here. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/disable-apache-ssl-434fc2d002f3e9fd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Default value of the ``manila::wsgi::apache::ssl`` parameter has been 5 | changed from ``true`` to ``false`` and now ssl is disabled by default. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/disable-user-v2-31ceee5fee7653fa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Default value of the following parameters have been changed from ``true`` 5 | to ``false``. Because of this change, the ``manila::keystone::auth`` class 6 | no longer creates the additional keystone user for v2 API by default. 7 | 8 | - ``manila::keystone::auth::configure_user_v2`` 9 | - ``manila::keystone::auth::configure_user_role_v2`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/drop-fedora-1286836dbad8c56b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Fedora is no longer supported. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/drop-project-id-endpoint-1711aaf3e3853e02.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The default "v2" endpoints for the manila API service no longer contain 5 | a "tenant_id" template. Support for such endpoints was added 6 | in the manila service during the Wallaby release to accommodate 7 | system-scoped API requests. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/drop_qpid-6f04f70e84cc0711.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - Drop all Qpid support, it was removed from Oslo in Mitaka. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/enable_cancel_on_failover-69ec2ef2834a1c0f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::rabbit_enable_cancel_on_failover`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/executor_thread_pool_size-5cbf844897b55c15.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::executor_thread_pool_size`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/external-ganesha-parameters-9aebf44f7cf01438.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | New parameters are added to the cephfs backend to permit 5 | configuration with an external Ganesha service; the new 6 | parameters define if Ganesha is remote and what are the 7 | username/password or private key to log on the remote host. -------------------------------------------------------------------------------- /releasenotes/notes/external_hooks_support-1d50aedc98ae3509.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - moves all dependencies to an external class. 4 | This allows keystone to be installed and managed 5 | via external mechanisms like venvs or docker. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/fix_log_dir_documentation-fec12bba690f7ac9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - Fixed documentation for log_dir parameter 4 | -------------------------------------------------------------------------------- /releasenotes/notes/ganesha-ubuntu-a7f1714bed431c03.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::backend::ganesha`` defined resource type now supports Ubuntu 5 | and Debian. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/hc-enable_by_file_paths-3705d815bd91d96e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::healthcheck::enable_by_file_paths`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/healthcheck-a8866f3194375299.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::healthcheck`` class has been added. This class manages 5 | parameters of healthcheck middlware in oslo.middleware. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/healthcheck-allowed_source_ranges-9f3c9485a7e9a585.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::healthcheck::allowed_source_ranges`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/healthcheck-ignore_proxied_requests-afb188f727cc47b5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::healthcheck::ignore_proxied_requests`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/hnas-deprecate-default-share_backend_name-2e320eb43f688127.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::share::hitachi_hnas::share_backend_name`` parameter has been 5 | deprecated and has no effect. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/hnas-remove-default-share_backend_name-35673dc1ae9fce46.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``manila::share::hitachi_hnas::share_backend_name`` parameter has been 5 | removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/httpd-logs-piped-syslog-43134282b13c9f83.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Added parameters for advanced configuration of httpd access and error log 5 | destinations including piped logging and syslog (see `mod_syslog`). Note 6 | that mod_syslog requires Apache2 >= 2.5.0. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/isilon-driver-1409cf7661e3438.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add support for Dell EMC Isilon Driver 4 | -------------------------------------------------------------------------------- /releasenotes/notes/keystone-auth-name-c4651935ac341481.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - The keystone auth class has been updated to provide a default service_name 4 | to allow a user to specify a custom auth_name that may not contain the 5 | name of the service. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/keystone-authtoken-interface-a8c03fe93a850caa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::keystone::authtoken::interface`` parameter has been added, 5 | which can be used to set the interface parameter in authtoken middleware. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/keystone-authtoken-service_type-0329b10e9f679c28.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::keystone::authtoken::service_type`` parameter has been 5 | added to configure the service_type parameter in authtoken middleware. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/log-json-ef010cef78941896.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Expose use_json logging parameter, which enables JSON formatted logging. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/lvm_share_export_ips-397716e813e7b44f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Fixed usage of the removed ``lvm_share_export_ip`` parameter in 5 | the ``manila::backend::lvm`` resource typeo. 6 | Now the ``lvm_share_export_ips`` should be used instead. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/manage-storops-4d7fafc683998bf8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::backend::dellemc_unity::manage_storops`` parameter has 5 | been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/manila-data-61845c37605e9afe.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::data`` class has been added. This class configures 5 | the ``manila-data`` service. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/manila-share-opts-197486b3a132dc58.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::share`` class now supports share manager options. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/manila-type-cleanup-cb2dc6b8ab974a04.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The following defined resource types have been removed. 5 | 6 | - ``manila::type`` 7 | - ``manila::type_set`` 8 | -------------------------------------------------------------------------------- /releasenotes/notes/manila-wsgi-893b66e84d4a9133.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The manila API service can now be installed with Apache, instead of the 5 | package-provided built-in eventlet based wsgi server. Set 6 | $manila::api::service_name to 'httpd' to run the Manila API as 7 | virtual host on an apache based web server. -------------------------------------------------------------------------------- /releasenotes/notes/manila_type-42266cf70a5f0f66.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila_type`` resource has been added. This can be used to manage 5 | share types in Manila. 6 | 7 | deprecations: 8 | - | 9 | The ``manila::type`` resource type and the ``manila::type_set`` resource 10 | type has been deprecated in favor of the new ``manila_type`` resource. 11 | -------------------------------------------------------------------------------- /releasenotes/notes/max_over_subscription_ratio-09859021cab23b43.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following defined resource types now support 5 | the ``max_over_subscription_ratio`` parameter. 6 | 7 | - ``manila::backend::dellemc_unity`` 8 | - ``manila::backend::flashblade`` 9 | - ``manila::backend::hitachi_hnas`` 10 | - ``manila::backend::netapp`` 11 | -------------------------------------------------------------------------------- /releasenotes/notes/max_request_body_size-b3b7e87591bd6711.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support to configure `[oslo_middleware]/max_request_body_size` with 5 | `$max_request_body_size`. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/migrate-policy-format-from-json-to-yaml-8ea18798ec127939.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Now policy.yaml is used by default instead of policy.json. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/more-scheduler-opts-49f6a5b477414e49.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters have been added to the ``manila::scheduler`` 5 | class. 6 | 7 | - ``max_attempts`` 8 | - ``host_manager`` 9 | 10 | - | 11 | The new ``manila::scheduler::filter`` class has been added. 12 | 13 | deprecations: 14 | - | 15 | The ``manila::scheduler::scheduler_driver`` parameter has been deprecated, 16 | in favor of the new ``driver`` parameter. 17 | -------------------------------------------------------------------------------- /releasenotes/notes/netapp_delete_retention_hours-dea6a16be079ec82.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::backend::netapp::netapp_delete_retention_hours`` 5 | parameter has been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/neutron-network-d3ebedd26c3877a4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::network::neutron_network`` defined resource type has been 5 | added. It supports managing the options of neutron network plugin. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/notification-retry-aa74daf49f95fd93.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::notification_retry`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/nova-api_micro_version-0d73fb87757e0c3e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::compute::nova::api_micro_version`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/openstack_db_tag-b328cfe24b29b287.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add openstack-db tag to Exec that run db-sync. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/oslo-reports-939f22ec1731caed.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::reports`` class has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/oslo_policy-enforce_scope-4c21242c59e863ff.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::policy::enforce_scope`` parameter has been added to 5 | support the corresponding parameter in oslo.policy library. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/periodic-tunables-e228f296c38202cd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following three parameters have been added to the ``manila`` class. 5 | 6 | - ``report_interval`` 7 | - ``periodic_interval`` 8 | - ``periodic_fuzzy_delay`` 9 | -------------------------------------------------------------------------------- /releasenotes/notes/policy-dirs-894617eebc2b8b8c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | There is now a new policy_dirs parameter in the manila::policy class, 5 | so one can set a custom path. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/policy-enforce_new_defaults-533e1cd72745c6cc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::policy::enforce_new_defaults`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/policy-json-50a35d8dcfd6e5a9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Support for policy.json configuration has been implemented in the same 5 | way as other modules with manila::policy class. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/policy_default_rule-419090085cdd7a5f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::policy::policy_default_rule`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/policy_purge_config-3016d1e624d6eb31.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Adds new purge_config parameter. When set to true, the policy file is 5 | cleared during configuration process. This allows to remove any existing 6 | rules before applying them or clean the file when all policies got removed. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/prepare-to-change-apache-ssl-ff1a2eaa73077e86.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Default value of the ``manila::wsgi::apache::ssl`` parameter will be 5 | changed from ``true`` to ``false`` in a future release. Make sure 6 | the parameter is set to the desired value. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/provider-system-scope-cb9a22337ffe738d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Now the ``manila_type`` resource type uses system scope credential instead 5 | of project scope credential when sending requests to Manila API. 6 | 7 | deprecations: 8 | - | 9 | Currently the manila_type`` resource type uses the credential written in 10 | the ``[keystone_authtoken]`` section of ``manila.conf``. However this 11 | behavior has been deprecated and now the resource type first looks for 12 | the yaml files in ``/etc/openstack/puppet``. Make sure one of 13 | ``clouds.yaml`` or ``admin-clouds.yaml`` (which is created by 14 | puppet-keystone) is created in that directory. 15 | -------------------------------------------------------------------------------- /releasenotes/notes/puppet-8-c1ee78d56d5391e2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | This module now officially supports Puppet 8. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/puppet4-mysql-func-bb1aa0cdcee7bd3c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | This module now requires a puppetlabs-mysql version >= 6.0.0 5 | -------------------------------------------------------------------------------- /releasenotes/notes/pymysql-e57bf1f0289dd426.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Support of PyMySQL driver for MySQL backend. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/quota-cleanup-zed-aeba6037d7306a08.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The parameters of the ``manila::quota`` class with ``quota_`` prefix have 5 | been removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/quota-params-3ef809a6fd67f3ee.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The parameters of the ``manila::quota`` class with ``quota_`` prefix have 5 | been deprecated. Use the parameters WITHOUT ``quota_`` prefix. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/quota-per_share_gigabytes-92bba81cf77a1879.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::quota::per_share_gigabytes`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit-connection-params-deprecation-2a546f72e4fe090d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - manila::rabbit_host, manila::rabbit_hosts, manila::rabbit_password, 4 | manila::rabbit_port, manila::rabbit_userid and 5 | manila::rabbit_virtual_host are deprecated. 6 | manila::default_transport_url should be used instead. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit-heartbeat-opts-8fb5943ea07e45a1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters have been added to the ``manila`` class. 5 | 6 | - ``rabbit_heartbeat_timeout_threshold`` 7 | - ``rabbit_heartbeat_rate`` 8 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit_qos_prefetch_count-68848b61eb02a854.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::rabbit_qos_prefetch_count`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit_transient_queues_ttl-bad0a37a1a6a679d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | A new parameter ``rabbit_transient_queues_ttl`` has been added to the 5 | manila class to configure how long transient queue should stay until 6 | they are automatically deleted. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit_transient_quorum_queue-a5876e65d3e17a4a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::rabbit_transient_quorum_queue`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbitmq-heartbeat-over-pthread-aaded1af4d67302c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Allow users to run the RabbitMQ heartbeat over a native python thread in the 5 | oslo.messaging RabbitMQ driver, by using the `rabbit_heartbeat_in_pthread` 6 | option in configuration. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/release-note-ubuntu-py3-55b40f1c04793ddc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | prelude: > 3 | In this release Ubuntu has moved all projects that supported it to python3 4 | which means that there will be a lot of changes. The Puppet OpenStack project 5 | does not test the upgrade path from python2 to python3 packages so there might 6 | be manual steps required when moving to the python3 packages. 7 | upgrade: 8 | - | 9 | Ubuntu packages are now using python3, the upgrade path is not tested by 10 | Puppet OpenStack. Manual steps may be required when upgrading. 11 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-amqp1-e78bcf1db5a31c8b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Support for amqp1 messaging driver has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-amqp_allow_insecure_clients-dd3e13044b0b8f90.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``manila::amqp_allow_insecure_clients`` parameter has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-auth-uri-95c3c544751c107a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated parameter auth_uri is now removed, please use www_authenticate_uri. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-centos-8-893e056a7841e203.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | CentOS 8 Stream is no longer supported by this module. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-cephfs-enable-snapshots-7e99bff7aee9cb53.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``manila::backend::cephfs::cephfs_enable_snapshots`` parameter has been 5 | removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-cephfsnative-fd796d36cc8ebb38.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - The class manila::backend::cephfsnative has been removed, class 4 | manila::backend::cephfscephfs can be used instead. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-database-params-f0640bd1c0cb8ceb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The following parameters of the ``manila`` class has been removed. 5 | 6 | - ``database_min_pool_size`` 7 | - ``sql_connection`` 8 | - ``sql_idle_timeout`` 9 | - ``database_max_overflow`` 10 | - ``database_max_pool_size`` 11 | - ``database_max_retries`` 12 | - ``database_retry_interval`` 13 | 14 | - | 15 | The ``database_min_pool_size`` parameter of the ``manila::db`` class has 16 | been removed. 17 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-default-backend-opts-b87e888a7b3cc6a7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The following classes have been removed. 5 | 6 | - ``manila::share::generic`` 7 | - ``manila::share::glusterfs`` 8 | - ``manila::share::hitachi_hnas`` 9 | - ``manila::share::netapp`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-dellemc_vmax-43f6aa8836d6c2d3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Dell EMC VMAX share driver is no longer supported. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-deprecated-cinder-params-c5dfd5ece0c1079c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The following parameters of the ``manila::volume::cinder`` class have been 5 | removed. 6 | 7 | - ``cinder_catalog_info`` 8 | - ``cinder_ca_certificates_file`` 9 | - ``cinder_http_retries`` 10 | - ``cinder_cross_az_attach`` 11 | - ``cinder_admin_username`` 12 | - ``cinder_admin_password`` 13 | - ``cinder_admin_tenant_name`` 14 | - ``cinder_admin_auth_url`` 15 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-deprecated-logging-1f9da83a74e11491.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated parameters use_syslog, use_stderr, log_facility, log_dir and 5 | debug in the init class is now removed. Please set them in the logging class. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-deprecated-rabbit-params-8f24b9cfcc592596.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated manila::rabbit_host, manila::rabbit_hosts, manila::rabbit_password, 5 | manila::rabbit_port, manila::rabbit_userid and manila::rabit_virtual_host are now 6 | removed. Please use manila::default_transport_url instead. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-glusterfs_native_path_to_private_key-a62249bb5b10d425.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated ``glusterfs_native_path_to_private_key`` parameter of 5 | the ``manila::backend::glusternative`` defined type has been removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-netapp_root_volume_name-ca5ef70ee36f8082.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``manila::backend::netapp::netapp_root_volume_name`` parameter and 5 | the ``manila::share::netapp::netapp_root_volume_name`` parameter have been 6 | removed. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-nova-neutron-with-keystonev2-d10ce348a2729c83.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following parameters in ``manila::compute::nova`` class have been 5 | removed. 6 | 7 | - ``nova_catalog_info`` 8 | - ``nova_catalog_admin_info`` 9 | - ``nova_api_insecure`` 10 | - ``nova_ca_certificates_file`` 11 | - ``nova_admin_username`` 12 | - ``nova_admin_password`` 13 | - ``nova_admin_tenant_name`` 14 | - ``nova_admin_auth_url`` 15 | 16 | - | 17 | The following parameters in ``manila::network::neutron`` class have been 18 | removed. 19 | 20 | - ``neutron_api_insecure`` 21 | - ``neutron_ca_certificates_file`` 22 | - ``neutron_url`` 23 | - ``neutron_url_timeout`` 24 | - ``neutron_admin_username`` 25 | - ``neutron_admin_password`` 26 | - ``neutron_admin_tenant_name`` 27 | - ``neutron_region_name`` 28 | - ``neutron_admin_auth_url`` 29 | - ``neutron_auth_strategy`` 30 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-puppet-6-5d1f7385d5b2df6a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Puppet 6 is no longer supported. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-watch_log_file-3f4a2dc994a7e6b3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``manila::logging::watch_log_file`` parameter has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_keystone_auth_options-24de43e2bff17004.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - Removed deprecated options for manila::keystone::auth class. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_keystone_revocation_cache_time_option-8dfc4bf34bd28386.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Deprecated keystone::authtoken::revocation_cache_time option has been removed. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_keystone_signing_dir_option-a2cbd7fdd9f8fa19.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Deprecated keystone authtoken signing_dir option is removed in Pike. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_mysql_module_option-87667965412c38ff.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Deprecated mysql_module option has been removed. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_pki_related_options-b481a496cf1cd485.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated pki related options check_revocations_for_cached and 5 | hash_algorithms option has been removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_idle_timeout_option-a5f6ec4a08f01a9b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Deprecated idle_timeout option has been removed. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_managing_rabbimq_resources-938aa73d2c2b66b2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``manila::rabbitmq`` class to manage rabbitmq resource has been 5 | removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_nova_network_plugins-ad288a6664b2b40b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Remove the nova network plugins since support for nova network was 5 | removed back in ocata. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_old_authtoken_options-dc165736e2e8f177.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - removed deprecated manila::api::keystone_enabled 4 | - removed deprecated manila::api::keystone_password 5 | - removed deprecated manila::api::keystone_tenant 6 | - removed deprecated manila::api::keystone_user 7 | - removed deprecated manila::api::keystone_auth_host 8 | - removed deprecated manila::api::keystone_auth_port 9 | - removed deprecated manila::api::keystone_auth_protocol 10 | - removed deprecated manila::api::keystone_auth_admin_prefix 11 | - removed deprecated manila::api::keystone_auth_uri 12 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_posix-d1f775df21874348.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - Remove all Puppet resources that manage Users, Groups, and File modes 4 | because upstream packaging already manages them. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_qpid-0b446db43fdea617.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - Remove QPID messaging support. 4 | Qpid messaging driver is removed from oslo.messaging so we won't support 5 | anymore. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_service_instance_network_helper_type_parameter-574fa1d1f11ed47b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The service_instance_network_helper_type parameter in 5 | manila::service_instance class has been removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_standalone_network_plugin_ip_version-357046cc8a22640a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``standalone_network_plugin_ip_version`` parameter has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_verbose-13ab0dedad9cad36.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - The verbose option was marked to be removed in Ocata, 4 | in Newton the option was deprecated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/reserved-share-percentage-139652f3b6aa1db3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters have been added to the defined resouce types for 5 | share driver options. 6 | 7 | - ``reserved_share_percentage`` 8 | - ``reserved_share_from_snapshot_percentage`` 9 | - ``reserved_share_extend_percentage`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/revert-provider-system-scope-988e0c210359aad7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``manila_type`` resource type now uses project scope credential instead 5 | of system scope credential, following the change in Manila to retain legacy 6 | project admin behavior. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/rootwrap-f6fb438dc6b03308.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila_rootwrap_config`` resource has been added. This resource 5 | can be used to manage contents of ``rootwrap.conf`` 6 | 7 | - | 8 | The new ``manila::config::manila_rootwrap_config`` parameter has been 9 | added. This parameter accepts arbitrary configuration of ``rootwrap.conf``. 10 | -------------------------------------------------------------------------------- /releasenotes/notes/scheduler-driver-no-false-value-c24c863fdbae47e9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Support for using a false value to set 5 | the ``manila::scheduler::scheduler_driver`` parameter to remove 6 | the ``[DEFAULT] scheduler_driver`` option from manila.conf has been 7 | removed. Use the ``os_service_default`` fact instead. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/scheduler_driver-os_service_default-5b7e2e78d93c6abe.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | Using a false value for ``manila::scheduler::scheduler_driver`` has been 5 | deprecated and the specified value will be directly rendered into 6 | manila.conf in a future release. Use ``$::os_service_default`` if 7 | the service default should be used. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/service_down_time-219e922d258570fc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``manila::service_down_time`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/service_token_roles-37d50448c63052b9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support to configure service_token_roles in authtoken middleware. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/service_token_roles_required-8365413050d17559.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Service_token_roles_required missing in the server config file which 4 | allows backwards compatibility to ensure that the service tokens are 5 | compared against a list of possible roles for validity. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/setup_test_volume-49782be9c2558cee.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::setup_test_volume`` class has been added. This class prepares 5 | the loop back block device and the volume group for LVM share driver. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/share-backup-options-0efb0648029cb19a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::share`` class and the ``manila::data`` class now support 5 | options for share backup and restore. 6 | 7 | - | 8 | The new ``manila::data::backup::nfs`` class has been added. 9 | -------------------------------------------------------------------------------- /releasenotes/notes/stop-reading-authtoken-opts-fb13932d73d35fca.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila_type`` resource type no longer attempts to load user 5 | credentials from the ``[keystone_authtoken]`` section in ``manila.conf``. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/switch_to_oslo-d134ad3134697ef2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Switch to puppet-oslo resource usage (instead of 4 | manual configuration file editing). 5 | - Switch messaging parameters to os service default. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/system_scope-all-4a661d5cc27d448a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``system_scope`` parameter has been added to the following classes. 5 | 6 | - ``manila::compute::nova`` 7 | - ``manila::image::glance`` 8 | - ``manila::network::neutron`` 9 | - ``manila::volume::cinder`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/system_scope-keystone-57f90004f977fe29.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``system_scope`` parameter has been added to 5 | the ``manila::keystone::authtoken`` class. 6 | 7 | - | 8 | The ``manila::keystone::auth`` class now supports customizing roles 9 | assigned to the manila service user. 10 | 11 | - | 12 | The ``manila::keystone::auth`` class now supports defining assignmet of 13 | system-scoped roles to the manila service user. 14 | -------------------------------------------------------------------------------- /releasenotes/notes/ubuntu-jammy-481cfc17f5403522.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | This module now supports Ubuntu 22.04 (Jammy Jellyfish). 5 | 6 | upgrade: 7 | - | 8 | This module no longer supports Ubuntu 20.04 (Focal Fossa). 9 | -------------------------------------------------------------------------------- /releasenotes/notes/ubuntu-noble-868ddca9503650ec.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Ubuntu 24.04 is now formally supported. 5 | 6 | upgrade: 7 | - | 8 | Ubuntu 22.04 is no longer supported. 9 | -------------------------------------------------------------------------------- /releasenotes/notes/unity-report_default_filter_function-5d42810bbbeabca7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::backend::dellemc_unity`` resource type now supports 5 | the ``report_default_filter_function`` parameter. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/unity_driver_b1c2e3ec708e11e7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add support for Dell EMC Unity Driver 4 | -------------------------------------------------------------------------------- /releasenotes/notes/unity_share_server-31bce3e772e0b617.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``manila::backend::dellemc_unity`` resource type now supports 5 | the ``unity_share_server`` parameter. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/update-cinder-auth-params-987a691d2e17ac92.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Now ``manila::volume::cinder`` can configure required parameters for 5 | Keystone v3 auth. 6 | deprecations: 7 | - | 8 | The following parameters in ``manila::volume::cinder`` class has been 9 | deprecated and will be removed in a future release. 10 | 11 | - ``cinder_catalog_info`` 12 | - ``cinder_ca_certificates_file`` 13 | - ``cinder_http_retries`` 14 | - ``cinder_cross_az_attach`` 15 | - ``cinder_admin_username`` 16 | - ``cinder_admin_password`` 17 | - ``cinder_admin_tenant_name`` 18 | - ``cinder_admin_auth_url`` 19 | -------------------------------------------------------------------------------- /releasenotes/notes/update-nova-neutron-with-keystonev3-3386a497d476d7d8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Keystone v2 has been oficially deprecated. Add new configuration options 5 | for nova and neutron to be used with keystone v3. 6 | deprecations: 7 | - | 8 | Deprecate nova_catalog_info, nova_catalog_admin_info, nova_api_insecure, 9 | nova_ca_certificates_file, nova_admin_username, nova_admin_password, 10 | nova_admin_tenant_name and nova_admin_auth_url from nova section in manila.conf. 11 | Deprecate neutron_api_insecure, neutron_ca_certificates_file, neutron_url, 12 | neutron_url_timeout, neutron_admin_username, neutron_admin_password, 13 | neutron_admin_tenant_name, neutron_region_name, neutron_admin_auth_url and 14 | neutron_auth_strategy from neutron section in manila.conf. -------------------------------------------------------------------------------- /releasenotes/notes/use-reno-1caaec4ba5aa4285.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Release notes are no longer maintained by hand, we now use the reno tool to 4 | manage them. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/uwsgi-7ada89bee7842ad4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | A new class manila::wsgi::uwsgi exist to allow configuring uwsgi in 5 | operating systems that support this (ie: currently Debian). This helps 6 | configuring the number of processes, threads and listen socket. 7 | Also, a new manila_api_uwsgi_config provider now exist. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/verbose-deprecation-2a79546d0949ec91.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - verbose option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/vmax_driver_76239462709d11e7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add support for Dell EMC VMAX Driver 4 | -------------------------------------------------------------------------------- /releasenotes/notes/vnx_driver_67236f6670a011e7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add support for Dell EMC VNF Driver 4 | -------------------------------------------------------------------------------- /releasenotes/source/2023.1.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | 2023.1 Series Release Notes 3 | =========================== 4 | 5 | .. release-notes:: 6 | :branch: unmaintained/2023.1 7 | -------------------------------------------------------------------------------- /releasenotes/source/2023.2.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | 2023.2 Series Release Notes 3 | =========================== 4 | 5 | .. release-notes:: 6 | :branch: stable/2023.2 7 | -------------------------------------------------------------------------------- /releasenotes/source/2024.1.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | 2024.1 Series Release Notes 3 | =========================== 4 | 5 | .. release-notes:: 6 | :branch: stable/2024.1 7 | -------------------------------------------------------------------------------- /releasenotes/source/2024.2.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | 2024.2 Series Release Notes 3 | =========================== 4 | 5 | .. release-notes:: 6 | :branch: stable/2024.2 7 | -------------------------------------------------------------------------------- /releasenotes/source/2025.1.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | 2025.1 Series Release Notes 3 | =========================== 4 | 5 | .. release-notes:: 6 | :branch: stable/2025.1 7 | -------------------------------------------------------------------------------- /releasenotes/source/_static/.placeholder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openstack/puppet-manila/ecda22e1eefad20ee570e84dd975311d0e9b4e17/releasenotes/source/_static/.placeholder -------------------------------------------------------------------------------- /releasenotes/source/index.rst: -------------------------------------------------------------------------------- 1 | ======================================= 2 | Welcome to puppet-manila Release Notes! 3 | ======================================= 4 | 5 | Contents 6 | ======== 7 | 8 | .. toctree:: 9 | :maxdepth: 2 10 | 11 | unreleased 12 | 2025.1 13 | 2024.2 14 | 2024.1 15 | 2023.2 16 | 2023.1 17 | zed 18 | yoga 19 | xena 20 | wallaby 21 | victoria 22 | ussuri 23 | train 24 | stein 25 | rocky 26 | queens 27 | pike 28 | ocata 29 | newton 30 | mitaka 31 | 32 | 33 | Indices and tables 34 | ================== 35 | 36 | * :ref:`genindex` 37 | * :ref:`search` 38 | -------------------------------------------------------------------------------- /releasenotes/source/mitaka.rst: -------------------------------------------------------------------------------- 1 | ============================ 2 | Mitaka Series Release Notes 3 | ============================ 4 | 5 | .. release-notes:: 6 | :branch: origin/stable/mitaka 7 | -------------------------------------------------------------------------------- /releasenotes/source/newton.rst: -------------------------------------------------------------------------------- 1 | =================================== 2 | Newton Series Release Notes 3 | =================================== 4 | 5 | .. release-notes:: 6 | :branch: origin/stable/newton 7 | -------------------------------------------------------------------------------- /releasenotes/source/ocata.rst: -------------------------------------------------------------------------------- 1 | =================================== 2 | Ocata Series Release Notes 3 | =================================== 4 | 5 | .. release-notes:: 6 | :branch: origin/stable/ocata 7 | -------------------------------------------------------------------------------- /releasenotes/source/pike.rst: -------------------------------------------------------------------------------- 1 | =================================== 2 | Pike Series Release Notes 3 | =================================== 4 | 5 | .. release-notes:: 6 | :branch: stable/pike 7 | -------------------------------------------------------------------------------- /releasenotes/source/queens.rst: -------------------------------------------------------------------------------- 1 | =================================== 2 | Queens Series Release Notes 3 | =================================== 4 | 5 | .. release-notes:: 6 | :branch: stable/queens 7 | -------------------------------------------------------------------------------- /releasenotes/source/rocky.rst: -------------------------------------------------------------------------------- 1 | =================================== 2 | Rocky Series Release Notes 3 | =================================== 4 | 5 | .. release-notes:: 6 | :branch: stable/rocky 7 | -------------------------------------------------------------------------------- /releasenotes/source/stein.rst: -------------------------------------------------------------------------------- 1 | =================================== 2 | Stein Series Release Notes 3 | =================================== 4 | 5 | .. release-notes:: 6 | :branch: stable/stein 7 | -------------------------------------------------------------------------------- /releasenotes/source/train.rst: -------------------------------------------------------------------------------- 1 | ========================== 2 | Train Series Release Notes 3 | ========================== 4 | 5 | .. release-notes:: 6 | :branch: stable/train 7 | -------------------------------------------------------------------------------- /releasenotes/source/unreleased.rst: -------------------------------------------------------------------------------- 1 | ============================== 2 | Current Series Release Notes 3 | ============================== 4 | 5 | .. release-notes:: 6 | -------------------------------------------------------------------------------- /releasenotes/source/ussuri.rst: -------------------------------------------------------------------------------- 1 | =========================== 2 | Ussuri Series Release Notes 3 | =========================== 4 | 5 | .. release-notes:: 6 | :branch: stable/ussuri 7 | -------------------------------------------------------------------------------- /releasenotes/source/victoria.rst: -------------------------------------------------------------------------------- 1 | ============================= 2 | Victoria Series Release Notes 3 | ============================= 4 | 5 | .. release-notes:: 6 | :branch: stable/victoria 7 | -------------------------------------------------------------------------------- /releasenotes/source/wallaby.rst: -------------------------------------------------------------------------------- 1 | ============================ 2 | Wallaby Series Release Notes 3 | ============================ 4 | 5 | .. release-notes:: 6 | :branch: unmaintained/wallaby 7 | -------------------------------------------------------------------------------- /releasenotes/source/xena.rst: -------------------------------------------------------------------------------- 1 | ========================= 2 | Xena Series Release Notes 3 | ========================= 4 | 5 | .. release-notes:: 6 | :branch: unmaintained/xena 7 | -------------------------------------------------------------------------------- /releasenotes/source/yoga.rst: -------------------------------------------------------------------------------- 1 | ========================= 2 | Yoga Series Release Notes 3 | ========================= 4 | 5 | .. release-notes:: 6 | :branch: unmaintained/yoga 7 | -------------------------------------------------------------------------------- /releasenotes/source/zed.rst: -------------------------------------------------------------------------------- 1 | ======================== 2 | Zed Series Release Notes 3 | ======================== 4 | 5 | .. release-notes:: 6 | :branch: unmaintained/zed 7 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [metadata] 2 | name = puppet-manila 3 | summary = Puppet module for OpenStack Manila 4 | description_file = 5 | README.md 6 | author = OpenStack 7 | author_email = openstack-discuss@lists.openstack.org 8 | home_page = https://docs.openstack.org/puppet-openstack-guide/latest 9 | license = Apache License, Version 2.0 10 | classifier = 11 | Intended Audience :: Developers 12 | Intended Audience :: Information Technology 13 | Intended Audience :: System Administrators 14 | License :: OSI Approved :: Apache Software License 15 | Operating System :: POSIX :: Linux 16 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | # Copyright (c) 2013 Hewlett-Packard Development Company, L.P. 2 | # 3 | # Licensed under the Apache License, Version 2.0 (the "License"); 4 | # you may not use this file except in compliance with the License. 5 | # You may obtain a copy of the License at 6 | # 7 | # http://www.apache.org/licenses/LICENSE-2.0 8 | # 9 | # Unless required by applicable law or agreed to in writing, software 10 | # distributed under the License is distributed on an "AS IS" BASIS, 11 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 12 | # implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | 16 | import setuptools 17 | 18 | setuptools.setup( 19 | setup_requires=['pbr>=2.0.0'], 20 | py_modules=[], 21 | pbr=True) 22 | -------------------------------------------------------------------------------- /spec/acceptance/10_basic_manila_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper_acceptance' 2 | 3 | describe 'basic manila' do 4 | 5 | context 'default parameters' do 6 | 7 | it 'should work with no errors' do 8 | pp= <<-EOS 9 | include openstack_integration 10 | include openstack_integration::repos 11 | include openstack_integration::apache 12 | include openstack_integration::rabbitmq 13 | include openstack_integration::mysql 14 | include openstack_integration::memcached 15 | include openstack_integration::keystone 16 | include openstack_integration::manila 17 | 18 | manila_type { 'sharetype': 19 | } 20 | EOS 21 | 22 | 23 | # Run it twice and test for idempotency 24 | apply_manifest(pp, :catch_failures => true) 25 | apply_manifest(pp, :catch_changes => true) 26 | end 27 | 28 | describe port(8786) do 29 | it { is_expected.to be_listening } 30 | end 31 | 32 | describe cron do 33 | it { is_expected.to have_entry('1 0 * * * manila-manage db purge 0 >>/var/log/manila/manila-rowsflush.log 2>&1').with_user('manila') } 34 | end 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /spec/classes/manila_backends_spec.rb: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (C) 2014 eNovance SAS 3 | # 4 | # Author: Emilien Macchi 5 | # 6 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 7 | # not use this file except in compliance with the License. You may obtain 8 | # a copy of the License at 9 | # 10 | # http://www.apache.org/licenses/LICENSE-2.0 11 | # 12 | # Unless required by applicable law or agreed to in writing, software 13 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 14 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 15 | # License for the specific language governing permissions and limitations 16 | # under the License. 17 | # 18 | # Unit tests for manila::backends class 19 | # 20 | 21 | require 'spec_helper' 22 | 23 | describe 'manila::backends' do 24 | 25 | let :default_params do 26 | {} 27 | end 28 | 29 | let :params do 30 | {} 31 | end 32 | 33 | shared_examples_for 'manila backends' do 34 | 35 | let :p do 36 | default_params.merge(params) 37 | end 38 | 39 | context 'with enabled_share_backends set by string' do 40 | before :each do 41 | params.merge!( 42 | :enabled_share_backends => 'lowcost,regular,premium' 43 | ) 44 | end 45 | 46 | it 'configures manila.conf with default params' do 47 | is_expected.to contain_manila_config('DEFAULT/enabled_share_backends').with_value(p[:enabled_share_backends]) 48 | end 49 | end 50 | 51 | context 'with enabled_share_backends set by array' do 52 | before :each do 53 | params.merge!( 54 | :enabled_share_backends => ['lowcost', 'regular', 'premium'] 55 | ) 56 | end 57 | 58 | it 'configures manila.conf with default params' do 59 | is_expected.to contain_manila_config('DEFAULT/enabled_share_backends').with_value(p[:enabled_share_backends].join(',')) 60 | end 61 | end 62 | 63 | end 64 | 65 | on_supported_os({ 66 | :supported_os => OSDefaults.get_supported_os 67 | }).each do |os,facts| 68 | context "on #{os}" do 69 | let (:facts) do 70 | facts.merge!(OSDefaults.get_facts()) 71 | end 72 | it_behaves_like 'manila backends' 73 | end 74 | end 75 | end 76 | -------------------------------------------------------------------------------- /spec/classes/manila_client_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::client' do 4 | 5 | shared_examples_for 'manila client' do 6 | 7 | it { is_expected.to contain_class('manila::deps') } 8 | it { is_expected.to contain_class('manila::params') } 9 | 10 | it 'installs manila client package' do 11 | is_expected.to contain_package('python-manilaclient').with( 12 | :ensure => 'present', 13 | :name => platform_params[:client_package], 14 | :tag => ['openstack', 'openstackclient'], 15 | ) 16 | end 17 | 18 | it { is_expected.to contain_class('openstacklib::openstackclient') } 19 | end 20 | 21 | on_supported_os({ 22 | :supported_os => OSDefaults.get_supported_os 23 | }).each do |os,facts| 24 | context "on #{os}" do 25 | let (:facts) do 26 | facts.merge!(OSDefaults.get_facts()) 27 | end 28 | 29 | let :platform_params do 30 | case facts[:os]['family'] 31 | when 'Debian' 32 | { :client_package => 'python3-manilaclient' } 33 | when 'RedHat' 34 | { :client_package => 'python3-manilaclient' } 35 | end 36 | end 37 | 38 | it_behaves_like 'manila client' 39 | end 40 | end 41 | 42 | end 43 | -------------------------------------------------------------------------------- /spec/classes/manila_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::config' do 4 | let(:config_hash) do { 5 | 'DEFAULT/foo' => { 'value' => 'fooValue' }, 6 | 'DEFAULT/bar' => { 'value' => 'barValue' }, 7 | 'DEFAULT/baz' => { 'ensure' => 'absent' } 8 | } 9 | end 10 | 11 | shared_examples 'manila_config' do 12 | let :params do 13 | { :manila_config => config_hash } 14 | end 15 | 16 | it { is_expected.to contain_class('manila::deps') } 17 | 18 | it 'configures arbitrary manila-config configurations' do 19 | is_expected.to contain_manila_config('DEFAULT/foo').with_value('fooValue') 20 | is_expected.to contain_manila_config('DEFAULT/bar').with_value('barValue') 21 | is_expected.to contain_manila_config('DEFAULT/baz').with_ensure('absent') 22 | end 23 | end 24 | 25 | shared_examples 'manila_api_paste_ini' do 26 | let :params do 27 | { :api_paste_ini_config => config_hash } 28 | end 29 | 30 | it 'configures arbitrary manila-api-paste-ini configurations' do 31 | is_expected.to contain_manila_api_paste_ini('DEFAULT/foo').with_value('fooValue') 32 | is_expected.to contain_manila_api_paste_ini('DEFAULT/bar').with_value('barValue') 33 | is_expected.to contain_manila_api_paste_ini('DEFAULT/baz').with_ensure('absent') 34 | end 35 | end 36 | 37 | shared_examples 'manila_rootwrap_config' do 38 | let :params do 39 | { :manila_rootwrap_config => config_hash } 40 | end 41 | 42 | it 'configures arbitrary manila-rootwrap-config configurations' do 43 | is_expected.to contain_manila_rootwrap_config('DEFAULT/foo').with_value('fooValue') 44 | is_expected.to contain_manila_rootwrap_config('DEFAULT/bar').with_value('barValue') 45 | is_expected.to contain_manila_rootwrap_config('DEFAULT/baz').with_ensure('absent') 46 | end 47 | end 48 | 49 | on_supported_os({ 50 | :supported_os => OSDefaults.get_supported_os 51 | }).each do |os,facts| 52 | context "on #{os}" do 53 | let (:facts) do 54 | facts.merge!(OSDefaults.get_facts()) 55 | end 56 | 57 | it_behaves_like 'manila_config' 58 | it_behaves_like 'manila_api_paste_ini' 59 | it_behaves_like 'manila_rootwrap_config' 60 | end 61 | end 62 | end 63 | -------------------------------------------------------------------------------- /spec/classes/manila_coordination_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::coordination' do 4 | shared_examples 'manila::coordination' do 5 | context 'with default parameters' do 6 | it { 7 | is_expected.to contain_oslo__coordination('manila_config').with( 8 | :backend_url => '' 9 | ) 10 | } 11 | end 12 | 13 | context 'with specified parameters' do 14 | let :params do 15 | { 16 | :backend_url => 'etcd3+http://127.0.0.1:2379', 17 | } 18 | end 19 | 20 | it { 21 | is_expected.to contain_oslo__coordination('manila_config').with( 22 | :backend_url => 'etcd3+http://127.0.0.1:2379' 23 | ) 24 | } 25 | end 26 | end 27 | 28 | on_supported_os({ 29 | :supported_os => OSDefaults.get_supported_os 30 | }).each do |os,facts| 31 | context "on #{os}" do 32 | let (:facts) do 33 | facts.merge(OSDefaults.get_facts()) 34 | end 35 | 36 | it_behaves_like 'manila::coordination' 37 | end 38 | end 39 | end 40 | -------------------------------------------------------------------------------- /spec/classes/manila_cors_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::cors' do 4 | 5 | shared_examples_for 'manila::cors' do 6 | it 'configure cors default params' do 7 | is_expected.to contain_oslo__cors('manila_config').with( 8 | :allowed_origin => '', 9 | :allow_credentials => '', 10 | :expose_headers => '', 11 | :max_age => '', 12 | :allow_methods => '', 13 | :allow_headers => '', 14 | ) 15 | end 16 | 17 | context 'with specific parameters' do 18 | let :params do 19 | { :allowed_origin => '*', 20 | :allow_credentials => true, 21 | :expose_headers => 'Content-Language,Expires', 22 | :max_age => 3600, 23 | :allow_methods => 'GET,POST,PUT,DELETE,OPTIONS', 24 | :allow_headers => 'Content-Type,Cache-Control', 25 | } 26 | end 27 | 28 | it 'configure cors params' do 29 | is_expected.to contain_oslo__cors('manila_config').with( 30 | :allowed_origin => '*', 31 | :allow_credentials => true, 32 | :expose_headers => 'Content-Language,Expires', 33 | :max_age => 3600, 34 | :allow_methods => 'GET,POST,PUT,DELETE,OPTIONS', 35 | :allow_headers => 'Content-Type,Cache-Control', 36 | ) 37 | end 38 | end 39 | end 40 | 41 | on_supported_os({ 42 | :supported_os => OSDefaults.get_supported_os 43 | }).each do |os,facts| 44 | context "on #{os}" do 45 | let (:facts) do 46 | facts.merge!(OSDefaults.get_facts()) 47 | end 48 | 49 | it_behaves_like 'manila::cors' 50 | end 51 | end 52 | 53 | end 54 | -------------------------------------------------------------------------------- /spec/classes/manila_cron_db_purge_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::cron::db_purge' do 4 | let :params do 5 | { 6 | :minute => 1, 7 | :hour => 0, 8 | :monthday => '*', 9 | :month => '*', 10 | :weekday => '*', 11 | :user => 'manila', 12 | :age => '0', 13 | :maxdelay => 0, 14 | :destination => '/var/log/manila/manila-rowsflush.log' 15 | } 16 | end 17 | 18 | shared_examples 'manila::cron::db_purge' do 19 | context 'with required parameters' do 20 | it { is_expected.to contain_cron('manila-manage db purge').with( 21 | :ensure => :present, 22 | :command => "manila-manage db purge #{params[:age]} >>#{params[:destination]} 2>&1", 23 | :environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh', 24 | :user => params[:user], 25 | :minute => params[:minute], 26 | :hour => params[:hour], 27 | :monthday => params[:monthday], 28 | :month => params[:month], 29 | :weekday => params[:weekday], 30 | :require => 'Anchor[manila::dbsync::end]' 31 | )} 32 | end 33 | 34 | context 'with ensure set to absent' do 35 | before :each do 36 | params.merge!( 37 | :ensure => :absent 38 | ) 39 | end 40 | 41 | it { should contain_cron('manila-manage db purge').with_ensure(:absent) } 42 | end 43 | 44 | context 'with required parameters with max delay enabled' do 45 | before :each do 46 | params.merge!( 47 | :maxdelay => 600 48 | ) 49 | end 50 | 51 | it { should contain_cron('manila-manage db purge').with( 52 | :ensure => :present, 53 | :command => "sleep `expr ${RANDOM} \\% #{params[:maxdelay]}`; manila-manage db purge #{params[:age]} >>#{params[:destination]} 2>&1", 54 | :environment => 'PATH=/bin:/usr/bin:/usr/sbin SHELL=/bin/sh', 55 | :user => params[:user], 56 | :minute => params[:minute], 57 | :hour => params[:hour], 58 | :monthday => params[:monthday], 59 | :month => params[:month], 60 | :weekday => params[:weekday], 61 | :require => 'Anchor[manila::dbsync::end]' 62 | )} 63 | end 64 | end 65 | 66 | on_supported_os({ 67 | :supported_os => OSDefaults.get_supported_os 68 | }).each do |os,facts| 69 | context "on #{os}" do 70 | let (:facts) do 71 | facts.merge!(OSDefaults.get_facts()) 72 | end 73 | 74 | it_behaves_like 'manila::cron::db_purge' 75 | end 76 | end 77 | end 78 | -------------------------------------------------------------------------------- /spec/classes/manila_data_backup_nfs_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::data::backup::nfs' do 4 | 5 | shared_examples_for 'manila::data::backup::nfs' do 6 | 7 | let :params do 8 | { 9 | :backup_mount_export => '192.0.2.1:/backup', 10 | } 11 | end 12 | 13 | context 'with default parameters' do 14 | 15 | it 'should configure manila-data options' do 16 | is_expected.to contain_manila_config('DEFAULT/backup_mount_template').with_value('') 17 | is_expected.to contain_manila_config('DEFAULT/backup_unmount_template').with_value('') 18 | is_expected.to contain_manila_config('DEFAULT/backup_mount_export').with_value('192.0.2.1:/backup') 19 | is_expected.to contain_manila_config('DEFAULT/backup_mount_proto').with_value('') 20 | is_expected.to contain_manila_config('DEFAULT/backup_mount_options').with_value('') 21 | end 22 | 23 | end 24 | 25 | context 'with parameters' do 26 | before :each do 27 | params.merge!({ 28 | :backup_mount_template => 'mount -vt %(proto)s %(options)s %(export)s %(path)s', 29 | :backup_unmount_template => 'umount -v %(path)s', 30 | :backup_mount_proto => 'nfs', 31 | :backup_mount_options => '', 32 | }) 33 | end 34 | 35 | it 'should configure manila-data options' do 36 | is_expected.to contain_manila_config('DEFAULT/backup_mount_template').with_value('mount -vt %(proto)s %(options)s %(export)s %(path)s') 37 | is_expected.to contain_manila_config('DEFAULT/backup_unmount_template').with_value('umount -v %(path)s') 38 | is_expected.to contain_manila_config('DEFAULT/backup_mount_proto').with_value('nfs') 39 | is_expected.to contain_manila_config('DEFAULT/backup_mount_options').with_value('') 40 | end 41 | end 42 | end 43 | 44 | on_supported_os({ 45 | :supported_os => OSDefaults.get_supported_os 46 | }).each do |os,facts| 47 | context "on #{os}" do 48 | let (:facts) do 49 | facts.merge!(OSDefaults.get_facts()) 50 | end 51 | 52 | it_behaves_like 'manila::data::backup::nfs' 53 | end 54 | end 55 | 56 | end 57 | -------------------------------------------------------------------------------- /spec/classes/manila_db_mysql_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::db::mysql' do 4 | 5 | let :req_params do 6 | { :password => 'manilapass' } 7 | end 8 | 9 | let :pre_condition do 10 | 'include mysql::server' 11 | end 12 | 13 | shared_examples_for 'manila::db::mysql' do 14 | context 'with only required params' do 15 | let :params do 16 | req_params 17 | end 18 | 19 | it { is_expected.to contain_class('manila::deps') } 20 | 21 | it { is_expected.to contain_openstacklib__db__mysql('manila').with( 22 | :user => 'manila', 23 | :password => 'manilapass', 24 | :host => '127.0.0.1', 25 | :charset => 'utf8', 26 | :collate => 'utf8_general_ci', 27 | ) } 28 | end 29 | 30 | context "overriding allowed_hosts param to array" do 31 | let :params do 32 | { 33 | :password => 'manilapass', 34 | :allowed_hosts => ['127.0.0.1','%'] 35 | } 36 | end 37 | end 38 | 39 | context "overriding allowed_hosts param to string" do 40 | let :params do 41 | { 42 | :password => 'manilapass2', 43 | :allowed_hosts => '192.168.1.1' 44 | } 45 | end 46 | end 47 | 48 | context "overriding allowed_hosts param equals to host param " do 49 | let :params do 50 | { 51 | :password => 'manilapass2', 52 | :allowed_hosts => '127.0.0.1' 53 | } 54 | end 55 | end 56 | end 57 | 58 | on_supported_os({ 59 | :supported_os => OSDefaults.get_supported_os 60 | }).each do |os,facts| 61 | context "on #{os}" do 62 | let (:facts) do 63 | facts.merge!(OSDefaults.get_facts()) 64 | end 65 | it_behaves_like 'manila::db::mysql' 66 | end 67 | end 68 | 69 | end 70 | -------------------------------------------------------------------------------- /spec/classes/manila_db_postgresql_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::db::postgresql' do 4 | 5 | shared_examples_for 'manila::db::postgresql' do 6 | let :req_params do 7 | { :password => 'manilapass' } 8 | end 9 | 10 | let :pre_condition do 11 | 'include postgresql::server' 12 | end 13 | 14 | context 'with only required parameters' do 15 | let :params do 16 | req_params 17 | end 18 | 19 | it { is_expected.to contain_class('manila::deps') } 20 | 21 | it { is_expected.to contain_openstacklib__db__postgresql('manila').with( 22 | :user => 'manila', 23 | :password => 'manilapass', 24 | :dbname => 'manila', 25 | :encoding => nil, 26 | :privileges => 'ALL', 27 | )} 28 | end 29 | end 30 | 31 | on_supported_os({ 32 | :supported_os => OSDefaults.get_supported_os 33 | }).each do |os,facts| 34 | context "on #{os}" do 35 | let (:facts) do 36 | facts.merge(OSDefaults.get_facts({ 37 | # puppet-postgresql requires the service_provider fact provided by 38 | # puppetlabs-postgresql. 39 | :service_provider => 'systemd' 40 | })) 41 | end 42 | 43 | it_configures 'manila::db::postgresql' 44 | end 45 | end 46 | 47 | end 48 | -------------------------------------------------------------------------------- /spec/classes/manila_db_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::db' do 4 | shared_examples 'manila::db' do 5 | context 'with default parameters' do 6 | it { should contain_class('manila::deps') } 7 | 8 | it { should contain_oslo__db('manila_config').with( 9 | :db_max_retries => '', 10 | :connection => 'sqlite:////var/lib/manila/manila.sqlite', 11 | :connection_recycle_time => '', 12 | :max_pool_size => '', 13 | :max_retries => '', 14 | :retry_interval => '', 15 | :max_overflow => '', 16 | :pool_timeout => '', 17 | :mysql_enable_ndb => '', 18 | )} 19 | end 20 | 21 | context 'with specific parameters' do 22 | let :params do 23 | { 24 | :database_connection => 'mysql+pymysql://manila:manila@localhost/manila', 25 | :database_connection_recycle_time => '3601', 26 | :database_max_pool_size => '21', 27 | :database_max_retries => '11', 28 | :database_max_overflow => '21', 29 | :database_pool_timeout => '21', 30 | :mysql_enable_ndb => true, 31 | :database_retry_interval => '11', 32 | :database_db_max_retries => '-1', 33 | } 34 | end 35 | 36 | it { should contain_class('manila::deps') } 37 | 38 | it { should contain_oslo__db('manila_config').with( 39 | :db_max_retries => '-1', 40 | :connection => 'mysql+pymysql://manila:manila@localhost/manila', 41 | :connection_recycle_time => '3601', 42 | :max_pool_size => '21', 43 | :max_retries => '11', 44 | :retry_interval => '11', 45 | :max_overflow => '21', 46 | :pool_timeout => '21', 47 | :mysql_enable_ndb => true, 48 | )} 49 | end 50 | end 51 | 52 | on_supported_os({ 53 | :supported_os => OSDefaults.get_supported_os 54 | }).each do |os,facts| 55 | context "on #{os}" do 56 | let (:facts) do 57 | facts.merge!(OSDefaults.get_facts()) 58 | end 59 | 60 | it_behaves_like 'manila::db' 61 | end 62 | end 63 | end 64 | -------------------------------------------------------------------------------- /spec/classes/manila_db_sync_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::db::sync' do 4 | 5 | shared_examples_for 'manila-dbsync' do 6 | 7 | it { is_expected.to contain_class('manila::deps') } 8 | 9 | it 'runs manila-db-sync' do 10 | is_expected.to contain_exec('manila-manage db_sync').with( 11 | :command => 'manila-manage db sync', 12 | :path => '/usr/bin', 13 | :refreshonly => 'true', 14 | :user => 'manila', 15 | :try_sleep => 5, 16 | :tries => 10, 17 | :timeout => 300, 18 | :logoutput => 'on_failure', 19 | :subscribe => ['Anchor[manila::install::end]', 20 | 'Anchor[manila::config::end]', 21 | 'Anchor[manila::dbsync::begin]'], 22 | :notify => 'Anchor[manila::dbsync::end]', 23 | :tag => 'openstack-db', 24 | ) 25 | end 26 | 27 | end 28 | 29 | on_supported_os({ 30 | :supported_os => OSDefaults.get_supported_os 31 | }).each do |os,facts| 32 | context "on #{os}" do 33 | let (:facts) do 34 | facts.merge(OSDefaults.get_facts()) 35 | end 36 | 37 | it_configures 'manila-dbsync' 38 | end 39 | end 40 | 41 | end 42 | 43 | -------------------------------------------------------------------------------- /spec/classes/manila_ganesha_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::ganesha' do 4 | 5 | shared_examples_for 'manila::ganesha' do 6 | context 'with defaults' do 7 | let :params do 8 | {} 9 | end 10 | 11 | it 'set the default values' do 12 | is_expected.to contain_manila_config('DEFAULT/ganesha_config_dir').with_value('') 13 | is_expected.to contain_manila_config('DEFAULT/ganesha_config_path').with_value('') 14 | is_expected.to contain_manila_config('DEFAULT/ganesha_service_name').with_value('') 15 | is_expected.to contain_manila_config('DEFAULT/ganesha_db_path').with_value('') 16 | is_expected.to contain_manila_config('DEFAULT/ganesha_export_dir').with_value('') 17 | is_expected.to contain_manila_config('DEFAULT/ganesha_export_template_dir').with_value('') 18 | end 19 | end 20 | 21 | context 'with specific parameters' do 22 | let :params do 23 | { 24 | :ganesha_config_dir => '/etc/ganesha', 25 | :ganesha_config_path => '/etc/ganesha/ganesha.conf', 26 | :ganesha_service_name => 'ganesha.nfsd', 27 | :ganesha_db_path => '$state_path/manila-ganesha.db', 28 | :ganesha_export_dir => '/etc/ganesha/export.d', 29 | :ganesha_export_template_dir => '/etc/manila/ganesha-export-templ.d', 30 | } 31 | end 32 | 33 | it 'Adds NFS Ganesha options to the share drivers' do 34 | params.each_pair do |config,value| 35 | is_expected.to contain_manila_config("DEFAULT/#{config}").with_value(value) 36 | end 37 | end 38 | end 39 | end 40 | 41 | shared_examples_for 'manila::ganesha on RedHat' do 42 | it { is_expected.to contain_package('nfs-ganesha').with( 43 | :name => 'nfs-ganesha', 44 | :ensure => 'installed', 45 | ) } 46 | end 47 | 48 | on_supported_os({ 49 | :supported_os => OSDefaults.get_supported_os 50 | }).each do |os,facts| 51 | context "on #{os}" do 52 | let (:facts) do 53 | facts.merge!(OSDefaults.get_facts()) 54 | end 55 | it_configures 'manila::ganesha' 56 | if facts[:os]['family'] == 'RedHat' 57 | it_configures 'manila::ganesha on RedHat' 58 | end 59 | end 60 | end 61 | end 62 | -------------------------------------------------------------------------------- /spec/classes/manila_healthcheck_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::healthcheck' do 4 | 5 | shared_examples_for 'manila::healthcheck' do 6 | 7 | context 'with default parameters' do 8 | let :params do 9 | {} 10 | end 11 | 12 | it 'configures default values' do 13 | is_expected.to contain_oslo__healthcheck('manila_config').with( 14 | :detailed => '', 15 | :backends => '', 16 | :allowed_source_ranges => '', 17 | :ignore_proxied_requests => '', 18 | :disable_by_file_path => '', 19 | :disable_by_file_paths => '', 20 | :enable_by_file_paths => '', 21 | ) 22 | end 23 | end 24 | 25 | context 'with specific parameters' do 26 | let :params do 27 | { 28 | :detailed => true, 29 | :backends => ['disable_by_file'], 30 | :allowed_source_ranges => ['10.0.0.0/24', '10.0.1.0/24'], 31 | :ignore_proxied_requests => false, 32 | :disable_by_file_path => '/etc/manila/healthcheck/disabled', 33 | :disable_by_file_paths => ['8786:/etc/manila/healthcheck/disabled'], 34 | :enable_by_file_paths => ['/etc/manila/healthcheck/enabled'], 35 | } 36 | end 37 | 38 | it 'configures specified values' do 39 | is_expected.to contain_oslo__healthcheck('manila_config').with( 40 | :detailed => true, 41 | :backends => ['disable_by_file'], 42 | :allowed_source_ranges => ['10.0.0.0/24', '10.0.1.0/24'], 43 | :ignore_proxied_requests => false, 44 | :disable_by_file_path => '/etc/manila/healthcheck/disabled', 45 | :disable_by_file_paths => ['8786:/etc/manila/healthcheck/disabled'], 46 | :enable_by_file_paths => ['/etc/manila/healthcheck/enabled'], 47 | ) 48 | end 49 | end 50 | end 51 | 52 | on_supported_os({ 53 | :supported_os => OSDefaults.get_supported_os 54 | }).each do |os,facts| 55 | context "on #{os}" do 56 | let (:facts) do 57 | facts.merge!(OSDefaults.get_facts()) 58 | end 59 | 60 | it_configures 'manila::healthcheck' 61 | end 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/classes/manila_params_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::params' do 4 | 5 | on_supported_os({ 6 | :supported_os => OSDefaults.get_supported_os 7 | }).each do |os,facts| 8 | context "on #{os}" do 9 | let (:facts) do 10 | facts.merge!(OSDefaults.get_facts()) 11 | end 12 | it 'should compile' do 13 | subject 14 | end 15 | end 16 | end 17 | 18 | end 19 | -------------------------------------------------------------------------------- /spec/classes/manila_reports_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::reports' do 4 | shared_examples 'manila::reports' do 5 | context 'with default parameters' do 6 | it { 7 | is_expected.to contain_oslo__reports('manila_config').with( 8 | :log_dir => '', 9 | :file_event_handler => '', 10 | :file_event_handler_interval => '', 11 | ) 12 | } 13 | end 14 | 15 | context 'with specified parameters' do 16 | let :params do 17 | { 18 | :log_dir => '/var/log/manila', 19 | :file_event_handler => '/var/tmp/manila/reports', 20 | :file_event_handler_interval => 1, 21 | } 22 | end 23 | 24 | it { 25 | is_expected.to contain_oslo__reports('manila_config').with( 26 | :log_dir => '/var/log/manila', 27 | :file_event_handler => '/var/tmp/manila/reports', 28 | :file_event_handler_interval => 1, 29 | ) 30 | } 31 | end 32 | end 33 | 34 | on_supported_os({ 35 | :supported_os => OSDefaults.get_supported_os 36 | }).each do |os,facts| 37 | context "on #{os}" do 38 | let (:facts) do 39 | facts.merge(OSDefaults.get_facts()) 40 | end 41 | 42 | it_behaves_like 'manila::reports' 43 | end 44 | end 45 | end 46 | -------------------------------------------------------------------------------- /spec/classes/manila_setup_test_volume_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::setup_test_volume' do 4 | shared_examples 'manila::setup_test_volume' do 5 | it { is_expected.to contain_package('lvm2').with( 6 | :ensure => 'installed', 7 | :tag => 'manila-support-package' 8 | )} 9 | 10 | it { 11 | is_expected.to contain_exec('create_/var/lib/manila/lvm-shares').with( 12 | :command => 'dd if=/dev/zero of="/var/lib/manila/lvm-shares" bs=1 count=0 seek=4G', 13 | :path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'], 14 | :unless => 'stat /var/lib/manila/lvm-shares', 15 | ) 16 | is_expected.to contain_exec('losetup /dev/loop2 /var/lib/manila/lvm-shares').with( 17 | :command => 'losetup /dev/loop2 /var/lib/manila/lvm-shares && udevadm settle', 18 | :path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'], 19 | :unless => 'losetup /dev/loop2', 20 | ) 21 | is_expected.to contain_exec('pvcreate /dev/loop2').with( 22 | :path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'], 23 | :unless => 'pvs /dev/loop2', 24 | :refreshonly => true, 25 | ) 26 | is_expected.to contain_exec('vgcreate lvm-shares /dev/loop2').with( 27 | :path => ['/bin', '/usr/bin', '/sbin', '/usr/sbin'], 28 | :unless => 'vgs lvm-shares', 29 | :refreshonly => true, 30 | ) 31 | } 32 | 33 | it { is_expected.to contain_file('/var/lib/manila/lvm-shares').with_mode('0640') } 34 | end 35 | 36 | on_supported_os({ 37 | :supported_os => OSDefaults.get_supported_os 38 | }).each do |os,facts| 39 | context "on #{os}" do 40 | let (:facts) do 41 | facts.merge!(OSDefaults.get_facts()) 42 | end 43 | 44 | it_behaves_like 'manila::setup_test_volume' 45 | end 46 | end 47 | end 48 | -------------------------------------------------------------------------------- /spec/classes/manila_wsgi_uwsgi_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::wsgi::uwsgi' do 4 | 5 | shared_examples 'manila::wsgi::uwsgi' do 6 | context 'with default parameters' do 7 | it { 8 | should contain_class('manila::deps') 9 | } 10 | 11 | it { 12 | is_expected.to contain_manila_api_uwsgi_config('uwsgi/processes').with_value(facts[:os_workers]) 13 | is_expected.to contain_manila_api_uwsgi_config('uwsgi/threads').with_value('32') 14 | is_expected.to contain_manila_api_uwsgi_config('uwsgi/listen').with_value('100') 15 | } 16 | end 17 | end 18 | 19 | on_supported_os({ 20 | :supported_os => OSDefaults.get_supported_os 21 | }).each do |os,facts| 22 | context "on #{os}" do 23 | let (:facts) do 24 | facts.merge!(OSDefaults.get_facts({ 25 | :os_workers => 8, 26 | })) 27 | end 28 | it_behaves_like 'manila::wsgi::uwsgi' 29 | end 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /spec/defines/manila_backend_dellemc_isilon_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::backend::dellemc_isilon' do 4 | 5 | let(:title) {'dellemc_isilon'} 6 | 7 | let :required_params do 8 | { 9 | :emc_nas_login => 'admin', 10 | :emc_nas_password => 'password', 11 | :emc_nas_server => '127.0.0.2', 12 | } 13 | end 14 | 15 | let :default_params do 16 | { 17 | :emc_share_backend => 'isilon', 18 | :backend_availability_zone => '', 19 | :emc_nas_root_dir => '', 20 | :emc_nas_server_port => 8080, 21 | :emc_nas_server_secure => true, 22 | } 23 | end 24 | 25 | shared_examples_for 'dell emc isilon share driver' do 26 | let :params_hash do 27 | default_params.merge(params) 28 | end 29 | 30 | it 'configures dell emc isilon share driver' do 31 | is_expected.to contain_manila_config("dellemc_isilon/share_driver").with_value( 32 | 'manila.share.drivers.dell_emc.driver.EMCShareDriver') 33 | is_expected.to contain_manila_config("dellemc_isilon/driver_handles_share_servers").with_value(false) 34 | params_hash.each_pair do |config,value| 35 | is_expected.to contain_manila_config("dellemc_isilon/#{config}").with_value( value ) 36 | end 37 | end 38 | 39 | it 'marks emc_nas_password as secret' do 40 | is_expected.to contain_manila_config("dellemc_isilon/emc_nas_password").with_secret( true ) 41 | end 42 | end 43 | 44 | shared_examples 'manila::backend::dellemc_isilon' do 45 | context 'with default parameters' do 46 | let :params do 47 | required_params 48 | end 49 | 50 | it_configures 'dell emc isilon share driver' 51 | end 52 | 53 | context 'with provided parameters' do 54 | let :params do 55 | required_params.merge!({ 56 | :emc_nas_root_dir => 'myroot', 57 | :emc_nas_server_port => 8000, 58 | :emc_nas_server_secure => false, 59 | :backend_availability_zone => 'my_zone', 60 | }) 61 | end 62 | 63 | it_configures 'dell emc isilon share driver' 64 | end 65 | end 66 | 67 | on_supported_os({ 68 | :supported_os => OSDefaults.get_supported_os 69 | }).each do |os,facts| 70 | context "on #{os}" do 71 | let (:facts) do 72 | facts.merge!(OSDefaults.get_facts()) 73 | end 74 | 75 | it_behaves_like 'manila::backend::dellemc_isilon' 76 | end 77 | end 78 | end 79 | -------------------------------------------------------------------------------- /spec/defines/manila_backend_flashblade_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::backend::flashblade' do 4 | 5 | let(:title) {'flashblade'} 6 | 7 | let :required_params do 8 | { 9 | :flashblade_api => 'admin', 10 | :flashblade_mgmt_vip => '10.1.1.1', 11 | :flashblade_data_vip => '10.1.1.2', 12 | } 13 | end 14 | 15 | let :default_params do 16 | { 17 | :flashblade_eradicate => true, 18 | :backend_availability_zone => '', 19 | :reserved_share_percentage => '', 20 | :reserved_share_from_snapshot_percentage => '', 21 | :reserved_share_extend_percentage => '', 22 | :max_over_subscription_ratio => '', 23 | } 24 | end 25 | 26 | shared_examples_for 'pure storage flashblade share driver' do 27 | let :params_hash do 28 | default_params.merge(required_params) 29 | end 30 | 31 | it 'configures pure storage flashblade share driver' do 32 | is_expected.to contain_manila_config("flashblade/share_driver").with_value( 33 | 'manila.share.drivers.purestorage.flashblade.FlashBladeShareDriver') 34 | is_expected.to contain_manila_config("flashblade/driver_handles_share_servers").with_value ( false ) 35 | params_hash.each_pair do |config,value| 36 | is_expected.to contain_manila_config("flashblade/#{config}").with_value( value ) 37 | end 38 | end 39 | 40 | it 'marks flashblade_api as secret' do 41 | is_expected.to contain_manila_config("flashblade/flashblade_api").with_secret( true ) 42 | end 43 | end 44 | 45 | shared_examples 'manila::backend::flashblade' do 46 | context 'with provided parameters' do 47 | let :params do 48 | required_params 49 | end 50 | 51 | it_configures 'pure storage flashblade share driver' 52 | end 53 | 54 | context 'with share server config' do 55 | let :params do 56 | required_params.merge!({ 57 | :flashblade_eradicate => true, 58 | :backend_availability_zone => 'my_zone', 59 | :reserved_share_percentage => 10.0, 60 | :reserved_share_from_snapshot_percentage => 10.1, 61 | :reserved_share_extend_percentage => 10.2, 62 | :max_over_subscription_ratio => 1.5, 63 | }) 64 | end 65 | 66 | it_configures "pure storage flashblade share driver" 67 | end 68 | end 69 | 70 | on_supported_os({ 71 | :supported_os => OSDefaults.get_supported_os 72 | }).each do |os,facts| 73 | context "on #{os}" do 74 | let (:facts) do 75 | facts.merge!(OSDefaults.get_facts()) 76 | end 77 | 78 | it_behaves_like 'manila::backend::flashblade' 79 | end 80 | end 81 | end 82 | -------------------------------------------------------------------------------- /spec/defines/manila_backend_ganesha_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::backend::ganesha' do 4 | 5 | shared_examples_for 'manila::backend::ganesha' do 6 | let(:title) {'ganesha'} 7 | 8 | context 'with defaults' do 9 | let :params do 10 | {} 11 | end 12 | 13 | it { is_expected.to contain_package('nfs-ganesha').with( 14 | :name => 'nfs-ganesha', 15 | :ensure => 'installed' 16 | ) } 17 | 18 | it 'set the default values' do 19 | is_expected.to contain_manila_config('ganesha/ganesha_config_dir').with_value('') 20 | is_expected.to contain_manila_config('ganesha/ganesha_config_path').with_value('') 21 | is_expected.to contain_manila_config('ganesha/ganesha_service_name').with_value('') 22 | is_expected.to contain_manila_config('ganesha/ganesha_db_path').with_value('') 23 | is_expected.to contain_manila_config('ganesha/ganesha_export_dir').with_value('') 24 | is_expected.to contain_manila_config('ganesha/ganesha_export_template_dir').with_value('') 25 | is_expected.to contain_manila_config('ganesha/ganesha_rados_store_enable').with_value('') 26 | is_expected.to contain_manila_config('ganesha/ganesha_rados_store_pool_name').with_value('') 27 | is_expected.to contain_manila_config('ganesha/ganesha_rados_export_counter').with_value('') 28 | is_expected.to contain_manila_config('ganesha/ganesha_rados_export_index').with_value('') 29 | end 30 | end 31 | 32 | context 'with specific parameters' do 33 | let :params do 34 | { 35 | :ganesha_config_dir => '/etc/ganesha', 36 | :ganesha_config_path => '/etc/ganesha/ganesha.conf', 37 | :ganesha_service_name => 'ganesha.nfsd', 38 | :ganesha_db_path => '$state_path/manila-ganesha.db', 39 | :ganesha_export_dir => '/etc/ganesha/export.d', 40 | :ganesha_export_template_dir => '/etc/manila/ganesha-export-templ.d', 41 | :ganesha_rados_store_enable => true, 42 | :ganesha_rados_store_pool_name => 'storepool', 43 | :ganesha_rados_export_counter => 'ganesha-export-counter', 44 | :ganesha_rados_export_index => 'ganesha-export-index', 45 | } 46 | end 47 | 48 | it 'Adds NFS Ganesha options to the share drivers' do 49 | params.each_pair do |config,value| 50 | is_expected.to contain_manila_config("ganesha/#{config}").with_value(value) 51 | end 52 | end 53 | end 54 | end 55 | 56 | on_supported_os({ 57 | :supported_os => OSDefaults.get_supported_os 58 | }).each do |os,facts| 59 | context "on #{os}" do 60 | let (:facts) do 61 | facts.merge!(OSDefaults.get_facts()) 62 | end 63 | it_configures 'manila::backend::ganesha' 64 | end 65 | end 66 | end 67 | -------------------------------------------------------------------------------- /spec/defines/manila_backend_glusterfs_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::backend::glusterfs' do 4 | 5 | shared_examples_for 'glusterfs share driver' do 6 | let(:title) {'mygluster'} 7 | 8 | let :params do 9 | { 10 | :glusterfs_volumes_config => '/etc/manila/glusterfs_volumes', 11 | :glusterfs_mount_point_base => '$state_path/mnt', 12 | :backend_availability_zone => 'my_zone', 13 | } 14 | end 15 | 16 | it 'configures glusterfs share driver' do 17 | is_expected.to contain_manila_config('mygluster/share_backend_name').with_value( 18 | 'mygluster') 19 | is_expected.to contain_manila_config('mygluster/share_driver').with_value( 20 | 'manila.share.drivers.glusterfs.GlusterfsShareDriver') 21 | is_expected.to contain_manila_config('mygluster/glusterfs_volumes_config').with_value( 22 | '/etc/manila/glusterfs_volumes') 23 | is_expected.to contain_manila_config('mygluster/glusterfs_mount_point_base').with_value( 24 | '$state_path/mnt') 25 | is_expected.to contain_manila_config('mygluster/backend_availability_zone').with_value( 26 | 'my_zone') 27 | is_expected.to contain_manila_config('mygluster/reserved_share_percentage').with_value( 28 | '') 29 | is_expected.to contain_manila_config('mygluster/reserved_share_from_snapshot_percentage').with_value( 30 | '') 31 | is_expected.to contain_manila_config('mygluster/reserved_share_extend_percentage').with_value( 32 | '') 33 | end 34 | end 35 | 36 | on_supported_os({ 37 | :supported_os => OSDefaults.get_supported_os 38 | }).each do |os,facts| 39 | context "on #{os}" do 40 | let (:facts) do 41 | facts.merge!(OSDefaults.get_facts()) 42 | end 43 | 44 | it_behaves_like 'glusterfs share driver' 45 | end 46 | end 47 | end 48 | -------------------------------------------------------------------------------- /spec/defines/manila_backend_glusternative_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::backend::glusternative' do 4 | 5 | shared_examples_for 'glusternative volume driver' do 6 | let(:title) {'fuse'} 7 | 8 | let :params do 9 | { 10 | :glusterfs_servers => 'remoteuser@volserver', 11 | :glusterfs_path_to_private_key => '/etc/glusterfs/glusterfs.pem', 12 | :glusterfs_volume_pattern => 'manila-share-volume-\d+$', 13 | :backend_availability_zone => 'my_zone', 14 | :reserved_share_percentage => 10.0, 15 | :reserved_share_from_snapshot_percentage => 10.1, 16 | :reserved_share_extend_percentage => 10.2, 17 | } 18 | end 19 | 20 | describe 'glusternative share driver' do 21 | it 'configures glusterfs fuse/native share driver' do 22 | is_expected.to contain_manila_config('fuse/share_backend_name').with( 23 | :value => 'fuse') 24 | is_expected.to contain_manila_config('fuse/share_driver').with_value( 25 | 'manila.share.drivers.glusterfs_native.GlusterfsNativeShareDriver') 26 | params.each_pair do |config,value| 27 | is_expected.to contain_manila_config("fuse/#{config}").with_value( value ) 28 | end 29 | end 30 | 31 | it 'installs gluster packages' do 32 | is_expected.to contain_package(platform_params[:gluster_package_name]).with( 33 | 'ensure' => 'installed', 34 | 'tag' => 'manila-support-package', 35 | ) 36 | is_expected.to contain_package(platform_params[:gluster_client_package_name]).with( 37 | 'ensure' => 'installed', 38 | 'tag' => 'manila-support-package', 39 | ) 40 | end 41 | end 42 | end 43 | 44 | on_supported_os({ 45 | :supported_os => OSDefaults.get_supported_os 46 | }).each do |os,facts| 47 | context "on #{os}" do 48 | let (:facts) do 49 | facts.merge!(OSDefaults.get_facts()) 50 | end 51 | 52 | let :platform_params do 53 | case facts[:os]['family'] 54 | when 'Debian' 55 | { 56 | :gluster_client_package_name => 'glusterfs-client', 57 | :gluster_package_name => 'glusterfs-common' 58 | } 59 | when 'RedHat' 60 | { 61 | :gluster_client_package_name => 'glusterfs-fuse', 62 | :gluster_package_name => 'glusterfs' 63 | } 64 | end 65 | end 66 | 67 | it_behaves_like 'glusternative volume driver' 68 | end 69 | end 70 | 71 | end 72 | -------------------------------------------------------------------------------- /spec/defines/manila_backend_glusternfs_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::backend::glusternfs' do 4 | 5 | shared_examples_for 'glusternfs volume driver' do 6 | let(:title) {'gnfs'} 7 | 8 | let :params do 9 | { 10 | :glusterfs_target => 'remoteuser@volserver:volid', 11 | :glusterfs_mount_point_base => '$state_path/mnt', 12 | :glusterfs_nfs_server_type => 'gluster', 13 | :glusterfs_path_to_private_key => '/etc/glusterfs/glusterfs.pem', 14 | :glusterfs_ganesha_server_ip => '127.0.0.1', 15 | :backend_availability_zone => 'my_zone', 16 | :reserved_share_percentage => 10.0, 17 | :reserved_share_from_snapshot_percentage => 10.1, 18 | :reserved_share_extend_percentage => 10.2, 19 | } 20 | end 21 | 22 | describe 'glusternfs share driver' do 23 | it 'configures gluster nfs/ganesha share driver' do 24 | is_expected.to contain_manila_config('gnfs/share_backend_name').with( 25 | :value => 'gnfs') 26 | is_expected.to contain_manila_config('gnfs/share_driver').with_value( 27 | 'manila.share.drivers.glusterfs.GlusterfsShareDriver') 28 | params.each_pair do |config,value| 29 | is_expected.to contain_manila_config("gnfs/#{config}").with_value( value ) 30 | end 31 | end 32 | 33 | it 'installs gluster packages' do 34 | is_expected.to contain_package(platform_params[:gluster_package_name]).with( 35 | 'ensure' => 'installed', 36 | 'tag' => 'manila-support-package', 37 | ) 38 | is_expected.to contain_package(platform_params[:gluster_client_package_name]).with( 39 | 'ensure' => 'installed', 40 | 'tag' => 'manila-support-package', 41 | ) 42 | end 43 | end 44 | end 45 | 46 | on_supported_os({ 47 | :supported_os => OSDefaults.get_supported_os 48 | }).each do |os,facts| 49 | context "on #{os}" do 50 | let (:facts) do 51 | facts.merge!(OSDefaults.get_facts()) 52 | end 53 | 54 | let :platform_params do 55 | case facts[:os]['family'] 56 | when 'Debian' 57 | { 58 | :gluster_client_package_name => 'glusterfs-client', 59 | :gluster_package_name => 'glusterfs-common' 60 | } 61 | when 'RedHat' 62 | { 63 | :gluster_client_package_name => 'glusterfs-fuse', 64 | :gluster_package_name => 'glusterfs' 65 | } 66 | end 67 | end 68 | 69 | it_behaves_like 'glusternfs volume driver' 70 | end 71 | end 72 | end 73 | -------------------------------------------------------------------------------- /spec/defines/manila_backend_hitachi_hnas_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::backend::hitachi_hnas' do 4 | 5 | let(:title) {'myhitachinas'} 6 | 7 | let :params do 8 | { 9 | :driver_handles_share_servers => false, 10 | :hitachi_hnas_ip => '172.24.44.15', 11 | :hitachi_hnas_user => 'supervisor', 12 | :hitachi_hnas_password => 'supervisor', 13 | :hitachi_hnas_evs_id => '1', 14 | :hitachi_hnas_evs_ip => ' 172.24.53.1', 15 | :hitachi_hnas_file_system_name => 'FS-Manila', 16 | :backend_availability_zone => 'my_zone', 17 | :reserved_share_percentage => 10.0, 18 | :reserved_share_from_snapshot_percentage => 10.1, 19 | :reserved_share_extend_percentage => 10.2, 20 | :max_over_subscription_ratio => 1.5, 21 | } 22 | end 23 | 24 | shared_examples_for 'hitachi hnas share driver' do 25 | it 'configures hitachi nas share driver' do 26 | is_expected.to contain_manila_config("myhitachinas/share_driver").with_value( 27 | 'manila.share.drivers.hitachi.hds_hnas.HDSHNASDriver') 28 | params.each_pair do |config,value| 29 | is_expected.to contain_manila_config("myhitachinas/#{config}").with_value( value ) 30 | end 31 | end 32 | 33 | it 'marks hitachi_hnas_password as secret' do 34 | is_expected.to contain_manila_config("myhitachinas/hitachi_hnas_password").with_secret( true ) 35 | end 36 | end 37 | 38 | shared_examples 'manila::backend::hitachi_hnas' do 39 | context 'with provided parameters' do 40 | it_configures 'hitachi hnas share driver' 41 | end 42 | 43 | context 'with share server config' do 44 | before do 45 | params.merge!({ 46 | :hitachi_hnas_password => true, 47 | }) 48 | end 49 | 50 | it { is_expected.to raise_error(Puppet::Error) } 51 | end 52 | end 53 | 54 | on_supported_os({ 55 | :supported_os => OSDefaults.get_supported_os 56 | }).each do |os,facts| 57 | context "on #{os}" do 58 | let (:facts) do 59 | facts.merge!(OSDefaults.get_facts()) 60 | end 61 | 62 | it_behaves_like 'manila::backend::hitachi_hnas' 63 | end 64 | end 65 | end 66 | -------------------------------------------------------------------------------- /spec/defines/manila_backend_lvm_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::backend::lvm' do 4 | 5 | shared_examples_for 'lvm share driver' do 6 | let(:title) {'mylvm'} 7 | 8 | let :params do 9 | { 10 | :lvm_share_export_ips => '1.2.3.4', 11 | :lvm_share_export_root => '$state_path/mnt', 12 | :lvm_share_mirrors => 1, 13 | :lvm_share_volume_group => 'lvm-shares', 14 | :lvm_share_helpers => [ 15 | 'CIFS=manila.share.drivers.helpers.CIFSHelperUserAccess', 16 | 'NFS=manila.share.drivers.helpers.NFSHelper' 17 | ], 18 | :backend_availability_zone => 'my_zone', 19 | :reserved_share_percentage => 10.0, 20 | :reserved_share_from_snapshot_percentage => 10.1, 21 | :reserved_share_extend_percentage => 10.2, 22 | } 23 | end 24 | 25 | it 'configures lvm share driver' do 26 | is_expected.to contain_manila_config('mylvm/share_backend_name').with_value('mylvm') 27 | is_expected.to contain_manila_config('mylvm/share_driver').with_value( 28 | 'manila.share.drivers.lvm.LVMShareDriver') 29 | is_expected.to contain_manila_config('mylvm/driver_handles_share_servers').with_value(false) 30 | is_expected.to contain_manila_config('mylvm/lvm_share_export_ips').with_value('1.2.3.4') 31 | is_expected.to contain_manila_config('mylvm/lvm_share_export_root').with_value('$state_path/mnt') 32 | is_expected.to contain_manila_config('mylvm/lvm_share_mirrors').with_value('1') 33 | is_expected.to contain_manila_config('mylvm/lvm_share_volume_group').with_value('lvm-shares') 34 | is_expected.to contain_manila_config('mylvm/lvm_share_helpers').with_value( 35 | 'CIFS=manila.share.drivers.helpers.CIFSHelperUserAccess,NFS=manila.share.drivers.helpers.NFSHelper') 36 | is_expected.to contain_manila_config('mylvm/backend_availability_zone').with_value( 37 | 'my_zone') 38 | is_expected.to contain_manila_config('mylvm/reserved_share_percentage').with_value(10.0) 39 | is_expected.to contain_manila_config('mylvm/reserved_share_from_snapshot_percentage').with_value(10.1) 40 | is_expected.to contain_manila_config('mylvm/reserved_share_extend_percentage').with_value(10.2) 41 | end 42 | end 43 | 44 | on_supported_os({ 45 | :supported_os => OSDefaults.get_supported_os 46 | }).each do |os,facts| 47 | context "on #{os}" do 48 | let (:facts) do 49 | facts.merge!(OSDefaults.get_facts()) 50 | end 51 | 52 | it_configures 'lvm share driver' 53 | end 54 | end 55 | end 56 | -------------------------------------------------------------------------------- /spec/defines/manila_network_neutron_network_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::network::neutron_network' do 4 | let(:title) do 5 | 'neutronnet' 6 | end 7 | 8 | let :params do 9 | { 10 | :neutron_physical_net_name => 'br-ex', 11 | } 12 | end 13 | 14 | shared_examples 'manila::network::neutron_network' do 15 | context 'with required parameters' do 16 | it 'configures neutron single network plugin' do 17 | is_expected.to contain_manila_config("neutronnet/network_api_class").with_value( 18 | 'manila.network.neutron.neutron_network_plugin.NeutronNetworkPlugin') 19 | 20 | is_expected.to contain_manila_config('neutronnet/neutron_physical_net_name')\ 21 | .with_value('br-ex') 22 | is_expected.to contain_manila_config('neutronnet/network_plugin_ipv4_enabled')\ 23 | .with_value('') 24 | is_expected.to contain_manila_config('neutronnet/network_plugin_ipv6_enabled')\ 25 | .with_value('') 26 | end 27 | end 28 | 29 | context 'with custom parameters' do 30 | before do 31 | params.merge!({ 32 | :network_plugin_ipv4_enabled => true, 33 | :network_plugin_ipv6_enabled => false, 34 | }) 35 | end 36 | it 'configures neutron single network plugin' do 37 | is_expected.to contain_manila_config("neutronnet/network_api_class").with_value( 38 | 'manila.network.neutron.neutron_network_plugin.NeutronNetworkPlugin') 39 | 40 | is_expected.to contain_manila_config('neutronnet/neutron_physical_net_name')\ 41 | .with_value('br-ex') 42 | is_expected.to contain_manila_config('neutronnet/network_plugin_ipv4_enabled')\ 43 | .with_value(true) 44 | is_expected.to contain_manila_config('neutronnet/network_plugin_ipv6_enabled')\ 45 | .with_value(false) 46 | end 47 | end 48 | end 49 | 50 | on_supported_os({ 51 | :supported_os => OSDefaults.get_supported_os 52 | }).each do |os,facts| 53 | context "on #{os}" do 54 | let (:facts) do 55 | facts.merge!(OSDefaults.get_facts()) 56 | end 57 | 58 | it_behaves_like 'manila::network::neutron_network' 59 | end 60 | end 61 | end 62 | -------------------------------------------------------------------------------- /spec/defines/manila_network_neutron_single_network_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'manila::network::neutron_single_network' do 4 | let(:title) do 5 | 'neutronsingle' 6 | end 7 | 8 | let :params do 9 | { 10 | :neutron_net_id => 'e378d6e6-7d6c-4e59-86cc-067043145377', 11 | :neutron_subnet_id => 'a0a8c559-09ad-4112-abc6-473137117880', 12 | } 13 | end 14 | 15 | shared_examples 'manila::network::neutron_single_network' do 16 | context 'with required parameters' do 17 | it 'configures neutron single network plugin' do 18 | is_expected.to contain_manila_config("neutronsingle/network_api_class").with_value( 19 | 'manila.network.neutron.neutron_network_plugin.NeutronSingleNetworkPlugin') 20 | 21 | is_expected.to contain_manila_config('neutronsingle/neutron_net_id')\ 22 | .with_value('e378d6e6-7d6c-4e59-86cc-067043145377') 23 | is_expected.to contain_manila_config('neutronsingle/neutron_subnet_id')\ 24 | .with_value('a0a8c559-09ad-4112-abc6-473137117880') 25 | is_expected.to contain_manila_config('neutronsingle/network_plugin_ipv4_enabled')\ 26 | .with_value('') 27 | is_expected.to contain_manila_config('neutronsingle/network_plugin_ipv6_enabled')\ 28 | .with_value('') 29 | end 30 | end 31 | 32 | context 'with custom parameters' do 33 | before do 34 | params.merge!({ 35 | :network_plugin_ipv4_enabled => true, 36 | :network_plugin_ipv6_enabled => false, 37 | }) 38 | end 39 | it 'configures neutron single network plugin' do 40 | is_expected.to contain_manila_config("neutronsingle/network_api_class").with_value( 41 | 'manila.network.neutron.neutron_network_plugin.NeutronSingleNetworkPlugin') 42 | 43 | is_expected.to contain_manila_config('neutronsingle/neutron_net_id')\ 44 | .with_value('e378d6e6-7d6c-4e59-86cc-067043145377') 45 | is_expected.to contain_manila_config('neutronsingle/neutron_subnet_id')\ 46 | .with_value('a0a8c559-09ad-4112-abc6-473137117880') 47 | is_expected.to contain_manila_config('neutronsingle/network_plugin_ipv4_enabled')\ 48 | .with_value(true) 49 | is_expected.to contain_manila_config('neutronsingle/network_plugin_ipv6_enabled')\ 50 | .with_value(false) 51 | end 52 | end 53 | end 54 | 55 | on_supported_os({ 56 | :supported_os => OSDefaults.get_supported_os 57 | }).each do |os,facts| 58 | context "on #{os}" do 59 | let (:facts) do 60 | facts.merge!(OSDefaults.get_facts()) 61 | end 62 | 63 | it_behaves_like 'manila::network::neutron_single_network' 64 | end 65 | end 66 | end 67 | -------------------------------------------------------------------------------- /spec/shared_examples.rb: -------------------------------------------------------------------------------- 1 | shared_examples_for "a Puppet::Error" do |description| 2 | it "with message matching #{description.inspect}" do 3 | expect { is_expected.to have_class_count(1) }.to raise_error(Puppet::Error, description) 4 | end 5 | end 6 | -------------------------------------------------------------------------------- /spec/spec_helper.rb: -------------------------------------------------------------------------------- 1 | # Load libraries here to simulate how they live together in a real puppet run (for provider unit tests) 2 | $LOAD_PATH.push(File.join(File.dirname(__FILE__), 'fixtures', 'modules', 'inifile', 'lib')) 3 | $LOAD_PATH.push(File.join(File.dirname(__FILE__), 'fixtures', 'modules', 'openstacklib', 'lib')) 4 | require 'puppetlabs_spec_helper/module_spec_helper' 5 | require 'shared_examples' 6 | require 'puppet-openstack_spec_helper/facts' 7 | 8 | fixture_path = File.expand_path(File.join(File.dirname(__FILE__), 'fixtures')) 9 | 10 | RSpec.configure do |c| 11 | c.alias_it_should_behave_like_to :it_configures, 'configures' 12 | c.alias_it_should_behave_like_to :it_raises, 'raises' 13 | 14 | c.module_path = File.join(fixture_path, 'modules') 15 | end 16 | 17 | at_exit { RSpec::Puppet::Coverage.report! } 18 | -------------------------------------------------------------------------------- /spec/spec_helper_acceptance.rb: -------------------------------------------------------------------------------- 1 | require 'puppet-openstack_spec_helper/litmus_spec_helper' 2 | -------------------------------------------------------------------------------- /spec/unit/provider/manila_api_paste_ini/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | provider_class = Puppet::Type.type(:manila_api_paste_ini).provider(:ini_setting) 3 | describe provider_class do 4 | 5 | it 'should allow setting to be set explicitly' do 6 | resource = Puppet::Type::Manila_api_paste_ini.new( 7 | {:name => 'boo/zoo', :value => 'plop'} 8 | ) 9 | provider = provider_class.new(resource) 10 | expect(provider.section).to eq('boo') 11 | expect(provider.setting).to eq('zoo') 12 | end 13 | 14 | it 'should ensure absent when is specified as a value' do 15 | resource = Puppet::Type::Manila_api_paste_ini.new( 16 | {:name => 'dude/foo', :value => ''} 17 | ) 18 | provider = provider_class.new(resource) 19 | provider.exists? 20 | expect(resource[:ensure]).to eq :absent 21 | end 22 | 23 | it 'should ensure absent when value matches ensure_absent_val' do 24 | resource = Puppet::Type::Manila_api_paste_ini.new( 25 | {:name => 'dude/foo', :value => 'foo', :ensure_absent_val => 'foo' } 26 | ) 27 | provider = provider_class.new(resource) 28 | provider.exists? 29 | expect(resource[:ensure]).to eq :absent 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /spec/unit/provider/manila_api_uwsgi_config/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | provider_class = Puppet::Type.type(:manila_api_uwsgi_config).provider(:ini_setting) 3 | describe provider_class do 4 | 5 | it 'should default to the default setting when no other one is specified' do 6 | resource = Puppet::Type::Manila_api_uwsgi_config.new( 7 | {:name => 'DEFAULT/foo', :value => 'bar'} 8 | ) 9 | provider = provider_class.new(resource) 10 | expect(provider.section).to eq('DEFAULT') 11 | expect(provider.setting).to eq('foo') 12 | end 13 | 14 | it 'should allow setting to be set explicitly' do 15 | resource = Puppet::Type::Manila_api_uwsgi_config.new( 16 | {:name => 'dude/foo', :value => 'bar'} 17 | ) 18 | provider = provider_class.new(resource) 19 | expect(provider.section).to eq('dude') 20 | expect(provider.setting).to eq('foo') 21 | end 22 | 23 | it 'should ensure absent when is specified as a value' do 24 | resource = Puppet::Type::Manila_api_uwsgi_config.new( 25 | {:name => 'dude/foo', :value => ''} 26 | ) 27 | provider = provider_class.new(resource) 28 | provider.exists? 29 | expect(resource[:ensure]).to eq :absent 30 | end 31 | 32 | it 'should ensure absent when value matches ensure_absent_val' do 33 | resource = Puppet::Type::Manila_api_uwsgi_config.new( 34 | {:name => 'dude/foo', :value => 'foo', :ensure_absent_val => 'foo' } 35 | ) 36 | provider = provider_class.new(resource) 37 | provider.exists? 38 | expect(resource[:ensure]).to eq :absent 39 | end 40 | 41 | end 42 | -------------------------------------------------------------------------------- /spec/unit/provider/manila_config/openstackconfig_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | provider_class = Puppet::Type.type(:manila_config).provider(:openstackconfig) 3 | describe provider_class do 4 | 5 | it 'should default to the default setting when no other one is specified' do 6 | resource = Puppet::Type::Manila_config.new( 7 | {:name => 'DEFAULT/foo', :value => 'bar'} 8 | ) 9 | provider = provider_class.new(resource) 10 | expect(provider.section).to eq('DEFAULT') 11 | expect(provider.setting).to eq('foo') 12 | end 13 | 14 | it 'should allow setting to be set explicitly' do 15 | resource = Puppet::Type::Manila_config.new( 16 | {:name => 'dude/foo', :value => 'bar'} 17 | ) 18 | provider = provider_class.new(resource) 19 | expect(provider.section).to eq('dude') 20 | expect(provider.setting).to eq('foo') 21 | end 22 | 23 | it 'should ensure absent when is specified as a value' do 24 | resource = Puppet::Type::Manila_config.new( 25 | {:name => 'dude/foo', :value => ''} 26 | ) 27 | provider = provider_class.new(resource) 28 | provider.exists? 29 | expect(resource[:ensure]).to eq :absent 30 | end 31 | 32 | it 'should ensure absent when value matches ensure_absent_val' do 33 | resource = Puppet::Type::Manila_config.new( 34 | {:name => 'dude/foo', :value => 'foo', :ensure_absent_val => 'foo' } 35 | ) 36 | provider = provider_class.new(resource) 37 | provider.exists? 38 | expect(resource[:ensure]).to eq :absent 39 | end 40 | 41 | end 42 | -------------------------------------------------------------------------------- /spec/unit/provider/manila_rootwrap_config/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | provider_class = Puppet::Type.type(:manila_rootwrap_config).provider(:ini_setting) 4 | describe provider_class do 5 | 6 | it 'should default to the default setting when no other one is specified' do 7 | resource = Puppet::Type::Manila_rootwrap_config.new( 8 | {:name => 'DEFAULT/foo', :value => 'bar'} 9 | ) 10 | provider = provider_class.new(resource) 11 | expect(provider.section).to eq('DEFAULT') 12 | expect(provider.setting).to eq('foo') 13 | end 14 | 15 | it 'should allow setting to be set explicitly' do 16 | resource = Puppet::Type::Manila_rootwrap_config.new( 17 | {:name => 'dude/foo', :value => 'bar'} 18 | ) 19 | provider = provider_class.new(resource) 20 | expect(provider.section).to eq('dude') 21 | expect(provider.setting).to eq('foo') 22 | end 23 | 24 | it 'should ensure absent when is specified as a value' do 25 | resource = Puppet::Type::Manila_rootwrap_config.new( 26 | {:name => 'dude/foo', :value => ''} 27 | ) 28 | provider = provider_class.new(resource) 29 | provider.exists? 30 | expect(resource[:ensure]).to eq :absent 31 | end 32 | 33 | it 'should ensure absent when value matches ensure_absent_val' do 34 | resource = Puppet::Type::Manila_rootwrap_config.new( 35 | {:name => 'dude/foo', :value => 'foo', :ensure_absent_val => 'foo' } 36 | ) 37 | provider = provider_class.new(resource) 38 | provider.exists? 39 | expect(resource[:ensure]).to eq :absent 40 | end 41 | 42 | end 43 | -------------------------------------------------------------------------------- /spec/unit/type/manila_api_paste_ini_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/manila_api_paste_ini' 3 | 4 | describe 'Puppet::Type.type(:manila_api_paste_ini)' do 5 | before :each do 6 | Puppet::Type.rmtype(:manila_api_paste_ini) 7 | @manila_api_paste_ini = Puppet::Type.type(:manila_api_paste_ini).new(:name => 'DEFAULT/foo', :value => 'bar') 8 | end 9 | 10 | shared_examples_for 'manila_api_paste_ini' do 11 | 12 | it 'should require a name' do 13 | expect { 14 | Puppet::Type.type(:manila_api_paste_ini).new({}) 15 | }.to raise_error(Puppet::Error, 'Title or name must be provided') 16 | end 17 | 18 | it 'should not expect a name with whitespace' do 19 | expect { 20 | Puppet::Type.type(:manila_api_paste_ini).new(:name => 'f oo') 21 | }.to raise_error(Puppet::Error, /Parameter name failed/) 22 | end 23 | 24 | it 'should fail when there is no section' do 25 | expect { 26 | Puppet::Type.type(:manila_api_paste_ini).new(:name => 'foo') 27 | }.to raise_error(Puppet::Error, /Parameter name failed/) 28 | end 29 | 30 | it 'should not require a value when ensure is absent' do 31 | Puppet::Type.type(:manila_api_paste_ini).new(:name => 'DEFAULT/foo', :ensure => :absent) 32 | end 33 | 34 | it 'should accept a valid value' do 35 | @manila_api_paste_ini[:value] = 'bar' 36 | expect(@manila_api_paste_ini[:value]).to eq('bar') 37 | end 38 | 39 | it 'should accept a value with whitespace' do 40 | @manila_api_paste_ini[:value] = 'b ar' 41 | expect(@manila_api_paste_ini[:value]).to eq('b ar') 42 | end 43 | 44 | it 'should accept valid ensure values' do 45 | @manila_api_paste_ini[:ensure] = :present 46 | expect(@manila_api_paste_ini[:ensure]).to eq(:present) 47 | @manila_api_paste_ini[:ensure] = :absent 48 | expect(@manila_api_paste_ini[:ensure]).to eq(:absent) 49 | end 50 | 51 | it 'should not accept invalid ensure values' do 52 | expect { 53 | @manila_api_paste_ini[:ensure] = :latest 54 | }.to raise_error(Puppet::Error, /Invalid value/) 55 | end 56 | 57 | it 'should autorequire the package that install the file' do 58 | catalog = Puppet::Resource::Catalog.new 59 | anchor = Puppet::Type.type(:anchor).new(:name => 'manila::install::end') 60 | catalog.add_resource anchor, @manila_api_paste_ini 61 | dependency = @manila_api_paste_ini.autorequire 62 | expect(dependency.size).to eq(1) 63 | expect(dependency[0].target).to eq(@manila_api_paste_ini) 64 | expect(dependency[0].source).to eq(anchor) 65 | end 66 | end 67 | 68 | end 69 | 70 | -------------------------------------------------------------------------------- /spec/unit/type/manila_api_uwsgi_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/manila_api_uwsgi_config' 3 | 4 | describe 'Puppet::Type.type(:manila_api_uwsgi_config)' do 5 | before :each do 6 | @manila_api_uwsgi_config = Puppet::Type.type(:manila_api_uwsgi_config).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should require a name' do 10 | expect { 11 | Puppet::Type.type(:manila_api_uwsgi_config).new({}) 12 | }.to raise_error(Puppet::Error, 'Title or name must be provided') 13 | end 14 | 15 | it 'should not expect a name with whitespace' do 16 | expect { 17 | Puppet::Type.type(:manila_api_uwsgi_config).new(:name => 'f oo') 18 | }.to raise_error(Puppet::Error, /Parameter name failed/) 19 | end 20 | 21 | it 'should fail when there is no section' do 22 | expect { 23 | Puppet::Type.type(:manila_api_uwsgi_config).new(:name => 'foo') 24 | }.to raise_error(Puppet::Error, /Parameter name failed/) 25 | end 26 | 27 | it 'should not require a value when ensure is absent' do 28 | Puppet::Type.type(:manila_api_uwsgi_config).new(:name => 'DEFAULT/foo', :ensure => :absent) 29 | end 30 | 31 | it 'should accept a valid value' do 32 | @manila_api_uwsgi_config[:value] = 'bar' 33 | expect(@manila_api_uwsgi_config[:value]).to eq('bar') 34 | end 35 | 36 | it 'should accept a value with whitespace' do 37 | @manila_api_uwsgi_config[:value] = 'b ar' 38 | expect(@manila_api_uwsgi_config[:value]).to eq('b ar') 39 | end 40 | 41 | it 'should accept valid ensure values' do 42 | @manila_api_uwsgi_config[:ensure] = :present 43 | expect(@manila_api_uwsgi_config[:ensure]).to eq(:present) 44 | @manila_api_uwsgi_config[:ensure] = :absent 45 | expect(@manila_api_uwsgi_config[:ensure]).to eq(:absent) 46 | end 47 | 48 | it 'should not accept invalid ensure values' do 49 | expect { 50 | @manila_api_uwsgi_config[:ensure] = :latest 51 | }.to raise_error(Puppet::Error, /Invalid value/) 52 | end 53 | 54 | it 'should autorequire the package that install the file' do 55 | catalog = Puppet::Resource::Catalog.new 56 | anchor = Puppet::Type.type(:anchor).new(:name => 'manila::install::end') 57 | catalog.add_resource anchor, @manila_api_uwsgi_config 58 | dependency = @manila_api_uwsgi_config.autorequire 59 | expect(dependency.size).to eq(1) 60 | expect(dependency[0].target).to eq(@manila_api_uwsgi_config) 61 | expect(dependency[0].source).to eq(anchor) 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/unit/type/manila_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/manila_config' 3 | 4 | describe 'Puppet::Type.type(:manila_config)' do 5 | before :each do 6 | @manila_config = Puppet::Type.type(:manila_config).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should require a name' do 10 | expect { 11 | Puppet::Type.type(:manila_config).new({}) 12 | }.to raise_error(Puppet::Error, 'Title or name must be provided') 13 | end 14 | 15 | it 'should not expect a name with whitespace' do 16 | expect { 17 | Puppet::Type.type(:manila_config).new(:name => 'f oo') 18 | }.to raise_error(Puppet::Error, /Parameter name failed/) 19 | end 20 | 21 | it 'should fail when there is no section' do 22 | expect { 23 | Puppet::Type.type(:manila_config).new(:name => 'foo') 24 | }.to raise_error(Puppet::Error, /Parameter name failed/) 25 | end 26 | 27 | it 'should not require a value when ensure is absent' do 28 | Puppet::Type.type(:manila_config).new(:name => 'DEFAULT/foo', :ensure => :absent) 29 | end 30 | 31 | it 'should accept a valid value' do 32 | @manila_config[:value] = 'bar' 33 | expect(@manila_config[:value]).to eq(['bar']) 34 | end 35 | 36 | it 'should accept a value with whitespace' do 37 | @manila_config[:value] = 'b ar' 38 | expect(@manila_config[:value]).to eq(['b ar']) 39 | end 40 | 41 | it 'should accept valid ensure values' do 42 | @manila_config[:ensure] = :present 43 | expect(@manila_config[:ensure]).to eq(:present) 44 | @manila_config[:ensure] = :absent 45 | expect(@manila_config[:ensure]).to eq(:absent) 46 | end 47 | 48 | it 'should not accept invalid ensure values' do 49 | expect { 50 | @manila_config[:ensure] = :latest 51 | }.to raise_error(Puppet::Error, /Invalid value/) 52 | end 53 | 54 | it 'should autorequire the package that install the file' do 55 | catalog = Puppet::Resource::Catalog.new 56 | anchor = Puppet::Type.type(:anchor).new(:name => 'manila::install::end') 57 | catalog.add_resource anchor, @manila_config 58 | dependency = @manila_config.autorequire 59 | expect(dependency.size).to eq(1) 60 | expect(dependency[0].target).to eq(@manila_config) 61 | expect(dependency[0].source).to eq(anchor) 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/unit/type/manila_rootwrap_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/manila_rootwrap_config' 3 | 4 | describe 'Puppet::Type.type(:manila_rootwrap_config)' do 5 | before :each do 6 | @manila_rootwrap_config = Puppet::Type.type(:manila_rootwrap_config).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should require a name' do 10 | expect { 11 | Puppet::Type.type(:manila_rootwrap_config).new({}) 12 | }.to raise_error(Puppet::Error, 'Title or name must be provided') 13 | end 14 | 15 | it 'should not expect a name with whitespace' do 16 | expect { 17 | Puppet::Type.type(:manila_rootwrap_config).new(:name => 'f oo') 18 | }.to raise_error(Puppet::Error, /Parameter name failed/) 19 | end 20 | 21 | it 'should fail when there is no section' do 22 | expect { 23 | Puppet::Type.type(:manila_rootwrap_config).new(:name => 'foo') 24 | }.to raise_error(Puppet::Error, /Parameter name failed/) 25 | end 26 | 27 | it 'should not require a value when ensure is absent' do 28 | Puppet::Type.type(:manila_rootwrap_config).new(:name => 'DEFAULT/foo', :ensure => :absent) 29 | end 30 | 31 | it 'should accept a valid value' do 32 | @manila_rootwrap_config[:value] = 'bar' 33 | expect(@manila_rootwrap_config[:value]).to eq('bar') 34 | end 35 | 36 | it 'should accept a value with whitespace' do 37 | @manila_rootwrap_config[:value] = 'b ar' 38 | expect(@manila_rootwrap_config[:value]).to eq('b ar') 39 | end 40 | 41 | it 'should accept valid ensure values' do 42 | @manila_rootwrap_config[:ensure] = :present 43 | expect(@manila_rootwrap_config[:ensure]).to eq(:present) 44 | @manila_rootwrap_config[:ensure] = :absent 45 | expect(@manila_rootwrap_config[:ensure]).to eq(:absent) 46 | end 47 | 48 | it 'should not accept invalid ensure values' do 49 | expect { 50 | @manila_rootwrap_config[:ensure] = :latest 51 | }.to raise_error(Puppet::Error, /Invalid value/) 52 | end 53 | 54 | it 'should autorequire the package that install the file' do 55 | catalog = Puppet::Resource::Catalog.new 56 | anchor = Puppet::Type.type(:anchor).new(:name => 'manila::install::end') 57 | catalog.add_resource anchor, @manila_rootwrap_config 58 | dependency = @manila_rootwrap_config.autorequire 59 | expect(dependency.size).to eq(1) 60 | expect(dependency[0].target).to eq(@manila_rootwrap_config) 61 | expect(dependency[0].source).to eq(anchor) 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/unit/type/manila_type_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/manila_type' 3 | 4 | describe Puppet::Type.type(:manila_type) do 5 | 6 | before :each do 7 | Puppet::Type.rmtype(:manila_type) 8 | end 9 | 10 | it 'should autorequire manila-api service' do 11 | catalog = Puppet::Resource::Catalog.new 12 | anchor = Puppet::Type.type(:anchor).new(:name => 'manila::service::end') 13 | correct_input = { 14 | :name => 'test_type', 15 | } 16 | manila_type = Puppet::Type.type(:manila_type).new(correct_input) 17 | 18 | catalog.add_resource anchor, manila_type 19 | dependency = manila_type.autorequire 20 | expect(dependency.size).to eq(1) 21 | expect(dependency[0].target).to eq(manila_type) 22 | expect(dependency[0].source).to eq(anchor) 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | minversion = 3.1 3 | skipsdist = True 4 | envlist = releasenotes 5 | ignore_basepython_conflict = True 6 | 7 | [testenv] 8 | basepython = python3 9 | 10 | [testenv:releasenotes] 11 | deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} 12 | -r{toxinidir}/doc/requirements.txt 13 | commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html 14 | --------------------------------------------------------------------------------