Revision 5eacbcae test/py/ganeti.cmdlib_unittest.py

b/test/py/ganeti.cmdlib_unittest.py
112 112
    op = OpTest()
113 113
    lu = TestLU(op)
114 114

  
115
    c_i = lambda: common._CheckIAllocatorOrNode(lu, "iallocator", "node")
115
    c_i = lambda: common.CheckIAllocatorOrNode(lu, "iallocator", "node")
116 116

  
117 117
    # Neither node nor iallocator given
118 118
    for n in (None, []):
......
434 434
          assert iallocator._NEVAC_RESULT(alloc_result)
435 435

  
436 436
          lu = _FakeLU()
437
          result = common._LoadNodeEvacResult(lu, alloc_result,
438
                                              early_release, use_nodes)
437
          result = common.LoadNodeEvacResult(lu, alloc_result,
438
                                             early_release, use_nodes)
439 439

  
440 440
          if moved:
441 441
            (_, (info_args, )) = lu.info_log.pop(0)
......
463 463
    assert iallocator._NEVAC_RESULT(alloc_result)
464 464

  
465 465
    lu = _FakeLU()
466
    self.assertRaises(errors.OpExecError, common._LoadNodeEvacResult,
466
    self.assertRaises(errors.OpExecError, common.LoadNodeEvacResult,
467 467
                      lu, alloc_result, False, False)
468 468
    self.assertFalse(lu.info_log)
469 469
    (_, (args, )) = lu.warning_log.pop(0)
......
549 549

  
550 550
class TestHvStateHelper(unittest.TestCase):
551 551
  def testWithoutOpData(self):
552
    self.assertEqual(common._MergeAndVerifyHvState(None, NotImplemented),
552
    self.assertEqual(common.MergeAndVerifyHvState(None, NotImplemented),
553 553
                     None)
554 554

  
555 555
  def testWithoutOldData(self):
......
558 558
        constants.HVST_MEMORY_TOTAL: 4096,
559 559
        },
560 560
      }
561
    self.assertEqual(common._MergeAndVerifyHvState(new, None), new)
561
    self.assertEqual(common.MergeAndVerifyHvState(new, None), new)
562 562

  
563 563
  def testWithWrongHv(self):
564 564
    new = {
......
566 566
        constants.HVST_MEMORY_TOTAL: 4096,
567 567
        },
568 568
      }
569
    self.assertRaises(errors.OpPrereqError, common._MergeAndVerifyHvState,
569
    self.assertRaises(errors.OpPrereqError, common.MergeAndVerifyHvState,
570 570
                      new, None)
571 571

  
572 572
class TestDiskStateHelper(unittest.TestCase):
573 573
  def testWithoutOpData(self):
574
    self.assertEqual(common._MergeAndVerifyDiskState(None, NotImplemented),
574
    self.assertEqual(common.MergeAndVerifyDiskState(None, NotImplemented),
575 575
                     None)
576 576

  
577 577
  def testWithoutOldData(self):
......
582 582
          },
583 583
        },
584 584
      }
585
    self.assertEqual(common._MergeAndVerifyDiskState(new, None), new)
585
    self.assertEqual(common.MergeAndVerifyDiskState(new, None), new)
586 586

  
587 587
  def testWithWrongStorageType(self):
588 588
    new = {
......
592 592
          },
593 593
        },
594 594
      }
595
    self.assertRaises(errors.OpPrereqError, common._MergeAndVerifyDiskState,
595
    self.assertRaises(errors.OpPrereqError, common.MergeAndVerifyDiskState,
596 596
                      new, None)
597 597

  
598 598

  
......
687 687

  
688 688
  def test(self):
689 689
    compute_fn = _ValidateComputeMinMaxSpec
690
    ret = common._ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
691
                                              [1024], 1, constants.DT_PLAIN,
692
                                              _compute_fn=compute_fn)
690
    ret = common.ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
691
                                             [1024], 1, constants.DT_PLAIN,
692
                                             _compute_fn=compute_fn)
