This is the last series that completes the "Constrained instance sizes" section in the "Partitioned Ganeti" design doc, and integrates the previous series.
Bernardo Dal Seno (9): QA: Transpose instance specs Separate checks for std spec compliance Add multiple min/max specs in instance policy Add command-line support for multiple specs in ipolicy Unit test for cli.FormatPolicyInfo() QA: Handle multiple instance specs QA: Test multiple instance specs hspace: Handle multiple ipolicy specs Add shelltests for hspace allocation Makefile.am | 2 + doc/rapi.rst | 2 +- lib/cli.py | 80 +++-- lib/cmdlib.py | 21 +- lib/config.py | 3 +- lib/constants.py | 2 +- lib/objects.py | 55 ++-- man/gnt-cluster.rst | 3 +- man/htools.rst | 6 +- qa/ganeti-qa.py | 86 +++++- qa/qa_cluster.py | 52 ++-- qa/qa_group.py | 64 ++-- qa/qa_utils.py | 112 ++++--- src/Ganeti/HTools/Backend/Text.hs | 48 ++- src/Ganeti/HTools/Cluster.hs | 1 + src/Ganeti/HTools/Instance.hs | 20 +- src/Ganeti/HTools/Program/Hspace.hs | 27 +- src/Ganeti/HTools/Types.hs | 34 +-- src/Ganeti/Objects.hs | 4 +- test/data/htools/clean-nonzero-score.data | 4 +- test/data/htools/common-suffix.data | 4 +- test/data/htools/empty-cluster.data | 4 +- test/data/htools/hail-alloc-drbd.json | 74 ++--- test/data/htools/hail-alloc-invalid-twodisks.json | 36 +-- test/data/htools/hail-alloc-twodisks.json | 36 +-- test/data/htools/hail-change-group.json | 112 +++---- test/data/htools/hail-node-evac.json | 38 +-- test/data/htools/hail-reloc-drbd.json | 74 ++--- test/data/htools/hbal-split-insts.data | 6 +- test/data/htools/hspace-tiered-dualspec.data | 11 + test/data/htools/hspace-tiered.data | 11 + test/data/htools/invalid-node.data | 4 +- test/data/htools/missing-resources.data | 4 +- test/data/htools/multiple-master.data | 4 +- test/data/htools/n1-failure.data | 6 +- test/data/htools/rapi/groups.json | 38 +-- test/data/htools/rapi/info.json | 36 +-- test/data/htools/unique-reboot-order.data | 4 +- test/hs/Test/Ganeti/HTools/Backend/Text.hs | 10 +- test/hs/Test/Ganeti/HTools/Types.hs | 41 ++- test/hs/Test/Ganeti/TestHTools.hs | 4 +- test/hs/shelltests/htools-hspace.test | 9 + test/py/ganeti.cli_unittest.py | 346 ++++++++++++++++------ test/py/ganeti.cmdlib_unittest.py | 143 +++++++-- test/py/ganeti.config_unittest.py | 42 +-- test/py/ganeti.objects_unittest.py | 164 ++++++++-- tools/cfgupgrade | 20 +- 47 files changed, 1315 insertions(+), 592 deletions(-) create mode 100644 test/data/htools/hspace-tiered-dualspec.data create mode 100644 test/data/htools/hspace-tiered.data -- 1.8.2.1