
Andor
20.08.2018
15:36:38
ты уверен что это хеш?

Protos
20.08.2018
15:37:08
Это под each.do функцию
Забыл как оно правильно зовется

Google

Andor
20.08.2018
15:37:40
список?

Protos
20.08.2018
15:37:47
Да помоему
Короче суть в том что у меня обьявлены данные в хиере выше
IP
-IP: ??? как их сюда пихнуть правильно?
-IP

Konstantin
20.08.2018
15:38:40
я тебе выше написал

Protos
20.08.2018
15:39:08
"%{hiera('Здесь полный путь так?')}"

Konstantin
20.08.2018
15:39:18
да

Protos
20.08.2018
15:39:22
Ок спасебо
Господа еще один вечерний вопрос

Andor
20.08.2018
17:53:43
да хоть два

Protos
20.08.2018
17:53:44
А можно как-то часть списка откидывать?

Andor
20.08.2018
17:53:51
.filter
или ты хочешь в hiera?

Google

Protos
20.08.2018
17:54:16

Andor
20.08.2018
17:54:30
ты не хочешь это делать хиерой

Protos
20.08.2018
17:54:35
Я его использую в ич ду для ерб шаблона
В списке немного больше чем нужно в новом шаблоне
Немного лень пересобирать список

Andor
20.08.2018
17:55:07
ты можешь пупетом пофильтровать в пупет-коде

Protos
20.08.2018
17:55:10
Под каждый шаблон

Andor
20.08.2018
17:55:12
а можешь рубями в ерб-шаблоне

Protos
20.08.2018
17:55:51

Andor
20.08.2018
17:56:14
функция .filter

Protos
20.08.2018
17:56:25
Щас почекаю

Andor
20.08.2018
17:56:28
https://puppet.com/docs/puppet/5.5/function.html#filter

Protos
20.08.2018
17:58:59

Andor
20.08.2018
18:00:46
ну хотя бы до 3.8 обновись
и включи parser=future
тогда будет тоже

Protos
20.08.2018
18:01:10

Andor
20.08.2018
18:02:25
зря

Protos
20.08.2018
18:02:47
Какие еще есть способы откинуть кусок списка?

Google

Freddie
20.08.2018
18:05:48
https://github.com/puppetlabs/puppetlabs-stdlib/blob/master/README.md#delete_regex
И следующее, работают как раз как .filter

Protos
20.08.2018
18:09:05
Хм завтра попробую спасибо надеюсь только что я правильно понял что это подойдет для фильтрации именно значений а не имени переменных

Andor
20.08.2018
18:11:15
лучше бы всё равно обновиться
хотя бы до 3.8
между 3.6 и 3.8 разницы мало

Protos
20.08.2018
18:13:57
Ну к сожалению никак

Konstantin
20.08.2018
18:51:03
в ерб есть .select рубишный
если есть желание заботать, я могу помочь
если думать лень и надо лишь бы как наебенить, давай сам
<% list = [
{
t: 1,
},
{
t: 2,
},
{
t: 4,
},
{
t: 5,
},
] %>
<% new_list = list.select {|item| item[:t].even? } %>
<%= new_list %>
это тебе для затравки, если захочешь включить мозг и поразбираться

Protos
20.08.2018
20:30:24

Konstantin
20.08.2018
20:31:00
а я очень уверен, что ты не очень понимаешь о чем говоришь

Protos
20.08.2018
20:32:25

Konstantin
20.08.2018
20:32:53
короче, попробуй, всё же разобраться с тем, что я тебе говорю

Protos
20.08.2018
20:37:47
Ну я так понял оно выбирает из хэша или массива
Только мне так кажется что оно собирает не значение а переменную

Konstantin
20.08.2018
20:48:15
?

Protos
20.08.2018
21:04:35

Google

Konstantin
20.08.2018
21:07:58
сложно очень конструктивно говорить, ты ведь не программист совсем, верно?
но давай попробуем так, пока я тут сижу: ты мне дашь входной результат и выходной, я тебе покажу трансформацию

Protos
20.08.2018
21:10:21
Это довольно сложно но я могу дать аналог входных параметров
Если расскажешь было бы круто
В общем есть некая хиера в которой содержатся данные в виде списка
Test
-ip :123
-name: 123
-ip: 231
-name: 231
Есть шаблон в котором эти данные собираются

Konstantin
20.08.2018
21:17:49
и тебе надо извлечь из неё только те хосты, у которых ИП начинается с единицы допустим. если я тебе такой пример напишу - разберешься?

Protos
20.08.2018
21:18:39
<% @machines.each do |machines| -%>
if token == "<%= machines['machine_name'] %>":
assign("Server", "<%= machines['machine_name'] %>", "Machine", "<%= machines['machine_name'] %>")
<% end -%>
Допустим такого вида шаблон

Konstantin
20.08.2018
21:18:56
так

Protos
20.08.2018
21:19:02
Внутри шаблона питоновый код повторяемый по количеству входящих в список данных
Мне не сложно собрать еще один хиера список
Но может есть более интересное решение
(руби я знаю очень фигово)
Выше говорили про фильтр в принципе логика понятна и я попробую

Konstantin
20.08.2018
21:29:21
1) можно юзать просто erb для дебага
через паппет гонять дольше
просто erb file.erb
2)

Google

Konstantin
20.08.2018
21:29:47
<% machines = [
{
'ip' => '1.2.4.5',
'name' => '1.2.4.5',
},
{
'ip' => '1.2.4.5',
'name' => '1.2.4.5',
},
{
'ip' => '1.2.4.5',
'name' => '1.2.4.5',
},
{
'ip' => '1.2.4.5',
'name' => '1.2.4.5',
},
] %>
<% for machine in machines %>
<% if machine['ip'][0] == '1' %>
if token == "<%= machine['name'] %>":
assign("Server", "<%= machine['ip'] %>", "Machine", "<%= machine['name'] %>")
<% end %>
<% end %>
это более простой вариант - на дубовых циклах без операций map/filter/reduce/each и прочего
erb в cli не поддерживает тэги с управлением переносом строк - -%>, насколько я помню, имей это в виду

Protos
20.08.2018
21:31:41
Хм
Сейчас я пойму чо тут

Konstantin
20.08.2018
21:32:16
если прям хочется select + each
то
<% @machines.select { |machine| machine[:ip][0] == '1' }.each do |machine| -%>
if token == "<%= machine['name'] %>":
assign("Server", "<%= machine['ip'] %>", "Machine", "<%= machine['name'] %>")
<% end -%>

Protos
20.08.2018
21:32:39
Мне не то что бы хочется

Konstantin
20.08.2018
21:32:54
без них можно обойтись, см первый пример на циклах/ифах

Protos
20.08.2018
21:32:56
Просто это генерация .py для jyton

Konstantin
20.08.2018
21:33:13
ну ничего, и не такое генерили

Protos
20.08.2018
21:34:32
Короче я так понял выносим в [] все нужные данные

Konstantin
20.08.2018
21:34:41
они уже там
та фигня сверху - это просто типа эмуляция хиеры

Protos
20.08.2018
21:35:04
А

Konstantin
20.08.2018
21:35:08
в теории, ты должен просто дописать @ к machines
и все заработает
впрочем, в 3.6 вроде бы не обязательно иваром делать переменную
но ты сделай)