  $ cp "$TESTDIR/choose-args.crush" .
  $ crushtool -c choose-args.crush -o choose-args.compiled
  $ crushtool -d choose-args.compiled -o choose-args.conf
  $ crushtool -c choose-args.conf -o choose-args.recompiled
  $ cmp choose-args.crush choose-args.conf
  $ cmp choose-args.compiled choose-args.recompiled
  $ crushtool -c choose-args.conf -o /dev/null --dump
  {
      "devices": [
          {
              "id": 0,
              "name": "device0"
          },
          {
              "id": 1,
              "name": "device1"
          },
          {
              "id": 2,
              "name": "device2"
          }
      ],
      "types": [
          {
              "type_id": 0,
              "name": "device"
          },
          {
              "type_id": 1,
              "name": "host"
          },
          {
              "type_id": 2,
              "name": "rack"
          },
          {
              "type_id": 3,
              "name": "root"
          }
      ],
      "buckets": [
          {
              "id": -1,
              "name": "host0",
              "type_id": 1,
              "type_name": "host",
              "weight": 65536,
              "alg": "straw2",
              "hash": "rjenkins1",
              "items": [
                  {
                      "id": 0,
                      "weight": 65536,
                      "pos": 0
                  }
              ]
          },
          {
              "id": -2,
              "name": "host1",
              "type_id": 1,
              "type_name": "host",
              "weight": 65536,
              "alg": "straw2",
              "hash": "rjenkins1",
              "items": [
                  {
                      "id": 1,
                      "weight": 65536,
                      "pos": 0
                  }
              ]
          },
          {
              "id": -3,
              "name": "rack0",
              "type_id": 2,
              "type_name": "rack",
              "weight": 196608,
              "alg": "straw2",
              "hash": "rjenkins1",
              "items": [
                  {
                      "id": -1,
                      "weight": 65536,
                      "pos": 0
                  },
                  {
                      "id": -2,
                      "weight": 65536,
                      "pos": 1
                  },
                  {
                      "id": -5,
                      "weight": 65536,
                      "pos": 2
                  }
              ]
          },
          {
              "id": -4,
              "name": "root",
              "type_id": 3,
              "type_name": "root",
              "weight": 262144,
              "alg": "straw2",
              "hash": "rjenkins1",
              "items": [
                  {
                      "id": -3,
                      "weight": 262144,
                      "pos": 0
                  }
              ]
          },
          {
              "id": -5,
              "name": "host2",
              "type_id": 1,
              "type_name": "host",
              "weight": 65536,
              "alg": "straw2",
              "hash": "rjenkins1",
              "items": [
                  {
                      "id": 2,
                      "weight": 65536,
                      "pos": 0
                  }
              ]
          }
      ],
      "rules": [
          {
              "rule_id": 3,
              "rule_name": "data",
              "type": 1,
              "steps": [
                  {
                      "op": "take",
                      "item": -4,
                      "item_name": "root"
                  },
                  {
                      "op": "chooseleaf_firstn",
                      "num": 0,
                      "type": "rack"
                  },
                  {
                      "op": "emit"
                  }
              ]
          }
      ],
      "tunables": {
          "choose_local_tries": 2,
          "choose_local_fallback_tries": 5,
          "choose_total_tries": 19,
          "chooseleaf_descend_once": 0,
          "chooseleaf_vary_r": 0,
          "chooseleaf_stable": 0,
          "msr_descents": 100,
          "msr_collision_tries": 100,
          "straw_calc_version": 0,
          "allowed_bucket_algs": 22,
          "profile": "argonaut",
          "optimal_tunables": 0,
          "legacy_tunables": 1,
          "minimum_required_version": "hammer",
          "require_feature_tunables": 0,
          "require_feature_tunables2": 0,
          "has_v2_rules": 0,
          "require_feature_tunables3": 0,
          "has_v3_rules": 0,
          "has_v4_buckets": 1,
          "require_feature_tunables5": 0,
          "has_v5_rules": 0,
          "has_msr_rules": 0
      },
      "choose_args": {
          "1": [],
          "2": [
              {
                  "bucket_id": -3,
                  "ids": [
                      -20,
                      30,
                      -25
                  ]
              }
          ],
          "3": [
              {
                  "bucket_id": -3,
                  "weight_set": [
                      [
                          1,
                          2,
                          5
                      ],
                      [
                          3,
                          2,
                          5
                      ]
                  ],
                  "ids": [
                      -20,
                      -30,
                      -25
                  ]
              }
          ],
          "4": [
              {
                  "bucket_id": -2,
                  "weight_set": [
                      [
                          1
                      ],
                      [
                          3
                      ]
                  ]
              }
          ],
          "5": [
              {
                  "bucket_id": -1,
                  "ids": [
                      -450
                  ]
              }
          ],
          "6": [
              {
                  "bucket_id": -1,
                  "ids": [
                      -450
                  ]
              },
              {
                  "bucket_id": -2,
                  "weight_set": [
                      [
                          1
                      ],
                      [
                          3
                      ]
                  ]
              },
              {
                  "bucket_id": -3,
                  "weight_set": [
                      [
                          1,
                          2,
                          5
                      ],
                      [
                          3,
                          2,
                          5
                      ]
                  ],
                  "ids": [
                      -20,
                      -30,
                      -25
                  ]
              }
          ]
      }
  }
  

  $ crushtool -c choose-args.conf -o /dev/null --dump | jq .for_json_validation
  null
