├── .gitignore ├── .gitreview ├── .pdkignore ├── .zuul.yaml ├── CHANGELOG.md ├── CONTRIBUTING.rst ├── Gemfile ├── LICENSE ├── README.md ├── Rakefile ├── bindep.txt ├── doc └── requirements.txt ├── examples └── glance.pp ├── lib └── puppet │ ├── provider │ ├── glance.rb │ ├── glance_api_config │ │ └── openstackconfig.rb │ ├── glance_api_paste_ini │ │ └── ini_setting.rb │ ├── glance_api_uwsgi_config │ │ └── ini_setting.rb │ ├── glance_cache_config │ │ └── openstackconfig.rb │ ├── glance_image │ │ └── openstack.rb │ ├── glance_image_import_config │ │ └── ini_setting.rb │ ├── glance_property_protections_config │ │ └── ini_setting.rb │ ├── glance_rootwrap_config │ │ └── ini_setting.rb │ └── glance_swift_config │ │ └── ini_setting.rb │ └── type │ ├── glance_api_config.rb │ ├── glance_api_paste_ini.rb │ ├── glance_api_uwsgi_config.rb │ ├── glance_cache_config.rb │ ├── glance_image.rb │ ├── glance_image_import_config.rb │ ├── glance_property_protections_config.rb │ ├── glance_rootwrap_config.rb │ └── glance_swift_config.rb ├── manifests ├── api.pp ├── api │ ├── authtoken.pp │ ├── db.pp │ └── logging.pp ├── backend │ ├── cinder.pp │ ├── file.pp │ ├── multistore │ │ ├── cinder.pp │ │ ├── file.pp │ │ ├── http.pp │ │ ├── rbd.pp │ │ ├── s3.pp │ │ └── swift.pp │ ├── rbd.pp │ ├── reserved │ │ ├── staging.pp │ │ └── tasks.pp │ └── swift.pp ├── cache │ ├── cleaner.pp │ ├── logging.pp │ └── pruner.pp ├── client.pp ├── config.pp ├── cors.pp ├── cron │ ├── db_purge.pp │ └── db_purge_images_table.pp ├── db │ ├── metadefs.pp │ ├── mysql.pp │ ├── postgresql.pp │ └── sync.pp ├── deps.pp ├── healthcheck.pp ├── import_filtering_opts.pp ├── init.pp ├── key_manager.pp ├── key_manager │ ├── barbican.pp │ └── barbican │ │ └── service_user.pp ├── keystone │ └── auth.pp ├── limit.pp ├── notify │ └── rabbitmq.pp ├── os_brick.pp ├── params.pp ├── policy.pp ├── property_protection.pp ├── reports.pp ├── wsgi.pp └── wsgi │ ├── apache.pp │ └── uwsgi.pp ├── metadata.json ├── releasenotes ├── notes │ ├── access_log_env_var-faac53acf7960ab4.yaml │ ├── add-barbican-params-236b21da099104b1.yaml │ ├── add-concurrency-lock_path-666f5836ec062c5a.yaml │ ├── add-enabled_backends-b7b2ab71eed5f7c6.yaml │ ├── add-enabled_import_methods-9deed747fea00cff.yaml │ ├── add-missing-cinder-store-settings-f7aef33ec122a39a.yaml │ ├── add-pool_timeout-option-for-db-81299f15988c59ba.yaml │ ├── add-use_journal-option-for-logging-9d1bab2bd5816127.yaml │ ├── add_cache_prefetcher_interval-e77d98c5235e91bc.yaml │ ├── add_cinder_volume_type_for_multiple_cinder_stores-c19b0bb1c753715b.yaml │ ├── add_db_max_retries-81df176353e781a5.yaml │ ├── add_db_sync_timeout-bdc2f73a51104c30.yaml │ ├── add_disk_formats_parameter-9e83e3142f8d10f9.yaml │ ├── add_enforce_secure_rbac_for_rbac_support-35bcf4ef4e25e435.yaml │ ├── add_image_cache_settings-cd6c9176167010ba.yaml │ ├── add_keystone_unified_quotas_support-09fa1262ea7d4e1e.yaml │ ├── add_messaging_default_parameters-87134a2345ef961d.yaml │ ├── add_metadata_file_related_parameters-dd365b3cfaed47a1.yaml │ ├── add_mysql_enable_ndb-option-ba2e78904df15498.yaml │ ├── add_rabbit_kombu_options-b5c925f0f593b95e.yaml │ ├── add_swift_buffer_options-30716d70fc42b749.yaml │ ├── add_swift_store_large_object_chunk_size_parameter-98f34404c5a61843.yaml │ ├── add_watch_log_file-option-8a6ba402a4fb4a66.yaml │ ├── add_worker_self_reference_url_for_distributed_image_import-09f70f50c8c40def.yaml │ ├── allow-configure-image-member-quota-c15d360baa10f38d.yaml │ ├── amqp_auto_delete-b6189c9b151c7d5e.yaml │ ├── api-container_formats-0bc5a2c0e7b6357e.yaml │ ├── api-limit-params-b17e7853c8a1b6a6.yaml │ ├── api_paste_ini-separator-207e3b33e3e6a755.yaml │ ├── api_versions-b2a58d83f4291b3c.yaml │ ├── authtoken-2439e462e0a84399.yaml │ ├── authtoken_manage_memcache_package-2d02bf561959f26e.yaml │ ├── barbican_service_user-606ee71dc0940e2a.yaml │ ├── bug-1947816-75538e8fd13e59c6.yaml │ ├── bug-2002934-bc8efa00a7dbadfd.yaml │ ├── cache-cron-maxdelay-bfd1585eaa15aeda.yaml │ ├── centos-9-support-4e5928fa431437bf.yaml │ ├── change-default-of-swift_store_config_file-e59ff9753f3612a7.yaml │ ├── change-keystone-v3-ea41e2839447cd71.yaml │ ├── cinder_do_extend_attached-020a2fcc09f314db.yaml │ ├── cinder_os_region_name-60667efbd630f04f.yaml │ ├── cinder_store_domain_name-cf4820cef4b11efc.yaml │ ├── cleanup-keymgr-85f1f745648d37fd.yaml │ ├── configure_service-9be83a9af11c7564.yaml │ ├── cors-d7196b18598d9461.yaml │ ├── cron-db_purge-bbb2a1adb325e3b5.yaml │ ├── cron-ensure-950a213e87067f17.yaml │ ├── default-domain-e9adc769441e1381.yaml │ ├── deprecate-api-scrub_time-9f2b2f8bb06fe375.yaml │ ├── deprecate-cache_prefetcher_interval-8a1e5075661f0177.yaml │ ├── deprecate-delayed_delete-126ba200afe53631.yaml │ ├── deprecate-enable_v1_api-0c6c6fb4d9f4ffd2.yaml │ ├── deprecate-enable_v2_api-8096a5b0b20c2ef9.yaml │ ├── deprecate-glance_store-fs-store-opts-6215c0af739558be.yaml │ ├── deprecate-ineffective-rabbit_notification_exchange-63705692a360872f.yaml │ ├── deprecate-location_strategy-0d9471feb6daab5e.yaml │ ├── deprecate-native-ssl-b35cc074d5cf11aa.yaml │ ├── deprecate-rabbit_heartbeat_in_pthread-ea808f6b2d6f08f8.yaml │ ├── deprecate-service-validation-fe0803b6ba6af40f.yaml │ ├── deprecate-swift_store_config_file-ba548fab5c5971be.yaml │ ├── deprecate-unused-reserved-store-opts-e9f0656c2850594a.yaml │ ├── deprecate-vsphere-backend-ef2d2234c82bc0ce.yaml │ ├── deprecate-watch_log_file-5345fe2410b870f3.yaml │ ├── deprecate_api_registry_parameters-1dcb0f3579fe9a42.yaml │ ├── deprecate_api_show_multiple_locations-376b35e39779cf79.yaml │ ├── deprecate_auth_region_option-d13f8194295a1463.yaml │ ├── deprecate_auth_uri_parameter-b2f3306d0c7a946c.yaml │ ├── deprecate_database_min_pool_size-option-a8d8ce0baf4ab636.yaml │ ├── deprecate_database_options-9e6b1088d9502480.yaml │ ├── deprecate_idle_timeout_parameter-bdc85512b96b5d29.yaml │ ├── deprecate_old_vsphere_backend_parameters-8d798bd64b750911.yaml │ ├── deprecate_pki_related_parameters-aaee1a6471dd7e46.yaml │ ├── deprecate_revocation_cache_time_parameter-df18d6b775848d64.yaml │ ├── deprecate_signing_dir_parameter-813569a35f3661e9.yaml │ ├── drop-el6-support-c3c167935a8e9b96.yaml │ ├── drop-fedora-3ad30141c46b838a.yaml │ ├── drop_glare_from_glance-8a1d09f8a0613229.yaml │ ├── drop_qpid-422ed20407bf9e03.yaml │ ├── enable_cancel_on_failover-93236283513d91ba.yaml │ ├── enable_handling_sparse_image-0a68af239b413df1.yaml │ ├── enable_image_conversion_parameters-d47ac86850ad9a90.yaml │ ├── enabled-image-inject-metadata-properties-1b4b50846450e580.yaml │ ├── executor_thread_pool_size-5f3f56a67dbbde78.yaml │ ├── external_install_mgmt_hook-ac465c8d520393b4.yaml │ ├── file-backend-opts-24feb56451524847.yaml │ ├── fix_log_dir_documentation-0e2dcaf9a5d5c58c.yaml │ ├── fix_version_warning-9c2b39584af72126.yaml │ ├── force-use-of-v2-2c50d7c5a6467107.yaml │ ├── glance-backend-cinder-multipath-d18f73e3a9c55b05.yaml │ ├── glance-image-id-d1a32b5ec443611e.yaml │ ├── glance-image-owner-b75c53ba059d2a3f.yaml │ ├── glance-image-properties-0de5fee2391c9983.yaml │ ├── glance-image-resource-proxy-8b18f0b130f2f0dc.yaml │ ├── glance-load-metadefs-f399b78000e3c681.yaml │ ├── glance-rbd-ubuntu-package-b072d00a7e21b9af.yaml │ ├── glance-swift-v3-572d506977688377.yaml │ ├── glance_backend_cinder_mount_point_base-5741d2966cc10c7b.yaml │ ├── glance_cache_logging-1f53fc9d71d04686.yaml │ ├── glance_db_class-dee87f87e25d0040.yaml │ ├── glance_db_sync-1371e578fff11d4d.yaml │ ├── glance_glare_service-2cd8231e1e7d097b.yaml │ ├── glance_image-remove-location-0877bcda4b30f705.yaml │ ├── hashing_algorithm-7d3e50edb88213f8.yaml │ ├── hc-enable_by_file_paths-a93450c8cb3abf1a.yaml │ ├── healthcheck-902378a7b8bf405f.yaml │ ├── healthcheck-allowed_source_ranges-9ddd09715e0a9c09.yaml │ ├── healthcheck-ignore_proxied_requests-b0b067f03f72a35d.yaml │ ├── image_cache_driver-268807d027c75e52.yaml │ ├── import_filtering_opts-c61527366fce946f.yaml │ ├── ipv6_registry-95b934a99a6f2639.yaml │ ├── key_manager-opts-ddaa497089657955.yaml │ ├── keystone-auth-name-2f9bd1b22dccd5bf.yaml │ ├── keystone-authtoken-interface-f8d92000874248fd.yaml │ ├── keystone-authtoken-service_type-e22ec47ac8d7f6a0.yaml │ ├── keystone_python_depr-80fa804d9cd242c5.yaml │ ├── log-json-8045e42f0b1a39d6.yaml │ ├── max_request_body_size-91efd06b477a9ff8.yaml │ ├── migrate-policy-format-from-json-to-yaml-06ba9c13ea4cc8f1.yaml │ ├── more-quota-params-467e6e3584450c9d.yaml │ ├── multi_store-d53d0e440b55e9d6.yaml │ ├── multistore-http-62f7e96ec6345238.yaml │ ├── new_option_public_endpoint-26ba31afc09cabf0.yaml │ ├── new_service_name-307a5803a248d2a3.yaml │ ├── notification-retry-19b32f669308d331.yaml │ ├── notification_transport_url-c4ebcfa30e124c9e.yaml │ ├── openstack_db_tag-9766c2362156ac1e.yaml │ ├── os-brick-67002271f4d397a8.yaml │ ├── os_workers_for_worker_count-f86aa67474d5cac9.yaml │ ├── oslo-limit-query-endpoint-options-3eb8ad61d5e682b6.yaml │ ├── oslo-reports-63949842ad569401.yaml │ ├── oslo_policy-enforce_scope-422b5bb6f96a7afe.yaml │ ├── paste_deploy-57ebab2b26497bd7.yaml │ ├── policy-dirs-91b7945f046e8fab.yaml │ ├── policy-enforce_new_defaults-239a805a6d0fba80.yaml │ ├── policy_default_rule-f7a6147e4d33e76e.yaml │ ├── policy_purge_config-7369ca2674968221.yaml │ ├── properties-hash-87129602c88ca3ff.yaml │ ├── property-protections-3db869c274eb175f.yaml │ ├── provider-deprecate-at-params-88b2ee3f16ac5443.yaml │ ├── puppet-8-0d062371c4a6ba29.yaml │ ├── puppet4-mysql-func-c9dc054baa43c0ed.yaml │ ├── pymysql-e57bf1f0289dd426.yaml │ ├── rabbit-connection-params-deprecation-d1405f1fe22481b8.yaml │ ├── rabbit-quorum-queue-5ddec285d337feb3.yaml │ ├── rabbit_qos_prefetch_count-089f68b950e784c0.yaml │ ├── rabbit_transient_queues_ttl-3d310ee093053a66.yaml │ ├── rabbit_transient_quorum_queue-0185f65a94bca875.yaml │ ├── rabbitmq-heartbeat-over-pthread-8a0e7e5c03c2b7c0.yaml │ ├── registry_ssl-eed9bdc67c795cde.yaml │ ├── release-note-ubuntu-py3-6c01b9f3895cb9b6.yaml │ ├── remove-api-pipeline-d7054e2cd9f1616f.yaml │ ├── remove-api-scrub_time-d2eadc583428757e.yaml │ ├── remove-auth-uri-d5ec1ba55c15ff74.yaml │ ├── remove-cache_prefetcher_interval-c22a500fa6a121b1.yaml │ ├── remove-centos-8-285907b675d2cc7f.yaml │ ├── remove-database-params-2242c2c179b2da12.yaml │ ├── remove-deprecated-logging-59abbf51ce252346.yaml │ ├── remove-deprecated-params-6fa3d35be3371c74.yaml │ ├── remove-location_strategy-8ec4c0ac162838a9.yaml │ ├── remove-native-ssl-e88e094e772612dd.yaml │ ├── remove-os_region_name-892f99fd3ff5027b.yaml │ ├── remove-puppet-6-d48d374e78e06c22.yaml │ ├── remove-rabbit_notification_exchange-bfbe1f717522f1ff.yaml │ ├── remove-registry-2a8d771cc159401d.yaml │ ├── remove-registry-leftover-28913ae93b9934f8.yaml │ ├── remove-service-validation-5ae1f6f973bc5990.yaml │ ├── remove-vsphere-backend-636f815d495acb05.yaml │ ├── remove-watch_log_file-3c99fdee7376e348.yaml │ ├── remove_cluster_id-da63a8f698b27cec.yaml │ ├── remove_deprecated_keystone_auth_options-bec5bba5a8e22d16.yaml │ ├── remove_deprecated_keystone_revocation_cache_time_option-89af492d7e32913e.yaml │ ├── remove_deprecated_keystone_signing_dir_option-928d7e97d61de301.yaml │ ├── remove_deprecated_pki_related_options-bc4c9c7169048ddf.yaml │ ├── remove_deprecated_sync_db-135983def83457df.yaml │ ├── remove_idle_timeout_option-aaf1a514540694b2.yaml │ ├── remove_old_auth-d9fc4af8e2ced291.yaml │ ├── remove_old_authtoken_options-954b592223d48e6e.yaml │ ├── remove_posix-d1f775df21874348.yaml │ ├── remove_qpid-0b446db43fdea617.yaml │ ├── remove_verbose-228877cddeed6640.yaml │ ├── rename-notification-topic-533bbeee6b18c090.yaml │ ├── require_image_format_match-b8b8f60b86634832.yaml │ ├── reserved-backends-opts-77db1c3d53737150.yaml │ ├── restore-s3-support-82e63d83b1184cdf.yaml │ ├── rootwrap-67cd9c5053bd4556.yaml │ ├── service_token_roles-72c9e4eaa139a9d6.yaml │ ├── service_token_roles_required-84a52781e88fc5bb.yaml │ ├── stop-reading-authtoken-opts-5bdb8e633573ce2b.yaml │ ├── store-weight-986ecfa153a9762e.yaml │ ├── swift_store_retry_get_count-cb650a2d17ca0b7f.yaml │ ├── swift_store_service_type-8eaf7267b24c6283.yaml │ ├── switch_to_oslo_everywhere-01030871f9549110.yaml │ ├── switch_to_oslo_messaging-cb63828d88821378.yaml │ ├── system_scope-barbican_service_user-e15677399a124630.yaml │ ├── system_scope-keystone-386b413aa2f30362.yaml │ ├── tasks-taskflow_executor-conversion-716730936a03a062.yaml │ ├── ubuntu-jammy-0312de8534a241c4.yaml │ ├── ubuntu-noble-05ec8ab2e7602ffe.yaml │ ├── undeprecate-reserved-store-opts-848c70d425de01a1.yaml │ ├── update_swift-52dfa8715cddbe91.yaml │ ├── use-reno-1caaec4ba5aa4285.yaml │ ├── uwsgi-2cd2183769f8132d.yaml │ ├── verbose-deprecation-bf94328c56f7a944.yaml │ └── wsgi-apache-9b01ec002add3e9b.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_glance_spec.rb │ └── 99_glance_config_spec.rb ├── classes │ ├── glance_api_authtoken_spec.rb │ ├── glance_api_db_spec.rb │ ├── glance_api_logging_spec.rb │ ├── glance_api_spec.rb │ ├── glance_backend_cinder_spec.rb │ ├── glance_backend_file_spec.rb │ ├── glance_backend_rbd_spec.rb │ ├── glance_backend_reserved_staging_spec.rb │ ├── glance_backend_reserved_tasks_spec.rb │ ├── glance_backend_swift_spec.rb │ ├── glance_cache_cleaner_spec.rb │ ├── glance_cache_logging_spec.rb │ ├── glance_cache_pruner_spec.rb │ ├── glance_client_spec.rb │ ├── glance_config_spec.rb │ ├── glance_cors_spec.rb │ ├── glance_cron_db_purge_images_table_spec.rb │ ├── glance_cron_db_purge_spec.rb │ ├── glance_db_metadefs_spec.rb │ ├── glance_db_mysql_spec.rb │ ├── glance_db_postgresql_spec.rb │ ├── glance_db_sync_spec.rb │ ├── glance_healthcheck_spec.rb │ ├── glance_import_filtering_opts_spec.rb │ ├── glance_init_spec.rb │ ├── glance_key_manager_barbican_service_user_spec.rb │ ├── glance_key_manager_barbican_spec.rb │ ├── glance_key_manager_spec.rb │ ├── glance_keystone_auth_spec.rb │ ├── glance_limit_spec.rb │ ├── glance_notify_rabbitmq_spec.rb │ ├── glance_os_brick_spec.rb │ ├── glance_policy_spec.rb │ ├── glance_property_protections_spec.rb │ ├── glance_reports_spec.rb │ ├── glance_spec.rb │ ├── glance_wsgi_apache_spec.rb │ ├── glance_wsgi_spec.rb │ └── glance_wsgi_uwsgi_spec.rb ├── defines │ ├── glance_backend_multistore_cinder_spec.rb │ ├── glance_backend_multistore_file_spec.rb │ ├── glance_backend_multistore_http_spec.rb │ ├── glance_backend_multistore_rbd_spec.rb │ ├── glance_backend_multistore_s3_spec.rb │ └── glance_backend_multistore_swift_spec.rb ├── shared_examples.rb ├── spec.opts ├── spec_helper.rb ├── spec_helper_acceptance.rb └── unit │ ├── provider │ ├── glance_api_config │ │ └── openstackconfig_spec.rb │ ├── glance_api_paste_ini │ │ └── ini_setting_spec.rb │ ├── glance_api_uwsgi_config │ │ └── ini_setting_spec.rb │ ├── glance_cache_config │ │ └── openstackconfig_spec.rb │ ├── glance_image │ │ └── openstack_spec.rb │ ├── glance_image_import_config │ │ └── ini_setting_spec.rb │ ├── glance_property_protections │ │ └── ini_setting_spec.rb │ ├── glance_rootwrap_config │ │ └── ini_setting_spec.rb │ └── glance_swift_config │ │ └── ini_setting_spec.rb │ └── type │ ├── glance_api_config_spec.rb │ ├── glance_api_paste_ini_spec.rb │ ├── glance_api_uwsgi_config_spec.rb │ ├── glance_cache_config_spec.rb │ ├── glance_image_import_config_spec.rb │ ├── glance_property_protections_config_spec.rb │ ├── glance_rootwrap_config_spec.rb │ └── glance_swift_config_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-glance.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-all 6 | - puppet-openstack-litmus-jobs 7 | - release-notes-jobs-python3 8 | -------------------------------------------------------------------------------- /CONTRIBUTING.rst: -------------------------------------------------------------------------------- 1 | The source repository for this project can be found at: 2 | 3 | https://opendev.org/openstack/puppet-glance 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-glance 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 | -------------------------------------------------------------------------------- /examples/glance.pp: -------------------------------------------------------------------------------- 1 | glance::backend::multistore::file { 'file1': } 2 | 3 | glance::backend::multistore::swift { 'swift1': 4 | swift_store_user => 'demo', 5 | swift_store_key => 'secrete', 6 | } 7 | 8 | class { 'glance::api': 9 | keystone_password => 'a_big_secret', 10 | enabled_backends => ['swift1:swift', 'file1:file'], 11 | default_backend => 'swift1', 12 | } 13 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance.rb: -------------------------------------------------------------------------------- 1 | # Since there's only one glance_* 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::Glance < Puppet::Provider::Openstack 8 | 9 | extend Puppet::Provider::Openstack::Auth 10 | 11 | def bool_to_sym(bool) 12 | bool == true ? :true : :false 13 | end 14 | 15 | end 16 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance_api_config/openstackconfig.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:glance_api_config).provide( 2 | :openstackconfig, 3 | :parent => Puppet::Type.type(:openstack_config).provider(:ruby) 4 | ) do 5 | 6 | def self.file_path 7 | '/etc/glance/glance-api.conf' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance_api_paste_ini/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:glance_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/glance/glance-api-paste.ini' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance_api_uwsgi_config/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:glance_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/glance/glance-api-uwsgi.ini' 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance_cache_config/openstackconfig.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:glance_cache_config).provide( 2 | :openstackconfig, 3 | :parent => Puppet::Type.type(:openstack_config).provider(:ruby) 4 | ) do 5 | 6 | def self.file_path 7 | '/etc/glance/glance-cache.conf' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance_image_import_config/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:glance_image_import_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/glance/glance-image-import.conf' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance_property_protections_config/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:glance_property_protections_config).provide( 2 | :ini_setting, 3 | :parent => Puppet::Type.type(:openstack_config).provider(:ini_setting) 4 | ) do 5 | def self.file_path 6 | '/etc/glance/property-protections.conf' 7 | end 8 | end 9 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance_rootwrap_config/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:glance_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/glance/rootwrap.conf' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/provider/glance_swift_config/ini_setting.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.type(:glance_swift_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/glance/glance-swift.conf' 8 | end 9 | 10 | end 11 | -------------------------------------------------------------------------------- /lib/puppet/type/glance_api_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:glance_api_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from glance-api.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 | ['glance::install::end'] 59 | end 60 | 61 | end 62 | -------------------------------------------------------------------------------- /lib/puppet/type/glance_api_paste_ini.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:glance_api_paste_ini) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from glance-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 | ['glance::install::end'] 55 | end 56 | 57 | end 58 | -------------------------------------------------------------------------------- /lib/puppet/type/glance_api_uwsgi_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:glance_api_uwsgi_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from /etc/glance/glance-api-uwsgi.ini' 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 | autorequire(:anchor) do 16 | ['glance::install::end'] 17 | end 18 | 19 | newproperty(:value) do 20 | desc 'The value of the setting to be defined.' 21 | munge do |value| 22 | value = value.to_s.strip 23 | value.capitalize! if value =~ /^(true|false)$/i 24 | value 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /lib/puppet/type/glance_cache_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:glance_cache_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from glance-cache.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 | ['glance::install::end'] 59 | end 60 | 61 | end 62 | -------------------------------------------------------------------------------- /lib/puppet/type/glance_image_import_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:glance_image_import_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from glance-image-import.conf' 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 | 19 | def is_to_s( currentvalue ) 20 | if resource.secret? 21 | return '[old secret redacted]' 22 | else 23 | return currentvalue 24 | end 25 | end 26 | 27 | def should_to_s( newvalue ) 28 | if resource.secret? 29 | return '[new secret redacted]' 30 | else 31 | return newvalue 32 | end 33 | end 34 | end 35 | 36 | newparam(:secret, :boolean => true) do 37 | desc 'Whether to hide the value from Puppet logs. Defaults to `false`.' 38 | 39 | newvalues(:true, :false) 40 | 41 | defaultto false 42 | end 43 | 44 | newparam(:ensure_absent_val) do 45 | desc 'A value that is specified as the value property will behave as if ensure => absent was specified' 46 | defaultto('') 47 | end 48 | 49 | autorequire(:anchor) do 50 | ['glance::install::end'] 51 | end 52 | 53 | end 54 | -------------------------------------------------------------------------------- /lib/puppet/type/glance_property_protections_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:glance_property_protections_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from property-protections.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 | autorequire(:anchor) do 16 | ['glance::install::end'] 17 | end 18 | 19 | newproperty(:value) do 20 | desc 'The value of the setting to be defined.' 21 | munge do |value| 22 | value = value.to_s.strip 23 | value.capitalize! if value =~ /^(true|false)$/i 24 | value 25 | end 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /lib/puppet/type/glance_rootwrap_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:glance_rootwrap_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from /etc/glance/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 | ['glance::install::end'] 27 | end 28 | 29 | end 30 | -------------------------------------------------------------------------------- /lib/puppet/type/glance_swift_config.rb: -------------------------------------------------------------------------------- 1 | Puppet::Type.newtype(:glance_swift_config) do 2 | 3 | ensurable 4 | 5 | newparam(:name, :namevar => true) do 6 | desc 'Section/setting name to manage from glance-api.conf' 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 | 19 | def is_to_s( currentvalue ) 20 | if resource.secret? 21 | return '[old secret redacted]' 22 | else 23 | return currentvalue 24 | end 25 | end 26 | 27 | def should_to_s( newvalue ) 28 | if resource.secret? 29 | return '[new secret redacted]' 30 | else 31 | return newvalue 32 | end 33 | end 34 | end 35 | 36 | newparam(:secret, :boolean => true) do 37 | desc 'Whether to hide the value from Puppet logs. Defaults to `false`.' 38 | 39 | newvalues(:true, :false) 40 | 41 | defaultto false 42 | end 43 | 44 | newparam(:ensure_absent_val) do 45 | desc 'A value that is specified as the value property will behave as if ensure => absent was specified' 46 | defaultto('') 47 | end 48 | 49 | autorequire(:anchor) do 50 | ['glance::install::end'] 51 | end 52 | 53 | end 54 | -------------------------------------------------------------------------------- /manifests/backend/file.pp: -------------------------------------------------------------------------------- 1 | # === class: glance::backend::file 2 | # 3 | # used to configure file backends for glance 4 | # 5 | # === parameters: 6 | # 7 | # [*filesystem_store_datadir*] 8 | # Location where dist images are stored when 9 | # default_store == file. 10 | # Optional. Default: /var/lib/glance/images/ 11 | # 12 | # [*filesystem_thin_provisioning*] 13 | # (optional) Boolean describing if thin provisioning is enabled or not 14 | # Defaults to $facts['os_service_default'] 15 | # 16 | # [*multi_store*] 17 | # (optional) Boolean describing if multiple backends will be configured 18 | # Defaults to false 19 | # 20 | class glance::backend::file( 21 | $filesystem_store_datadir = '/var/lib/glance/images/', 22 | $filesystem_thin_provisioning = $facts['os_service_default'], 23 | Boolean $multi_store = false, 24 | ) { 25 | 26 | include glance::deps 27 | 28 | warning('glance::backend::file is deprecated. Use glance::backend::multistore::file instead.') 29 | 30 | glance::backend::multistore::file { 'glance_store': 31 | filesystem_store_datadir => $filesystem_store_datadir, 32 | filesystem_thin_provisioning => $filesystem_thin_provisioning, 33 | store_description => undef, 34 | } 35 | 36 | if !$multi_store { 37 | glance_api_config { 'glance_store/default_store': value => 'file'; } 38 | glance_cache_config { 'glance_store/default_store': value => 'file'; } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /manifests/backend/reserved/staging.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2022 Red Hat, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | # 16 | # == Class: glance::backend::reserved::staging 17 | # 18 | # Used to configure the os_glance_staging_store options 19 | # 20 | # === Parameters: 21 | # 22 | # [*filesystem_store_datadir*] 23 | # (optional) Directory where dist images are stored. 24 | # Defaults to $facts['os_service_default']. 25 | # 26 | # [*filesystem_store_file_perm*] 27 | # (optional) File access permissions for the image files. 28 | # Defaults to $facts['os_service_default']. 29 | # 30 | # [*filesystem_store_chunk_size*] 31 | # (optional) Chunk size, in bytes. 32 | # Defaults to $facts['os_service_default']. 33 | # 34 | # [*filesystem_thin_provisioning*] 35 | # (optional) Boolean describing if thin provisioning is enabled or not 36 | # Defaults to $facts['os_service_default'] 37 | # 38 | class glance::backend::reserved::staging( 39 | $filesystem_store_datadir = $facts['os_service_default'], 40 | $filesystem_store_file_perm = $facts['os_service_default'], 41 | $filesystem_store_chunk_size = $facts['os_service_default'], 42 | $filesystem_thin_provisioning = $facts['os_service_default'], 43 | ) { 44 | 45 | glance_api_config { 46 | 'os_glance_staging_store/filesystem_store_datadir': value => $filesystem_store_datadir; 47 | 'os_glance_staging_store/filesystem_store_file_perm': value => $filesystem_store_file_perm; 48 | 'os_glance_staging_store/filesystem_store_chunk_size': value => $filesystem_store_chunk_size; 49 | 'os_glance_staging_store/filesystem_thin_provisioning': value => $filesystem_thin_provisioning; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /manifests/backend/reserved/tasks.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2022 Red Hat, Inc. 3 | # 4 | # Licensed under the Apache License, Version 2.0 (the "License"); you may 5 | # not use this file except in compliance with the License. You may obtain 6 | # a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12 | # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13 | # License for the specific language governing permissions and limitations 14 | # under the License. 15 | # 16 | # == Class: glance::backend::reserved::tasks 17 | # 18 | # Used to configure the os_glance_task_store options 19 | # 20 | # === Parameters: 21 | # 22 | # [*filesystem_store_datadir*] 23 | # (optional) Directory where dist images are stored. 24 | # Defaults to $facts['os_service_default']. 25 | # 26 | # [*filesystem_store_file_perm*] 27 | # (optional) File access permissions for the image files. 28 | # Defaults to $facts['os_service_default']. 29 | # 30 | # [*filesystem_store_chunk_size*] 31 | # (optional) Chunk size, in bytes. 32 | # Defaults to $facts['os_service_default']. 33 | # 34 | # [*filesystem_thin_provisioning*] 35 | # (optional) Boolean describing if thin provisioning is enabled or not 36 | # Defaults to $facts['os_service_default'] 37 | # 38 | class glance::backend::reserved::tasks( 39 | $filesystem_store_datadir = $facts['os_service_default'], 40 | $filesystem_store_file_perm = $facts['os_service_default'], 41 | $filesystem_store_chunk_size = $facts['os_service_default'], 42 | $filesystem_thin_provisioning = $facts['os_service_default'], 43 | ) { 44 | 45 | glance_api_config { 46 | 'os_glance_tasks_store/filesystem_store_datadir': value => $filesystem_store_datadir; 47 | 'os_glance_tasks_store/filesystem_store_file_perm': value => $filesystem_store_file_perm; 48 | 'os_glance_tasks_store/filesystem_store_chunk_size': value => $filesystem_store_chunk_size; 49 | 'os_glance_tasks_store/filesystem_thin_provisioning': value => $filesystem_thin_provisioning; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /manifests/cache/cleaner.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::cache::cleaner 2 | # 3 | # Installs a cron job to run glance-cache-cleaner. 4 | # 5 | # === Parameters 6 | # 7 | # [*minute*] 8 | # (optional) Defaults to '1'. 9 | # 10 | # [*hour*] 11 | # (optional) Defaults to '0'. 12 | # 13 | # [*monthday*] 14 | # (optional) Defaults to '*'. 15 | # 16 | # [*month*] 17 | # (optional) Defaults to '*'. 18 | # 19 | # [*weekday*] 20 | # (optional) Defaults to '*'. 21 | # 22 | # [*command_options*] 23 | # (optional) command options to add to the cronjob 24 | # (eg. point to config file, or redirect output) 25 | # Defaults to ''. 26 | # 27 | # [*maxdelay*] 28 | # (optional) In Seconds. Should be a positive integer. 29 | # Induces a random delay before running the cronjob to avoid running 30 | # all cron jobs at the same time on all hosts this job is configured. 31 | # Defaults to 0. 32 | # 33 | # [*ensure*] 34 | # (optional) Ensure cron jobs present or absent 35 | # Defaults to present. 36 | # 37 | class glance::cache::cleaner( 38 | $minute = 1, 39 | $hour = 0, 40 | $monthday = '*', 41 | $month = '*', 42 | $weekday = '*', 43 | $command_options = '', 44 | Integer[0] $maxdelay = 0, 45 | Enum['present', 'absent'] $ensure = 'present', 46 | ) { 47 | 48 | include glance::deps 49 | include glance::params 50 | 51 | if $maxdelay == 0 { 52 | $sleep = '' 53 | } else { 54 | $sleep = "sleep `expr \${RANDOM} \\% ${maxdelay}`; " 55 | } 56 | 57 | cron { 'glance-cache-cleaner': 58 | ensure => $ensure, 59 | command => "${sleep}${glance::params::cache_cleaner_command} ${command_options}", 60 | environment => 'PATH=/bin:/usr/bin:/usr/sbin', 61 | user => $::glance::params::user, 62 | minute => $minute, 63 | hour => $hour, 64 | monthday => $monthday, 65 | month => $month, 66 | weekday => $weekday, 67 | require => Anchor['glance::config::end'], 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /manifests/cache/pruner.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::cache::pruner 2 | # 3 | # Installs a cron job to run glance-cache-pruner. 4 | # 5 | # === Parameters 6 | # 7 | # [*minute*] 8 | # (optional) Defaults to '*/30'. 9 | # 10 | # [*hour*] 11 | # (optional) Defaults to '*'. 12 | # 13 | # [*monthday*] 14 | # (optional) Defaults to '*'. 15 | # 16 | # [*month*] 17 | # (optional) Defaults to '*'. 18 | # 19 | # [*weekday*] 20 | # (optional) Defaults to '*'. 21 | # 22 | # [*command_options*] 23 | # (optional) command options to add to the cronjob 24 | # (eg. point to config file, or redirect output) 25 | # Defaults to ''. 26 | # 27 | # [*maxdelay*] 28 | # (optional) In Seconds. Should be a positive integer. 29 | # Induces a random delay before running the cronjob to avoid running 30 | # all cron jobs at the same time on all hosts this job is configured. 31 | # Defaults to 0. 32 | # 33 | # [*ensure*] 34 | # (optional) Ensure cron jobs present or absent 35 | # Defaults to present. 36 | # 37 | class glance::cache::pruner( 38 | $minute = '*/30', 39 | $hour = '*', 40 | $monthday = '*', 41 | $month = '*', 42 | $weekday = '*', 43 | $command_options = '', 44 | Integer[0] $maxdelay = 0, 45 | Enum['present', 'absent'] $ensure = 'present', 46 | ) { 47 | 48 | include glance::deps 49 | include glance::params 50 | 51 | if $maxdelay == 0 { 52 | $sleep = '' 53 | } else { 54 | $sleep = "sleep `expr \${RANDOM} \\% ${maxdelay}`; " 55 | } 56 | 57 | cron { 'glance-cache-pruner': 58 | ensure => $ensure, 59 | command => "${sleep}${glance::params::cache_pruner_command} ${command_options}", 60 | environment => 'PATH=/bin:/usr/bin:/usr/sbin', 61 | user => $::glance::params::user, 62 | minute => $minute, 63 | hour => $hour, 64 | monthday => $monthday, 65 | month => $month, 66 | weekday => $weekday, 67 | require => Anchor['glance::config::end'], 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /manifests/client.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Installs the glance python library. 3 | # 4 | # == parameters 5 | # [*ensure*] 6 | # (Optional) Ensure state for package. 7 | # Defaults to 'present' 8 | # 9 | class glance::client( 10 | $ensure = 'present' 11 | ) { 12 | 13 | include glance::deps 14 | include glance::params 15 | 16 | package { 'python-glanceclient': 17 | ensure => $ensure, 18 | name => $::glance::params::client_package_name, 19 | tag => 'openstack', 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /manifests/config.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::config 2 | # 3 | # This class is used to manage arbitrary glance configurations. 4 | # 5 | # example xxx_config 6 | # (optional) Allow configuration of arbitrary glance configurations. 7 | # The value is an hash of glance_config resources. Example: 8 | # { 'DEFAULT/foo' => { value => 'fooValue'}, 9 | # 'DEFAULT/bar' => { value => 'barValue'} 10 | # } 11 | # In yaml format, Example: 12 | # glance_config: 13 | # DEFAULT/foo: 14 | # value: fooValue 15 | # DEFAULT/bar: 16 | # value: barValue 17 | # 18 | # === Parameters 19 | # 20 | # [*api_config*] 21 | # (optional) Allow configuration of glance-api.conf configurations. 22 | # 23 | # [*api_paste_ini_config*] 24 | # (optional) Allow configuration of glance-api-paste.ini configurations. 25 | # 26 | # [*cache_config*] 27 | # (optional) Allow configuration of glance-cache.conf configurations. 28 | # 29 | # [*image_import_config*] 30 | # (optional) Allow configuration of glance-image-import.conf configurations. 31 | # 32 | # [*rootwrap_config*] 33 | # (optional) Allow configuration of rootwrap.conf configurations. 34 | # 35 | # NOTE: The configuration MUST NOT be already handled by this module 36 | # or Puppet catalog compilation will fail with duplicate resources. 37 | # 38 | class glance::config ( 39 | Hash $api_config = {}, 40 | Hash $api_paste_ini_config = {}, 41 | Hash $cache_config = {}, 42 | Hash $image_import_config = {}, 43 | Hash $rootwrap_config = {}, 44 | ) { 45 | 46 | include glance::deps 47 | 48 | create_resources('glance_api_config', $api_config) 49 | create_resources('glance_api_paste_ini', $api_paste_ini_config) 50 | create_resources('glance_cache_config', $cache_config) 51 | create_resources('glance_image_import_config', $image_import_config) 52 | create_resources('glance_rootwrap_config', $rootwrap_config) 53 | } 54 | -------------------------------------------------------------------------------- /manifests/cors.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::cors 2 | # 3 | # Configure the glance 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 glance::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 glance::deps 49 | 50 | oslo::cors { 'glance_api_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/db/metadefs.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Class to load default Glance metadata definitions 3 | # 4 | # == Parameters 5 | # 6 | # [*extra_params*] 7 | # (Optional) String of extra command line parameters to append to the 8 | # glance-manage db_load_metadefs command. These will be inserted in the 9 | # command line between 'glance-manage' and 'db_load_metadefs'. 10 | # Defaults to '' 11 | # 12 | class glance::db::metadefs( 13 | $extra_params = '', 14 | ) { 15 | 16 | include glance::deps 17 | include glance::params 18 | 19 | exec { 'glance-manage db_load_metadefs': 20 | command => "glance-manage ${extra_params} db_load_metadefs", 21 | path => '/usr/bin', 22 | user => $::glance::params::user, 23 | refreshonly => true, 24 | try_sleep => 5, 25 | tries => 10, 26 | logoutput => on_failure, 27 | subscribe => [ 28 | Anchor['glance::install::end'], 29 | Anchor['glance::config::end'], 30 | Anchor['glance::dbsync::end'] 31 | ], 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /manifests/db/mysql.pp: -------------------------------------------------------------------------------- 1 | # The glance::db::mysql class creates a MySQL database for glance. 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 glance. 12 | # 13 | # [*user*] 14 | # (Optional) user to connect to the database. 15 | # Defaults to glance. 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 | class glance::db::mysql( 34 | String[1] $password, 35 | $dbname = 'glance', 36 | $user = 'glance', 37 | $host = '127.0.0.1', 38 | $allowed_hosts = undef, 39 | $charset = 'utf8', 40 | $collate = 'utf8_general_ci', 41 | ) { 42 | 43 | include glance::deps 44 | 45 | openstacklib::db::mysql { 'glance': 46 | user => $user, 47 | password => $password, 48 | dbname => $dbname, 49 | host => $host, 50 | charset => $charset, 51 | collate => $collate, 52 | allowed_hosts => $allowed_hosts, 53 | } 54 | 55 | Anchor['glance::db::begin'] 56 | ~> Class['glance::db::mysql'] 57 | ~> Anchor['glance::db::end'] 58 | } 59 | -------------------------------------------------------------------------------- /manifests/db/postgresql.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::db::postgresql 2 | # 3 | # Class that configures postgresql for glance 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 'glance'. 14 | # 15 | # [*user*] 16 | # (Optional) User to connect to the database. 17 | # Defaults to 'glance'. 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 glance::db::postgresql( 28 | $password, 29 | $dbname = 'glance', 30 | $user = 'glance', 31 | $encoding = undef, 32 | $privileges = 'ALL', 33 | ) { 34 | 35 | include glance::deps 36 | 37 | openstacklib::db::postgresql { 'glance': 38 | password => $password, 39 | dbname => $dbname, 40 | user => $user, 41 | encoding => $encoding, 42 | privileges => $privileges, 43 | } 44 | 45 | Anchor['glance::db::begin'] 46 | ~> Class['glance::db::postgresql'] 47 | ~> Anchor['glance::db::end'] 48 | 49 | } 50 | -------------------------------------------------------------------------------- /manifests/db/sync.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Class to execute glance dbsync 3 | # 4 | # == Parameters 5 | # 6 | # [*extra_params*] 7 | # (Optional) String of extra command line parameters to append 8 | # to the glance-manage db sync command. These will be inserted 9 | # in the command line between 'glance-manage' and 'db sync'. 10 | # Defaults to '' 11 | # 12 | # [*db_sync_timeout*] 13 | # (Optional) Timeout for the execution of the db_sync 14 | # Defaults to 300 15 | # 16 | class glance::db::sync( 17 | $extra_params = '', 18 | $db_sync_timeout = 300, 19 | ) { 20 | 21 | include glance::deps 22 | include glance::params 23 | 24 | exec { 'glance-manage db_sync': 25 | command => "glance-manage ${extra_params} db_sync", 26 | path => '/usr/bin', 27 | user => $::glance::params::user, 28 | refreshonly => true, 29 | try_sleep => 5, 30 | tries => 10, 31 | timeout => $db_sync_timeout, 32 | logoutput => on_failure, 33 | subscribe => [ 34 | Anchor['glance::install::end'], 35 | Anchor['glance::config::end'], 36 | Anchor['glance::dbsync::begin'] 37 | ], 38 | notify => Anchor['glance::dbsync::end'], 39 | tag => 'openstack-db', 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /manifests/healthcheck.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::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 glance::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 glance::deps 51 | 52 | oslo::healthcheck { 'glance_api_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/init.pp: -------------------------------------------------------------------------------- 1 | # == class: glance 2 | # 3 | # base glance config. 4 | # 5 | # === parameters: 6 | # 7 | # [*package_ensure*] 8 | # (Optional) Ensure state for package. On Ubuntu this setting 9 | # is ignored since Ubuntu has packages per services 10 | # Defaults to 'present' 11 | # 12 | class glance( 13 | $package_ensure = 'present' 14 | ) { 15 | 16 | include glance::deps 17 | include glance::params 18 | 19 | if ( $glance::params::package_name != undef ) { 20 | package { 'glance' : 21 | ensure => $package_ensure, 22 | name => $::glance::params::package_name, 23 | tag => ['openstack', 'glance-package'], 24 | } 25 | } 26 | 27 | include openstacklib::openstackclient 28 | } 29 | -------------------------------------------------------------------------------- /manifests/key_manager.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::key_manager 2 | # 3 | # Setup and configure Key Manager options 4 | # 5 | # === Parameters 6 | # 7 | # [*backend*] 8 | # (Optional) Specify the key manager implementation. 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | class glance::key_manager ( 12 | $backend = $facts['os_service_default'], 13 | ) { 14 | 15 | include glance::deps 16 | 17 | oslo::key_manager { 'glance_api_config': 18 | backend => $backend, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /manifests/key_manager/barbican.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::key_manager::barbican 2 | # 3 | # Setup and configure Barbican Key Manager options 4 | # 5 | # === Parameters 6 | # 7 | # [*barbican_endpoint*] 8 | # (Optional) Use this endpoint to connect to Barbican. 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | # [*barbican_api_version*] 12 | # (Optional) Version of the Barbican API. 13 | # Defaults to $facts['os_service_default'] 14 | # 15 | # [*auth_endpoint*] 16 | # (Optional) Use this endpoint to connect to Keystone. 17 | # Defaults to $facts['os_service_default'] 18 | # 19 | # [*retry_delay*] 20 | # (Optional) Number of seconds to wait before retrying poll for key creation 21 | # completion. 22 | # Defaults to $facts['os_service_default'] 23 | # 24 | # [*number_of_retries*] 25 | # (Optional) Number of times to retry poll fo key creation completion. 26 | # Defaults to $facts['os_service_default'] 27 | # 28 | # [*barbican_endpoint_type*] 29 | # (Optional) Specifies the type of endpoint. 30 | # Defaults to $facts['os_service_default'] 31 | # 32 | # [*barbican_region_name*] 33 | # (Optional) Specifies the region of the chosen endpoint. 34 | # Defaults to $facts['os_service_default'] 35 | # 36 | # [*send_service_user_token*] 37 | # (Optional) The service uses service token feature when this is set as true. 38 | # Defaults to $facts['os_service_default'] 39 | # 40 | class glance::key_manager::barbican ( 41 | $barbican_endpoint = $facts['os_service_default'], 42 | $barbican_api_version = $facts['os_service_default'], 43 | $auth_endpoint = $facts['os_service_default'], 44 | $retry_delay = $facts['os_service_default'], 45 | $number_of_retries = $facts['os_service_default'], 46 | $barbican_endpoint_type = $facts['os_service_default'], 47 | $barbican_region_name = $facts['os_service_default'], 48 | $send_service_user_token = $facts['os_service_default'], 49 | ) { 50 | 51 | include glance::deps 52 | 53 | oslo::key_manager::barbican { 'glance_api_config': 54 | barbican_endpoint => $barbican_endpoint, 55 | barbican_api_version => $barbican_api_version, 56 | auth_endpoint => $auth_endpoint, 57 | retry_delay => $retry_delay, 58 | number_of_retries => $number_of_retries, 59 | barbican_endpoint_type => $barbican_endpoint_type, 60 | barbican_region_name => $barbican_region_name, 61 | send_service_user_token => $send_service_user_token, 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /manifests/os_brick.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::os_brick 2 | # 3 | # Configure os_brick options 4 | # 5 | # === Parameters: 6 | # 7 | # [*lock_path*] 8 | # (Optional) Directory to use for os-brick lock files. 9 | # Defaults to $facts['os_service_default'] 10 | # 11 | # [*wait_mpath_device_attempts*] 12 | # (Optional) Number of attempts for the multipath device to be ready for I/O 13 | # after it was created. 14 | # Defaults to $facts['os_service_default'] 15 | # 16 | # [*wait_mpath_device_interval*] 17 | # (Optional) Interval value to wait for multipath device to be ready for I/O. 18 | # Defaults to $facts['os_service_default'] 19 | # 20 | class glance::os_brick( 21 | $lock_path = $facts['os_service_default'], 22 | $wait_mpath_device_attempts = $facts['os_service_default'], 23 | $wait_mpath_device_interval = $facts['os_service_default'], 24 | ) { 25 | 26 | oslo::os_brick { 'glance_api_config': 27 | lock_path => $lock_path, 28 | wait_mpath_device_attempts => $wait_mpath_device_attempts, 29 | wait_mpath_device_interval => $wait_mpath_device_interval, 30 | } 31 | oslo::os_brick { 'glance_cache_config': 32 | lock_path => $lock_path, 33 | wait_mpath_device_attempts => $wait_mpath_device_attempts, 34 | wait_mpath_device_interval => $wait_mpath_device_interval, 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /manifests/params.pp: -------------------------------------------------------------------------------- 1 | # these parameters need to be accessed from several locations and 2 | # should be considered to be constant 3 | class glance::params { 4 | include openstacklib::defaults 5 | 6 | $client_package_name = 'python3-glanceclient' 7 | 8 | $cache_cleaner_command = 'glance-cache-cleaner' 9 | $cache_pruner_command = 'glance-cache-pruner' 10 | $user = 'glance' 11 | $group = 'glance' 12 | $boto3_package_name = 'python3-boto3' 13 | 14 | $glance_wsgi_script_source = '/usr/bin/glance-wsgi-api' 15 | 16 | case $facts['os']['family'] { 17 | 'RedHat': { 18 | $package_name = 'openstack-glance' 19 | $api_package_name = undef 20 | $api_service_name = 'openstack-glance-api' 21 | $pyceph_package_name = 'python3-rbd' 22 | $lock_path = '/var/lib/glance/tmp' 23 | $glance_wsgi_script_path = '/var/www/cgi-bin/glance' 24 | } 25 | 'Debian': { 26 | $package_name = undef 27 | $api_package_name = 'glance-api' 28 | $api_service_name = 'glance-api' 29 | $pyceph_package_name = 'python3-ceph' 30 | $lock_path = '/var/lock/glance' 31 | $glance_wsgi_script_path = '/usr/lib/cgi-bin/glance' 32 | } 33 | default: { 34 | fail("Unsupported osfamily: ${facts['os']['family']}") 35 | } 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /manifests/reports.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::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 glance::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 glance::deps 27 | 28 | oslo::reports { 'glance_api_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/wsgi.pp: -------------------------------------------------------------------------------- 1 | # == Class: glance::wsgi 2 | # 3 | # Configure wsgi options 4 | # 5 | # === Parameters 6 | # 7 | # [*task_pool_threads*] 8 | # (Optional) The number of thredas (per worker process) in the pool for 9 | # processing asynchronous tasks. 10 | # Defaults to $facts['os_service_default'] 11 | # 12 | # [*python_interpreter*] 13 | # (Optional) Path to the python interpreter to use when spawning external 14 | # processes. 15 | # Defaults to $facts['os_service_default'] 16 | # 17 | class glance::wsgi ( 18 | $task_pool_threads = $facts['os_service_default'], 19 | $python_interpreter = $facts['os_service_default'], 20 | ) { 21 | 22 | include glance::deps 23 | 24 | glance_api_config { 25 | 'wsgi/task_pool_threads': value => $task_pool_threads; 26 | 'wsgi/python_interpreter': value => $python_interpreter; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /manifests/wsgi/uwsgi.pp: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright 2021 Thomas Goirand 3 | # 4 | # Author: Thomas Goirand 5 | # 6 | # == Class: glance::wsgi::uwsgi 7 | # 8 | # Configure the UWSGI service for Glance 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 glance::wsgi::uwsgi ( 25 | $processes = $facts['os_workers'], 26 | $threads = 32, 27 | $listen_queue_size = 100, 28 | ){ 29 | 30 | include glance::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 | glance_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": "OpenStack", 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": "puppetlabs/stdlib", 14 | "version_requirement": ">=5.0.0 <10.0.0" 15 | }, 16 | { 17 | "name": "openstack/swift", 18 | "version_requirement": ">=26.0.0 <27.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 Glance (Image Service).", 30 | "issues_url": "https://bugs.launchpad.net/puppet-glance", 31 | "license": "Apache-2.0", 32 | "name": "openstack-glance", 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-glance", 60 | "requirements": [ 61 | { 62 | "name": "puppet", 63 | "version_requirement": ">= 7.0.0 < 9.0.0" 64 | } 65 | ], 66 | "source": "https://opendev.org/openstack/puppet-glance.git", 67 | "summary": "Puppet module for OpenStack Glance", 68 | "version": "26.0.0" 69 | } 70 | -------------------------------------------------------------------------------- /releasenotes/notes/access_log_env_var-faac53acf7960ab4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add the ``access_log_env_var`` parameter to the ``glance::wsgi::apache`` 5 | class to allow filtering logs (eg. suppress healthecks) 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add-barbican-params-236b21da099104b1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new options glance::api::keymgr_* to allow 4 | glance-api to interact with Barbican to store and 5 | retrieve secrets for features like image signing. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add-concurrency-lock_path-666f5836ec062c5a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance::api`` class now supports a ``lock_path`` parameter that 5 | configures the oslo.concurrency lock_path with a platform specific 6 | default value. Distributions that are used to defining the lock_path 7 | with a distribution specific config file may need to override the 8 | default ``glance::api::lock_path`` value. 9 | fixes: 10 | - | 11 | `Bug #1980539 `_: 12 | Configure the oslo.concurrency lock_path, which is now required by cinder 13 | backends. 14 | -------------------------------------------------------------------------------- /releasenotes/notes/add-enabled_backends-b7b2ab71eed5f7c6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add glance::api::enabled_backends and glance::api::default_backend 5 | parameters for configuring glance backends. The parameters implement 6 | glance's Multi Store syntax, which supports configuring multiple backends 7 | of the same type (e.g. multiple rbd backends). Multiple backends of the 8 | same type may be specified using new glance::backend::multistore::* 9 | defined resource types. 10 | deprecations: 11 | - | 12 | The following parameters are deprecated due to the corresponding parameters 13 | being deprecated in glance. They are replaced by the new 14 | glance::api::enabled_backends and glance::api::default_backend parameters. 15 | * glance::api::stores 16 | * glance::api::default_store 17 | * glance::api::multi_store 18 | 19 | The following backend resources are deprecated because they are associated 20 | with the deprecated glance::api::stores parameter. They are replaced by 21 | corresponding glance::backend::multistore resources, except for the s3 22 | backend which was removed from glance in Newton. 23 | * glance::backend::cinder 24 | * glance::backend::file 25 | * glance::backend::rbd 26 | * glance::backend::s3 27 | * glance::backend::swift 28 | * glance::backend::vsphere 29 | -------------------------------------------------------------------------------- /releasenotes/notes/add-enabled_import_methods-9deed747fea00cff.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add new option glance::api::enabled_import_methods. 5 | This option specifies the list of enabled Image Import Methods. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add-missing-cinder-store-settings-f7aef33ec122a39a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add new parameter 'cinder_store_project_name', for project 5 | name where the image volume is stored in cinder. 6 | 7 | Add new parameter 'cinder_store_user_name', for user name 8 | to authenticate against cinder. 9 | 10 | Add new parameter 'cinder_store_password', for valid password 11 | for the user specified by 'cinder_store_user_name' 12 | 13 | Add new parameter 'cinder_store_auth_address', for valid 14 | authentication service address. 15 | -------------------------------------------------------------------------------- /releasenotes/notes/add-pool_timeout-option-for-db-81299f15988c59ba.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-use_journal-option-for-logging-9d1bab2bd5816127.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_cache_prefetcher_interval-e77d98c5235e91bc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Added cache_prefetcher_interval in glance-api.conf, 5 | using which the periodic job will run as per the set 6 | interval and prefetch images into cache. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add_cinder_volume_type_for_multiple_cinder_stores-c19b0bb1c753715b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add 'cinder_volume_type' configuration parameter to allow cinder 5 | stores to specify a volume type for each cinder store. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add_db_max_retries-81df176353e781a5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new option glance::api::db::database_db_max_retries. 4 | The database_db_max_retries parameter regulates the 5 | number of reconnection attempts performed after an 6 | error raised rather than at startup. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add_db_sync_timeout-bdc2f73a51104c30.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Adds db_sync_timeout parameter to db sync. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/add_disk_formats_parameter-9e83e3142f8d10f9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Added disk_formats option which allows configuration of 5 | the image_format/disk_formats config setting; some backends 6 | perform poorly with specific disk formats, for example 7 | Ceph with QCOW2 images and in these scenarios it might 8 | be useful to filter out of the allowed disk formats those 9 | which are unwanted. -------------------------------------------------------------------------------- /releasenotes/notes/add_enforce_secure_rbac_for_rbac_support-35bcf4ef4e25e435.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add ``enforce_secure_rbac`` parameter to enable enforcing authorization 5 | based on common RBAC personas. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add_image_cache_settings-cd6c9176167010ba.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - Enabled image_cache_stall_time & image_cache_max_size in 4 | glance-api.conf & image_cache_dir in glance-cache.conf, as 5 | these parameters need the same values in both conf files, 6 | otherwise the cache will potentially run into problems. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/add_keystone_unified_quotas_support-09fa1262ea7d4e1e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add ``use_keystone_limits`` parameter to allow Glance to retrieve 5 | limits set in keystone for resource consumption and enforce them 6 | against API users. 7 | 8 | - | 9 | The new ``glance::limit`` class has been added to manage oslo_limit 10 | parameters. 11 | -------------------------------------------------------------------------------- /releasenotes/notes/add_messaging_default_parameters-87134a2345ef961d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new parameter "control_exchange", the default exchange under 4 | which topics are scoped. May be overridden by an exchange name 5 | specified in the transport_url option. 6 | - Add new parameter "rpc_response_timeout", seconds to wait for a 7 | response from a call 8 | -------------------------------------------------------------------------------- /releasenotes/notes/add_metadata_file_related_parameters-dd365b3cfaed47a1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new parameter 'filesystem_store_metadata_file', 4 | This parameters needs to be set with file path which 5 | must contain a valid JSON object with the keys 'id' and 6 | 'mountpoint'. 7 | - Add new parameter 'filesystem_store_file_perm', 8 | File access permissions for the image files. 9 | -------------------------------------------------------------------------------- /releasenotes/notes/add_mysql_enable_ndb-option-ba2e78904df15498.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add mysql_enable_ndb parameter to select mysql storage engine. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/add_rabbit_kombu_options-b5c925f0f593b95e.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_swift_buffer_options-30716d70fc42b749.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new options 4 | glance::backend::multibackend::swift::swift_buffer_on_upload and 5 | glance::backend::multibackend::swift::swift_upload_buffer_dir 6 | Indicate whether or not Glance should buffer image data to disk while 7 | uploading to swift. This enables Glance to resume uploads on error. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/add_swift_store_large_object_chunk_size_parameter-98f34404c5a61843.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add new option glance::backend::swift::swift_store_large_object_chunk_size 4 | The swift_store_large_object_chunk_size is to be used in conjunction with 5 | swift_store_large_object_size. 6 | While swift_store_large_object_size is the trigger for glance to start 7 | chunking images, swift_store_large_object_chunk_size is the size of the 8 | chunks. 9 | -------------------------------------------------------------------------------- /releasenotes/notes/add_watch_log_file-option-8a6ba402a4fb4a66.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::api::logging::watch_log_file`` parameter has been added. 5 | The new ``glance::cache::logging::watch_log_file`` parameter has been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/add_worker_self_reference_url_for_distributed_image_import-09f70f50c8c40def.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add 'worker_self_reference_url' parameter to allow other glance workers 5 | to contact the worker which has staged the image. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/allow-configure-image-member-quota-c15d360baa10f38d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - Allow the configuration of image_member_quota 4 | in Glance API. This error blocks the ability 5 | of sharing images if the default value (128) 6 | is reached. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/amqp_auto_delete-b6189c9b151c7d5e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add a new ``amqp_auto_delete`` parameter, so that transient queues are 5 | automatically deleted. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/api-container_formats-0bc5a2c0e7b6357e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::api::container_formats`` parameter has been added to 5 | configure supported values for the container_format image attribute. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/api-limit-params-b17e7853c8a1b6a6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Added the ability to manage the 'limit_param_default' and 'api_limit_max' 5 | options for the glance api. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/api_paste_ini-separator-207e3b33e3e6a755.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``key_val_separator`` attribute has been added to 5 | the ``glance_api_paste_ini`` resource type. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/api_versions-b2a58d83f4291b3c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Allow to configure Glance API v1 with enable_v1_api boolean. 4 | If set to True, the glance::registry::enable_v1_registry also needs to 5 | be set to True. Note that if you set these values to True, Glance will 6 | send some deprecation warnings. 7 | This option is separated from enable_v2_api, and both API versions can be 8 | deployed together. 9 | - Allow to configure Glance API v2 with enable_v2_api boolean. 10 | This option is separated from enable_v1_api, and both API versions can be 11 | deployed together. 12 | -------------------------------------------------------------------------------- /releasenotes/notes/authtoken-2439e462e0a84399.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Configure keystonemiddleware in a consistent way with all options required for Keystone v3. 4 | deprecations: 5 | - glance::api::identity_uri is deprecated, use glance::api::authtoken::auth_url instead. 6 | - glance::api::auth_uri is deprecated, use glance::api::authtoken::auth_uri instead. 7 | - glance::api::keystone_tenant is deprecated, use glance::api::authtoken::project_name instead. 8 | - glance::api::keystone_user is deprecated, use glance::api::authtoken::username instead. 9 | - glance::api::keystone_password is deprecated, use glance::api::authtoken::password instead. 10 | - glance::api::memcached_servers is deprecated, use glance::api::authtoken::memcached_servers instead. 11 | - glance::glare::identity_uri is deprecated, use glance::glare::authtoken::auth_url instead. 12 | - glance::glare::auth_uri is deprecated, use glance::glare::authtoken::auth_uri instead. 13 | - glance::glare::keystone_tenant is deprecated, use glance::glare::authtoken::project_name instead. 14 | - glance::glare::keystone_user is deprecated, use glance::glare::authtoken::username instead. 15 | - glance::glare::keystone_password is deprecated, use glance::glare::authtoken::password instead. 16 | - glance::glare::memcached_servers is deprecated, use glance::glare::authtoken::memcached_servers instead. 17 | - glance::registry::identity_uri is deprecated, use glance::registry::authtoken::auth_url instead. 18 | - glance::registry::auth_uri is deprecated, use glance::registry::authtoken::auth_uri instead. 19 | - glance::registry::keystone_tenant is deprecated, use glance::registry::authtoken::project_name instead. 20 | - glance::registry::keystone_user is deprecated, use glance::registry::authtoken::username instead. 21 | - glance::registry::keystone_password is deprecated, use glance::registry::authtoken::password instead. 22 | - glance::registry::memcached_servers is deprecated, use glance::registry::authtoken::memcached_servers instead. 23 | - glance::api::auth_type is deprecated, use glance::api::auth_strategy instead. 24 | - glance::glare::auth_type is deprecated, use glance::glare::auth_strategy instead. 25 | - glance::registry::auth_type is deprecated, use glance::registry::auth_strategy instead. 26 | -------------------------------------------------------------------------------- /releasenotes/notes/authtoken_manage_memcache_package-2d02bf561959f26e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Passes parameter to keystone authtoken define to manage python-memcache package install. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/barbican_service_user-606ee71dc0940e2a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameter and class have been added, to support usage of 5 | the service token feature with the Barbican key manager. 6 | 7 | - The ``glance::key_manager::barbican::send_service_user_token`` parameter 8 | - The ``glance::key_manager::barbican::service_user`` class 9 | -------------------------------------------------------------------------------- /releasenotes/notes/bug-1947816-75538e8fd13e59c6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | `Bug #1947816 `_: 5 | Fix the default auth_version for swift backend so that Keystone v3 API is 6 | used by default instead of v2 API. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/bug-2002934-bc8efa00a7dbadfd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Now ``python3-ceph`` package, instead of ``python3-rbd`` package, is 5 | installed when rbd backend is used. This fixes the missing 6 | ``python3-rados`` package. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/cache-cron-maxdelay-bfd1585eaa15aeda.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::cache::cleaner`` class and the ``glance::cache::pruner`` 5 | class now support the ``maxdelay`` parameter. This parameter would be 6 | useful in a multi-node deployment, to avoid launching the same cron command 7 | at the same time in multiple nodes. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/centos-9-support-4e5928fa431437bf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Now this module supports CentOS 9 and Red Hat Enterprise Linux 9. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/change-default-of-swift_store_config_file-e59ff9753f3612a7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | The ``swift::backend::multistore::swift::swift_store_config_file`` is 5 | now set to ``/etc/glance/glance-swift.conf`` by default. Because of this 6 | change the parameter is automatically set to use the configuration file 7 | generated by puppet-glance. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/change-keystone-v3-ea41e2839447cd71.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Glance providers will now build a Keystone V3 instead of V2.0 URL if 5 | the [keystone_authtoken]/auth_url is not set in glance config. 6 | - | 7 | The default value of glance::backend::swift::swift_store_auth_address 8 | is changed from http://127.0.0.1:5000/v2.0/ to http://127.0.0.1:5000/v3/ 9 | -------------------------------------------------------------------------------- /releasenotes/notes/cinder_do_extend_attached-020a2fcc09f314db.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::backend::multistore::cinder`` defined resource type now 5 | supports the ``cinder_do_extend_attached`` option. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/cinder_os_region_name-60667efbd630f04f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new parameter, ``cinder_os_region_name`` was added to 5 | ``glance::backend::cinder`` and ``glance::backend::multistore::cinder``, 6 | to configure keystone region used for connection to cinder. 7 | deprecations: 8 | - | 9 | ``glance::api::os_region_name`` and ``glance::registry::os_region_name`` 10 | were deperecated. Use new cinder_os_region_name pamraeters instead. 11 | -------------------------------------------------------------------------------- /releasenotes/notes/cinder_store_domain_name-cf4820cef4b11efc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following two parameters have been added to 5 | the ``cinder::backend::multistore::cinder`` resource type. 6 | 7 | - ``cinder_store_user_domain_name`` 8 | - ``cinder_store_project_domain_name`` 9 | -------------------------------------------------------------------------------- /releasenotes/notes/cleanup-keymgr-85f1f745648d37fd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The following parameters of the ``glance::api`` class have been removed. 5 | 6 | - ``keymgr_backend`` 7 | - ``keymgr_encryption_api_url`` 8 | - ``keymgr_encryption_auth_url`` 9 | 10 | -------------------------------------------------------------------------------- /releasenotes/notes/configure_service-9be83a9af11c7564.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::keystone::auth::configure_service`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/cors-d7196b18598d9461.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::cors`` class has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/cron-db_purge-bbb2a1adb325e3b5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::cron::db_purge`` class has been added. This class manages 5 | a cron job to run ``glance db purge`` command periodically. 6 | 7 | - | 8 | The new ``glance::cron::db_purge_images_table`` class has been added. This 9 | class manages a cron job to run ``glance db purge_images_table`` command 10 | periodically. 11 | -------------------------------------------------------------------------------- /releasenotes/notes/cron-ensure-950a213e87067f17.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following classes now support the ``ensure`` parameter which controls 5 | state of the cron jobs. 6 | 7 | - ``glance::cache::cleaner`` 8 | - ``glance::cache::pruner`` 9 | - ``glance::cron::db_purge`` 10 | - ``glance::cron::db_purge_image_table`` 11 | -------------------------------------------------------------------------------- /releasenotes/notes/default-domain-e9adc769441e1381.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/deprecate-api-scrub_time-9f2b2f8bb06fe375.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::api::scrub_time`` parameter has been deprecated and has no 5 | effect. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-cache_prefetcher_interval-8a1e5075661f0177.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::api::cache_prefetcher_interval`` parameter has been 5 | deprecaed and has no effect now. It will be removed completely in a future 6 | release. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-delayed_delete-126ba200afe53631.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::api::delayed_delete`` option is now deprecated and will be 5 | removed in a future release. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-enable_v1_api-0c6c6fb4d9f4ffd2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::api::enable_v1_api`` parameter has been deprecated and has no 5 | effect, infavor of deprecation of Image v1 API. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-enable_v2_api-8096a5b0b20c2ef9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::api::enable_v2_api`` parameter has been deprecated and has 5 | no effect now. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-glance_store-fs-store-opts-6215c0af739558be.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters of the ``glance::api`` class have been deprecated 5 | and will be removed in a future release. These parameters are not used 6 | when multistore is enabled. 7 | 8 | - ``filesystem_store_metadata_file`` 9 | - ``filesystem_store_file_perm`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-ineffective-rabbit_notification_exchange-63705692a360872f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::notify::rabbitmq::rabbit_notification_exchange`` parameter 5 | has been deprecated and has no effect. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-location_strategy-0d9471feb6daab5e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::api::location_strategy`` parameter has been deprecated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-native-ssl-b35cc074d5cf11aa.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following parameters of the ``glance::api`` class have been deprecated 5 | and now have no effect. Thse parameters have been unused by Glance since 6 | Glance removed native ssl support. 7 | 8 | - ``cert_file`` 9 | - ``key_file`` 10 | - ``ca_file`` 11 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-rabbit_heartbeat_in_pthread-ea808f6b2d6f08f8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::notify::rabbitmq::rabbit_heartbeat_in_pthread`` parameter has 5 | been deprecated and will be removed in the future release. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-service-validation-fe0803b6ba6af40f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The service validation feature of the ``glance::api`` class is deprecated, 5 | and the ``glance::api::validate`` parameter and 6 | the ``glance::api::validate_options`` parameter have no effect now. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-swift_store_config_file-ba548fab5c5971be.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::backend::multistore::swift::swift_store_config_file`` 5 | parameter has been deprecated and will be removed in a future release. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-unused-reserved-store-opts-e9f0656c2850594a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following parmeters were deprecated and will be removed in a future 5 | release. 6 | 7 | - ``glance::backend::reserved::staging::filesystem_store_file_perm`` 8 | - ``glance::backend::reserved::staging::filesystem_thin_provisioning`` 9 | - ``glance::backend::reserved::tasks::filesystem_store_file_perm`` 10 | - ``glance::backend::reserved::tasks::filesystem_thin_provisioning`` 11 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-vsphere-backend-ef2d2234c82bc0ce.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | Support for VMWare Datastore store driver has been deprecated. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate-watch_log_file-5345fe2410b870f3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::api::logging::watch_log_file`` parameter has been deprecated. 5 | 6 | - | 7 | The ``glance::cache::logging::watch_log_file`` parameter has been 8 | deprecated. 9 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_api_registry_parameters-1dcb0f3579fe9a42.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | glance::api::registry_host, glance::api::registry_port and 5 | glance::api::registry_client_protocol are deprecated, because 6 | the corresponding parameters were deprecated in glance. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_api_show_multiple_locations-376b35e39779cf79.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | glance::api::show_multiple_locations was deprecated because the 5 | corresponging parameter ins glance was deprecated. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_auth_region_option-d13f8194295a1463.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - auth_region option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_auth_uri_parameter-b2f3306d0c7a946c.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-a8d8ce0baf4ab636.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-9e6b1088d9502480.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The following options have been deprecated, as those options have been 5 | moved to glance::api::db class. 6 | 7 | - ``glance::api::database_connection`` 8 | - ``glance::api::database_idle_timeout`` 9 | - ``glance::api::database_max_overflow`` 10 | - ``glance::api::database_max_pool_size`` 11 | - ``glance::api::database_max_retries`` 12 | - ``glance::api::database_retry_interval`` 13 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_idle_timeout_parameter-bdc85512b96b5d29.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_old_vsphere_backend_parameters-8d798bd64b750911.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - vmware_api_insecure deprecated, use vmware_insecure 4 | vmware_datacenter_path and vmware_datastore_name 5 | deprecated, use vmware_datastores 6 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_pki_related_parameters-aaee1a6471dd7e46.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-df18d6b775848d64.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - revocation_cache_time option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/deprecate_signing_dir_parameter-813569a35f3661e9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - signing_dir option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/drop-el6-support-c3c167935a8e9b96.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Support for el6 (RHEL6.x, CentOS6.x and so on) has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/drop-fedora-3ad30141c46b838a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Fedora is no longer supported. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/drop_glare_from_glance-8a1d09f8a0613229.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - Drop Glare service from puppet-glance, since Glare service was removed 4 | from Glance itself and now it is separate project. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/drop_qpid-422ed20407bf9e03.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - Drop all Qpid support, it was removed from Oslo in Mitaka. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/enable_cancel_on_failover-93236283513d91ba.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::notify::rabbit::rabbit_enable_cancel_on_failover`` 5 | parameter has been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/enable_handling_sparse_image-0a68af239b413df1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add new configuration option 'rbd_thin_provisioning' and 5 | 'filesystem_thin_provisioning' to rbd and filesystem 6 | backends to enable or not sparse upload, default are False. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/enable_image_conversion_parameters-d47ac86850ad9a90.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add new parameter 'image_import_plugins', to enable plugins 5 | used by image import process. 6 | Add parameter 'output_format', to provide desired output 7 | format for image conversion plugin. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/enabled-image-inject-metadata-properties-1b4b50846450e580.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add new parameter 'inject_metadata_properties', to add metadata 5 | properties to be injected in image. 6 | Add new parameter 'ignore_user_roles', to specify name of user 7 | roles to be ignored for injecting metadata properties in the image. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/executor_thread_pool_size-5f3f56a67dbbde78.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::notify::rabbitmq::executor_thread_pool_size`` parameter 5 | has been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/external_install_mgmt_hook-ac465c8d520393b4.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | prelude: > 3 | Add hooks for external install & svc management. 4 | features: 5 | - This adds defined anchor points for external modules to 6 | hook into the software install, config and service dependency 7 | chain. This allows external modules to manage software 8 | installation (virtualenv, containers, etc) and service management 9 | (pacemaker) without needing rely on resources that may change or 10 | be renamed. 11 | -------------------------------------------------------------------------------- /releasenotes/notes/file-backend-opts-24feb56451524847.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::backend::multistore::file`` resource type now supports 5 | the following parameters, to configure the same parameter for file backend. 6 | 7 | - ``filesystem_store_datadirs`` 8 | - ``filesystem_store_metadata_file`` 9 | - ``filesystem_store_file_perm`` 10 | - ``filesystem_store_chunk_size`` 11 | - ``filesystem_thin_provisioning`` 12 | -------------------------------------------------------------------------------- /releasenotes/notes/fix_log_dir_documentation-0e2dcaf9a5d5c58c.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - Fixed documentation for log_dir parameter 4 | -------------------------------------------------------------------------------- /releasenotes/notes/fix_version_warning-9c2b39584af72126.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - Change default value to false for enable_api_v1 in glance::api class. 4 | Change default value to false for enable_registry_v1 in glance::registry class. 5 | If enable_api_v1 and enable_registry_v1 options are set to $::os_service_default, 6 | a warning will be sent. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/force-use-of-v2-2c50d7c5a6467107.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | prelude: > 3 | Glance API v1 is now deprecated and tools depending on it should move onto 4 | as their default, and perhaps only supported, version. 5 | deprecations: 6 | - | 7 | This change deprecates the use of v1 (by forcing v2). This assumes the 8 | Glance service it will talk to has v2 enabled. In order to guarantee 9 | compatibility, this changes introduces a similar, fake, copy-from behavior 10 | which downloads the remote image into the server (a temporary file) where 11 | the provider is running and then uploads it to Glance. Consumers of this 12 | provider must be aware of space limitations and the possibility of there not 13 | being enough space for this operation to succeed. 14 | -------------------------------------------------------------------------------- /releasenotes/notes/glance-backend-cinder-multipath-d18f73e3a9c55b05.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new parameters, cinder_enforce_multipath and cinder_use_multipath, are 5 | intoroduced into cinder::backend::multistore::cinder class, so that 6 | operators can define multipath usage in volume connection. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/glance-image-id-d1a32b5ec443611e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add the ability to create an image with a id 4 | specified by the user. The provider now accepts 5 | id parameter to create the image. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/glance-image-owner-b75c53ba059d2a3f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance_image`` resource type now supports the following two new 5 | parameters, to define owner of the image. Note these parameters are 6 | mutually exclusive, and only one can be used. 7 | 8 | - ``project_id`` 9 | - ``project_name`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/glance-image-properties-0de5fee2391c9983.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add the ability to manage properties for an image 4 | using the glance_image provider. The provider now 5 | accepts a key value hash for properties. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/glance-image-resource-proxy-8b18f0b130f2f0dc.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The glance_image resource now provides a proxy parameter which can be used 5 | to specify a proxy to use when downloading a remote image using the source 6 | parameter. The new proxy parameter is optional. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/glance-load-metadefs-f399b78000e3c681.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - Load the default predefined namespaces for the Glance 4 | Metadata Definitions Catalog when syncing the Glance DB. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/glance-rbd-ubuntu-package-b072d00a7e21b9af.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The glance::backend::rbd class now install python-rbd/python3-rbd package 5 | instead of the python-ceph meta package on Ubuntu. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/glance-swift-v3-572d506977688377.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Glance users who wish to configure the Swift backend 4 | can make use of swift_store_auth_project_domain_id and 5 | swift_store_auth_user_domain_id to configure the required 6 | keystone domain settings. 7 | fixes: 8 | - Previously glance swift authentication would work only 9 | with keystone auth <= 2. This fix allows you to properly 10 | configured the (required) keystone domains for keystone 11 | v3 authentication. 12 | -------------------------------------------------------------------------------- /releasenotes/notes/glance_backend_cinder_mount_point_base-5741d2966cc10c7b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | A new parameter ``cinder_mount_point_base`` is introduced into 5 | ``glance::backend::multistore::cinder`` class, so that operators 6 | can provide the cinder mount point for NFS volumes. -------------------------------------------------------------------------------- /releasenotes/notes/glance_cache_logging-1f53fc9d71d04686.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Create glance::cache::logging class that follow the same pattern as other modules. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/glance_db_class-dee87f87e25d0040.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Introduce glance::api::db and glance::registry::db classes to follow other modules. 4 | They aim to configure database connection for Glance API and Glance Registry. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/glance_db_sync-1371e578fff11d4d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - Deprecate glance::registry::sync_db. The option will be removed in a future release. 4 | Now we should use glance::api::sync_db. 5 | The reason of this change is because Glance Registry is no longer required with API v2 6 | and API v1 has been deprecated since Mitaka. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/glance_glare_service-2cd8231e1e7d097b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Introduce glance::glare service. Glance V3 experimental 4 | API has been removed in Mitaka in favour of standalone 5 | Glance Artifacts Repository (GLARE) API. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/glance_image-remove-location-0877bcda4b30f705.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``location`` parameter of the ``glance_image`` resource type has been 5 | removed. This parameter has never been functional with Image v2 API. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/hashing_algorithm-7d3e50edb88213f8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::api::hashing_algorithm`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/hc-enable_by_file_paths-a93450c8cb3abf1a.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::healthcheck::enable_by_file_paths`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/healthcheck-902378a7b8bf405f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::healthcheck`` class has been added. This class manages 5 | parameters of healthcheck middlware in oslo.middleware. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/healthcheck-allowed_source_ranges-9ddd09715e0a9c09.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::healthcheck::allowed_source_ranges`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/healthcheck-ignore_proxied_requests-b0b067f03f72a35d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::healthcheck::ignore_proxied_requests`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/image_cache_driver-268807d027c75e52.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::api::image_cache_driver`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/import_filtering_opts-c61527366fce946f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::import_filtering_opts`` class has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/ipv6_registry-95b934a99a6f2639.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Normalize registry_host if IPv6 by adding brackets if not there. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/key_manager-opts-ddaa497089657955.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::key_manager`` class has been added. This class manages 5 | basic options of key managers. 6 | 7 | - | 8 | The new ``glance::key_manager::barbican`` class has been added. This class 9 | manages options of BarbicanKeyManager. 10 | 11 | deprecations: 12 | - | 13 | The ``glance::api::keymgr_backend`` parameter has been deprecated. Use 14 | the ``glance::key_manager`` class. 15 | 16 | - | 17 | The following parameters of the ``glance::api`` class have been deprecated 18 | in favor of the new ``glance::key_manager::barbican`` class. 19 | 20 | - ``keymgr_encryption_api_url`` 21 | - ``keymgr_encryption_auth_url`` 22 | -------------------------------------------------------------------------------- /releasenotes/notes/keystone-auth-name-2f9bd1b22dccd5bf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - The keystone auth classes (for glance and glare) has been updated to be 4 | able to specify a custom auth_name that may not contain the name of the 5 | service. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/keystone-authtoken-interface-f8d92000874248fd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following new parameters have been added, which can be used to set 5 | the interface parameter in authtoken middleware. 6 | 7 | - ``glance::api::authtoken::interface`` 8 | - ``glance::registry::authtoken::interface`` 9 | -------------------------------------------------------------------------------- /releasenotes/notes/keystone-authtoken-service_type-e22ec47ac8d7f6a0.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::api::authtoken::service_type`` parameter has been 5 | added to configure the service_type parameter in authtoken middleware. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/keystone_python_depr-80fa804d9cd242c5.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - Remove usage of keystone::python class, that is deprecated. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/log-json-8045e42f0b1a39d6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Expose use_json logging parameter, which enables JSON formatted logging. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/max_request_body_size-91efd06b477a9ff8.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-06ba9c13ea4cc8f1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Now policy.yaml is used by default instead of policy.json. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/more-quota-params-467e6e3584450c9d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters have been added to the ``glance::api`` class. 5 | 6 | - ``image_property_quota`` 7 | - ``image_tag_quota`` 8 | - ``image_location_quota`` 9 | - ``image_size_cap`` 10 | - ``user_storage_quota`` 11 | -------------------------------------------------------------------------------- /releasenotes/notes/multi_store-d53d0e440b55e9d6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Implement multiple store configuration. 4 | It moves the default_store config option to the glance::api 5 | class, and makes it possible to configure more than one store while 6 | supplying a value for the default store to be used. If only one store 7 | is given for glance_store/stores, the default store is automatically 8 | set to be the same value. If multiple stores are given and no default 9 | store is explicitly set, the config will fail and ask the user to 10 | provide a default store. 11 | 12 | deprecations: 13 | - Deprecate known_stores parameter in favor of stores. 14 | -------------------------------------------------------------------------------- /releasenotes/notes/multistore-http-62f7e96ec6345238.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::backend::multistore::http`` class has been added to support 5 | http backend with glance multistore. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/new_option_public_endpoint-26ba31afc09cabf0.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::api`` class accepts a new parameter ``public_endpoint``. 5 | This is especially useful if you have a proxy or load balancer that 6 | rewrites the base URL of the image API. If the image API is advertised as 7 | ``https://cloud.acme.org/api/image`` in Keystone, you will need to set 8 | this option to the full value of the endpoint to have glance API 9 | advertise the correct URLs to clients. 10 | -------------------------------------------------------------------------------- /releasenotes/notes/new_service_name-307a5803a248d2a3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - Change default value for service_name in glance::keystone::auth class. 4 | If Glance Service name is not set to "Image Service", a warning 5 | will be sent. The default value changed to match 6 | with https://github.com/openstack/keystone/blob/master/etc/default_catalog.templates 7 | -------------------------------------------------------------------------------- /releasenotes/notes/notification-retry-19b32f669308d331.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::notify::rabbitmq::notification_retry`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/notification_transport_url-c4ebcfa30e124c9e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add the ability to configure the oslo messaging notification transport url 4 | via glance::notify::rabbit::notficiation_transport_url 5 | -------------------------------------------------------------------------------- /releasenotes/notes/openstack_db_tag-9766c2362156ac1e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add openstack-db tag to Exec that run db-sync. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/os-brick-67002271f4d397a8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::os_brick`` class has been added. This class manages 5 | the ``[os_brick]`` options. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/os_workers_for_worker_count-f86aa67474d5cac9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - Parameters that control the number of spawned child processes for 4 | distributing processing have had their default value changed from 5 | ::processorcount to ::os_workers. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/oslo-limit-query-endpoint-options-3eb8ad61d5e682b6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following parameters have been added to the ``glance::limit`` class. 5 | 6 | - ``endpoint_service_name`` 7 | - ``endpoint_service_type`` 8 | - ``endpoint_region_name`` 9 | - ``endpoint_interface`` 10 | -------------------------------------------------------------------------------- /releasenotes/notes/oslo-reports-63949842ad569401.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::reports`` class has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/oslo_policy-enforce_scope-422b5bb6f96a7afe.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::policy::enforce_scope`` parameter has been added to 5 | support the corresponding parameter in oslo.policy library. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/paste_deploy-57ebab2b26497bd7.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``paste_deploy_flavor`` parameter and the ``paste_deploy_config_file`` 5 | parameter have been added to the ``glance::api`` class. These two 6 | parameters allow customizing options in the ``[paste_deploy]`` section. 7 | 8 | deprecations: 9 | - | 10 | The ``glance::api::pipeline`` parameter has been deprecated in favor of 11 | the new ``paste_deploy_flavor`` parameter. 12 | -------------------------------------------------------------------------------- /releasenotes/notes/policy-dirs-91b7945f046e8fab.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | There is now a new policy_dirs parameter in the glance::policy class, 5 | so one can set a custom path. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/policy-enforce_new_defaults-239a805a6d0fba80.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::policy::enforce_new_defaults`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/policy_default_rule-f7a6147e4d33e76e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::policy::policy_default_rule`` parameter has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/policy_purge_config-7369ca2674968221.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/properties-hash-87129602c88ca3ff.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``properties`` property of ``glance_image`` resource now accepts only 5 | Hash values. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/property-protections-3db869c274eb175f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::property_protections`` class has been added. This class 5 | allows configuration of the image property protections feature. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/provider-deprecate-at-params-88b2ee3f16ac5443.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance_image`` resource type has been using the credential written in 5 | the ``[keystone_authtoken]`` section of ``glance-api.conf``. However this 6 | behavior has been deprecated and now the resource type first looks for 7 | the yaml files in ``/etc/openstack/puppet``. Make sure one of 8 | ``clouds.yaml`` or ``admin-clouds.yaml`` (which is created by 9 | puppet-keystone) is created in that directory. 10 | -------------------------------------------------------------------------------- /releasenotes/notes/puppet-8-0d062371c4a6ba29.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | This module now officially supports Puppet 8. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/puppet4-mysql-func-c9dc054baa43c0ed.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/rabbit-connection-params-deprecation-d1405f1fe22481b8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - glance::notify::rabbitmq::rabbit_host, 4 | glance::notify::rabbitmq::rabbit_hosts, 5 | glance::notify::rabbitmq::rabbit_password, 6 | glance::notify::rabbitmq::rabbit_port, 7 | glance::notify::rabbitmq::rabbit_userid and 8 | glance::notify::rabbitmq::rabbit_virtual_host are deprecated. 9 | glance::notify::rabbitmq::default_transport_url should be used instead. 10 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit-quorum-queue-5ddec285d337feb3.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::notify::rabbit`` class now supports options for quorum queues 5 | in RabbitMQ. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit_qos_prefetch_count-089f68b950e784c0.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::notify::rabbitmq::rabbit_qos_prefetch_count`` parameter 5 | has been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit_transient_queues_ttl-3d310ee093053a66.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | A new parameter ``rabbit_transient_queues_ttl`` has been added to the 5 | glance::notify::rabbitmq class to configure how long transient queue 6 | should stay until they are automatically deleted. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbit_transient_quorum_queue-0185f65a94bca875.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::notify::rabbitmq::rabbit_transient_quorum_queue`` 5 | parameter has been added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/rabbitmq-heartbeat-over-pthread-8a0e7e5c03c2b7c0.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/registry_ssl-eed9bdc67c795cde.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Allow to configure Glance API to communicate with Glance Registry using SSL. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/release-note-ubuntu-py3-6c01b9f3895cb9b6.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-api-pipeline-d7054e2cd9f1616f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance::api::pipeline`` parameter has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-api-scrub_time-d2eadc583428757e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance::api::scrub_time`` parameter has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-auth-uri-d5ec1ba55c15ff74.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated parameter auth_uri is now removed, please use www_authenticate_uri. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-cache_prefetcher_interval-c22a500fa6a121b1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance::api::cache_prefetcher_interval`` parameter has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-centos-8-285907b675d2cc7f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | CentOS 8 Stream is no longer supported by this module. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-database-params-2242c2c179b2da12.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The following parameters of the ``glance::api`` class have been removed. 5 | 6 | - ``database_min_pool_size`` 7 | - ``database_connection`` 8 | - ``database_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 ``glance::api::db`` class 16 | has been removed. 17 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-deprecated-logging-59abbf51ce252346.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated parameters use_syslog, use_stderr, log_facility, log_dir and 5 | debug in the api and registry classes is now removed. Please set them in their 6 | respective logging class. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-deprecated-params-6fa3d35be3371c74.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated parameter glance::api::known_stores is removed. 5 | Please use glance::api::stores instead. 6 | - | 7 | The deprecated parameter glance::backend::vsphere::glare_enabled is removed. 8 | Please use the puppet-glare module instead. 9 | - | 10 | The deprecated parameter glance::backend::vsphere::vcenter_api_insecure is removed. 11 | Please use vcenter_insecure. 12 | - | 13 | The deprecated parameters vcenter_datacenter and vcenter_datastore in glance::backend::vsphere 14 | is removed. Please use vcenter_datastores instead. 15 | - | 16 | The deprecated parameter glance::backend::s3::default_store is removed. 17 | Please set this in glance::api. 18 | - | 19 | The deprecated parameter glance::backend::s3::glare_enabled is removed. 20 | Please use the puppet-glare module instead. 21 | - | 22 | The deprecated parameter glance::backend::rbd::glare_enabled is removed. 23 | Please use the puppet-glare module instead. 24 | - | 25 | The deprecated parameter glance::backend::rbd::show_image_direct_url is removed. 26 | Please set this parameter in glance::api. 27 | - | 28 | The deprecated parameters glance::notify::rabbitmq::rabbit_host, glance::notify::rabbitmq::rabbit_hosts, 29 | glance::notify::rabbitmq::rabbit_password, glance::notify::rabbitmq::rabbit_port, glance::notify::rabbitmq::rabbit_userid 30 | and glance::notify::rabbitmq::rabbit_virtual_host is removed. 31 | Please use glance::notify::rabbitmq::default_transport_url instead. 32 | - | 33 | The deprecated parameters glance::config::clare_config and glance::config::glare_paste_ini_config 34 | is removed. Please use the puppet-glare module instead. 35 | - | 36 | The deprecated parameter glance::backend::file::glare_enabled is removed. 37 | Please use the puppet-glare module instead. 38 | - | 39 | The deprecated parameter glance::backend::cinder::glare_enabled is removed. 40 | Please use the puppet-glare module instead. 41 | - | 42 | The deprecated parameter glance::backend::swift::glare_enabled is removed. 43 | Please use the puppet-glare module instead. 44 | - | 45 | The deprecated classes glance::glare, glance::keystone::glare_auth, glance::glare::authtoken, 46 | glance::glare::db, glance::glare::logging is removed. 47 | Please use the puppet-glare module instead. 48 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-location_strategy-8ec4c0ac162838a9.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The deprecated ``glance::api::location_strategy`` parameter has been 5 | removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-native-ssl-e88e094e772612dd.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The following parameters of the ``glance::api`` class have been removed. 5 | 6 | - ``cert_file`` 7 | - ``key_file`` 8 | - ``ca_file`` 9 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-os_region_name-892f99fd3ff5027b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance::api::os_region_name`` parameter has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-puppet-6-d48d374e78e06c22.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Puppet 6 is no longer supported. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-rabbit_notification_exchange-bfbe1f717522f1ff.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance::notify::rabbitmq::rabbit_notification_exchange`` parameter 5 | has been removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-registry-2a8d771cc159401d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance::registry`` class and its subsequent classes have been removed. 5 | This means that support for glance-registry service has been removed. 6 | 7 | deprecations: 8 | - | 9 | The following parameters have been deprecated and has no effect now, in 10 | favor of removal of support for glance registry service. 11 | 12 | - ``glance::api::registry_client_cert_file`` 13 | - ``glance::api::registry_client_key_file`` 14 | - ``glance::api::registry_client_ca_file`` 15 | - ``glance::config::registry_config`` 16 | - ``glance::config::registry_paste_ini_config`` 17 | 18 | - | 19 | The following resource types have been deprecated and will be removed in a 20 | future release. 21 | 22 | - ``glance_registry_config`` 23 | - ``glance_registry_paste_ini`` 24 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-registry-leftover-28913ae93b9934f8.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The following parameters have been removed from the ``glance::api`` class. 5 | 6 | - ``enable_v1_api`` 7 | - ``enable_v2_api`` 8 | - ``registry_client_cert_file`` 9 | - ``registry_client_key_file`` 10 | - ``registry_client_ca_file`` 11 | 12 | - | 13 | The following parameters have been removed from the ``glance::config`` 14 | class. 15 | 16 | - ``registry_config`` 17 | - ``registry_paste_ini_config`` 18 | 19 | - | 20 | The following resource types have been removed. 21 | 22 | - ``glance_registry_config`` 23 | - ``glance_registry_paste_ini`` 24 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-service-validation-5ae1f6f973bc5990.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``validate`` parameter and the ``validation_options`` parameter of 5 | the ``glance::api`` class have been removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-vsphere-backend-636f815d495acb05.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | Support for VMWare Datastore store driver has been removed. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/remove-watch_log_file-3c99fdee7376e348.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance::api::logging::watch_log_file`` parameter and 5 | the ``glance::cache::logging::watch_log_file`` parameter have been removed. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_cluster_id-da63a8f698b27cec.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - Remove deprecated cluster_id parameter. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_keystone_auth_options-bec5bba5a8e22d16.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - Removed deprecated options for glance::keystone::auth class. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_keystone_revocation_cache_time_option-89af492d7e32913e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Deprecated keystone::authtoken::revocation_cache_time option has been removed. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_keystone_signing_dir_option-928d7e97d61de301.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Deprecated keystone authtoken signing_dir option is removed in Pike. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_deprecated_pki_related_options-bc4c9c7169048ddf.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_deprecated_sync_db-135983def83457df.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - Remove deprecated glance::registry::sync_db option. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_idle_timeout_option-aaf1a514540694b2.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Deprecated idle_timeout option has been removed. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_old_auth-d9fc4af8e2ced291.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - Use identity_uri and auth_uri by default and remove old deprecated auth parameters. 4 | -------------------------------------------------------------------------------- /releasenotes/notes/remove_old_authtoken_options-954b592223d48e6e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | other: 3 | - removed deprecated glance::api::keystone_user 4 | - removed deprecated glance::api::keystone_password 5 | - removed deprecated glance::api::keystone_tenant 6 | - removed deprecatedglance::api::identity_uri 7 | - removed deprecated glance::api::auth_uri 8 | - removed deprecated glance::api::memcached_servers 9 | - removed deprecated glance::api::token_cache_time 10 | - removed deprecated glance::api::signing_dir 11 | - removed deprecated glance::api::auth_type 12 | - removed deprecated glance::glare::keystone_user 13 | - removed deprecated glance::glare::keystone_password 14 | - removed deprecated glance::glare::keystone_tenant 15 | - removed deprecated glance::glare::identity_uri 16 | - removed deprecated glance::glare::auth_uri 17 | - removed deprecated glance::glare::memcached_servers 18 | - removed deprecated glance::glare::token_cache_time 19 | - removed deprecated glance::glare::signing_dir 20 | - removed deprecated glance::glare::auth_type 21 | - removed deprecated glance::registry::keystone_user 22 | - removed deprecated glance::registry::keystone_password 23 | - removed deprecated glance::registry::keystone_tenant 24 | - removed deprecated glance::registry::identity_uri 25 | - removed deprecated glance::registry::auth_uri 26 | - removed deprecated glance::registry::memcached_servers 27 | - removed deprecated glance::registry::token_cache_time 28 | - removed deprecated glance::registry::signing_dir 29 | - removed deprecated glance::registry::auth_type 30 | -------------------------------------------------------------------------------- /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_verbose-228877cddeed6640.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/rename-notification-topic-533bbeee6b18c090.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - | 4 | The ``glance::notify::rabbitmq::rabbit_notification_topic`` parameter has 5 | been deprecated in favor of the new ``notification_topics`` parameter. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/require_image_format_match-b8b8f60b86634832.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::api::require_image_format_match`` parameter has been 5 | added. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/reserved-backends-opts-77db1c3d53737150.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The following two new classes have been added. 5 | 6 | - The ``glance::backend::reserved::tasks`` class, to manage 7 | the ``os_glance_tasks_store`` options. 8 | - The ``glance::backend::reserved::staging`` class, to manage 9 | the ``os_glance_staging_store`` options. 10 | -------------------------------------------------------------------------------- /releasenotes/notes/restore-s3-support-82e63d83b1184cdf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Support for S3 backend has been reintroduced, because s3 backend support 5 | was restored in glance_store. 6 | 7 | upgrade: 8 | - | 9 | The deprecated ``glance::backend::s3`` class has been removed. Use the new 10 | ``glance::backend::multistore::s3`` resource type to set up S3 backend. 11 | -------------------------------------------------------------------------------- /releasenotes/notes/rootwrap-67cd9c5053bd4556.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance_rootwrap_config`` resource has been added. This resource 5 | can be used to manage contents of ``rootwrap.conf`` 6 | 7 | - | 8 | The new ``glance::config::rootwrap_config`` parameter has been added. This 9 | parameter accepts arbitrary configuration of ``rootwrap.conf``. 10 | -------------------------------------------------------------------------------- /releasenotes/notes/service_token_roles-72c9e4eaa139a9d6.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Add support to configure service_token_roles in authtoken middleware. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/service_token_roles_required-84a52781e88fc5bb.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/stop-reading-authtoken-opts-5bdb8e633573ce2b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - | 4 | The ``glance_image`` resource type no longer attempts to load user 5 | credentials from the ``[keystone_authtoken]`` section in 6 | ``glance-api.conf``. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/store-weight-986ecfa153a9762e.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | Support for the ``weight`` option in store backends has been added. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/swift_store_retry_get_count-cb650a2d17ca0b7f.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::backend::multistore::glance`` now supports the new 5 | ``swift_store_retry_get_count`` parameter, to manage the same parameter 6 | of swift store. 7 | -------------------------------------------------------------------------------- /releasenotes/notes/swift_store_service_type-8eaf7267b24c6283.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``swift_store_service_type`` parameter has been added to 5 | the ``glance::backend::multistore::swift`` resource type. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/switch_to_oslo_everywhere-01030871f9549110.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Configure database, logging and policy parameters for api, 4 | registry and glare services from oslo defines. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/switch_to_oslo_messaging-cb63828d88821378.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Use oslo module for messaging (rabbit) configuration. 4 | Messaging related parameters were switched to $::os_service_default. 5 | Docs string for parameter were updated according to oslo module. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/system_scope-barbican_service_user-e15677399a124630.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``glance::key_manager::barbican::service_user`` class now supports 5 | the ``system_scope`` parameter. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/system_scope-keystone-386b413aa2f30362.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The ``system_scope`` parameter has been added to 5 | the ``glance::keystone::authtoken`` class. 6 | 7 | - | 8 | The ``system_scope`` parameter has been added to the ``glance::limit`` 9 | class. 10 | 11 | - | 12 | The ``glance::keystone::auth`` class now supports customizing roles 13 | assigned to the glance service user. 14 | 15 | - | 16 | The ``glance::keystone::auth`` class now supports defining assignmet of 17 | system-scoped roles to the glance service user. 18 | -------------------------------------------------------------------------------- /releasenotes/notes/tasks-taskflow_executor-conversion-716730936a03a062.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - Add parameters to configure tasks & taskflow executor. Allows mainly to 4 | allow enabling automatic image conversion at import with the 5 | 'conversion_format' parameter. 6 | -------------------------------------------------------------------------------- /releasenotes/notes/ubuntu-jammy-0312de8534a241c4.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-05ec8ab2e7602ffe.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/undeprecate-reserved-store-opts-848c70d425de01a1.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | fixes: 3 | - | 4 | Deprecation mark has been removed from the following parameters, because 5 | these parameters are actually effective. 6 | 7 | - ``glance::backend::reserved::staging::filesystem_store_file_perm`` 8 | - ``glance::backend::reserved::staging::filesystem_thin_provisioning`` 9 | - ``glance::backend::reserved::tasks::filesystem_store_file_perm`` 10 | - ``glance::backend::reserved::tasks::filesystem_thin_provisioning`` 11 | -------------------------------------------------------------------------------- /releasenotes/notes/update_swift-52dfa8715cddbe91.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | upgrade: 3 | - Before, when Glance was configured with Swift backend, credentials were stored in database. 4 | It caused issues when credentials change, old images are not usable anymore. 5 | Glance and Glance store projects implemented a way to use separated sections for credentials 6 | without storing them in database. The puppet-glance module is now using this new method, also 7 | Glance Cache configuration does not have Swift parameters anymore, so we deleted them. 8 | -------------------------------------------------------------------------------- /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-2cd2183769f8132d.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | A new class glance::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 glance_api_wsgi_config provider now exist. 8 | -------------------------------------------------------------------------------- /releasenotes/notes/verbose-deprecation-bf94328c56f7a944.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | deprecations: 3 | - verbose option is now deprecated for removal, the 4 | parameter has no effect. 5 | -------------------------------------------------------------------------------- /releasenotes/notes/wsgi-apache-9b01ec002add3e9b.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | features: 3 | - | 4 | The new ``glance::wsgi`` class, to manage parameters in the ``[wsgi]`` 5 | section, has been added. 6 | 7 | - | 8 | Added support for running the ``glance-api`` service by httpd and mod_wsgi. 9 | -------------------------------------------------------------------------------- /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-glance/d36598fa2c8e4566b6faa0ad6a73dfdbd4efc239/releasenotes/source/_static/.placeholder -------------------------------------------------------------------------------- /releasenotes/source/index.rst: -------------------------------------------------------------------------------- 1 | ======================================= 2 | Welcome to puppet-glance 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-glance 3 | summary = Puppet module for OpenStack Glance 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_glance_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper_acceptance' 2 | 3 | describe 'glance class' do 4 | 5 | context 'default parameters' do 6 | pp= <<-EOS 7 | include openstack_integration 8 | include openstack_integration::repos 9 | include openstack_integration::apache 10 | include openstack_integration::mysql 11 | include openstack_integration::memcached 12 | include openstack_integration::keystone 13 | include openstack_integration::glance 14 | 15 | glance_image { 'test_image': 16 | ensure => present, 17 | container_format => 'bare', 18 | disk_format => 'qcow2', 19 | is_public => 'yes', 20 | source => 'http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img', 21 | min_ram => '64', 22 | min_disk => '1024', 23 | properties => { 'icanhaz' => 'cheezburger' }, 24 | } 25 | EOS 26 | 27 | it 'should work with no errors' do 28 | # Run it twice and test for idempotency 29 | apply_manifest(pp, :catch_failures => true) 30 | apply_manifest(pp, :catch_changes => true) 31 | end 32 | 33 | describe port(9292) do 34 | it { is_expected.to be_listening } 35 | end 36 | 37 | describe cron do 38 | it { is_expected.to have_entry('1 0 * * * glance-manage db purge --age_in_days 30 --max_rows 100 >>/var/log/glance/glance-rowsflush.log 2>&1').with_user('glance') } 39 | it { is_expected.to have_entry('1 0 * * * glance-cache-cleaner').with_user('glance') } 40 | it { is_expected.to have_entry('*/30 * * * * glance-cache-pruner').with_user('glance') } 41 | end 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /spec/classes/glance_backend_file_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::backend::file' do 4 | 5 | shared_examples_for 'glance::backend::file' do 6 | it 'configures glance-api.conf' do 7 | is_expected.to contain_glance_api_config('glance_store/default_store').with_value('file') 8 | is_expected.to contain_glance_api_config('glance_store/filesystem_thin_provisioning').with_value('') 9 | is_expected.to contain_glance_api_config('glance_store/filesystem_store_datadir').with_value('/var/lib/glance/images/') 10 | end 11 | 12 | it 'configures glance-cache.conf' do 13 | is_expected.to contain_glance_cache_config('glance_store/default_store').with_value('file') 14 | is_expected.to contain_glance_cache_config('glance_store/filesystem_thin_provisioning').with_value('') 15 | is_expected.to contain_glance_cache_config('glance_store/filesystem_store_datadir').with_value('/var/lib/glance/images/') 16 | end 17 | 18 | describe 'when overriding datadir' do 19 | let :params do 20 | { 21 | :filesystem_store_datadir => '/tmp/', 22 | :filesystem_thin_provisioning => 'true', 23 | } 24 | end 25 | 26 | it 'configures glance-api.conf' do 27 | is_expected.to contain_glance_api_config('glance_store/filesystem_store_datadir').with_value('/tmp/') 28 | is_expected.to contain_glance_api_config('glance_store/filesystem_thin_provisioning').with_value('true') 29 | end 30 | 31 | it 'configures glance-cache.conf' do 32 | is_expected.to contain_glance_cache_config('glance_store/filesystem_store_datadir').with_value('/tmp/') 33 | is_expected.to contain_glance_cache_config('glance_store/filesystem_thin_provisioning').with_value('true') 34 | end 35 | 36 | end 37 | end 38 | 39 | on_supported_os({ 40 | :supported_os => OSDefaults.get_supported_os 41 | }).each do |os,facts| 42 | context "on #{os}" do 43 | let (:facts) do 44 | facts.merge!(OSDefaults.get_facts()) 45 | end 46 | 47 | it_configures 'glance::backend::file' 48 | end 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /spec/classes/glance_backend_reserved_staging_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::backend::reserved::staging' do 4 | 5 | shared_examples_for 'glance::backend::reserved::staging' do 6 | it 'configures glance-api.conf' do 7 | is_expected.to contain_glance_api_config('os_glance_staging_store/filesystem_store_datadir').with_value('') 8 | is_expected.to contain_glance_api_config('os_glance_staging_store/filesystem_store_file_perm').with_value('') 9 | is_expected.to contain_glance_api_config('os_glance_staging_store/filesystem_store_chunk_size').with_value('') 10 | is_expected.to contain_glance_api_config('os_glance_staging_store/filesystem_thin_provisioning').with_value('') 11 | end 12 | 13 | describe 'when overriding datadir' do 14 | let :params do 15 | { 16 | :filesystem_store_datadir => '/var/lib/glance/staging', 17 | :filesystem_store_file_perm => 0, 18 | :filesystem_store_chunk_size => 65536, 19 | :filesystem_thin_provisioning => true, 20 | } 21 | end 22 | 23 | it 'configures glance-api.conf' do 24 | is_expected.to contain_glance_api_config('os_glance_staging_store/filesystem_store_datadir')\ 25 | .with_value('/var/lib/glance/staging') 26 | is_expected.to contain_glance_api_config('os_glance_staging_store/filesystem_store_file_perm')\ 27 | .with_value(0) 28 | is_expected.to contain_glance_api_config('os_glance_staging_store/filesystem_store_chunk_size')\ 29 | .with_value(65536) 30 | is_expected.to contain_glance_api_config('os_glance_staging_store/filesystem_thin_provisioning')\ 31 | .with_value(true) 32 | end 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_configures 'glance::backend::reserved::staging' 45 | end 46 | end 47 | end 48 | -------------------------------------------------------------------------------- /spec/classes/glance_backend_reserved_tasks_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::backend::reserved::tasks' do 4 | 5 | shared_examples_for 'glance::backend::reserved::tasks' do 6 | it 'configures glance-api.conf' do 7 | is_expected.to contain_glance_api_config('os_glance_tasks_store/filesystem_store_datadir').with_value('') 8 | is_expected.to contain_glance_api_config('os_glance_tasks_store/filesystem_store_file_perm').with_value('') 9 | is_expected.to contain_glance_api_config('os_glance_tasks_store/filesystem_store_chunk_size').with_value('') 10 | is_expected.to contain_glance_api_config('os_glance_tasks_store/filesystem_thin_provisioning').with_value('') 11 | end 12 | 13 | describe 'when overriding datadir' do 14 | let :params do 15 | { 16 | :filesystem_store_datadir => '/var/lib/glance/tasks', 17 | :filesystem_store_file_perm => 0, 18 | :filesystem_store_chunk_size => 65536, 19 | :filesystem_thin_provisioning => true, 20 | } 21 | end 22 | 23 | it 'configures glance-api.conf' do 24 | is_expected.to contain_glance_api_config('os_glance_tasks_store/filesystem_store_datadir')\ 25 | .with_value('/var/lib/glance/tasks') 26 | is_expected.to contain_glance_api_config('os_glance_tasks_store/filesystem_store_file_perm')\ 27 | .with_value(0) 28 | is_expected.to contain_glance_api_config('os_glance_tasks_store/filesystem_store_chunk_size')\ 29 | .with_value(65536) 30 | is_expected.to contain_glance_api_config('os_glance_tasks_store/filesystem_thin_provisioning')\ 31 | .with_value(true) 32 | end 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_configures 'glance::backend::reserved::tasks' 45 | end 46 | end 47 | end 48 | -------------------------------------------------------------------------------- /spec/classes/glance_cache_cleaner_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::cache::cleaner' do 4 | 5 | shared_examples_for 'glance cache cleaner' do 6 | 7 | context 'when default parameters' do 8 | 9 | it 'configures a cron' do 10 | is_expected.to contain_cron('glance-cache-cleaner').with( 11 | :ensure => :present, 12 | :command => 'glance-cache-cleaner ', 13 | :environment => 'PATH=/bin:/usr/bin:/usr/sbin', 14 | :user => 'glance', 15 | :minute => 1, 16 | :hour => 0, 17 | :monthday => '*', 18 | :month => '*', 19 | :weekday => '*' 20 | ) 21 | 22 | is_expected.to contain_cron('glance-cache-cleaner').that_requires( 23 | 'Anchor[glance::config::end]' 24 | ) 25 | end 26 | end 27 | 28 | context 'when overriding parameters' do 29 | let :params do 30 | { 31 | :minute => 59, 32 | :hour => 23, 33 | :monthday => '1', 34 | :month => '2', 35 | :weekday => '3', 36 | :command_options => '--config-dir /etc/glance/', 37 | :maxdelay => 3600, 38 | } 39 | end 40 | it 'configures a cron' do 41 | is_expected.to contain_cron('glance-cache-cleaner').with( 42 | :ensure => :present, 43 | :command => 'sleep `expr ${RANDOM} \\% 3600`; glance-cache-cleaner --config-dir /etc/glance/', 44 | :environment => 'PATH=/bin:/usr/bin:/usr/sbin', 45 | :user => 'glance', 46 | :minute => 59, 47 | :hour => 23, 48 | :monthday => '1', 49 | :month => '2', 50 | :weekday => '3' 51 | ) 52 | end 53 | end 54 | 55 | context 'when ensure is set to absent' do 56 | let :params do 57 | { 58 | :ensure => :absent 59 | } 60 | end 61 | it { should contain_cron('glance-cache-cleaner').with_ensure(:absent) } 62 | end 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 | 73 | it_configures 'glance cache cleaner' 74 | end 75 | end 76 | 77 | end 78 | -------------------------------------------------------------------------------- /spec/classes/glance_cache_pruner_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::cache::pruner' do 4 | 5 | shared_examples_for 'glance cache pruner' do 6 | 7 | context 'when default parameters' do 8 | 9 | it 'configures a cron' do 10 | is_expected.to contain_cron('glance-cache-pruner').with( 11 | :ensure => :present, 12 | :command => 'glance-cache-pruner ', 13 | :environment => 'PATH=/bin:/usr/bin:/usr/sbin', 14 | :user => 'glance', 15 | :minute => '*/30', 16 | :hour => '*', 17 | :monthday => '*', 18 | :month => '*', 19 | :weekday => '*' 20 | ) 21 | is_expected.to contain_cron('glance-cache-pruner').that_requires( 22 | 'Anchor[glance::config::end]' 23 | ) 24 | end 25 | end 26 | 27 | context 'when overriding parameters' do 28 | let :params do 29 | { 30 | :minute => 59, 31 | :hour => 23, 32 | :monthday => '1', 33 | :month => '2', 34 | :weekday => '3', 35 | :command_options => '--config-dir /etc/glance/', 36 | :maxdelay => 3600, 37 | } 38 | end 39 | it 'configures a cron' do 40 | is_expected.to contain_cron('glance-cache-pruner').with( 41 | :ensure => :present, 42 | :command => 'sleep `expr ${RANDOM} \\% 3600`; glance-cache-pruner --config-dir /etc/glance/', 43 | :environment => 'PATH=/bin:/usr/bin:/usr/sbin', 44 | :user => 'glance', 45 | :minute => 59, 46 | :hour => 23, 47 | :monthday => '1', 48 | :month => '2', 49 | :weekday => '3' 50 | ) 51 | end 52 | end 53 | 54 | context 'when ensure is set to absent' do 55 | let :params do 56 | { 57 | :ensure => :absent 58 | } 59 | end 60 | it { should contain_cron('glance-cache-pruner').with_ensure(:absent) } 61 | end 62 | end 63 | 64 | on_supported_os({ 65 | :supported_os => OSDefaults.get_supported_os 66 | }).each do |os,facts| 67 | context "on #{os}" do 68 | let (:facts) do 69 | facts.merge!(OSDefaults.get_facts()) 70 | end 71 | 72 | it_configures 'glance cache pruner' 73 | end 74 | end 75 | end 76 | -------------------------------------------------------------------------------- /spec/classes/glance_client_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::client' do 4 | 5 | shared_examples 'glance client' do 6 | it { is_expected.to contain_class('glance::deps') } 7 | it { is_expected.to contain_class('glance::params') } 8 | it { is_expected.to contain_package('python-glanceclient').with( 9 | :name => platform_params[:client_package_name], 10 | :ensure => 'present', 11 | :tag => 'openstack', 12 | ) 13 | } 14 | end 15 | 16 | on_supported_os({ 17 | :supported_os => OSDefaults.get_supported_os 18 | }).each do |os,facts| 19 | context "on #{os}" do 20 | let (:facts) do 21 | facts.merge!(OSDefaults.get_facts()) 22 | end 23 | 24 | let(:platform_params) do 25 | case facts[:os]['family'] 26 | when 'Debian' 27 | { :client_package_name => 'python3-glanceclient' } 28 | when 'RedHat' 29 | { :client_package_name => 'python3-glanceclient' } 30 | end 31 | end 32 | 33 | it_configures 'glance client' 34 | end 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /spec/classes/glance_cors_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::cors' do 4 | 5 | shared_examples_for 'glance::cors' do 6 | it 'configure cors default params' do 7 | is_expected.to contain_oslo__cors('glance_api_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('glance_api_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 'glance::cors' 50 | end 51 | end 52 | 53 | end 54 | -------------------------------------------------------------------------------- /spec/classes/glance_db_metadefs_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::db::metadefs' do 4 | 5 | shared_examples_for 'glance-metadefs' do 6 | 7 | it 'runs glance-manage db_load_metadefs' do 8 | is_expected.to contain_exec('glance-manage db_load_metadefs').with( 9 | :command => 'glance-manage db_load_metadefs', 10 | :path => '/usr/bin', 11 | :user => 'glance', 12 | :refreshonly => 'true', 13 | :try_sleep => 5, 14 | :tries => 10, 15 | :logoutput => 'on_failure', 16 | :subscribe => ['Anchor[glance::install::end]', 17 | 'Anchor[glance::config::end]', 18 | 'Anchor[glance::dbsync::end]'], 19 | ) 20 | end 21 | 22 | describe "overriding extra_params" do 23 | let :params do 24 | { 25 | :extra_params => '--config-file /etc/glance/glance.conf', 26 | } 27 | end 28 | 29 | it {is_expected.to contain_exec('glance-manage db_load_metadefs').with( 30 | :command => 'glance-manage --config-file /etc/glance/glance.conf db_load_metadefs', 31 | :path => '/usr/bin', 32 | :user => 'glance', 33 | :refreshonly => 'true', 34 | :try_sleep => 5, 35 | :tries => 10, 36 | :logoutput => 'on_failure', 37 | :subscribe => ['Anchor[glance::install::end]', 38 | 'Anchor[glance::config::end]', 39 | 'Anchor[glance::dbsync::end]'], 40 | ) 41 | } 42 | end 43 | end 44 | 45 | on_supported_os({ 46 | :supported_os => OSDefaults.get_supported_os 47 | }).each do |os,facts| 48 | context "on #{os}" do 49 | let (:facts) do 50 | facts.merge!(OSDefaults.get_facts()) 51 | end 52 | 53 | it_configures 'glance-metadefs' 54 | end 55 | end 56 | 57 | end 58 | -------------------------------------------------------------------------------- /spec/classes/glance_db_mysql_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::db::mysql' do 4 | shared_examples_for 'glance::db::mysql' do 5 | let :pre_condition do 6 | 'include mysql::server' 7 | end 8 | 9 | describe "with default params" do 10 | let :params do 11 | { 12 | :password => 'glancepass1', 13 | } 14 | end 15 | 16 | it { is_expected.to contain_class('glance::deps') } 17 | 18 | it { is_expected.to contain_openstacklib__db__mysql('glance').with( 19 | :password => 'glancepass1', 20 | :charset => 'utf8', 21 | :collate => 'utf8_general_ci', 22 | )} 23 | 24 | end 25 | 26 | describe "overriding default params" do 27 | let :params do 28 | { 29 | :password => 'glancepass2', 30 | :dbname => 'glancedb2', 31 | :charset => 'utf8', 32 | } 33 | end 34 | 35 | it { is_expected.to contain_openstacklib__db__mysql('glance').with( 36 | :password => 'glancepass2', 37 | :dbname => 'glancedb2', 38 | :charset => 'utf8' 39 | )} 40 | 41 | end 42 | 43 | describe "overriding allowed_hosts param to array" do 44 | let :params do 45 | { 46 | :password => 'glancepass2', 47 | :dbname => 'glancedb2', 48 | :allowed_hosts => ['127.0.0.1','%'] 49 | } 50 | end 51 | 52 | end 53 | 54 | describe "overriding allowed_hosts param to string" do 55 | let :params do 56 | { 57 | :password => 'glancepass2', 58 | :dbname => 'glancedb2', 59 | :allowed_hosts => '192.168.1.1' 60 | } 61 | end 62 | 63 | end 64 | 65 | describe "overriding allowed_hosts param equals to host param " do 66 | let :params do 67 | { 68 | :password => 'glancepass2', 69 | :dbname => 'glancedb2', 70 | :allowed_hosts => '127.0.0.1' 71 | } 72 | end 73 | end 74 | end 75 | 76 | on_supported_os({ 77 | :supported_os => OSDefaults.get_supported_os 78 | }).each do |os,facts| 79 | context "on #{os}" do 80 | let (:facts) do 81 | facts.merge!(OSDefaults.get_facts()) 82 | end 83 | 84 | it_configures 'glance::db::mysql' 85 | end 86 | end 87 | end 88 | -------------------------------------------------------------------------------- /spec/classes/glance_db_postgresql_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::db::postgresql' do 4 | 5 | shared_examples_for 'glance::db::postgresql' do 6 | let :req_params do 7 | { :password => 'glancepass' } 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('glance::deps') } 20 | 21 | it { is_expected.to contain_openstacklib__db__postgresql('glance').with( 22 | :user => 'glance', 23 | :password => 'glancepass', 24 | :dbname => 'glance', 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 'glance::db::postgresql' 44 | end 45 | end 46 | end 47 | -------------------------------------------------------------------------------- /spec/classes/glance_db_sync_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::db::sync' do 4 | 5 | shared_examples_for 'glance-dbsync' do 6 | 7 | it { is_expected.to contain_class('glance::deps') } 8 | 9 | it 'runs glance-manage db_sync' do 10 | is_expected.to contain_exec('glance-manage db_sync').with( 11 | :command => 'glance-manage db_sync', 12 | :path => '/usr/bin', 13 | :user => 'glance', 14 | :refreshonly => 'true', 15 | :try_sleep => 5, 16 | :tries => 10, 17 | :timeout => 300, 18 | :logoutput => 'on_failure', 19 | :subscribe => ['Anchor[glance::install::end]', 20 | 'Anchor[glance::config::end]', 21 | 'Anchor[glance::dbsync::begin]'], 22 | :notify => 'Anchor[glance::dbsync::end]', 23 | :tag => 'openstack-db', 24 | ) 25 | end 26 | 27 | describe "overriding extra_params" do 28 | let :params do 29 | { 30 | :extra_params => '--config-file /etc/glance/glance.conf', 31 | :db_sync_timeout => 750, 32 | } 33 | end 34 | 35 | it {is_expected.to contain_exec('glance-manage db_sync').with( 36 | :command => 'glance-manage --config-file /etc/glance/glance.conf db_sync', 37 | :path => '/usr/bin', 38 | :user => 'glance', 39 | :refreshonly => 'true', 40 | :try_sleep => 5, 41 | :tries => 10, 42 | :timeout => 750, 43 | :logoutput => 'on_failure', 44 | :subscribe => ['Anchor[glance::install::end]', 45 | 'Anchor[glance::config::end]', 46 | 'Anchor[glance::dbsync::begin]'], 47 | :notify => 'Anchor[glance::dbsync::end]', 48 | :tag => 'openstack-db', 49 | ) 50 | } 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_configures 'glance-dbsync' 63 | end 64 | end 65 | 66 | end 67 | -------------------------------------------------------------------------------- /spec/classes/glance_healthcheck_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::healthcheck' do 4 | 5 | shared_examples_for 'glance::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('glance_api_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/glance/healthcheck/disabled', 33 | :disable_by_file_paths => ['9292:/etc/glance/healthcheck/disabled'], 34 | :enable_by_file_paths => ['/etc/glance/healthcheck/enabled'], 35 | } 36 | end 37 | 38 | it 'configures specified values' do 39 | is_expected.to contain_oslo__healthcheck('glance_api_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/glance/healthcheck/disabled', 45 | :disable_by_file_paths => ['9292:/etc/glance/healthcheck/disabled'], 46 | :enable_by_file_paths => ['/etc/glance/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 'glance::healthcheck' 61 | end 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/classes/glance_init_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance' do 4 | 5 | shared_examples_for 'glance' do 6 | it 'includes common classes' do 7 | is_expected.to contain_class('glance::deps') 8 | is_expected.to contain_class('glance::params') 9 | is_expected.to contain_class('openstacklib::openstackclient') 10 | end 11 | end 12 | 13 | shared_examples_for 'glance on RedHat' do 14 | ['present', 'latest'].each do |package_ensure| 15 | context "with package_ensure '#{package_ensure}'" do 16 | let(:params) do 17 | { :package_ensure => package_ensure } 18 | end 19 | it { is_expected.to contain_package('glance').with( 20 | :ensure => package_ensure, 21 | :name => 'openstack-glance', 22 | :tag => ['openstack', 'glance-package'] 23 | )} 24 | end 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 'glance' 37 | if facts[:os]['family'] == 'RedHat' 38 | it_configures "glance on #{facts[:os]['family']}" 39 | end 40 | end 41 | end 42 | 43 | end 44 | -------------------------------------------------------------------------------- /spec/classes/glance_key_manager_barbican_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::key_manager::barbican' do 4 | shared_examples 'glance::key_manager::barbican' do 5 | context 'with default parameters' do 6 | it { 7 | is_expected.to contain_oslo__key_manager__barbican('glance_api_config').with( 8 | :barbican_endpoint => '', 9 | :barbican_api_version => '', 10 | :auth_endpoint => '', 11 | :retry_delay => '', 12 | :number_of_retries => '', 13 | :barbican_endpoint_type => '', 14 | :barbican_region_name => '', 15 | :send_service_user_token => '', 16 | ) 17 | } 18 | end 19 | 20 | context 'with specified parameters' do 21 | let :params do 22 | { 23 | :barbican_endpoint => 'http://localhost:9311/', 24 | :barbican_api_version => 'v1', 25 | :auth_endpoint => 'http://localhost:5000', 26 | :retry_delay => 1, 27 | :number_of_retries => 60, 28 | :barbican_endpoint_type => 'public', 29 | :barbican_region_name => 'regionOne', 30 | :send_service_user_token => true, 31 | } 32 | end 33 | 34 | it { 35 | is_expected.to contain_oslo__key_manager__barbican('glance_api_config').with( 36 | :barbican_endpoint => 'http://localhost:9311/', 37 | :barbican_api_version => 'v1', 38 | :auth_endpoint => 'http://localhost:5000', 39 | :retry_delay => 1, 40 | :number_of_retries => 60, 41 | :barbican_endpoint_type => 'public', 42 | :barbican_region_name => 'regionOne', 43 | :send_service_user_token => true, 44 | ) 45 | } 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 'glance::key_manager::barbican' 58 | end 59 | end 60 | end 61 | -------------------------------------------------------------------------------- /spec/classes/glance_key_manager_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::key_manager' do 4 | shared_examples 'glance::key_manager' do 5 | context 'with default parameters' do 6 | it { 7 | is_expected.to contain_oslo__key_manager('glance_api_config').with( 8 | :backend => '' 9 | ) 10 | } 11 | end 12 | 13 | context 'with specified parameters' do 14 | let :params do 15 | { 16 | :backend => 'barbican' 17 | } 18 | end 19 | 20 | it { 21 | is_expected.to contain_oslo__key_manager('glance_api_config').with( 22 | :backend => 'barbican' 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 'glance::key_manager' 37 | end 38 | end 39 | end 40 | -------------------------------------------------------------------------------- /spec/classes/glance_os_brick_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::os_brick' do 4 | 5 | shared_examples 'glance::os_brick' do 6 | 7 | context 'with defaults' do 8 | it 'configures the default values' do 9 | is_expected.to contain_oslo__os_brick('glance_api_config').with( 10 | :lock_path => '', 11 | :wait_mpath_device_attempts => '', 12 | :wait_mpath_device_interval => '', 13 | ) 14 | is_expected.to contain_oslo__os_brick('glance_cache_config').with( 15 | :lock_path => '', 16 | :wait_mpath_device_attempts => '', 17 | :wait_mpath_device_interval => '', 18 | ) 19 | end 20 | end 21 | 22 | context 'with parameters overridden' do 23 | let :params do 24 | { 25 | :lock_path => '/var/lib/openstack/lock', 26 | :wait_mpath_device_attempts => 4, 27 | :wait_mpath_device_interval => 1, 28 | } 29 | end 30 | 31 | it 'configures the overridden values' do 32 | is_expected.to contain_oslo__os_brick('glance_api_config').with( 33 | :lock_path => '/var/lib/openstack/lock', 34 | :wait_mpath_device_attempts => 4, 35 | :wait_mpath_device_interval => 1, 36 | ) 37 | is_expected.to contain_oslo__os_brick('glance_cache_config').with( 38 | :lock_path => '/var/lib/openstack/lock', 39 | :wait_mpath_device_attempts => 4, 40 | :wait_mpath_device_interval => 1, 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 | include_examples 'glance::os_brick' 55 | end 56 | end 57 | end 58 | -------------------------------------------------------------------------------- /spec/classes/glance_reports_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::reports' do 4 | shared_examples 'glance::reports' do 5 | context 'with default parameters' do 6 | it { 7 | is_expected.to contain_oslo__reports('glance_api_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/glance', 19 | :file_event_handler => '/var/tmp/glance/reports', 20 | :file_event_handler_interval => 1, 21 | } 22 | end 23 | 24 | it { 25 | is_expected.to contain_oslo__reports('glance_api_config').with( 26 | :log_dir => '/var/log/glance', 27 | :file_event_handler => '/var/tmp/glance/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 'glance::reports' 43 | end 44 | end 45 | end 46 | -------------------------------------------------------------------------------- /spec/classes/glance_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance' do 4 | 5 | let :default_params do 6 | {} 7 | end 8 | 9 | shared_examples_for 'glance' do 10 | describe "when using default class parameters" do 11 | let(:params) { default_params } 12 | 13 | it { should contain_class('openstacklib::openstackclient') } 14 | end 15 | end 16 | 17 | shared_examples_for 'glance Debian' do 18 | let(:params) { default_params } 19 | 20 | it { is_expected.to_not contain_package('glance') } 21 | end 22 | 23 | shared_examples_for 'glance RedHat' do 24 | let(:params) { default_params } 25 | 26 | it { is_expected.to contain_package('glance').with( 27 | :ensure => 'present', 28 | :name => 'openstack-glance', 29 | :tag => ['openstack', 'glance-package'], 30 | )} 31 | end 32 | 33 | on_supported_os({ 34 | :supported_os => OSDefaults.get_supported_os 35 | }).each do |os,facts| 36 | context "on #{os}" do 37 | let (:facts) do 38 | facts.merge!(OSDefaults.get_facts()) 39 | end 40 | 41 | it_configures 'glance' 42 | it_configures "glance #{facts[:os]['family']}" 43 | end 44 | end 45 | end 46 | -------------------------------------------------------------------------------- /spec/classes/glance_wsgi_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::wsgi' do 4 | shared_examples 'glance::wsgi' do 5 | context 'with default parameters' do 6 | it 'configures the default values' do 7 | is_expected.to contain_glance_api_config('wsgi/task_pool_threads').with_value('') 8 | is_expected.to contain_glance_api_config('wsgi/python_interpreter').with_value('') 9 | end 10 | end 11 | 12 | context 'with specified parameters' do 13 | let :params do 14 | { 15 | :task_pool_threads => 16, 16 | :python_interpreter => '/usr/bin/python3' 17 | } 18 | end 19 | 20 | it 'configures the default values' do 21 | is_expected.to contain_glance_api_config('wsgi/task_pool_threads').with_value(16) 22 | is_expected.to contain_glance_api_config('wsgi/python_interpreter').with_value('/usr/bin/python3') 23 | end 24 | end 25 | end 26 | 27 | on_supported_os({ 28 | :supported_os => OSDefaults.get_supported_os 29 | }).each do |os,facts| 30 | context "on #{os}" do 31 | let (:facts) do 32 | facts.merge(OSDefaults.get_facts()) 33 | end 34 | 35 | it_behaves_like 'glance::wsgi' 36 | end 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /spec/classes/glance_wsgi_uwsgi_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | describe 'glance::wsgi::uwsgi' do 4 | 5 | shared_examples 'glance::wsgi::uwsgi' do 6 | context 'with default parameters' do 7 | it { 8 | should contain_class('glance::deps') 9 | } 10 | 11 | it { 12 | is_expected.to contain_glance_api_uwsgi_config('uwsgi/processes').with_value(facts[:os_workers]) 13 | is_expected.to contain_glance_api_uwsgi_config('uwsgi/threads').with_value('32') 14 | is_expected.to contain_glance_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 'glance::wsgi::uwsgi' 29 | end 30 | end 31 | end 32 | -------------------------------------------------------------------------------- /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.opts: -------------------------------------------------------------------------------- 1 | --format 2 | s 3 | --colour 4 | --loadby 5 | mtime 6 | --backtrace 7 | -------------------------------------------------------------------------------- /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/glance_api_config/openstackconfig_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | provider_class = Puppet::Type.type(:glance_api_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::Glance_api_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::Glance_api_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::Glance_api_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::Glance_api_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/glance_api_paste_ini/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | provider_class = Puppet::Type.type(:glance_api_paste_ini).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::Glance_api_paste_ini.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::Glance_api_paste_ini.new( 16 | {:name => 'dude/whoa', :value => 'bar'} 17 | ) 18 | provider = provider_class.new(resource) 19 | expect(provider.section).to eq('dude') 20 | expect(provider.setting).to eq('whoa') 21 | end 22 | 23 | it 'should ensure absent when is specified as a value' do 24 | resource = Puppet::Type::Glance_api_paste_ini.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::Glance_api_paste_ini.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/glance_api_uwsgi_config/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | provider_class = Puppet::Type.type(:glance_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::Glance_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::Glance_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::Glance_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::Glance_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/glance_cache_config/openstackconfig_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | provider_class = Puppet::Type.type(:glance_cache_config).provider(:openstackconfig) 4 | 5 | describe provider_class do 6 | 7 | it 'should default to the default setting when no other one is specified' do 8 | resource = Puppet::Type::Glance_cache_config.new( 9 | { 10 | :name => 'DEFAULT/foo', 11 | :value => 'bar' 12 | } 13 | ) 14 | provider = provider_class.new(resource) 15 | expect(provider.section).to eq('DEFAULT') 16 | expect(provider.setting).to eq('foo') 17 | end 18 | 19 | it 'should allow setting to be set explicitly' do 20 | resource = Puppet::Type::Glance_cache_config.new( 21 | { 22 | :name => 'dude/foo', 23 | :value => 'bar' 24 | } 25 | ) 26 | provider = provider_class.new(resource) 27 | expect(provider.section).to eq('dude') 28 | expect(provider.setting).to eq('foo') 29 | end 30 | 31 | it 'should ensure absent when is specified as a value' do 32 | resource = Puppet::Type::Glance_cache_config.new( 33 | {:name => 'dude/foo', :value => ''} 34 | ) 35 | provider = provider_class.new(resource) 36 | provider.exists? 37 | expect(resource[:ensure]).to eq :absent 38 | end 39 | 40 | it 'should ensure absent when value matches ensure_absent_val' do 41 | resource = Puppet::Type::Glance_cache_config.new( 42 | {:name => 'dude/foo', :value => 'foo', :ensure_absent_val => 'foo' } 43 | ) 44 | provider = provider_class.new(resource) 45 | provider.exists? 46 | expect(resource[:ensure]).to eq :absent 47 | end 48 | 49 | end 50 | -------------------------------------------------------------------------------- /spec/unit/provider/glance_image_import_config/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | provider_class = Puppet::Type.type(:glance_image_import_config).provider(:ini_setting) 4 | 5 | describe provider_class do 6 | 7 | it 'should default to the default setting when no other one is specified' do 8 | resource = Puppet::Type::Glance_image_import_config.new( 9 | { 10 | :name => 'DEFAULT/foo', 11 | :value => 'bar' 12 | } 13 | ) 14 | provider = provider_class.new(resource) 15 | expect(provider.section).to eq('DEFAULT') 16 | expect(provider.setting).to eq('foo') 17 | end 18 | 19 | it 'should allow setting to be set explicitly' do 20 | resource = Puppet::Type::Glance_image_import_config.new( 21 | { 22 | :name => 'dude/foo', 23 | :value => 'bar' 24 | } 25 | ) 26 | provider = provider_class.new(resource) 27 | expect(provider.section).to eq('dude') 28 | expect(provider.setting).to eq('foo') 29 | end 30 | 31 | it 'should ensure absent when is specified as a value' do 32 | resource = Puppet::Type::Glance_image_import_config.new( 33 | {:name => 'dude/foo', :value => ''} 34 | ) 35 | provider = provider_class.new(resource) 36 | provider.exists? 37 | expect(resource[:ensure]).to eq :absent 38 | end 39 | 40 | it 'should ensure absent when value matches ensure_absent_val' do 41 | resource = Puppet::Type::Glance_image_import_config.new( 42 | {:name => 'dude/foo', :value => 'foo', :ensure_absent_val => 'foo' } 43 | ) 44 | provider = provider_class.new(resource) 45 | provider.exists? 46 | expect(resource[:ensure]).to eq :absent 47 | end 48 | 49 | end 50 | -------------------------------------------------------------------------------- /spec/unit/provider/glance_property_protections/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | provider_class = Puppet::Type.type(:glance_property_protections_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::Glance_property_protections_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::Glance_property_protections_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::Glance_property_protections_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::Glance_property_protections_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/glance_rootwrap_config/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | provider_class = Puppet::Type.type(:glance_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::Glance_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::Glance_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::Glance_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::Glance_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/provider/glance_swift_config/ini_setting_spec.rb: -------------------------------------------------------------------------------- 1 | require 'spec_helper' 2 | 3 | provider_class = Puppet::Type.type(:glance_swift_config).provider(:ini_setting) 4 | 5 | describe provider_class do 6 | 7 | it 'should default to the default setting when no other one is specified' do 8 | resource = Puppet::Type::Glance_swift_config.new( 9 | { 10 | :name => 'DEFAULT/foo', 11 | :value => 'bar' 12 | } 13 | ) 14 | provider = provider_class.new(resource) 15 | expect(provider.section).to eq('DEFAULT') 16 | expect(provider.setting).to eq('foo') 17 | end 18 | 19 | it 'should allow setting to be set explicitly' do 20 | resource = Puppet::Type::Glance_swift_config.new( 21 | { 22 | :name => 'dude/foo', 23 | :value => 'bar' 24 | } 25 | ) 26 | provider = provider_class.new(resource) 27 | expect(provider.section).to eq('dude') 28 | expect(provider.setting).to eq('foo') 29 | end 30 | 31 | it 'should ensure absent when is specified as a value' do 32 | resource = Puppet::Type::Glance_swift_config.new( 33 | {:name => 'dude/foo', :value => ''} 34 | ) 35 | provider = provider_class.new(resource) 36 | provider.exists? 37 | expect(resource[:ensure]).to eq :absent 38 | end 39 | 40 | it 'should ensure absent when value matches ensure_absent_val' do 41 | resource = Puppet::Type::Glance_swift_config.new( 42 | {:name => 'dude/foo', :value => 'foo', :ensure_absent_val => 'foo' } 43 | ) 44 | provider = provider_class.new(resource) 45 | provider.exists? 46 | expect(resource[:ensure]).to eq :absent 47 | end 48 | end 49 | -------------------------------------------------------------------------------- /spec/unit/type/glance_api_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/glance_api_config' 3 | 4 | describe 'Puppet::Type.type(:glance_api_config)' do 5 | before :each do 6 | @glance_api_config = Puppet::Type.type(:glance_api_config).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should require a name' do 10 | expect { 11 | Puppet::Type.type(:glance_api_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(:glance_api_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(:glance_api_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(:glance_api_config).new(:name => 'DEFAULT/foo', :ensure => :absent) 29 | end 30 | 31 | it 'should accept a valid value' do 32 | @glance_api_config[:value] = 'bar' 33 | expect(@glance_api_config[:value]).to eq(['bar']) 34 | end 35 | 36 | it 'should accept a value with whitespace' do 37 | @glance_api_config[:value] = 'b ar' 38 | expect(@glance_api_config[:value]).to eq(['b ar']) 39 | end 40 | 41 | it 'should accept valid ensure values' do 42 | @glance_api_config[:ensure] = :present 43 | expect(@glance_api_config[:ensure]).to eq(:present) 44 | @glance_api_config[:ensure] = :absent 45 | expect(@glance_api_config[:ensure]).to eq(:absent) 46 | end 47 | 48 | it 'should not accept invalid ensure values' do 49 | expect { 50 | @glance_api_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 => 'glance::install::end') 57 | catalog.add_resource anchor, @glance_api_config 58 | dependency = @glance_api_config.autorequire 59 | expect(dependency.size).to eq(1) 60 | expect(dependency[0].target).to eq(@glance_api_config) 61 | expect(dependency[0].source).to eq(anchor) 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/unit/type/glance_api_paste_ini_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/glance_api_paste_ini' 3 | 4 | describe 'Puppet::Type.type(:glance_api_paste_ini)' do 5 | before :each do 6 | @glance_api_paste_ini = Puppet::Type.type(:glance_api_paste_ini).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should require a name' do 10 | expect { 11 | Puppet::Type.type(:glance_api_paste_ini).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(:glance_api_paste_ini).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(:glance_api_paste_ini).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(:glance_api_paste_ini).new(:name => 'DEFAULT/foo', :ensure => :absent) 29 | end 30 | 31 | it 'should accept a valid value' do 32 | @glance_api_paste_ini[:value] = 'bar' 33 | expect(@glance_api_paste_ini[:value]).to eq('bar') 34 | end 35 | 36 | it 'should accept a value with whitespace' do 37 | @glance_api_paste_ini[:value] = 'b ar' 38 | expect(@glance_api_paste_ini[:value]).to eq('b ar') 39 | end 40 | 41 | it 'should accept valid ensure values' do 42 | @glance_api_paste_ini[:ensure] = :present 43 | expect(@glance_api_paste_ini[:ensure]).to eq(:present) 44 | @glance_api_paste_ini[:ensure] = :absent 45 | expect(@glance_api_paste_ini[:ensure]).to eq(:absent) 46 | end 47 | 48 | it 'should not accept invalid ensure values' do 49 | expect { 50 | @glance_api_paste_ini[: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 => 'glance::install::end') 57 | catalog.add_resource anchor, @glance_api_paste_ini 58 | dependency = @glance_api_paste_ini.autorequire 59 | expect(dependency.size).to eq(1) 60 | expect(dependency[0].target).to eq(@glance_api_paste_ini) 61 | expect(dependency[0].source).to eq(anchor) 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/unit/type/glance_api_uwsgi_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/glance_api_uwsgi_config' 3 | 4 | describe 'Puppet::Type.type(:glance_api_uwsgi_config)' do 5 | before :each do 6 | @glance_api_uwsgi_config = Puppet::Type.type(:glance_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(:glance_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(:glance_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(:glance_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(:glance_api_uwsgi_config).new(:name => 'DEFAULT/foo', :ensure => :absent) 29 | end 30 | 31 | it 'should accept a valid value' do 32 | @glance_api_uwsgi_config[:value] = 'bar' 33 | expect(@glance_api_uwsgi_config[:value]).to eq('bar') 34 | end 35 | 36 | it 'should accept a value with whitespace' do 37 | @glance_api_uwsgi_config[:value] = 'b ar' 38 | expect(@glance_api_uwsgi_config[:value]).to eq('b ar') 39 | end 40 | 41 | it 'should accept valid ensure values' do 42 | @glance_api_uwsgi_config[:ensure] = :present 43 | expect(@glance_api_uwsgi_config[:ensure]).to eq(:present) 44 | @glance_api_uwsgi_config[:ensure] = :absent 45 | expect(@glance_api_uwsgi_config[:ensure]).to eq(:absent) 46 | end 47 | 48 | it 'should not accept invalid ensure values' do 49 | expect { 50 | @glance_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 => 'glance::install::end') 57 | catalog.add_resource anchor, @glance_api_uwsgi_config 58 | dependency = @glance_api_uwsgi_config.autorequire 59 | expect(dependency.size).to eq(1) 60 | expect(dependency[0].target).to eq(@glance_api_uwsgi_config) 61 | expect(dependency[0].source).to eq(anchor) 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/unit/type/glance_cache_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/glance_cache_config' 3 | 4 | describe 'Puppet::Type.type(:glance_cache_config)' do 5 | before :each do 6 | @glance_cache_config = Puppet::Type.type(:glance_cache_config).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should autorequire the package that install the file' do 10 | catalog = Puppet::Resource::Catalog.new 11 | anchor = Puppet::Type.type(:anchor).new(:name => 'glance::install::end') 12 | catalog.add_resource anchor, @glance_cache_config 13 | dependency = @glance_cache_config.autorequire 14 | expect(dependency.size).to eq(1) 15 | expect(dependency[0].target).to eq(@glance_cache_config) 16 | expect(dependency[0].source).to eq(anchor) 17 | end 18 | 19 | end 20 | -------------------------------------------------------------------------------- /spec/unit/type/glance_image_import_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/glance_image_import_config' 3 | 4 | describe 'Puppet::Type.type(:glance_image_import_config)' do 5 | before :each do 6 | @glance_image_import_config = Puppet::Type.type(:glance_image_import_config).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should autorequire the package that install the file' do 10 | catalog = Puppet::Resource::Catalog.new 11 | anchor = Puppet::Type.type(:anchor).new(:name => 'glance::install::end') 12 | catalog.add_resource anchor, @glance_image_import_config 13 | dependency = @glance_image_import_config.autorequire 14 | expect(dependency.size).to eq(1) 15 | expect(dependency[0].target).to eq(@glance_image_import_config) 16 | expect(dependency[0].source).to eq(anchor) 17 | end 18 | 19 | end 20 | -------------------------------------------------------------------------------- /spec/unit/type/glance_rootwrap_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/glance_rootwrap_config' 3 | 4 | describe 'Puppet::Type.type(:glance_rootwrap_config)' do 5 | before :each do 6 | @glance_rootwrap_config = Puppet::Type.type(:glance_rootwrap_config).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should require a name' do 10 | expect { 11 | Puppet::Type.type(:glance_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(:glance_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(:glance_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(:glance_rootwrap_config).new(:name => 'DEFAULT/foo', :ensure => :absent) 29 | end 30 | 31 | it 'should accept a valid value' do 32 | @glance_rootwrap_config[:value] = 'bar' 33 | expect(@glance_rootwrap_config[:value]).to eq('bar') 34 | end 35 | 36 | it 'should accept a value with whitespace' do 37 | @glance_rootwrap_config[:value] = 'b ar' 38 | expect(@glance_rootwrap_config[:value]).to eq('b ar') 39 | end 40 | 41 | it 'should accept valid ensure values' do 42 | @glance_rootwrap_config[:ensure] = :present 43 | expect(@glance_rootwrap_config[:ensure]).to eq(:present) 44 | @glance_rootwrap_config[:ensure] = :absent 45 | expect(@glance_rootwrap_config[:ensure]).to eq(:absent) 46 | end 47 | 48 | it 'should not accept invalid ensure values' do 49 | expect { 50 | @glance_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 => 'glance::install::end') 57 | catalog.add_resource anchor, @glance_rootwrap_config 58 | dependency = @glance_rootwrap_config.autorequire 59 | expect(dependency.size).to eq(1) 60 | expect(dependency[0].target).to eq(@glance_rootwrap_config) 61 | expect(dependency[0].source).to eq(anchor) 62 | end 63 | 64 | end 65 | -------------------------------------------------------------------------------- /spec/unit/type/glance_swift_config_spec.rb: -------------------------------------------------------------------------------- 1 | require 'puppet' 2 | require 'puppet/type/glance_swift_config' 3 | 4 | describe 'Puppet::Type.type(:glance_swift_config)' do 5 | before :each do 6 | @glance_swift_config = Puppet::Type.type(:glance_swift_config).new(:name => 'DEFAULT/foo', :value => 'bar') 7 | end 8 | 9 | it 'should autorequire the package that install the file' do 10 | catalog = Puppet::Resource::Catalog.new 11 | anchor = Puppet::Type.type(:anchor).new(:name => 'glance::install::end') 12 | catalog.add_resource anchor, @glance_swift_config 13 | dependency = @glance_swift_config.autorequire 14 | expect(dependency.size).to eq(1) 15 | expect(dependency[0].target).to eq(@glance_swift_config) 16 | expect(dependency[0].source).to eq(anchor) 17 | end 18 | 19 | end 20 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------