This file is indexed.

/usr/share/puppet/modules.available/glance/manifests/backend/s3.pp is in puppet-module-glance 9.4.0-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# == class: glance::backend::s3
#
# configures the storage backend for glance
# as a s3 instance
#
# === parameters:
#
#  [*access_key*]
#    (Required) The S3 query token access key.
#
#  [*secret_key*]
#    (Required) The S3 query token secret key.
#
#  [*host*]
#    (Required) The host where the S3 server is listening.
#
#  [*bucket*]
#    (Required) The S3 bucket to be used to store the Glance data.
#
#  [*bucket_url_format*]
#    (Optional) The S3 calling format used to determine the bucket. Either
#    'subdomain' or 'path' can be used.
#    Default: $::os_service_default.
#
#  [*create_bucket_on_put*]
#    (Optional) A boolean to determine if the S3 bucket should be created on
#    upload if it does not exist or if an error should be returned to the user.
#    Default: $::os_service_default.
#
#  [*large_object_size*]
#    (Optional) What size, in MB, should S3 start chunking image files and do a
#    multipart upload in S3.
#    Default: $::os_service_default.
#
#  [*large_object_chunk_size*]
#    (Optional) What multipart upload part size, in MB, should S3 use when
#    uploading parts. The size must be greater than or equal to 5M.
#    Default: $::os_service_default.
#
#  [*object_buffer_dir*]
#    (Optional) The local directory where uploads will be staged before they are
#    transferred into S3.
#    Default: $::os_service_default.
#
#  [*thread_pools*]
#    (Optional) The number of thread pools to perform a multipart upload in S3.
#    Default: $::os_service_default.
#
# [*multi_store*]
#   (optional) Boolean describing if multiple backends will be configured
#   Defaults to false
#
# [*glare_enabled*]
#   (optional) Whether enabled Glance Glare API.
#   Defaults to false
#
#  === deprecated parameters:
#
#  [*default_store*]
#   (Optional) DEPRECATED Whether to set S3 as the default backend store.
#   Default: undef
#
class glance::backend::s3(
  $access_key,
  $secret_key,
  $host,
  $bucket,
  $bucket_url_format        = $::os_service_default,
  $create_bucket_on_put     = $::os_service_default,
  $large_object_size        = $::os_service_default,
  $large_object_chunk_size  = $::os_service_default,
  $object_buffer_dir        = $::os_service_default,
  $thread_pools             = $::os_service_default,
  $multi_store              = false,
  $glare_enabled            = false,
  # deprecated parameters
  $default_store            = undef,
) {

  include ::glance::deps

  if !is_service_default($large_object_chunk_size){
    if !is_integer($large_object_chunk_size) or $large_object_chunk_size < 5 {
      fail('glance::backend::s3::large_object_chunk_size must be an integer >= 5')
    }
  }


  if !is_service_default($bucket_url_format){
    if !($bucket_url_format in ['subdomain', 'path']) {
      fail('glance::backend::s3::bucket_url_format must be either "subdomain" or "path"')
    }
  }

  if $default_store {
    warning('The default_store parameter is deprecated in glance::backend::s3, you should declare it in glance::api')
  }

  glance_api_config {
    'glance_store/s3_store_access_key':              value => $access_key;
    'glance_store/s3_store_secret_key':              value => $secret_key;
    'glance_store/s3_store_host':                    value => $host;
    'glance_store/s3_store_bucket':                  value => $bucket;
    'glance_store/s3_store_bucket_url_format':       value => $bucket_url_format;
    'glance_store/s3_store_create_bucket_on_put':    value => $create_bucket_on_put;
    'glance_store/s3_store_large_object_size':       value => $large_object_size;
    'glance_store/s3_store_large_object_chunk_size': value => $large_object_chunk_size;
    'glance_store/s3_store_thread_pools':            value => $thread_pools;
    'glance_store/s3_store_object_buffer_dir':       value => $object_buffer_dir;
  }

  if $glare_enabled {
    glance_glare_config {
      'glance_store/s3_store_access_key':              value => $access_key;
      'glance_store/s3_store_secret_key':              value => $secret_key;
      'glance_store/s3_store_host':                    value => $host;
      'glance_store/s3_store_bucket':                  value => $bucket;
      'glance_store/s3_store_bucket_url_format':       value => $bucket_url_format;
      'glance_store/s3_store_create_bucket_on_put':    value => $create_bucket_on_put;
      'glance_store/s3_store_large_object_size':       value => $large_object_size;
      'glance_store/s3_store_large_object_chunk_size': value => $large_object_chunk_size;
      'glance_store/s3_store_thread_pools':            value => $thread_pools;
      'glance_store/s3_store_object_buffer_dir':       value => $object_buffer_dir;
    }
  }

  if !$multi_store {
    glance_api_config { 'glance_store/default_store': value => 's3'; }
    if $glare_enabled {
      glance_glare_config { 'glance_store/default_store': value => 's3'; }
    }
  }

}