Size: a a a

Puppet — русскоговорящее сообщество

2020 December 02

A

Andor in Puppet — русскоговорящее сообщество
лямбды в папете это обычные функции, принимают переменную от которой вызываются в первый свой параметр
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
Ну это понятно. Просто я же не могу добавлять методы в готовые классы, объектами которых является различные переменные в puppet.
Мне по сути нужно просто анонимную функцию передать параметром в функцию и вызывать ее там.

Ну как блоки в ruby, пример чего выше, или стрелочные в js:

function test(callback) {
 callback();
}

test( () => {
 // any code
});


def test
  yield
end
...
test do
 # any code
end
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
А, все. В коде посмотрел как реализованы.
Например reduce

Puppet::Functions.create_function(:reduce) do

 dispatch :reduce_without_memo do
   param 'Iterable', :enumerable
   block_param 'Callable[2,2]', :block
 end

 dispatch :reduce_with_memo do
   param 'Iterable', :enumerable
   param 'Any', :memo
   block_param 'Callable[2,2]', :block
 end

 def reduce_without_memo(enumerable)
   enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
   enum.reduce do |memo, x|
     begin
       yield(memo, x)
     rescue StopIteration
       return memo
     end
   end
 end

 def reduce_with_memo(enumerable, given_memo)
   enum = Puppet::Pops::Types::Iterable.asserted_iterable(self, enumerable)
   enum.reduce(given_memo) do |memo, x|
     begin
       yield(memo, x)
     rescue StopIteration
       return memo
     end
   end
 end
end


block_param - вот что мне нужно
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
@Andorka  спасибо 🙏
источник

A

Andor in Puppet — русскоговорящее сообщество
ну это знание уже за пределами моих глубин
источник

h

hackru in Puppet — русскоговорящее сообщество
всем привет, а есть аналог changed_when: false для паппета? у меня меняется файл каждую прокатку(пишется хеш коммита), хочу чтобы экзит-статус не выставлялся в двойку у puppet agent -t
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
hackru
всем привет, а есть аналог changed_when: false для паппета? у меня меняется файл каждую прокатку(пишется хеш коммита), хочу чтобы экзит-статус не выставлялся в двойку у puppet agent -t
Насколько я понял речь о ресурсе exec

exec имеет три аттрибута для таких целей unless, onlyif, creates
Они управляют тем, будет ли запускаться exec.

creates - если файл указанный в нем существует, то exec не выполняется
onlyif - если команда указанная в нем возвращает 0 статус, то exec выполнится
unless - если команда указанная в нем команда возвращает не нулевой статус, то exec выполнится
источник

h

hackru in Puppet — русскоговорящее сообщество
Dmitry Sergeev
Насколько я понял речь о ресурсе exec

exec имеет три аттрибута для таких целей unless, onlyif, creates
Они управляют тем, будет ли запускаться exec.

creates - если файл указанный в нем существует, то exec не выполняется
onlyif - если команда указанная в нем возвращает 0 статус, то exec выполнится
unless - если команда указанная в нем команда возвращает не нулевой статус, то exec выполнится
ща уточню, но вроде file
источник

h

hackru in Puppet — русскоговорящее сообщество
file { "/var/lib/puppet/git_revision":
           content => "$server_git_revision\n",
       }
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
hackru
ща уточню, но вроде file
file будет применяться всякий раз, когда меняется его содержимое. В этом его смысл
источник

h

hackru in Puppet — русскоговорящее сообщество
ну вот в ансибле это достаточно гибко обмазывается changed_when, хочется и в паппете аналогичное
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
hackru
ну вот в ансибле это достаточно гибко обмазывается changed_when, хочется и в паппете аналогичное
ты какой результат хочешь получить? чтобы он файл не менял когда $server_git_revision ?
источник

VL

Vethopheth Lephanim in Puppet — русскоговорящее сообщество
зачем тебе менять его паппетом если ты этого не хочешь?
источник

VL

Vethopheth Lephanim in Puppet — русскоговорящее сообщество
БДСМщик чи шо
источник

h

hackru in Puppet — русскоговорящее сообщество
хочу чтобы 1) файл поменялся 2) дифф показался 3) не засчиталось за changed
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
hackru
хочу чтобы 1) файл поменялся 2) дифф показался 3) не засчиталось за changed
зачем тебе , чтобы оно не считалось за changed, когда оно changed? В чем конечная цель?
источник

h

hackru in Puppet — русскоговорящее сообщество
в экзит-статусе
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
hackru
в экзит-статусе
зачем тебе нулевой статус, когда что-то изменилось?
источник

h

hackru in Puppet — русскоговорящее сообщество
я хочу ненулевой статус для всех изменений кроме этого файла
источник

DS

Dmitry Sergeev in Puppet — русскоговорящее сообщество
hackru
я хочу ненулевой статус для всех изменений кроме этого файла
в чем то конечная цель? Зачем тебе это нужно?
источник