Bagaimana cara mengubah string menjadi integer di Puppet?

8

Saya ingin memeriksa apakah konten suatu variabel adalah angka ganjil. Tapi saya butuh integer untuk itu.

$ip_array = split($ipaddress, '.')
$odd_ip = $ip_array[3] % 2

if $odd_ip == 1 {
  notice("is odd")
}

Apakah ada cara mudah untuk mengkonversi string ke integer?

Lebih lagi
sumber

Jawaban:

5

Kamu bisa melakukan ini:

$ n_timeout = 0 + $ timeout

Barry
sumber
Ini pecah dengan sengatan dengan nol di depan, misalnya "04"
Gary van der Merwe
Dengan boneka 4, ini akan menyebabkan peringatan: Peringatan: String '1' secara otomatis dipaksa ke nilai numerik 1 di ...
Slaven Rezic
Dokumentasi wayang menyarankan ini, dan menawarkan metode scanf untuk menangani ekstraksi versus paksaan rekan. puppet.com/docs/puppet/latest/…
cgseller
3

Saya telah menggunakan fungsi scanf di stdlib.

Contoh dari ini:

$ ram = scanf ("$ {:: memorysize_mb}", "% i")

Ini membutuhkan boneka> = 3.7.5

Andrew
sumber
1
Perhatikan bahwa ini akan mengembalikan array, di mana elemen pertama adalah nilai yang diinginkan. Dalam wayang 4 dimungkinkan untuk menulis sesuatu seperti scanf (...) [0], dalam wayang 3 tampaknya diperlukan untuk membagi ini dalam dua pernyataan: pertama tetapkan ke variabel array, kemudian dapatkan elemen pertama.
Slaven Rezic
Ini dapat diterima juga berdasarkan pada dokumentasi boneka puppet.com/docs/puppet/latest/… . @Barry di atas dan jawaban di sini diizinkan oleh puppetlabs.
cgseller
1

Kode Anda akan bekerja persis seperti yang didefinisikan; Wayang secara implisit mengubah string dan integer yang sesuai untuk operator perbandingan yang digunakan.

Daniel Pittman
sumber
Saya mendapat kesalahan berikut: Tidak dapat mencocokkan% di /etc/puppet/modules/my/manifests/target.pp:23 pada node mynode.domain.de
MMore
Jika saya mengganti '%' dengan '*' (pengujian) -> operan kiri * bukan angka di /etc/puppet/modules/my/manifests/target.pp:25 pada node mynode.domain.de
MMore
1
Ah. Anda telah menemukan bug asli di Puppet. Anda harus mengajukan tiket di projects.puppetlabs.com/projects/puppet/issues/new sehingga kami dapat memperbaikinya.
Daniel Pittman
2
Wayang tidak melakukan itu ketika nilainya berasal dari hiera. Anda mendapatkan galat "Kesalahan 400 pada SERVER: perbandingan Fixnum dengan String gagal".
Rob