首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >过滤器分块稳定性

过滤器分块稳定性
EN

Stack Overflow用户
提问于 2022-11-14 23:52:53
回答 1查看 25关注 0票数 0

我有一个由ansible_facts提供的数据

代码语言:javascript
复制
  ansible_facts.lvm.lvs:
    lv-something-1:
      size_g: '70.00'
      vg: blockchains
    lv-something2-2:
      size_g: '45.00'
      vg: blockchains
    lv-something3-3:
      size_g: '250.00'
      vg: blockchains
    lv-something4-4:
      size_g: '4610.00'
      vg: blockchains
    lv-something5-5:
      size_g: '500.00'
      vg: blockchains
    lv-something6-6:
      size_g: '25.00'
      vg: blockchains
    lvthinpool:
      size_g: '10666.11'
      vg: blockchains

首先,我尝试了大量删除thinpool项,但是我没有成功,我试图将这个数据转换成一个列表,尝试使用reject, rejectattr,但是他们只给出了名称。就像这样,我甚至试着创建两个列表,并做出让步,但没有成功,lol。

代码语言:javascript
复制
  ansible_facts.lvm.lvs | reject('search', 'thinpool'):
  - lv-something-1
  - lv-something2-2
  - lv-something3-3
  - lv-something4-4
  - lv-something5-5
  - lv-something6-6

但我想知道我的书有多大..。我只想把lvthinpool移到里,有办法吗?在那之后,我会抓住所有的size_g,我会把你所有的价值加起来

我的期望值是:

代码语言:javascript
复制
  ansible_facts.lvm.lvs:
    lv-something-1:
      size_g: '70.00'
      vg: blockchains
    lv-something2-2:
      size_g: '45.00'
      vg: blockchains
    lv-something3-3:
      size_g: '250.00'
      vg: blockchains
    lv-something4-4:
      size_g: '4610.00'
      vg: blockchains
    lv-something5-5:
      size_g: '500.00'
      vg: blockchains
    lv-something6-6:
      size_g: '25.00'
      vg: blockchains

我尝试使用set_fact将这个dict转换为一个列表,并使用rejectrejectattr操作日期,然后创建两个dict,并尝试合并这些值。我尝试将内容放入文件并使用regex与linefile模块一起删除它

EN

回答 1

Stack Overflow用户

发布于 2022-11-15 02:28:26

下面是一个在dict2items之前执行rejectattr的示例操作手册

代码语言:javascript
复制
- hosts: localhost
  connection: local
  vars:
      input:
        lv-something-1:
          size_g: '70.00'
          vg: blockchains
        lv-something2-2:
          size_g: '45.00'
          vg: blockchains
        lv-something3-3:
          size_g: '250.00'
          vg: blockchains
        lv-something4-4:
          size_g: '4610.00'
          vg: blockchains
        lv-something5-5:
          size_g: '500.00'
          vg: blockchains
        lv-something6-6:
          size_g: '25.00'
          vg: blockchains
        lvthinpool:
          size_g: '10666.11'
          vg: blockchains

  tasks:
  - debug:
      msg: 
      - "{{ input|dict2items|rejectattr('key', 'eq', 'lvthinpool')|items2dict  }}" #this will print desired data

上面的剧本会吐出低于输出的东西:

代码语言:javascript
复制
TASK [debug] ********************************************************************************************************************************************************
ok: [localhost] => {
    "msg": [
        {
            "lv-something-1": {
                "size_g": "70.00",
                "vg": "blockchains"
            },
            "lv-something2-2": {
                "size_g": "45.00",
                "vg": "blockchains"
            },
            "lv-something3-3": {
                "size_g": "250.00",
                "vg": "blockchains"
            },
            "lv-something4-4": {
                "size_g": "4610.00",
                "vg": "blockchains"
            },
            "lv-something5-5": {
                "size_g": "500.00",
                "vg": "blockchains"
            },
            "lv-something6-6": {
                "size_g": "25.00",
                "vg": "blockchains"
            }
        }
    ]
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74439197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档