Revision d8b7ff5f

b/test/ganeti.query_unittest.py
761 761
                          "ADMIN_down"]))
762 762

  
763 763

  
764
class TestGroupQuery(unittest.TestCase):
765

  
766
  def setUp(self):
767
    self.groups = [
768
      objects.NodeGroup(name="default",
769
                        uuid="c0e89160-18e7-11e0-a46e-001d0904baeb",
770
                        alloc_policy=constants.ALLOC_POLICY_PREFERRED),
771
      objects.NodeGroup(name="restricted",
772
                        uuid="d2a40a74-18e7-11e0-9143-001d0904baeb",
773
                        alloc_policy=constants.ALLOC_POLICY_LAST_RESORT),
774
      ]
775

  
776
  def _Create(self, selected):
777
    return query.Query(query.GROUP_FIELDS, selected)
778

  
779
  def testSimple(self):
780
    q = self._Create(["name", "uuid", "alloc_policy"])
781
    gqd = query.GroupQueryData(self.groups, None, None)
782

  
783
    self.assertEqual(q.RequestedData(), set([query.GQ_CONFIG]))
784

  
785
    self.assertEqual(q.Query(gqd),
786
      [[(constants.QRFS_NORMAL, "default"),
787
        (constants.QRFS_NORMAL, "c0e89160-18e7-11e0-a46e-001d0904baeb"),
788
        (constants.QRFS_NORMAL, constants.ALLOC_POLICY_PREFERRED)
789
        ],
790
       [(constants.QRFS_NORMAL, "restricted"),
791
        (constants.QRFS_NORMAL, "d2a40a74-18e7-11e0-9143-001d0904baeb"),
792
        (constants.QRFS_NORMAL, constants.ALLOC_POLICY_LAST_RESORT)
793
        ],
794
       ])
795

  
796
  def testNodes(self):
797
    groups_to_nodes = {
798
      "c0e89160-18e7-11e0-a46e-001d0904baeb": ["node1", "node2"],
799
      "d2a40a74-18e7-11e0-9143-001d0904baeb": ["node1", "node10", "node9"],
800
      }
801

  
802
    q = self._Create(["name", "node_cnt", "node_list"])
803
    gqd = query.GroupQueryData(self.groups, groups_to_nodes, None)
804

  
805
    self.assertEqual(q.RequestedData(), set([query.GQ_CONFIG, query.GQ_NODE]))
806

  
807
    self.assertEqual(q.Query(gqd),
808
                     [[(constants.QRFS_NORMAL, "default"),
809
                       (constants.QRFS_NORMAL, 2),
810
                       (constants.QRFS_NORMAL, ["node1", "node2"]),
811
                       ],
812
                      [(constants.QRFS_NORMAL, "restricted"),
813
                       (constants.QRFS_NORMAL, 3),
814
                       (constants.QRFS_NORMAL, ["node1", "node9", "node10"]),
815
                       ],
816
                      ])
817

  
818
  def testInstances(self):
819
    groups_to_instances = {
820
      "c0e89160-18e7-11e0-a46e-001d0904baeb": ["inst1", "inst2"],
821
      "d2a40a74-18e7-11e0-9143-001d0904baeb": ["inst1", "inst10", "inst9"],
822
      }
823

  
824
    q = self._Create(["pinst_cnt", "pinst_list"])
825
    gqd = query.GroupQueryData(self.groups, None, groups_to_instances)
826

  
827
    self.assertEqual(q.RequestedData(), set([query.GQ_INST]))
828

  
829
    self.assertEqual(q.Query(gqd),
830
                     [[(constants.QRFS_NORMAL, 2),
831
                       (constants.QRFS_NORMAL, ["inst1", "inst2"]),
832
                       ],
833
                      [(constants.QRFS_NORMAL, 3),
834
                       (constants.QRFS_NORMAL, ["inst1", "inst9", "inst10"]),
835
                       ],
836
                      ])
837

  
838

  
764 839
class TestQueryFields(unittest.TestCase):
765 840
  def testAllFields(self):
766 841
    for fielddefs in query.ALL_FIELD_LISTS:

Also available in: Unified diff