当根据条件跳过任务并且寄存器的结果也不同时,另一个任务的原因已经失败。
- name: Check if the partition is already mounted
shell: df | grep "{{item.partition}}" | wc -l
with_items:
- "{{ ebs_vol }}"
register: ebs_checked
when: ebs_vol is defined
- name: Make filesystem of the partition
filesystem: fstype=ext4 dev={{item.item.partition}} force=no
when: ( ebs_vol is defined and "{{item.stdout}} == True" )
changed_when: True
with_items:
- ebs_checked.results
答案 0 :(得分:1)
使用@Module
public abstract class MainActivityModule {
@ActivityScoped
@Provides
static List<Fragment> provideList(HomeFragment home, NewsFragment news, MomentsFragment moments, WalletFragment wallet, PersonalFragment personal) {
List<Fragment> fragments = new ArrayList<>();
fragments.add(home);
fragments.add(news);
fragments.add(moments);
fragments.add(wallet);
fragments.add(personal);
return fragments;
}
}
过滤器来处理极端情况:
default
如果- name: Make filesystem of the partition
filesystem: fstype=ext4 dev={{item.item.partition}} force=no
when: item.stdout | bool
changed_when: True
with_items: "{{ ebs_checked.results | default([]) }}"
中没有results
,这将迭代空列表(读作“将无效”)。
此外,您不应检查ebs_checked
因为循环任务中的ebs_vol is defined
语句应用于循环内部,并且请记住您在上一个任务中检查when
,在循环中检查不必要的内容。