Revision bc5d0215 lib/client/gnt_cluster.py

b/lib/client/gnt_cluster.py
98 98
  beparams = opts.beparams
99 99
  nicparams = opts.nicparams
100 100

  
101
  diskparams = dict(opts.diskparams)
102

  
103
  # check the disk template types here, as we cannot rely on the type check done
104
  # by the opcode parameter types
105
  diskparams_keys = set(diskparams.keys())
106
  if not (diskparams_keys <= constants.DISK_TEMPLATES):
107
    unknown = utils.NiceSort(diskparams_keys - constants.DISK_TEMPLATES)
108
    ToStderr("Disk templates unknown: %s" % utils.CommaJoin(unknown))
109
    return 1
110

  
101 111
  # prepare beparams dict
102 112
  beparams = objects.FillDict(constants.BEC_DEFAULTS, beparams)
103 113
  utils.ForceDictType(beparams, constants.BES_PARAMETER_COMPAT)
......
120 130
    hvparams[hv] = objects.FillDict(constants.HVC_DEFAULTS[hv], hvparams[hv])
121 131
    utils.ForceDictType(hvparams[hv], constants.HVS_PARAMETER_TYPES)
122 132

  
133
  # prepare diskparams dict
134
  for templ in constants.DISK_TEMPLATES:
135
    if templ not in diskparams:
136
      diskparams[templ] = {}
137
    diskparams[templ] = objects.FillDict(constants.DISK_DT_DEFAULTS[templ],
138
                                         diskparams[templ])
139
    utils.ForceDictType(diskparams[templ], constants.DISK_DT_TYPES)
140

  
123 141
  if opts.candidate_pool_size is None:
124 142
    opts.candidate_pool_size = constants.MASTER_POOL_SIZE_DEFAULT
125 143

  
......
164 182
                        beparams=beparams,
165 183
                        nicparams=nicparams,
166 184
                        ndparams=ndparams,
185
                        diskparams=diskparams,
167 186
                        candidate_pool_size=opts.candidate_pool_size,
168 187
                        modify_etc_hosts=opts.modify_etc_hosts,
169 188
                        modify_ssh_setup=opts.modify_ssh_setup,
......
876 895
  if not (not opts.lvm_storage or opts.vg_name or
877 896
          not opts.drbd_storage or opts.drbd_helper or
878 897
          opts.enabled_hypervisors or opts.hvparams or
879
          opts.beparams or opts.nicparams or opts.ndparams or
898
          opts.beparams or opts.nicparams or
899
          opts.ndparams or opts.diskparams or
880 900
          opts.candidate_pool_size is not None or
881 901
          opts.uid_pool is not None or
882 902
          opts.maintain_node_health is not None or
......
916 936
  for hv_params in hvparams.values():
917 937
    utils.ForceDictType(hv_params, constants.HVS_PARAMETER_TYPES)
918 938

  
939
  diskparams = dict(opts.diskparams)
940

  
941
  for dt_params in hvparams.values():
942
    utils.ForceDictType(dt_params, constants.DISK_DT_TYPES)
943

  
919 944
  beparams = opts.beparams
920 945
  utils.ForceDictType(beparams, constants.BES_PARAMETER_COMPAT)
921 946

  
......
963 988
                                  beparams=beparams,
964 989
                                  nicparams=nicparams,
965 990
                                  ndparams=ndparams,
991
                                  diskparams=diskparams,
966 992
                                  candidate_pool_size=opts.candidate_pool_size,
967 993
                                  maintain_node_health=mnh,
968 994
                                  uid_pool=uid_pool,
......
1376 1402
     NOMODIFY_SSH_SETUP_OPT, SECONDARY_IP_OPT, VG_NAME_OPT,
1377 1403
     MAINTAIN_NODE_HEALTH_OPT, UIDPOOL_OPT, DRBD_HELPER_OPT, NODRBD_STORAGE_OPT,
1378 1404
     DEFAULT_IALLOCATOR_OPT, PRIMARY_IP_VERSION_OPT, PREALLOC_WIPE_DISKS_OPT,
1379
     NODE_PARAMS_OPT, GLOBAL_SHARED_FILEDIR_OPT, USE_EXTERNAL_MIP_SCRIPT],
1405
     NODE_PARAMS_OPT, GLOBAL_SHARED_FILEDIR_OPT, USE_EXTERNAL_MIP_SCRIPT,
1406
     DISK_PARAMS_OPT],
1380 1407
    "[opts...] <cluster_name>", "Initialises a new cluster configuration"),
1381 1408
  "destroy": (
1382 1409
    DestroyCluster, ARGS_NONE, [YES_DOIT_OPT],
......
1453 1480
     MAINTAIN_NODE_HEALTH_OPT, UIDPOOL_OPT, ADD_UIDS_OPT, REMOVE_UIDS_OPT,
1454 1481
     DRBD_HELPER_OPT, NODRBD_STORAGE_OPT, DEFAULT_IALLOCATOR_OPT,
1455 1482
     RESERVED_LVS_OPT, DRY_RUN_OPT, PRIORITY_OPT, PREALLOC_WIPE_DISKS_OPT,
1456
     NODE_PARAMS_OPT, USE_EXTERNAL_MIP_SCRIPT],
1483
     NODE_PARAMS_OPT, USE_EXTERNAL_MIP_SCRIPT, DISK_PARAMS_OPT],
1457 1484
    "[opts...]",
1458 1485
    "Alters the parameters of the cluster"),
1459 1486
  "renew-crypto": (

Also available in: Unified diff