Revision 5d28cb6f test/ganeti.query_unittest.py

b/test/ganeti.query_unittest.py
539 539
        nics=[objects.NIC(ip="192.0.2.99", nicparams={})]),
540 540
      ]
541 541

  
542
    iqd = query.InstanceQueryData(instances, cluster, None, [], [], {}, set())
542
    iqd = query.InstanceQueryData(instances, cluster, None, [], [], {},
543
                                  set(), {})
543 544
    self.assertEqual(q.Query(iqd),
544 545
      [[(constants.RS_NORMAL, "inst1"),
545 546
        (constants.RS_NORMAL, 128),
......
567 568

  
568 569
    q = self._Create(selected)
569 570
    self.assertEqual(q.RequestedData(),
570
                     set([query.IQ_CONFIG, query.IQ_LIVE, query.IQ_DISKUSAGE]))
571
                     set([query.IQ_CONFIG, query.IQ_LIVE, query.IQ_DISKUSAGE,
572
                          query.IQ_CONSOLE]))
571 573

  
572 574
    cluster = objects.Cluster(cluster_name="testcluster",
573 575
      hvparams=constants.HVC_DEFAULTS,
......
671 673

  
672 674
    assert not utils.FindDuplicates(inst.name for inst in instances)
673 675

  
676
    instbyname = dict((inst.name, inst) for inst in instances)
677

  
674 678
    disk_usage = dict((inst.name,
675 679
                       cmdlib._ComputeDiskSize(inst.disk_template,
676 680
                                               [{"size": disk.size}
......
696 700
      }
697 701
    wrongnode_inst = set("inst2")
698 702

  
703
    consinfo = dict((inst.name, None) for inst in instances)
704
    consinfo["inst7"] = \
705
      objects.InstanceConsole(instance="inst7", kind=constants.CONS_SSH,
706
                              host=instbyname["inst7"].primary_node,
707
                              user=constants.GANETI_RUNAS,
708
                              command=["hostname"]).ToDict()
709

  
699 710
    iqd = query.InstanceQueryData(instances, cluster, disk_usage,
700 711
                                  offline_nodes, bad_nodes, live_data,
701
                                  wrongnode_inst)
712
                                  wrongnode_inst, consinfo)
702 713
    result = q.Query(iqd)
703 714
    self.assertEqual(len(result), len(instances))
704 715
    self.assert_(compat.all(len(row) == len(selected)
......
792 803
          exp = (constants.RS_NORMAL, getattr(inst, field))
793 804
        self.assertEqual(row[fieldidx[field]], exp)
794 805

  
806
      self._CheckInstanceConsole(inst, row[fieldidx["console"]])
807

  
795 808
    # Ensure all possible status' have been tested
796 809
    self.assertEqual(tested_status,
797 810
                     set(["ERROR_nodeoffline", "ERROR_nodedown",
798 811
                          "running", "ERROR_up", "ERROR_down",
799 812
                          "ADMIN_down"]))
800 813

  
814
  def _CheckInstanceConsole(self, instance, (status, consdata)):
815
    if instance.name == "inst7":
816
      self.assertEqual(status, constants.RS_NORMAL)
817
      console = objects.InstanceConsole.FromDict(consdata)
818
      self.assertTrue(console.Validate())
819
      self.assertEqual(console.host, instance.primary_node)
820
    else:
821
      self.assertEqual(status, constants.RS_UNAVAIL)
822

  
801 823

  
802 824
class TestGroupQuery(unittest.TestCase):
803 825

  

Also available in: Unified diff