693 693
    self.assertEqual(ret, [])
694 694

  
695 695
  def testDiskFull(self):
696 696
    compute_fn = _NoDiskComputeMinMaxSpec
697
    ret = common._ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
698
                                              [1024], 1, constants.DT_PLAIN,
699
                                              _compute_fn=compute_fn)
697
    ret = common.ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
698
                                             [1024], 1, constants.DT_PLAIN,
699
                                             _compute_fn=compute_fn)
700 700
    self.assertEqual(ret, [constants.ISPEC_DISK_COUNT])
701 701

  
702 702
  def testDiskLess(self):
703 703
    compute_fn = _NoDiskComputeMinMaxSpec
704
    ret = common._ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
705
                                              [1024], 1, constants.DT_DISKLESS,
706
                                              _compute_fn=compute_fn)
704
    ret = common.ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
705
                                             [1024], 1, constants.DT_DISKLESS,
706
                                             _compute_fn=compute_fn)
707 707
    self.assertEqual(ret, [])
708 708

  
709 709
  def testWrongTemplates(self):
710 710
    compute_fn = _ValidateComputeMinMaxSpec
711
    ret = common._ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
712
                                              [1024], 1, constants.DT_DRBD8,
713
                                              _compute_fn=compute_fn)
711
    ret = common.ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
712
                                             [1024], 1, constants.DT_DRBD8,
713
                                             _compute_fn=compute_fn)
714 714
    self.assertEqual(len(ret), 1)
715 715
    self.assertTrue("Disk template" in ret[0])
716 716

  
717 717
  def testInvalidArguments(self):
718
    self.assertRaises(AssertionError, common._ComputeIPolicySpecViolation,
718
    self.assertRaises(AssertionError, common.ComputeIPolicySpecViolation,
719 719
                      self._MICRO_IPOL, 1024, 1, 1, 1, [], 1,
720 720
                      constants.DT_PLAIN,)
721 721

  
722 722
  def testInvalidSpec(self):
723 723
    spec = _SpecWrapper([None, False, "foo", None, "bar", None])
724 724
    compute_fn = spec.ComputeMinMaxSpec
725
    ret = common._ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
726
                                              [1024], 1, constants.DT_PLAIN,
727
                                              _compute_fn=compute_fn)
725
    ret = common.ComputeIPolicySpecViolation(self._MICRO_IPOL, 1024, 1, 1, 1,
726
                                             [1024], 1, constants.DT_PLAIN,
727
                                             _compute_fn=compute_fn)
728 728
    self.assertEqual(ret, ["foo", "bar"])
729 729
    self.assertFalse(spec.spec)
730 730

  
......
779 779
      constants.IPOLICY_DTS: [disk_template],
780 780
      }
781 781
    def AssertComputeViolation(ipolicy, violations):
782
      ret = common._ComputeIPolicySpecViolation(ipolicy, mem_size, cpu_count,
783
                                                disk_count, nic_count,
784
                                                disk_sizes, spindle_use,
785
                                                disk_template)
782
      ret = common.ComputeIPolicySpecViolation(ipolicy, mem_size, cpu_count,
783
                                               disk_count, nic_count,
784
                                               disk_sizes, spindle_use,
785
                                               disk_template)
786 786
      self.assertEqual(len(ret), violations)
787 787

  
788 788
    AssertComputeViolation(ipolicy1, 0)
......
847 847
                                disk_template=constants.DT_PLAIN)
848 848
    stub = _StubComputeIPolicySpecViolation(2048, 2, 1, 0, [512], 4,
849 849
                                            constants.DT_PLAIN)
850
    ret = common._ComputeIPolicyInstanceViolation(NotImplemented, instance,
851
                                                  cfg, _compute_fn=stub)
850
    ret = common.ComputeIPolicyInstanceViolation(NotImplemented, instance,
851
                                                 cfg, _compute_fn=stub)
852 852
    self.assertEqual(ret, [])
853 853
    instance2 = objects.Instance(beparams={}, disks=disks, nics=[],
854 854
                                 disk_template=constants.DT_PLAIN)
