File: quota_set.pp

package info (click to toggle)
puppet-module-cinder 27.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 2,512 kB
  • sloc: ruby: 6,697; python: 33; sh: 10; makefile: 10
file content (88 lines) | stat: -rw-r--r-- 2,328 bytes parent folder | download
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
# == Class: cinder::quota_set
#
# Setup and configure Cinder quotas per volume type.
#
# === Parameters
#
# [*os_password*]
#   (Required) The keystone tenant:username password.
#
# [*os_tenant_name*]
#   (Optional) The keystone tenant name.
#   Defaults to 'admin'.
#
# [*os_username*]
#   (Optional) The keystone user name.
#   Defaults to 'admin'.
#
# [*os_auth_url*]
#   (Optional) The keystone auth url.
#   Defaults to 'http://127.0.0.1:5000/v3/'.
#
# [*os_region_name*]
#   (Optional) The keystone region name.
#   Default is unset.
#
# [*quota_volumes*]
#   (Optional) Number of volumes allowed per project.
#   Defaults to 10.
#
# [*quota_snapshots*]
#   (Optional) Number of volume snapshots allowed per project.
#   Defaults to 10.
#
# [*quota_gigabytes*]
#   (Optional) Number of volume gigabytes (snapshots are also included)
#   allowed per project.
#   Defaults to 1000.
#
# [*class_name*]
#   (Optional) Quota class to use.
#   Defaults to 'default'.
#
# [*volume_type*]
#   volume type that will have quota changed
#   Defaults to $name
#

define cinder::quota_set (
  $os_password,
  $os_tenant_name  = 'admin',
  $os_username     = 'admin',
  $os_auth_url     = 'http://127.0.0.1:5000/v3/',
  $os_region_name  = undef,
  $quota_volumes   = 10,
  $quota_snapshots = 10,
  $quota_gigabytes = 1000,
  $class_name      = 'default',
  $volume_type     = $name,
) {
  include cinder::deps

  if $os_region_name {
    $cinder_env = [
      "OS_TENANT_NAME=${os_tenant_name}",
      "OS_USERNAME=${os_username}",
      "OS_PASSWORD=${os_password}",
      "OS_AUTH_URL=${os_auth_url}",
      "OS_REGION_NAME=${os_region_name}",
    ]
  } else {
    $cinder_env = [
      "OS_TENANT_NAME=${os_tenant_name}",
      "OS_USERNAME=${os_username}",
      "OS_PASSWORD=${os_password}",
      "OS_AUTH_URL=${os_auth_url}",
    ]
  }

  exec { "openstack quota set --class ${class_name}":
    # lint:ignore:140chars
    command     => "openstack quota set --class ${class_name} --volumes ${quota_volumes} --snapshots ${quota_snapshots} --gigabytes ${quota_gigabytes} --volume-type '${volume_type}'",
    # lint:endignore
    onlyif      => 'openstack quota show --class default | grep -qP -- -1',
    environment => $cinder_env,
    require     => Anchor['cinder::service::end'],
    path        => ['/usr/bin', '/bin'],
  }
}