Kelas boneka dengan parameter

0

Saya mencoba untuk mendapatkan kelas boneka dengan parameter, Inilah yang saya coba

class testing ( String $file = 'testing' ) {
        file { "/tmp/$file":
          ensure => present,
          mode => 0777,
          content => "Testing123"
        }
}

Ketika saya menjalankan ini saya mendapatkan kesalahan:

Could not parse for environment production: Syntax error at 'String'; expected ')'
Tim Holum
sumber
Bukan ahli di sini, tetapi melihat dokumentasi boneka dan pesan kesalahan, mungkin Anda perlu menghapus karakter spasi antara braket terbuka dan "String". Itulah satu-satunya perbedaan sintaksis yang dapat saya lihat antara itu dan contoh dokumentasi Puppetlabs.
davidgo
Versi boneka apa yang Anda gunakan?
daxlerod

Jawaban:

2

Sepertinya Anda menggunakan versi boneka yang lebih tua dari 4.0, dan tidak menggunakan parser 'masa depan'. Jenis data ditambahkan dengan versi baru dari bahasa boneka.

Anda memiliki 3 opsi:

  1. Hapus String. Bahkan dalam konfigurasi di mana menyatakan tipe data diperbolehkan, itu opsional. Di dalam kelas Anda, Anda dapat menggunakan fungsi untuk memvalidasi bahwa parameternya adalah string.
  2. Aktifkan pengurai masa depan. Ini dilakukan dalam file konfigurasi boneka Anda, dan Anda mungkin menemukan bahwa kode Anda yang lain tidak kompatibel.
  3. Tingkatkan ke versi boneka 4.x. Ini juga dapat menyebabkan ketidakcocokan dengan lingkungan Anda yang lain.

Jika itu aku, aku akan lakukan # 1.

daxlerod
sumber