Revision 25348212 lib/rpc.py

b/lib/rpc.py
213 213
    idict["beparams"] = cluster.FillBE(instance)
214 214
    return idict
215 215

  
216
  def _ConnectList(self, client, node_list):
217
    """Helper for computing node addresses.
218

  
219
    @type client: L{Client}
220
    @param client: a C{Client} instance
221
    @type node_list: list
222
    @param node_list: the node list we should connect
223

  
224
    """
225
    all_nodes = self._cfg.GetAllNodesInfo()
226
    addr_list = []
227
    for node in node_list:
228
      if node in all_nodes:
229
        val = all_nodes[node].primary_ip
230
      else:
231
        val = None
232
      addr_list.append(val)
233
    client.ConnectList(node_list, address_list=addr_list)
234

  
235
  def _ConnectNode(self, client, node):
236
    """Helper for computing one node's address.
237

  
238
    @type client: L{Client}
239
    @param client: a C{Client} instance
240
    @type node: str
241
    @param node: the node we should connect
242

  
243
    """
244
    node_info = self._cfg.GetNodeInfo(node)
245
    if node_info is not None:
246
      addr = node_info.primary_ip
247
    else:
248
      addr = None
249
    client.ConnectNode(node, address=addr)
250

  
216 251
  def call_volume_list(self, node_list, vg_name):
217 252
    """Gets the logical volumes present in a given volume group.
218 253

  
......
220 255

  
221 256
    """
222 257
    c = Client("volume_list", [vg_name])
223
    c.ConnectList(node_list)
258
    self._ConnectList(c, node_list)
224 259
    c.Run()
225 260
    return c.GetResults()
226 261

  
......
231 266

  
232 267
    """
233 268
    c = Client("vg_list", [])
234
    c.ConnectList(node_list)
269
    self._ConnectList(c, node_list)
235 270
    c.Run()
236 271
    return c.GetResults()
237 272

  
......
246 281

  
247 282
    """
248 283
    c = Client("bridges_exist", [bridges_list])
249
    c.ConnectNode(node)
284
    self._ConnectNode(c, node)
250 285
    c.Run()
251 286
    return c.GetResults().get(node, False)
252 287

  
......
257 292

  
258 293
    """
259 294
    c = Client("instance_start", [self._InstDict(instance), extra_args])
260
    c.ConnectNode(node)
295
    self._ConnectNode(c, node)
261 296
    c.Run()
262 297
    return c.GetResults().get(node, False)
263 298

  
......
268 303

  
269 304
    """
270 305
    c = Client("instance_shutdown", [self._InstDict(instance)])
271
    c.ConnectNode(node)
306
    self._ConnectNode(c, node)
272 307
    c.Run()
273 308
    return c.GetResults().get(node, False)
274 309

  
......
289 324

  
290 325
    """
291 326
    c = Client("instance_migrate", [self._InstDict(instance), target, live])
292
    c.ConnectNode(node)
327
    self._ConnectNode(c, node)
293 328
    c.Run()
294 329
    return c.GetResults().get(node, False)
295 330

  
......
301 336
    """
302 337
    c = Client("instance_reboot", [self._InstDict(instance),
303 338
                                   reboot_type, extra_args])
304
    c.ConnectNode(node)
339
    self._ConnectNode(c, node)
305 340
    c.Run()
306 341
    return c.GetResults().get(node, False)
307 342

  
......
313 348
    """
314 349
    params = [self._InstDict(inst)]
315 350
    c = Client("instance_os_add", params)
316
    c.ConnectNode(node)
351
    self._ConnectNode(c, node)
317 352
    c.Run()
318 353
    return c.GetResults().get(node, False)
319 354

  
......
325 360
    """
326 361
    params = [self._InstDict(inst), old_name]
327 362
    c = Client("instance_run_rename", params)
328
    c.ConnectNode(node)
363
    self._ConnectNode(c, node)
329 364
    c.Run()
330 365
    return c.GetResults().get(node, False)
331 366

  
......
343 378

  
344 379
    """
345 380
    c = Client("instance_info", [instance, hname])
346
    c.ConnectNode(node)
381
    self._ConnectNode(c, node)
347 382
    c.Run()
348 383
    return c.GetResults().get(node, False)
349 384

  
......
359 394

  
360 395
    """
361 396
    c = Client("all_instances_info", [hypervisor_list])
362
    c.ConnectList(node_list)
397
    self._ConnectList(c, node_list)
363 398
    c.Run()
364 399
    return c.GetResults()
365 400

  
......
375 410

  
376 411
    """
377 412
    c = Client("instance_list", [hypervisor_list])
378
    c.ConnectList(node_list)
413
    self._ConnectList(c, node_list)
379 414
    c.Run()
380 415
    return c.GetResults()
381 416

  
......
388 423
    """
389 424
    c = Client("node_tcp_ping", [source, target, port, timeout,
390 425
                                 live_port_needed])
391
    c.ConnectNode(node)
426
    self._ConnectNode(c, node)
392 427
    c.Run()
