Revision fb644e77 lib/client/gnt_group.py
b/lib/client/gnt_group.py | ||
---|---|---|
146 | 146 |
@return: the desired exit code |
147 | 147 |
|
148 | 148 |
""" |
149 |
if (opts.ndparams is None and opts.alloc_policy is None |
|
150 |
and not opts.diskparams and not opts.hv_state and not opts.disk_state): |
|
149 |
allmods = [opts.ndparams, opts.alloc_policy, opts.diskparams, opts.hv_state, |
|
150 |
opts.disk_state, opts.ispecs_mem_size, opts.ispecs_cpu_count, |
|
151 |
opts.ispecs_disk_count, opts.ispecs_disk_size, |
|
152 |
opts.ispecs_nic_count, opts.diskparams] |
|
153 |
if allmods.count(None) == len(allmods): |
|
151 | 154 |
ToStderr("Please give at least one of the parameters.") |
152 | 155 |
return 1 |
153 | 156 |
|
... | ... | |
159 | 162 |
hv_state = dict(opts.hv_state) |
160 | 163 |
|
161 | 164 |
diskparams = dict(opts.diskparams) |
165 |
|
|
166 |
# set the default values |
|
167 |
to_ipolicy = [ |
|
168 |
opts.ispecs_mem_size, |
|
169 |
opts.ispecs_cpu_count, |
|
170 |
opts.ispecs_disk_count, |
|
171 |
opts.ispecs_disk_size, |
|
172 |
opts.ispecs_nic_count, |
|
173 |
] |
|
174 |
for ispec in to_ipolicy: |
|
175 |
for param in ispec: |
|
176 |
if isinstance(ispec[param], basestring): |
|
177 |
if ispec[param].lower() == "default": |
|
178 |
ispec[param] = constants.VALUE_DEFAULT |
|
179 |
# create ipolicy object |
|
180 |
ipolicy = objects.CreateIPolicyFromOpts(\ |
|
181 |
ispecs_mem_size=opts.ispecs_mem_size, |
|
182 |
ispecs_cpu_count=opts.ispecs_cpu_count, |
|
183 |
ispecs_disk_count=opts.ispecs_disk_count, |
|
184 |
ispecs_disk_size=opts.ispecs_disk_size, |
|
185 |
ispecs_nic_count=opts.ispecs_nic_count, |
|
186 |
group_ipolicy=True, |
|
187 |
allowed_values=[constants.VALUE_DEFAULT]) |
|
188 |
for key in ipolicy.keys(): |
|
189 |
utils.ForceDictType(ipolicy[key], constants.ISPECS_PARAMETER_TYPES, |
|
190 |
allowed_values=[constants.VALUE_DEFAULT]) |
|
191 |
|
|
162 | 192 |
op = opcodes.OpGroupSetParams(group_name=args[0], |
163 | 193 |
ndparams=opts.ndparams, |
164 | 194 |
alloc_policy=opts.alloc_policy, |
165 | 195 |
hv_state=hv_state, |
166 | 196 |
disk_state=disk_state, |
167 |
diskparams=diskparams) |
|
197 |
diskparams=diskparams, |
|
198 |
ipolicy=ipolicy) |
|
199 |
|
|
168 | 200 |
result = SubmitOrSend(op, opts) |
169 | 201 |
|
170 | 202 |
if result: |
... | ... | |
266 | 298 |
"modify": ( |
267 | 299 |
SetGroupParams, ARGS_ONE_GROUP, |
268 | 300 |
[DRY_RUN_OPT, SUBMIT_OPT, ALLOC_POLICY_OPT, NODE_PARAMS_OPT, HV_STATE_OPT, |
269 |
DISK_STATE_OPT, DISK_PARAMS_OPT], |
|
301 |
DISK_STATE_OPT, DISK_PARAMS_OPT] + INSTANCE_POLICY_OPTS,
|
|
270 | 302 |
"<group_name>", "Alters the parameters of a node group"), |
271 | 303 |
"remove": ( |
272 | 304 |
RemoveGroup, ARGS_ONE_GROUP, [DRY_RUN_OPT], |
Also available in: Unified diff