Тот факт, что у вас есть (item=delete-after-tests)
в выходных данных, означает, что вы обманули нас, не включив with_items:
, который почти наверняка скрывается над вашей register: output_dhcp
строкой.
Когда у вас есть оператор with_
, он упаковывает фактический результат в список results
, на который вы как бы намекнули с помощью output_dhcp.results.msg
, но вы не можете запросить поле .msg
из list
; вам нужно извлечь атрибут каждого члена списка, который map
сделает для вас:
- debug:
msg: '{{ output_dhcp.results | map(attribute="msg") | list }}'
Но если вы хотите 108
выражения VM 108
, вам понадобится использовать regex_replace
для его извлечения, но, по-видимому, только в элементах списка, которые могут ему соответствовать, например:
- debug:
msg: >-
{{ output_dhcp.results
| selectattr("msg", "match", "VM [0-9]+ .*")
| map("regex_replace", ".*VM ([0-9]+) .*", "\\1")
| first }}
Я предполагаю, что ожидание второй части строки (14) будет месяцем.
Если вы знаете формат строки, используйте:
Time.strptime(date, format, now=self.now) {|year| ...}
http://www.ruby-doc.org/core-1.9/classes/Time.html#M000266
Это решит вашу проблему и, вероятно, будет быстрее, чем Time.parse
.
РЕДАКТИРОВАТЬ:
Похоже, они взяли strptime
из класса Time, но все равно он вызвал Date.strptime
Если вы находитесь на Rails, вы можете сделать:
Date.strptime("05-14-2009 19:00","%m-%d-%Y %H:%M").to_time
, если вы используете чистый ruby, тогда вам нужно:
require 'date'
d=Date._strptime("05-14-2009 19:00","%m-%d-%Y %H:%M")
Time.utc(d[:year], d[:mon], d[:mday], d[:hour], d[:min],
d[:sec], d[:sec_fraction], d[:zone])
См. Также: Проблемы с форматированием даты и времени в Ruby on Rails .
Вероятно, ожидается формат «день-месяц-год», поэтому ваше первое значение пытается указать 5-й день 14-го месяца.
Это из-за эвристики разбора времени #
.
И из-за англо-американских форматов.
С тире '-' он ожидает мм- дд-гггг, с косой чертой '/' он ожидает дд / мм / гггг.
Это поведение намеренно меняет в 1.9. для достижения стандартов eur, iso и jp date.
Возможно, вам не нужна эта проблема для решения этой проблемы, но я все же рекомендую проверить синтаксический анализатор даты / времени на естественном языке Chronic , он пару раз спас меня от работы.