393 428
    return c.GetResults().get(node, False)
394 429

  
......
399 434

  
400 435
    """
401 436
    c = Client("node_has_ip_address", [address])
402
    c.ConnectNode(node)
437
    self._ConnectNode(c, node)
403 438
    c.Run()
404 439
    return c.GetResults().get(node, False)
405 440

  
......
422 457

  
423 458
    """
424 459
    c = Client("node_info", [vg_name, hypervisor_type])
425
    c.ConnectList(node_list)
460
    self._ConnectList(c, node_list)
426 461
    c.Run()
427 462
    retux = c.GetResults()
428 463

  
......
450 485
    """
451 486
    params = [dsa, dsapub, rsa, rsapub, ssh, sshpub]
452 487
    c = Client("node_add", params)
453
    c.ConnectNode(node)
488
    self._ConnectNode(c, node)
454 489
    c.Run()
455 490
    return c.GetResults().get(node, False)
456 491

  
......
461 496

  
462 497
    """
463 498
    c = Client("node_verify", [checkdict, cluster_name])
464
    c.ConnectList(node_list)
499
    self._ConnectList(c, node_list)
465 500
    c.Run()
466 501
    return c.GetResults()
467 502

  
......
509 544

  
510 545
    """
511 546
    c = Client("version", [])
512
    c.ConnectList(node_list)
547
    self._ConnectList(c, node_list)
513 548
    c.Run()
514 549
    return c.GetResults()
515 550

  
......
521 556
    """
522 557
    params = [bdev.ToDict(), size, owner, on_primary, info]
523 558
    c = Client("blockdev_create", params)
524
    c.ConnectNode(node)
559
    self._ConnectNode(c, node)
525 560
    c.Run()
526 561
    return c.GetResults().get(node, False)
527 562

  
......
532 567

  
533 568
    """
534 569
    c = Client("blockdev_remove", [bdev.ToDict()])
535
    c.ConnectNode(node)
570
    self._ConnectNode(c, node)
536 571
    c.Run()
537 572
    return c.GetResults().get(node, False)
538 573

  
......
544 579
    """
545 580
    params = [(d.ToDict(), uid) for d, uid in devlist]
546 581
    c = Client("blockdev_rename", params)
547
    c.ConnectNode(node)
582
    self._ConnectNode(c, node)
548 583
    c.Run()
549 584
    return c.GetResults().get(node, False)
550 585

  
......
556 591
    """
557 592
    params = [disk.ToDict(), owner, on_primary]
558 593
    c = Client("blockdev_assemble", params)
559
    c.ConnectNode(node)
594
    self._ConnectNode(c, node)
560 595
    c.Run()
561 596
    return c.GetResults().get(node, False)
562 597

  
......
567 602

  
568 603
    """
569 604
    c = Client("blockdev_shutdown", [disk.ToDict()])
570
    c.ConnectNode(node)
605
    self._ConnectNode(c, node)
571 606
    c.Run()
572 607
    return c.GetResults().get(node, False)
573 608

  
......
579 614
    """
580 615
    params = [bdev.ToDict(), [disk.ToDict() for disk in ndevs]]
581 616
    c = Client("blockdev_addchildren", params)
582
    c.ConnectNode(node)
617
    self._ConnectNode(c, node)
583 618
    c.Run()
584 619
    return c.GetResults().get(node, False)
585 620

  
......
591 626
    """
592 627
    params = [bdev.ToDict(), [disk.ToDict() for disk in ndevs]]
593 628
    c = Client("blockdev_removechildren", params)
594
    c.ConnectNode(node)
629
    self._ConnectNode(c, node)
595 630
    c.Run()
596 631
    return c.GetResults().get(node, False)
597 632

  
......
603 638
    """
604 639
    params = [dsk.ToDict() for dsk in disks]
605 640
    c = Client("blockdev_getmirrorstatus", params)
606
    c.ConnectNode(node)
641
    self._ConnectNode(c, node)
607 642
    c.Run()
608 643
    return c.GetResults().get(node, False)
609 644

  
......
614 649

  
615 650
    """
616 651
    c = Client("blockdev_find", [disk.ToDict()])
617
    c.ConnectNode(node)
652
    self._ConnectNode(c, node)
618 653
    c.Run()
619 654
    return c.GetResults().get(node, False)
620 655

  
......
626 661
    """
627 662
    params = [cf.ToDict() for cf in disks]
628 663
    c = Client("blockdev_close", params)
629
    c.ConnectNode(node)
664
    self._ConnectNode(c, node)
630 665
    c.Run()
631 666
    return c.GetResults().get(node, False)
632 667

  
......
660 695

  
661 696
    """
662 697
    c = Client("os_diagnose", [])
663
    c.ConnectList(node_list)
698
    self._ConnectList(c, node_list)
664 699
    c.Run()
665 700
    result = c.GetResults()
666 701
    new_result = {}
