LGTM, thanks On Mon, 15 Jun 2015 at 18:16 'Klaus Aehlig' via ganeti-devel < [email protected]> wrote:
> Add a simple test case for the allocate-secondary request. > In this example, hail has to avoid the node of the other > group and should prefer the free node as secondary over > the one that already hosts an instance. > > Signed-off-by: Klaus Aehlig <[email protected]> > --- > Makefile.am | 1 + > test/data/htools/hail-alloc-secondary.json | 298 > +++++++++++++++++++++++++++++ > test/hs/shelltests/htools-hail.test | 5 + > 3 files changed, 304 insertions(+) > create mode 100644 test/data/htools/hail-alloc-secondary.json > > diff --git a/Makefile.am b/Makefile.am > index fc66e93..ea447a1 100644 > --- a/Makefile.am > +++ b/Makefile.am > @@ -1689,6 +1689,7 @@ TEST_FILES = \ > test/data/htools/hail-alloc-invalid-twodisks.json \ > test/data/htools/hail-alloc-restricted-network.json \ > test/data/htools/hail-alloc-plain-tags.json \ > + test/data/htools/hail-alloc-secondary.json \ > test/data/htools/hail-alloc-spindles.json \ > test/data/htools/hail-alloc-twodisks.json \ > test/data/htools/hail-change-group.json \ > diff --git a/test/data/htools/hail-alloc-secondary.json > b/test/data/htools/hail-alloc-secondary.json > new file mode 100644 > index 0000000..377b4ce > --- /dev/null > +++ b/test/data/htools/hail-alloc-secondary.json > @@ -0,0 +1,298 @@ > +{ > + "cluster_tags": [], > + "instances": { > + > +"instance-2-3":{ > + "disks": [ > + { > + "spindles": 1, > + "mode": "rw", > + "size": 512 > + } > + ], > + "disk_space_total": 1024, > + "hypervisor": "xen-pvm", > + "tags": [], > + "nics": [ > + { > + "ip": null, > + "mac": "aa:00:00:7f:8c:9c", > + "link": "xen-br1", > + "mode": "bridged", > + "bridge": "xen-br1" > + } > + ], > + "vcpus": 1, > + "spindle_use": 1, > + "admin_state": "up", > + "admin_state_source": "admin", > + "disk_template": "plain", > + "memory": 128, > + "nodes": [ > + "node-2-3" > + ], > + "os": "instance-debootstrap" > + }, > + > + > + > +"instance-to-be-converted-to-drbd":{ > + "disks": [ > + { > + "spindles": 1, > + "mode": "rw", > + "size": 512 > + } > + ], > + "disk_space_total": 1024, > + "hypervisor": "xen-pvm", > + "tags": [], > + "nics": [ > + { > + "ip": null, > + "mac": "aa:00:00:7f:8c:9c", > + "link": "xen-br1", > + "mode": "bridged", > + "bridge": "xen-br1" > + } > + ], > + "vcpus": 1, > + "spindle_use": 1, > + "admin_state": "down", > + "admin_state_source": "admin", > + "disk_template": "plain", > + "memory": 128, > + "nodes": [ > + "node-2-1" > + ], > + "os": "instance-debootstrap" > + } > + > + > +}, > + "nodegroups": { > + "uuid-group-1": { > + "ipolicy": { > + "std": { > + "nic-count": 1, > + "disk-size": 1024, > + "disk-count": 1, > + "memory-size": 128, > + "cpu-count": 1, > + "spindle-use": 1 > + }, > + "minmax": [ > + { > + "min": { > + "nic-count": 1, > + "disk-size": 128, > + "disk-count": 1, > + "memory-size": 128, > + "cpu-count": 1, > + "spindle-use": 1 > + }, > + "max": { > + "nic-count": 8, > + "disk-size": 1048576, > + "disk-count": 16, > + "memory-size": 32768, > + "cpu-count": 8, > + "spindle-use": 8 > + } > + } > + ], > + "vcpu-ratio": 4.0, > + "disk-templates": [ > + "sharedfile", > + "diskless", > + "plain", > + "blockdev", > + "drbd", > + "file", > + "rbd" > + ], > + "spindle-ratio": 32.0 > + }, > + "networks": [], > + "alloc_policy": "preferred", > + "tags": [], > + "name": "default" > + }, > + "uuid-group-2": > +{ > + "ipolicy": { > + "std": { > + "nic-count": 1, > + "disk-size": 1024, > + "disk-count": 1, > + "memory-size": 128, > + "cpu-count": 1, > + "spindle-use": 1 > + }, > + "minmax": [ > + { > + "min": { > + "nic-count": 1, > + "disk-size": 128, > + "disk-count": 1, > + "memory-size": 128, > + "cpu-count": 1, > + "spindle-use": 1 > + }, > + "max": { > + "nic-count": 8, > + "disk-size": 1048576, > + "disk-count": 16, > + "memory-size": 32768, > + "cpu-count": 8, > + "spindle-use": 8 > + } > + } > + ], > + "vcpu-ratio": 4.0, > + "disk-templates": [ > + "sharedfile", > + "diskless", > + "plain", > + "blockdev", > + "drbd", > + "file", > + "rbd" > + ], > + "spindle-ratio": 32.0 > + }, > + "networks": [], > + "alloc_policy": "preferred", > + "tags": [], > + "name": "default" > + } > + }, > + "nodes": { > + > +"node-1-1" : > +{ > + "total_disk": 91552, > + "total_cpus": 16, > + "group": "uuid-group-1", > + "secondary_ip": "192.168.2.1", > + "i_pri_up_memory": 0, > + "tags": [], > + "master_candidate": true, > + "free_memory": 3100, > + "ndparams": { > + "spindle_count": 1, > + "oob_program": null, > + "exclusive_storage": false > + }, > + "reserved_memory": 0, > + "reserved_cpus": 1, > + "master_capable": true, > + "free_disk": 91552, > + "drained": false, > + "total_memory": 3100, > + "primary_ip": "192.168.1.1", > + "i_pri_memory": 0, > + "free_spindles": 12, > + "total_spindles": 12, > + "vm_capable": true, > + "offline": false > + }, > + > + > +"node-2-1" : > +{ > + "total_disk": 91552, > + "total_cpus": 16, > + "group": "uuid-group-2", > + "secondary_ip": "192.168.2.101", > + "i_pri_up_memory": 0, > + "tags": [], > + "master_candidate": true, > + "free_memory": 3100, > + "ndparams": { > + "spindle_count": 1, > + "oob_program": null, > + "exclusive_storage": false > + }, > + "reserved_memory": 0, > + "reserved_cpus": 1, > + "master_capable": true, > + "free_disk": 91552, > + "drained": false, > + "total_memory": 3100, > + "primary_ip": "192.168.1.101", > + "i_pri_memory": 0, > + "free_spindles": 12, > + "total_spindles": 12, > + "vm_capable": true, > + "offline": false > + }, > + > + > + > +"node-2-2" : > +{ > + "total_disk": 91552, > + "total_cpus": 16, > + "group": "uuid-group-2", > + "secondary_ip": "192.168.2.102", > + "i_pri_up_memory": 0, > + "tags": [], > + "master_candidate": true, > + "free_memory": 3100, > + "ndparams": { > + "spindle_count": 1, > + "oob_program": null, > + "exclusive_storage": false > + }, > + "reserved_memory": 0, > + "reserved_cpus": 1, > + "master_capable": true, > + "free_disk": 91552, > + "drained": false, > + "total_memory": 3100, > + "primary_ip": "192.168.1.102", > + "i_pri_memory": 0, > + "free_spindles": 12, > + "total_spindles": 12, > + "vm_capable": true, > + "offline": false > + }, > + > + > +"node-2-3" : > +{ > + "total_disk": 91552, > + "total_cpus": 16, > + "group": "uuid-group-2", > + "secondary_ip": "192.168.2.103", > + "i_pri_up_memory": 0, > + "tags": [], > + "master_candidate": true, > + "free_memory": 3100, > + "ndparams": { > + "spindle_count": 1, > + "oob_program": null, > + "exclusive_storage": false > + }, > + "reserved_memory": 0, > + "reserved_cpus": 1, > + "master_capable": true, > + "free_disk": 91552, > + "drained": false, > + "total_memory": 3100, > + "primary_ip": "192.168.1.103", > + "i_pri_memory": 0, > + "free_spindles": 12, > + "total_spindles": 12, > + "vm_capable": true, > + "offline": false > + } > + > +}, > + > + "request": { > + "name": "instance-to-be-converted-to-drbd", > + "type": "allocate-secondary" > + } > +} > diff --git a/test/hs/shelltests/htools-hail.test > b/test/hs/shelltests/htools-hail.test > index 35392b3..b933e9c 100644 > --- a/test/hs/shelltests/htools-hail.test > +++ b/test/hs/shelltests/htools-hail.test > @@ -211,3 +211,8 @@ cat $TESTDATA_DIR/hail-alloc-invalid-network.json | > grep -v -e '"network":"uuid- > ./test/hs/hail -t $TESTDATA_DIR/partly-used.data --restrict-allocation-to > node-03,node-04 $TESTDATA_DIR/hail-alloc-drbd-restricted.json > >>> /successes 2,.*"result":\["node-0[34]","node-0[34]"\]/ > >>>= 0 > + > +# Verify allocate-secondary > +./test/hs/hail $TESTDATA_DIR/hail-alloc-secondary.json > +>>> /successes 2, failures 0.*"result":"node-2-2"/ > +>>>= 0 > -- > 2.2.0.rc0.207.ga3a616c > >
