Defined Type: netapp::vqe

Defined in:
manifests/vqe.pp

Overview

Define: netapp::vqe

Utility class for creation of a NetApp Volume, Qtree and NFS export.

Parameters:

ensure

The resource state.

size

The volume size to create/set.

aggr

The aggregate to contain the volume.

spaceres

Space reservation mode. Valid options are: none, file and volume.

snapresv

The amount of space to reserve for snapshots, in percent.

autoincrement

Should the volume auto-increment? True/False.

options

Hash of options to set on volume. Keyshould match option name.

snapschedule

Hash of snapschedule to set on volume.

persistent

Should the export be persistent? True/False.

Actions:

Requires:

Sample Usage:

Make sure there is a volume called ‘v_test_volume`, a qtree called `q_test_volume` and there is an NFS Export. The initial size will be 1 TeraByte.

netapp::vqe { 'test_volume':
  size           => "1t",
  aggr           => "aggr1",
  spaceres       => "file",
  snapresv       => 20,
  autoincrement  => false,
  persistent     => false
}

Parameters:

  • size (Any)
  • ensure (Any) (defaults to: 'present')
  • aggr (Any) (defaults to: 'aggr1')
  • spaceres (Any) (defaults to: 'none')
  • snapresv (Any) (defaults to: 0)
  • autoincrement (Any) (defaults to: true)
  • options (Any) (defaults to: { 'convert_ucode' => 'on', 'no_atime_update' => 'on', 'try_first' => 'volume_grow' })
  • snapschedule (Any) (defaults to: { 'minutes' => 0, 'hours' => 0, 'days' => 0, 'weeks' => 0, 'which-hours' => 0, 'which-minutes' => 0 })
  • persistent (Any) (defaults to: true)


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
# File 'manifests/vqe.pp', line 54

define netapp::vqe (
  $size,
  $ensure        = 'present',
  $aggr          = 'aggr1',
  $spaceres      = 'none',
  $snapresv      = 0,
  $autoincrement = true,
  $options       = {
    'convert_ucode'   => 'on',
    'no_atime_update' => 'on',
    'try_first'       => 'volume_grow'
  },
  $snapschedule  = {
    'minutes'       => 0,
    'hours'         => 0,
    'days'          => 0,
    'weeks'         => 0,
    'which-hours'   => 0,
    'which-minutes' => 0
  },
  $persistent = true
) {


  netapp_volume { "v_${name}":
    ensure        => $ensure,
    initsize      => $size,
    aggregate     => $aggr,
    spaceres      => $spaceres,
    snapreserve   => $snapresv,
    autoincrement => $autoincrement,
    options       => $options,
    snapschedule  => $snapschedule,
  }

  netapp_qtree { "q_${name}":
    ensure => $ensure,
    volume => "v_${name}",
  }

  netapp_export { "/vol/v_${name}/q_${name}":
    ensure     => $ensure,
    persistent => $persistent,
  }

  if $ensure == 'absent' {
    Netapp_export["/vol/v_${name}/q_${name}"]
      -> Netapp_qtree["q_${name}"]
      -> Netapp_volume["v_${name}"]
  }
  else {
    Netapp_volume["v_${name}"]
      -> Netapp_qtree["q_${name}"]
      -> Netapp_export["/vol/v_${name}/q_${name}"]
  }
}