Revision 60154921

b/autotools/build-rpc
40 40
_SINGLE = "single-node"
41 41
_MULTI = "multi-node"
42 42

  
43
#: Expected length of a rpc definition
44
_RPC_DEF_LEN = 7
45

  
43 46

  
44 47
def _WritePreamble(sw):
45 48
  """Writes a preamble for the RPC wrapper output.
......
117 120
    sw.Write("_CALLS = rpc_defs.CALLS[%r]", clsname)
118 121
    sw.Write("")
119 122

  
120
    for (name, kind, timeout, args, _, desc) in calls:
123
    for v in calls:
124
      if len(v) != _RPC_DEF_LEN:
125
        raise ValueError("Procedure %s has only %d elements, expected %d" %
126
                         (v[0], len(v), _RPC_DEF_LEN))
127

  
128
    for (name, kind, timeout, args, _, _, desc) in calls:
121 129
      funcargs = ["self"]
122 130

  
123 131
      if kind == _SINGLE:
b/lib/rpc.py
434 434
    """Entry point for automatically generated RPC wrappers.
435 435

  
436 436
    """
437
    (procedure, _, timeout, argdefs, postproc_fn, _) = cdef
437
    (procedure, _, timeout, argdefs, _, postproc_fn, _) = cdef
438 438

  
439 439
    if callable(timeout):
440 440
      read_timeout = timeout(args)
b/lib/rpc_defs.py
32 32
    - Argument kind used for encoding/decoding
33 33
    - Description for docstring (can be C{None})
34 34

  
35
  - Custom body encoder (e.g. for preparing per-node bodies)
35 36
  - Return value wrapper (e.g. for deserializing into L{objects}-based objects)
36 37
  - Short call description for docstring
37 38

  
......
157 158
_FILE_STORAGE_CALLS = [
158 159
  ("file_storage_dir_create", SINGLE, TMO_FAST, [
159 160
    ("file_storage_dir", None, "File storage directory"),
160
    ], None, "Create the given file storage directory"),
161
    ], None, None, "Create the given file storage directory"),
161 162
  ("file_storage_dir_remove", SINGLE, TMO_FAST, [
162 163
    ("file_storage_dir", None, "File storage directory"),
163
    ], None, "Remove the given file storage directory"),
164
    ], None, None, "Remove the given file storage directory"),
164 165
  ("file_storage_dir_rename", SINGLE, TMO_FAST, [
165 166
    ("old_file_storage_dir", None, "Old name"),
166 167
    ("new_file_storage_dir", None, "New name"),
167
    ], None, "Rename file storage directory"),
168
    ], None, None, "Rename file storage directory"),
168 169
  ]
169 170

  
170 171
_STORAGE_CALLS = [
......
173 174
    ("su_args", None, None),
174 175
    ("name", None, None),
175 176
    ("fields", None, None),
176
    ], None, "Get list of storage units"),
177
    ], None, None, "Get list of storage units"),
177 178
  ("storage_modify", SINGLE, TMO_NORMAL, [
178 179
    ("su_name", None, None),
179 180
    ("su_args", None, None),
180 181
    ("name", None, None),
181 182
    ("changes", None, None),
182
    ], None, "Modify a storage unit"),
183
    ], None, None, "Modify a storage unit"),
183 184
  ("storage_execute", SINGLE, TMO_NORMAL, [
184 185
    ("su_name", None, None),
185 186
    ("su_args", None, None),
186 187
    ("name", None, None),
187 188
    ("op", None, None),
188
    ], None, "Executes an operation on a storage unit"),
189
    ], None, None, "Executes an operation on a storage unit"),
189 190
  ]
190 191

  
191 192
_INSTANCE_CALLS = [
192 193
  ("instance_info", SINGLE, TMO_URGENT, [
193 194
    ("instance", None, "Instance name"),
194 195
    ("hname", None, "Hypervisor type"),
195
    ], None, "Returns information about a single instance"),
196
    ], None, None, "Returns information about a single instance"),
196 197
  ("all_instances_info", MULTI, TMO_URGENT, [
197 198
    ("hypervisor_list", None, "Hypervisors to query for instances"),
198
    ], None, "Returns information about all instances on the given nodes"),
199
    ], None, None,
200
   "Returns information about all instances on the given nodes"),
199 201
  ("instance_list", MULTI, TMO_URGENT, [
200 202
    ("hypervisor_list", None, "Hypervisors to query for instances"),
201
    ], None, "Returns the list of running instances on the given nodes"),
203
    ], None, None, "Returns the list of running instances on the given nodes"),
202 204
  ("instance_reboot", SINGLE, TMO_NORMAL, [
203 205
    ("inst", ED_INST_DICT, "Instance object"),
204 206
    ("reboot_type", None, None),
205 207
    ("shutdown_timeout", None, None),
206
    ], None, "Returns the list of running instances on the given nodes"),
208
    ], None, None, "Returns the list of running instances on the given nodes"),
207 209
  ("instance_shutdown", SINGLE, TMO_NORMAL, [
208 210
    ("instance", ED_INST_DICT, "Instance object"),
209 211
    ("timeout", None, None),
210
    ], None, "Stops an instance"),
212
    ], None, None, "Stops an instance"),
211 213
  ("instance_run_rename", SINGLE, TMO_SLOW, [
212 214
    ("instance", ED_INST_DICT, "Instance object"),
213 215
    ("old_name", None, None),
214 216
    ("debug", None, None),
215
    ], None, "Run the OS rename script for an instance"),
217
    ], None, None, "Run the OS rename script for an instance"),
216 218
  ("instance_migratable", SINGLE, TMO_NORMAL, [
217 219
    ("instance", ED_INST_DICT, "Instance object"),
218
    ], None, "Checks whether the given instance can be migrated"),
220
    ], None, None, "Checks whether the given instance can be migrated"),
219 221
  ("migration_info", SINGLE, TMO_NORMAL, [
220 222
    ("instance", ED_INST_DICT, "Instance object"),
221
    ], None,
223
    ], None, None,
222 224
    "Gather the information necessary to prepare an instance migration"),
223 225
  ("accept_instance", SINGLE, TMO_NORMAL, [
224 226
    ("instance", ED_INST_DICT, "Instance object"),
225 227
    ("info", None, "Result for the call_migration_info call"),
226 228
    ("target", None, "Target hostname (usually an IP address)"),
227
    ], None, "Prepare a node to accept an instance"),
229
    ], None, None, "Prepare a node to accept an instance"),
228 230
  ("instance_finalize_migration_dst", SINGLE, TMO_NORMAL, [
229 231
    ("instance", ED_INST_DICT, "Instance object"),
230 232
    ("info", None, "Result for the call_migration_info call"),
231 233
    ("success", None, "Whether the migration was a success or failure"),
232
    ], None, "Finalize any target-node migration specific operation"),
234
    ], None, None, "Finalize any target-node migration specific operation"),
233 235
  ("instance_migrate", SINGLE, TMO_SLOW, [
234 236
    ("instance", ED_INST_DICT, "Instance object"),
235 237
    ("target", None, "Target node name"),
236 238
    ("live", None, "Whether the migration should be done live or not"),
237
    ], None, "Migrate an instance"),
239
    ], None, None, "Migrate an instance"),
238 240
  ("instance_finalize_migration_src", SINGLE, TMO_SLOW, [
239 241
    ("instance", ED_INST_DICT, "Instance object"),
240 242
    ("success", None, "Whether the migration succeeded or not"),
241 243
    ("live", None, "Whether the user requested a live migration or not"),
242
    ], None, "Finalize the instance migration on the source node"),
244
    ], None, None, "Finalize the instance migration on the source node"),
243 245
  ("instance_get_migration_status", SINGLE, TMO_SLOW, [
244 246
    ("instance", ED_INST_DICT, "Instance object"),
245
    ], _MigrationStatusPostProc, "Report migration status"),
247
    ], None, _MigrationStatusPostProc, "Report migration status"),
246 248
  ("instance_start", SINGLE, TMO_NORMAL, [
247 249
    ("instance_hvp_bep", ED_INST_DICT_HVP_BEP, None),
248 250
    ("startup_paused", None, None),
249
    ], None, "Starts an instance"),
251
    ], None, None, "Starts an instance"),
250 252
  ("instance_os_add", SINGLE, TMO_1DAY, [
251 253
    ("instance_osp", ED_INST_DICT_OSP, None),
252 254
    ("reinstall", None, None),
253 255
    ("debug", None, None),
254
    ], None, "Starts an instance"),
256
    ], None, None, "Starts an instance"),
255 257
  ]
256 258

  
257 259
_IMPEXP_CALLS = [
......
260 262
    ("instance", ED_INST_DICT, None),
261 263
    ("component", None, None),
262 264
    ("dest", ED_IMPEXP_IO, "Import destination"),
263
    ], None, "Starts an import daemon"),
265
    ], None, None, "Starts an import daemon"),
264 266
  ("export_start", SINGLE, TMO_NORMAL, [
265 267
    ("opts", ED_OBJECT_DICT, None),
266 268
    ("host", None, None),
......
268 270
    ("instance", ED_INST_DICT, None),
269 271
    ("component", None, None),
270 272
    ("source", ED_IMPEXP_IO, "Export source"),
271
    ], None, "Starts an export daemon"),
273
    ], None, None, "Starts an export daemon"),
272 274
  ("impexp_status", SINGLE, TMO_FAST, [
273 275
    ("names", None, "Import/export names"),
274
    ], _ImpExpStatusPostProc, "Gets the status of an import or export"),
276
    ], None, _ImpExpStatusPostProc, "Gets the status of an import or export"),
275 277
  ("impexp_abort", SINGLE, TMO_NORMAL, [
276 278
    ("name", None, "Import/export name"),
277
    ], None, "Aborts an import or export"),
279
    ], None, None, "Aborts an import or export"),
278 280
  ("impexp_cleanup", SINGLE, TMO_NORMAL, [
279 281
    ("name", None, "Import/export name"),
280
    ], None, "Cleans up after an import or export"),
282
    ], None, None, "Cleans up after an import or export"),
281 283
  ("export_info", SINGLE, TMO_FAST, [
282 284
    ("path", None, None),
283
    ], None, "Queries the export information in a given path"),
285
    ], None, None, "Queries the export information in a given path"),
284 286
  ("finalize_export", SINGLE, TMO_NORMAL, [
285 287
    ("instance", ED_INST_DICT, None),
286 288
    ("snap_disks", ED_FINALIZE_EXPORT_DISKS, None),
287
    ], None, "Request the completion of an export operation"),
288
  ("export_list", MULTI, TMO_FAST, [], None, "Gets the stored exports list"),
289
    ], None, None, "Request the completion of an export operation"),
290
  ("export_list", MULTI, TMO_FAST, [], None, None,
291
   "Gets the stored exports list"),
289 292
  ("export_remove", SINGLE, TMO_FAST, [
290 293
    ("export", None, None),
291
    ], None, "Requests removal of a given export"),
294
    ], None, None, "Requests removal of a given export"),
292 295
  ]
293 296

  
294 297
_X509_CALLS = [
295 298
  ("x509_cert_create", SINGLE, TMO_NORMAL, [
296 299
    ("validity", None, "Validity in seconds"),
297
    ], None, "Creates a new X509 certificate for SSL/TLS"),
300
    ], None, None, "Creates a new X509 certificate for SSL/TLS"),
298 301
  ("x509_cert_remove", SINGLE, TMO_NORMAL, [
299 302
    ("name", None, "Certificate name"),
300
    ], None, "Removes a X509 certificate"),
303
    ], None, None, "Removes a X509 certificate"),
301 304
  ]
302 305

  
303 306
_BLOCKDEV_CALLS = [
304 307
  ("bdev_sizes", MULTI, TMO_URGENT, [
305 308
    ("devices", None, None),
306
    ], None, "Gets the sizes of requested block devices present on a node"),
309
    ], None, None,
310
   "Gets the sizes of requested block devices present on a node"),
307 311
  ("blockdev_create", SINGLE, TMO_NORMAL, [
308 312
    ("bdev", ED_OBJECT_DICT, None),
309 313
    ("size", None, None),
310 314
    ("owner", None, None),
311 315
    ("on_primary", None, None),
312 316
    ("info", None, None),
313
    ], None, "Request creation of a given block device"),
317
    ], None, None, "Request creation of a given block device"),
314 318
  ("blockdev_wipe", SINGLE, TMO_SLOW, [
315 319
    ("bdev", ED_OBJECT_DICT, None),
316 320
    ("offset", None, None),
317 321
    ("size", None, None),
318
    ], None,
322
    ], None, None,
319 323
    "Request wipe at given offset with given size of a block device"),
320 324
  ("blockdev_remove", SINGLE, TMO_NORMAL, [
321 325
    ("bdev", ED_OBJECT_DICT, None),
322
    ], None, "Request removal of a given block device"),
326
    ], None, None, "Request removal of a given block device"),
323 327
  ("blockdev_pause_resume_sync", SINGLE, TMO_NORMAL, [
324 328
    ("disks", ED_OBJECT_DICT_LIST, None),
325 329
    ("pause", None, None),
326
    ], None, "Request a pause/resume of given block device"),
330
    ], None, None, "Request a pause/resume of given block device"),
327 331
  ("blockdev_assemble", SINGLE, TMO_NORMAL, [
328 332
    ("disk", ED_OBJECT_DICT, None),
329 333
    ("owner", None, None),
330 334
    ("on_primary", None, None),
331 335
    ("idx", None, None),
332
    ], None, "Request assembling of a given block device"),
336
    ], None, None, "Request assembling of a given block device"),
333 337
  ("blockdev_shutdown", SINGLE, TMO_NORMAL, [
334 338
    ("disk", ED_OBJECT_DICT, None),
335
    ], None, "Request shutdown of a given block device"),
339
    ], None, None, "Request shutdown of a given block device"),
336 340
  ("blockdev_addchildren", SINGLE, TMO_NORMAL, [
337 341
    ("bdev", ED_OBJECT_DICT, None),
338 342
    ("ndevs", ED_OBJECT_DICT_LIST, None),
339
    ], None, "Request adding a list of children to a (mirroring) device"),
343
    ], None, None,
344
   "Request adding a list of children to a (mirroring) device"),
340 345
  ("blockdev_removechildren", SINGLE, TMO_NORMAL, [
341 346
    ("bdev", ED_OBJECT_DICT, None),
342 347
    ("ndevs", ED_OBJECT_DICT_LIST, None),
343
    ], None, "Request removing a list of children from a (mirroring) device"),
348
    ], None, None,
349
   "Request removing a list of children from a (mirroring) device"),
344 350
  ("blockdev_close", SINGLE, TMO_NORMAL, [
345 351
    ("instance_name", None, None),
346 352
    ("disks", ED_OBJECT_DICT_LIST, None),
347
    ], None, "Closes the given block devices"),
353
    ], None, None, "Closes the given block devices"),
348 354
  ("blockdev_getsize", SINGLE, TMO_NORMAL, [
349 355
    ("disks", ED_OBJECT_DICT_LIST, None),
350
    ], None, "Returns the size of the given disks"),
356
    ], None, None, "Returns the size of the given disks"),
351 357
  ("drbd_disconnect_net", MULTI, TMO_NORMAL, [
352 358
    ("nodes_ip", None, None),
353 359
    ("disks", ED_OBJECT_DICT_LIST, None),
354
    ], None, "Disconnects the network of the given drbd devices"),
360
    ], None, None, "Disconnects the network of the given drbd devices"),
355 361
  ("drbd_attach_net", MULTI, TMO_NORMAL, [
356 362
    ("nodes_ip", None, None),
357 363
    ("disks", ED_OBJECT_DICT_LIST, None),
358 364
    ("instance_name", None, None),
359 365
    ("multimaster", None, None),
360
    ], None, "Connects the given DRBD devices"),
366
    ], None, None, "Connects the given DRBD devices"),
361 367
  ("drbd_wait_sync", MULTI, TMO_SLOW, [
362 368
    ("nodes_ip", None, None),
363 369
    ("disks", ED_OBJECT_DICT_LIST, None),
364
    ], None, "Waits for the synchronization of drbd devices is complete"),
370
    ], None, None,
371
   "Waits for the synchronization of drbd devices is complete"),
365 372
  ("blockdev_grow", SINGLE, TMO_NORMAL, [
366 373
    ("cf_bdev", ED_OBJECT_DICT, None),
367 374
    ("amount", None, None),
368 375
    ("dryrun", None, None),
369
    ], None, "Request a snapshot of the given block device"),
376
    ], None, None, "Request a snapshot of the given block device"),
370 377
  ("blockdev_export", SINGLE, TMO_1DAY, [
371 378
    ("cf_bdev", ED_OBJECT_DICT, None),
372 379
    ("dest_node", None, None),
373 380
    ("dest_path", None, None),
374 381
    ("cluster_name", None, None),
375
    ], None, "Export a given disk to another node"),
382
    ], None, None, "Export a given disk to another node"),
376 383
  ("blockdev_snapshot", SINGLE, TMO_NORMAL, [
377 384
    ("cf_bdev", ED_OBJECT_DICT, None),
378
    ], None, "Export a given disk to another node"),
385
    ], None, None, "Export a given disk to another node"),
379 386
  ("blockdev_rename", SINGLE, TMO_NORMAL, [
380 387
    ("devlist", ED_BLOCKDEV_RENAME, None),
381
    ], None, "Request rename of the given block devices"),
388
    ], None, None, "Request rename of the given block devices"),
382 389
  ("blockdev_find", SINGLE, TMO_NORMAL, [
383 390
    ("disk", ED_OBJECT_DICT, None),
384
    ], _BlockdevFindPostProc,
391
    ], None, _BlockdevFindPostProc,
385 392
    "Request identification of a given block device"),
386 393
  ("blockdev_getmirrorstatus", SINGLE, TMO_NORMAL, [
387 394
    ("disks", ED_OBJECT_DICT_LIST, None),
388
    ], _BlockdevGetMirrorStatusPostProc,
395
    ], None, _BlockdevGetMirrorStatusPostProc,
389 396
    "Request status of a (mirroring) device"),
390 397
  ("blockdev_getmirrorstatus_multi", MULTI, TMO_NORMAL, [
391 398
    ("node_disks", ED_NODE_TO_DISK_DICT, None),
392
    ], _BlockdevGetMirrorStatusMultiPostProc,
399
    ], None, _BlockdevGetMirrorStatusMultiPostProc,
393 400
    "Request status of (mirroring) devices from multiple nodes"),
394 401
  ]
395 402

  
396 403
_OS_CALLS = [
397
  ("os_diagnose", MULTI, TMO_FAST, [], None,
404
  ("os_diagnose", MULTI, TMO_FAST, [], None, None,
398 405
   "Request a diagnose of OS definitions"),
399 406
  ("os_validate", MULTI, TMO_FAST, [
400 407
    ("required", None, None),
401 408
    ("name", None, None),
402 409
    ("checks", None, None),
403 410
    ("params", None, None),
404
    ], None, "Run a validation routine for a given OS"),
411
    ], None, None, "Run a validation routine for a given OS"),
405 412
  ("os_get", SINGLE, TMO_FAST, [
406 413
    ("name", None, None),
407
    ], _OsGetPostProc, "Returns an OS definition"),
414
    ], None, _OsGetPostProc, "Returns an OS definition"),
408 415
  ]
409 416

  
410 417
_NODE_CALLS = [
411 418
  ("node_has_ip_address", SINGLE, TMO_FAST, [
412 419
    ("address", None, "IP address"),
413
    ], None, "Checks if a node has the given IP address"),
420
    ], None, None, "Checks if a node has the given IP address"),
414 421
  ("node_info", MULTI, TMO_URGENT, [
415 422
    ("vg_names", None,
416 423
     "Names of the volume groups to ask for disk space information"),
417 424
    ("hv_names", None,
418 425
     "Names of the hypervisors to ask for node information"),
419
    ], None, "Return node information"),
426
    ], None, None, "Return node information"),
420 427
  ("node_verify", MULTI, TMO_NORMAL, [
421 428
    ("checkdict", None, None),
422 429
    ("cluster_name", None, None),
423
    ], None, "Request verification of given parameters"),
424
  ("node_volumes", MULTI, TMO_FAST, [], None, "Gets all volumes on node(s)"),
425
  ("node_demote_from_mc", SINGLE, TMO_FAST, [], None,
430
    ], None, None, "Request verification of given parameters"),
431
  ("node_volumes", MULTI, TMO_FAST, [], None, None,
432
   "Gets all volumes on node(s)"),
433
  ("node_demote_from_mc", SINGLE, TMO_FAST, [], None, None,
426 434
   "Demote a node from the master candidate role"),
427 435
  ("node_powercycle", SINGLE, TMO_NORMAL, [
428 436
    ("hypervisor", None, "Hypervisor type"),
429
    ], None, "Tries to powercycle a node"),
437
    ], None, None, "Tries to powercycle a node"),
430 438
  ]
431 439

  
432 440
_MISC_CALLS = [
433 441
  ("lv_list", MULTI, TMO_URGENT, [
434 442
    ("vg_name", None, None),
435
    ], None, "Gets the logical volumes present in a given volume group"),
436
  ("vg_list", MULTI, TMO_URGENT, [], None, "Gets the volume group list"),
443
    ], None, None, "Gets the logical volumes present in a given volume group"),
444
  ("vg_list", MULTI, TMO_URGENT, [], None, None, "Gets the volume group list"),
437 445
  ("bridges_exist", SINGLE, TMO_URGENT, [
438 446
    ("bridges_list", None, "Bridges which must be present on remote node"),
439
    ], None, "Checks if a node has all the bridges given"),
447
    ], None, None, "Checks if a node has all the bridges given"),
440 448
  ("etc_hosts_modify", SINGLE, TMO_NORMAL, [
441 449
    ("mode", None,
442 450
     "Mode to operate; currently L{constants.ETC_HOSTS_ADD} or"
443 451
     " L{constants.ETC_HOSTS_REMOVE}"),
444 452
    ("name", None, "Hostname to be modified"),
445 453
    ("ip", None, "IP address (L{constants.ETC_HOSTS_ADD} only)"),
446
    ], None, "Modify hosts file with name"),
447
  ("drbd_helper", MULTI, TMO_URGENT, [], None, "Gets DRBD helper"),
454
    ], None, None, "Modify hosts file with name"),
455
  ("drbd_helper", MULTI, TMO_URGENT, [], None, None, "Gets DRBD helper"),
448 456
  ("run_oob", SINGLE, TMO_NORMAL, [
449 457
    ("oob_program", None, None),
450 458
    ("command", None, None),
451 459
    ("remote_node", None, None),
452 460
    ("timeout", None, None),
453
    ], None, "Runs out-of-band command"),
461
    ], None, None, "Runs out-of-band command"),
454 462
  ("hooks_runner", MULTI, TMO_NORMAL, [
455 463
    ("hpath", None, None),
456 464
    ("phase", None, None),
457 465
    ("env", None, None),
458
    ], None, "Call the hooks runner"),
466
    ], None, None, "Call the hooks runner"),
459 467
  ("iallocator_runner", SINGLE, TMO_NORMAL, [
460 468
    ("name", None, "Iallocator name"),
461 469
    ("idata", None, "JSON-encoded input string"),
462
    ], None, "Call an iallocator on a remote node"),
470
    ], None, None, "Call an iallocator on a remote node"),
463 471
  ("test_delay", MULTI, _TestDelayTimeout, [
464 472
    ("duration", None, None),
465
    ], None, "Sleep for a fixed time on given node(s)"),
473
    ], None, None, "Sleep for a fixed time on given node(s)"),
466 474
  ("hypervisor_validate_params", MULTI, TMO_NORMAL, [
467 475
    ("hvname", None, "Hypervisor name"),
468 476
    ("hvfull", None, "Parameters to be validated"),
469
    ], None, "Validate hypervisor params"),
477
    ], None, None, "Validate hypervisor params"),
470 478
  ]
471 479

  
472 480
CALLS = {
......
478 486
    ("jobqueue_update", MULTI, TMO_URGENT, [
479 487
      ("file_name", None, None),
480 488
      ("content", ED_COMPRESS, None),
481
      ], None, "Update job queue file"),
482
    ("jobqueue_purge", SINGLE, TMO_NORMAL, [], None, "Purge job queue"),
489
      ], None, None, "Update job queue file"),
490
    ("jobqueue_purge", SINGLE, TMO_NORMAL, [], None, None, "Purge job queue"),
483 491
    ("jobqueue_rename", MULTI, TMO_URGENT, [
484 492
      ("rename", None, None),
485
      ], None, "Rename job queue file"),
493
      ], None, None, "Rename job queue file"),
486 494
    ]),
487 495
  "RpcClientBootstrap": _Prepare([
488 496
    ("node_start_master_daemons", SINGLE, TMO_FAST, [
489 497
      ("no_voting", None, None),
490
      ], None, "Starts master daemons on a node"),
498
      ], None, None, "Starts master daemons on a node"),
491 499
    ("node_activate_master_ip", SINGLE, TMO_FAST, [
492 500
      ("master_params", ED_OBJECT_DICT, "Network parameters of the master"),
493 501
      ("use_external_mip_script", None,
494 502
       "Whether to use the user-provided master IP address setup script"),
495
      ], None,
503
      ], None, None,
496 504
      "Activates master IP on a node"),
497
    ("node_stop_master", SINGLE, TMO_FAST, [], None,
505
    ("node_stop_master", SINGLE, TMO_FAST, [], None, None,
498 506
     "Deactivates master IP and stops master daemons on a node"),
499 507
    ("node_deactivate_master_ip", SINGLE, TMO_FAST, [
500 508
      ("master_params", ED_OBJECT_DICT, "Network parameters of the master"),
501 509
      ("use_external_mip_script", None,
502 510
       "Whether to use the user-provided master IP address setup script"),
503
      ], None,
511
      ], None, None,
504 512
     "Deactivates master IP on a node"),
505 513
    ("node_change_master_netmask", SINGLE, TMO_FAST, [
506 514
      ("old_netmask", None, "The old value of the netmask"),
507 515
      ("netmask", None, "The new value of the netmask"),
508 516
      ("master_ip", None, "The master IP"),
509 517
      ("master_netdev", None, "The master network device"),
510
      ], None, "Change master IP netmask"),
518
      ], None, None, "Change master IP netmask"),
511 519
    ("node_leave_cluster", SINGLE, TMO_NORMAL, [
512 520
      ("modify_ssh_setup", None, None),
513
      ], None, "Requests a node to clean the cluster information it has"),
514
    ("master_info", MULTI, TMO_URGENT, [], None, "Query master info"),
515
    ("version", MULTI, TMO_URGENT, [], None, "Query node version"),
521
      ], None, None,
522
     "Requests a node to clean the cluster information it has"),
523
    ("master_info", MULTI, TMO_URGENT, [], None, None, "Query master info"),
524
    ("version", MULTI, TMO_URGENT, [], None, None, "Query node version"),
516 525
    ]),
517 526
  "RpcClientConfig": _Prepare([
518 527
    ("upload_file", MULTI, TMO_NORMAL, [
519 528
      ("file_name", ED_FILE_DETAILS, None),
520
      ], None, "Upload a file"),
529
      ], None, None, "Upload a file"),
521 530
    ("write_ssconf_files", MULTI, TMO_NORMAL, [
522 531
      ("values", None, None),
523
      ], None, "Write ssconf files"),
532
      ], None, None, "Write ssconf files"),
524 533
    ]),
525 534
  }

Also available in: Unified diff