855
    ret = common._ComputeIPolicyInstanceViolation(NotImplemented, instance2,
856
                                                  cfg, _compute_fn=stub)
855
    ret = common.ComputeIPolicyInstanceViolation(NotImplemented, instance2,
856
                                                 cfg, _compute_fn=stub)
857 857
    self.assertEqual(ret, [])
858 858

  
859 859

  
......
926 926

  
927 927
  def testNoViolation(self):
928 928
    compute_recoder = _CallRecorder(return_value=[])
929
    instance._CheckTargetNodeIPolicy(self.lu, NotImplemented, self.instance,
930
                                     self.target_node, NotImplemented,
931
                                     _compute_fn=compute_recoder)
929
    instance.CheckTargetNodeIPolicy(self.lu, NotImplemented, self.instance,
930
                                    self.target_node, NotImplemented,
931
                                    _compute_fn=compute_recoder)
932 932
    self.assertTrue(compute_recoder.called)
933 933
    self.assertEqual(self.lu.warning_log, [])
934 934

  
935 935
  def testNoIgnore(self):
936 936
    compute_recoder = _CallRecorder(return_value=["mem_size not in range"])
937
    self.assertRaises(errors.OpPrereqError, instance._CheckTargetNodeIPolicy,
937
    self.assertRaises(errors.OpPrereqError, instance.CheckTargetNodeIPolicy,
938 938
                      self.lu, NotImplemented, self.instance,
939 939
                      self.target_node, NotImplemented,
940 940
                      _compute_fn=compute_recoder)
......
943 943

  
944 944
  def testIgnoreViolation(self):
945 945
    compute_recoder = _CallRecorder(return_value=["mem_size not in range"])
946
    instance._CheckTargetNodeIPolicy(self.lu, NotImplemented, self.instance,
946
    instance.CheckTargetNodeIPolicy(self.lu, NotImplemented, self.instance,
947 947
                                     self.target_node, NotImplemented,
948 948
                                     ignore=True, _compute_fn=compute_recoder)
949 949
    self.assertTrue(compute_recoder.called)
......
956 956
  def testEmptyContainer(self):
957 957
    container = []
958 958
    chgdesc = []
959
    instance.ApplyContainerMods("test", container, chgdesc, [], None, None,
959
    instance._ApplyContainerMods("test", container, chgdesc, [], None, None,
960 960
                                None)
961 961
    self.assertEqual(container, [])
962 962
    self.assertEqual(chgdesc, [])
......
964 964
  def testAdd(self):
965 965
    container = []
966 966
    chgdesc = []
967
    mods = instance.PrepareContainerMods([
967
    mods = instance._PrepareContainerMods([
968 968
      (constants.DDM_ADD, -1, "Hello"),
969 969
      (constants.DDM_ADD, -1, "World"),
970 970
      (constants.DDM_ADD, 0, "Start"),
971 971
      (constants.DDM_ADD, -1, "End"),
972 972
      ], None)
973
    instance.ApplyContainerMods("test", container, chgdesc, mods,
973
    instance._ApplyContainerMods("test", container, chgdesc, mods,
974 974
                                None, None, None)
975 975
    self.assertEqual(container, ["Start", "Hello", "World", "End"])
976 976
    self.assertEqual(chgdesc, [])
977 977

  
978
    mods = instance.PrepareContainerMods([
978
    mods = instance._PrepareContainerMods([
979 979
      (constants.DDM_ADD, 0, "zero"),
980 980
      (constants.DDM_ADD, 3, "Added"),
981 981
      (constants.DDM_ADD, 5, "four"),
982 982
      (constants.DDM_ADD, 7, "xyz"),
983 983
      ], None)
984
    instance.ApplyContainerMods("test", container, chgdesc, mods,
984
    instance._ApplyContainerMods("test", container, chgdesc, mods,
985 985
                                None, None, None)
986 986
    self.assertEqual(container,
987 987
                     ["zero", "Start", "Hello", "Added", "World", "four",
......
989 989
    self.assertEqual(chgdesc, [])
990 990

  
991 991
    for idx in [-2, len(container) + 1]:
992
      mods = instance.PrepareContainerMods([
992
      mods = instance._PrepareContainerMods([
993 993
        (constants.DDM_ADD, idx, "error"),
994 994
        ], None)
995
      self.assertRaises(IndexError, instance.ApplyContainerMods,
995
      self.assertRaises(IndexError, instance._ApplyContainerMods,
996 996
                        "test", container, None, mods, None, None, None)
997 997

  
998 998
  def testRemoveError(self):
999 999
    for idx in [0, 1, 2, 100, -1, -4]:
1000
      mods = instance.PrepareContainerMods([
1000
      mods = instance._PrepareContainerMods([
1001 1001
        (constants.DDM_REMOVE, idx, None),
1002 1002
        ], None)
1003
      self.assertRaises(IndexError, instance.ApplyContainerMods,
1003
      self.assertRaises(IndexError, instance._ApplyContainerMods,
1004 1004
                        "test", [], None, mods, None, None, None)
1005 1005

  
1006
    mods = instance.PrepareContainerMods([
1006
    mods = instance._PrepareContainerMods([
1007 1007
      (constants.DDM_REMOVE, 0, object()),
1008 1008
      ], None)
1009
    self.assertRaises(AssertionError, instance.ApplyContainerMods,
1009
    self.assertRaises(AssertionError, instance._ApplyContainerMods,
1010 1010
                      "test", [""], None, mods, None, None, None)
1011 1011

  
1012 1012
  def testAddError(self):
1013 1013
    for idx in range(-100, -1) + [100]:
1014
      mods = instance.PrepareContainerMods([
1014
      mods = instance._PrepareContainerMods([
1015 1015
        (constants.DDM_ADD, idx, None),
1016 1016
        ], None)
1017
      self.assertRaises(IndexError, instance.ApplyContainerMods,
1017
      self.assertRaises(IndexError, instance._ApplyContainerMods,
1018 1018
                        "test", [], None, mods, None, None, None)
1019 1019

  
1020 1020
  def testRemove(self):
1021 1021
    container = ["item 1", "item 2"]
1022
    mods = instance.PrepareContainerMods([
1022
    mods = instance._PrepareContainerMods([
1023 1023
      (constants.DDM_ADD, -1, "aaa"),
1024 1024
      (constants.DDM_REMOVE, -1, None),
1025 1025
      (constants.DDM_ADD, -1, "bbb"),
1026 1026
      ], None)
1027 1027
    chgdesc = []
1028
    instance.ApplyContainerMods("test", container, chgdesc, mods,
1028
    instance._ApplyContainerMods("test", container, chgdesc, mods,
1029 1029
                                None, None, None)
1030 1030
    self.assertEqual(container, ["item 1", "item 2", "bbb"])
1031 1031
    self.assertEqual(chgdesc, [
......
1034 1034

  
1035 1035
  def testModify(self):
1036 1036
    container = ["item 1", "item 2"]
1037
    mods = instance.PrepareContainerMods([
1037
    mods = instance._PrepareContainerMods([
1038 1038
      (constants.DDM_MODIFY, -1, "a"),
1039 1039
      (constants.DDM_MODIFY, 0, "b"),
1040 1040
      (constants.DDM_MODIFY, 1, "c"),
1041 1041
      ], None)
1042 1042
    chgdesc = []
1043
    instance.ApplyContainerMods("test", container, chgdesc, mods,
1043
    instance._ApplyContainerMods("test", container, chgdesc, mods,
1044 1044
                                None, None, None)
1045 1045
    self.assertEqual(container, ["item 1", "item 2"])
1046 1046
    self.assertEqual(chgdesc, [])
1047 1047

  
1048 1048
    for idx in [-2, len(container) + 1]:
1049
      mods = instance.PrepareContainerMods([
1049
      mods = instance._PrepareContainerMods([
1050 1050
        (constants.DDM_MODIFY, idx, "error"),
1051 1051
        ], None)
1052
      self.assertRaises(IndexError, instance.ApplyContainerMods,
1052
      self.assertRaises(IndexError, instance._ApplyContainerMods,
1053 1053
                        "test", container, None, mods, None, None, None)
1054 1054

  
1055 1055
  class _PrivateData:
......
1077 1077
  def testAddWithCreateFunction(self):
1078 1078
    container = []
1079 1079
    chgdesc = []
1080
    mods = instance.PrepareContainerMods([
1080
    mods = instance._PrepareContainerMods([
1081 1081
      (constants.DDM_ADD, -1, "Hello"),
1082 1082
      (constants.DDM_ADD, -1, "World"),
1083 1083
      (constants.DDM_ADD, 0, "Start"),
......
1087 1087
      (constants.DDM_REMOVE, 2, None),
1088 1088
      (constants.DDM_ADD, 1, "More"),
1089 1089
      ], self._PrivateData)
1090
    instance.ApplyContainerMods("test", container, chgdesc, mods,
1090
    instance._ApplyContainerMods("test", container, chgdesc, mods,
1091 1091
                                self._CreateTestFn, self._ModifyTestFn,
1092 1092
                                self._RemoveTestFn)
1093 1093
    self.assertEqual(container, [
......
1167 1167
    return copy.deepcopy(constants.DISK_DT_DEFAULTS)
1168 1168

  
1169 1169
  def testWrongDiskTemplate(self):
1170
    gdt = instance._GenerateDiskTemplate
1170
    gdt = instance.GenerateDiskTemplate
1171 1171
    disk_template = "##unknown##"
1172 1172

  
1173 1173
    assert disk_template not in constants.DISK_TEMPLATES
......
1178 1178
                      self.GetDiskParams())
1179 1179

  
1180 1180
  def testDiskless(self):
1181
    gdt = instance._GenerateDiskTemplate
1181
    gdt = instance.GenerateDiskTemplate
1182 1182

  
1183 1183
    result = gdt(self.lu, constants.DT_DISKLESS, "inst27734.example.com",
1184 1184
                 "node30113.example.com", [], [],
......
1191 1191
                       file_driver=NotImplemented,
1192 1192
                       req_file_storage=NotImplemented,
1193 1193
                       req_shr_file_storage=NotImplemented):
1194
    gdt = instance._GenerateDiskTemplate
1194
    gdt = instance.GenerateDiskTemplate
1195 1195

  
1196 1196
    map(lambda params: utils.ForceDictType(params,
1197 1197
                                           constants.IDISK_PARAMS_TYPES),
......
1320 1320
      ])
1321 1321

  
1322 1322
  def testDrbd8(self):
1323
    gdt = instance._GenerateDiskTemplate
1323
    gdt = instance.GenerateDiskTemplate
1324 1324
    drbd8_defaults = constants.DISK_LD_DEFAULTS[constants.LD_DRBD8]
1325 1325
    drbd8_default_metavg = drbd8_defaults[constants.LDP_DEFAULT_METAVG]
1326 1326

  
......
1491 1491
                            disk_template=constants.DT_PLAIN,
1492 1492
                            disks=disks)
1493 1493

  
1494
    self.assertRaises(errors.OpExecError, instance._WipeDisks, lu, inst)
1494
    self.assertRaises(errors.OpExecError, instance.WipeDisks, lu, inst)
1495 1495

  
1496 1496
  def _FailingWipeCb(self, (disk, _), offset, size):
1497 1497
    # This should only ever be called for the first disk
......
1519 1519
                            disks=disks)
1520 1520

  
1521 1521
    try:
1522
      instance._WipeDisks(lu, inst)
1522
      instance.WipeDisks(lu, inst)
1523 1523
    except errors.OpExecError, err:
1524 1524
      self.assertTrue(str(err), "Could not wipe disk 0 at offset 0 ")
1525 1525
    else:
......
1562 1562

  
1563 1563
    (lu, inst, pauset, progresst) = self._PrepareWipeTest(0, disks)
1564 1564

  
1565
    instance._WipeDisks(lu, inst)
1565
    instance.WipeDisks(lu, inst)
1566 1566

  
1567 1567
    self.assertEqual(pauset.history, [
1568 1568
      ("disk0", 1024, True),
......
1592 1592
        self._PrepareWipeTest(start_offset, disks)
1593 1593

  
1594 1594
      # Test start offset with only one disk
1595
      instance._WipeDisks(lu, inst,
1596
                          disks=[(1, disks[1], start_offset)])
1595
      instance.WipeDisks(lu, inst,
1596
                         disks=[(1, disks[1], start_offset)])
1597 1597

  
1598 1598
      # Only the second disk may have been paused and wiped
1599 1599
      self.assertEqual(pauset.history, [
......
1639 1639

  
1640 1640
class TestCopyLockList(unittest.TestCase):
1641 1641
  def test(self):
1642
    self.assertEqual(instance._CopyLockList([]), [])
1643
    self.assertEqual(instance._CopyLockList(None), None)
1644
    self.assertEqual(instance._CopyLockList(locking.ALL_SET), locking.ALL_SET)
1642
    self.assertEqual(instance.CopyLockList([]), [])
1643
    self.assertEqual(instance.CopyLockList(None), None)
1644
    self.assertEqual(instance.CopyLockList(locking.ALL_SET), locking.ALL_SET)
1645 1645

  
1646 1646
    names = ["foo", "bar"]
1647
    output = instance._CopyLockList(names)
1647
    output = instance.CopyLockList(names)
1648 1648
    self.assertEqual(names, output)
1649 1649
    self.assertNotEqual(id(names), id(output), msg="List was not copied")
1650 1650

  
......
1897 1897
      }
1898 1898
    if not isgroup:
1899 1899
      diff_policy[constants.ISPECS_STD] = diff_std
1900
    new_policy = common._GetUpdatedIPolicy(old_policy, diff_policy,
1901
                                           group_policy=isgroup)
1900
    new_policy = common.GetUpdatedIPolicy(old_policy, diff_policy,
1901
                                          group_policy=isgroup)
1902 1902

  
1903 1903
    self.assertTrue(constants.ISPECS_MINMAX in new_policy)
1904 1904
    self.assertEqual(new_policy[constants.ISPECS_MINMAX], diff_minmax)
......
1919 1919
          self.assertEqual(new_std[key], old_std[key])
1920 1920

  
1921 1921
  def _TestSet(self, old_policy, diff_policy, isgroup):
1922
    new_policy = common._GetUpdatedIPolicy(old_policy, diff_policy,
1922
    new_policy = common.GetUpdatedIPolicy(old_policy, diff_policy,
1923 1923
                                           group_policy=isgroup)
1924 1924
    for key in diff_policy:
1925 1925
      self.assertTrue(key in new_policy)
......
1946 1946
    diff_policy = {
1947 1947
      constants.IPOLICY_SPINDLE_RATIO: constants.VALUE_DEFAULT,
1948 1948
      }
1949
    new_policy = common._GetUpdatedIPolicy(old_policy, diff_policy,
1950
                                           group_policy=True)
1949
    new_policy = common.GetUpdatedIPolicy(old_policy, diff_policy,
1950
                                          group_policy=True)
1951 1951
    for key in diff_policy:
1952 1952
      self.assertFalse(key in new_policy)
1953 1953
    for key in old_policy:
......
1955 1955
        self.assertTrue(key in new_policy)
1956 1956
        self.assertEqual(new_policy[key], old_policy[key])
1957 1957

  
1958
    self.assertRaises(errors.OpPrereqError, common._GetUpdatedIPolicy,
1958
    self.assertRaises(errors.OpPrereqError, common.GetUpdatedIPolicy,
1959 1959
                      old_policy, diff_policy, group_policy=False)
1960 1960

  
1961 1961
  def testUnsetEmpty(self):
......
1964 1964
      diff_policy = {
1965 1965
        key: constants.VALUE_DEFAULT,
1966 1966
        }
1967
    new_policy = common._GetUpdatedIPolicy(old_policy, diff_policy,
1968
                                           group_policy=True)
1967
    new_policy = common.GetUpdatedIPolicy(old_policy, diff_policy,
1968
                                          group_policy=True)
1969 1969
    self.assertEqual(new_policy, old_policy)
1970 1970

  
1971 1971
  def _TestInvalidKeys(self, old_policy, isgroup):
......
1974 1974
      INVALID_KEY: 3,
1975 1975
      }
1976 1976
    invalid_policy = INVALID_DICT
1977
    self.assertRaises(errors.OpPrereqError, common._GetUpdatedIPolicy,
1977
    self.assertRaises(errors.OpPrereqError, common.GetUpdatedIPolicy,
1978 1978
                      old_policy, invalid_policy, group_policy=isgroup)
1979 1979
    invalid_ispecs = {
1980 1980
      constants.ISPECS_MINMAX: [INVALID_DICT],
1981 1981
      }
1982
    self.assertRaises(errors.TypeEnforcementError, common._GetUpdatedIPolicy,
1982
    self.assertRaises(errors.TypeEnforcementError, common.GetUpdatedIPolicy,
1983 1983
                      old_policy, invalid_ispecs, group_policy=isgroup)
1984 1984
    if isgroup:
1985 1985
      invalid_for_group = {
1986 1986
        constants.ISPECS_STD: constants.IPOLICY_DEFAULTS[constants.ISPECS_STD],
1987 1987
        }
1988
      self.assertRaises(errors.OpPrereqError, common._GetUpdatedIPolicy,
1988
      self.assertRaises(errors.OpPrereqError, common.GetUpdatedIPolicy,
1989 1989
                        old_policy, invalid_for_group, group_policy=isgroup)
1990 1990
    good_ispecs = self._OLD_CLUSTER_POLICY[constants.ISPECS_MINMAX]
1991 1991
    invalid_ispecs = copy.deepcopy(good_ispecs)
......
1997 1997
        ispec = minmax[key]
1998 1998
        ispec[INVALID_KEY] = None
1999 1999
        self.assertRaises(errors.TypeEnforcementError,
2000
                          common._GetUpdatedIPolicy, old_policy,
2000
                          common.GetUpdatedIPolicy, old_policy,
2001 2001
                          invalid_policy, group_policy=isgroup)
2002 2002
        del ispec[INVALID_KEY]
2003 2003
        for par in constants.ISPECS_PARAMETERS:
2004 2004
          oldv = ispec[par]
2005 2005
          ispec[par] = "this_is_not_good"
2006 2006
          self.assertRaises(errors.TypeEnforcementError,
2007
                            common._GetUpdatedIPolicy,
2007
                            common.GetUpdatedIPolicy,
2008 2008
                            old_policy, invalid_policy, group_policy=isgroup)
2009 2009
          ispec[par] = oldv
2010 2010
    # This is to make sure that no two errors were present during the tests
2011
    common._GetUpdatedIPolicy(old_policy, invalid_policy,
2012
                              group_policy=isgroup)
2011
    common.GetUpdatedIPolicy(old_policy, invalid_policy,
2012
                             group_policy=isgroup)
2013 2013

  
2014 2014
  def testInvalidKeys(self):
2015 2015
    self._TestInvalidKeys(self._OLD_GROUP_POLICY, True)
......
2021 2021
      bad_policy = {
2022 2022
        par: "invalid_value",
2023 2023
        }
2024
      self.assertRaises(errors.OpPrereqError, common._GetUpdatedIPolicy, {},
2024
      self.assertRaises(errors.OpPrereqError, common.GetUpdatedIPolicy, {},
2025 2025
                        bad_policy, group_policy=True)
2026 2026

  
2027 2027
if __name__ == "__main__":

Also available in: Unified diff