......
679 714

  
680 715
    """
681 716
    c = Client("os_get", [name])
682
    c.ConnectNode(node)
717
    self._ConnectNode(c, node)
683 718
    c.Run()
684 719
    result = c.GetResults().get(node, False)
685 720
    if isinstance(result, dict):
......
699 734
    """
700 735
    params = [hpath, phase, env]
701 736
    c = Client("hooks_runner", params)
702
    c.ConnectList(node_list)
737
    self._ConnectList(c, node_list)
703 738
    c.Run()
704 739
    result = c.GetResults()
705 740
    return result
......
716 751
    """
717 752
    params = [name, idata]
718 753
    c = Client("iallocator_runner", params)
719
    c.ConnectNode(node)
754
    self._ConnectNode(c, node)
720 755
    c.Run()
721 756
    result = c.GetResults().get(node, False)
722 757
    return result
......
728 763

  
729 764
    """
730 765
    c = Client("blockdev_grow", [cf_bdev.ToDict(), amount])
731
    c.ConnectNode(node)
766
    self._ConnectNode(c, node)
732 767
    c.Run()
733 768
    return c.GetResults().get(node, False)
734 769

  
......
739 774

  
740 775
    """
741 776
    c = Client("blockdev_snapshot", [cf_bdev.ToDict()])
742
    c.ConnectNode(node)
777
    self._ConnectNode(c, node)
743 778
    c.Run()
744 779
    return c.GetResults().get(node, False)
745 780

  
......
753 788
    params = [snap_bdev.ToDict(), dest_node,
754 789
              self._InstDict(instance), cluster_name]
755 790
    c = Client("snapshot_export", params)
756
    c.ConnectNode(node)
791
    self._ConnectNode(c, node)
757 792
    c.Run()
758 793
    return c.GetResults().get(node, False)
759 794

  
......
770 805
      flat_disks.append(disk.ToDict())
771 806
    params = [self._InstDict(instance), flat_disks]
772 807
    c = Client("finalize_export", params)
773
    c.ConnectNode(node)
808
    self._ConnectNode(c, node)
774 809
    c.Run()
775 810
    return c.GetResults().get(node, False)
776 811

  
......
781 816

  
782 817
    """
783 818
    c = Client("export_info", [path])
784
    c.ConnectNode(node)
819
    self._ConnectNode(c, node)
785 820
    c.Run()
786 821
    result = c.GetResults().get(node, False)
787 822
    if not result:
......
798 833
    params = [self._InstDict(inst), osdev, swapdev,
799 834
              src_node, src_image, cluster_name]
800 835
    c = Client("instance_os_import", params)
801
    c.ConnectNode(node)
836
    self._ConnectNode(c, node)
802 837
    c.Run()
803 838
    return c.GetResults().get(node, False)
804 839

  
......
809 844

  
810 845
    """
811 846
    c = Client("export_list", [])
812
    c.ConnectList(node_list)
847
    self._ConnectList(c, node_list)
813 848
    c.Run()
814 849
    result = c.GetResults()
815 850
    return result
......
821 856

  
822 857
    """
823 858
    c = Client("export_remove", [export])
824
    c.ConnectNode(node)
859
    self._ConnectNode(c, node)
825 860
    c.Run()
826 861
    return c.GetResults().get(node, False)
827 862

  
......
847 882

  
848 883
    """
849 884
    c = Client("node_volumes", [])
850
    c.ConnectList(node_list)
885
    self._ConnectList(c, node_list)
851 886
    c.Run()
852 887
    return c.GetResults()
853 888

  
......
858 893

  
859 894
    """
860 895
    c = Client("test_delay", [duration])
861
    c.ConnectList(node_list)
896
    self._ConnectList(c, node_list)
862 897
    c.Run()
863 898
    return c.GetResults()
864 899

  
......
869 904

  
870 905
    """
871 906
    c = Client("file_storage_dir_create", [file_storage_dir])
872
    c.ConnectNode(node)
907
    self._ConnectNode(c, node)
873 908
    c.Run()
874 909
    return c.GetResults().get(node, False)
875 910

  
......
880 915

  
881 916
    """
882 917
    c = Client("file_storage_dir_remove", [file_storage_dir])
883
    c.ConnectNode(node)
918
    self._ConnectNode(c, node)
884 919
    c.Run()
885 920
    return c.GetResults().get(node, False)
886 921

  
......
893 928
    """
894 929
    c = Client("file_storage_dir_rename",
895 930
               [old_file_storage_dir, new_file_storage_dir])
896
    c.ConnectNode(node)
931
    self._ConnectNode(c, node)
897 932
    c.Run()
898 933
    return c.GetResults().get(node, False)
899 934

  
......
971 1006
    cluster = self._cfg.GetClusterInfo()
972 1007
    hv_full = cluster.FillDict(cluster.hvparams.get(hvname, {}), hvparams)
973 1008
    c = Client("hypervisor_validate_params", [hvname, hv_full])
974
    c.ConnectList(node_list)
1009
    self._ConnectList(c, node_list)
975 1010
    c.Run()
976 1011
    result = c.GetResults()
977 1012
    return result

Also available in: Unified diff