1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
package testing
import (
"testing"
"github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/schedulerhints"
"github.com/gophercloud/gophercloud/openstack/blockstorage/v3/volumes"
th "github.com/gophercloud/gophercloud/testhelper"
)
func TestCreateOpts(t *testing.T) {
base := volumes.CreateOpts{
Size: 10,
Name: "testvolume",
}
schedulerHints := schedulerhints.SchedulerHints{
DifferentHost: []string{
"a0cf03a5-d921-4877-bb5c-86d26cf818e1",
"8c19174f-4220-44f0-824a-cd1eeef10287",
},
SameHost: []string{
"a0cf03a5-d921-4877-bb5c-86d26cf818e1",
"8c19174f-4220-44f0-824a-cd1eeef10287",
},
LocalToInstance: "0ffb2c1b-d621-4fc1-9ae4-88d99c088ff6",
AdditionalProperties: map[string]interface{}{"mark": "a0cf03a5-d921-4877-bb5c-86d26cf818e1"},
}
ext := schedulerhints.CreateOptsExt{
VolumeCreateOptsBuilder: base,
SchedulerHints: schedulerHints,
}
expected := `
{
"volume": {
"size": 10,
"name": "testvolume"
},
"OS-SCH-HNT:scheduler_hints": {
"different_host": [
"a0cf03a5-d921-4877-bb5c-86d26cf818e1",
"8c19174f-4220-44f0-824a-cd1eeef10287"
],
"same_host": [
"a0cf03a5-d921-4877-bb5c-86d26cf818e1",
"8c19174f-4220-44f0-824a-cd1eeef10287"
],
"local_to_instance": "0ffb2c1b-d621-4fc1-9ae4-88d99c088ff6",
"mark": "a0cf03a5-d921-4877-bb5c-86d26cf818e1"
}
}
`
actual, err := ext.ToVolumeCreateMap()
th.AssertNoErr(t, err)
th.CheckJSONEquals(t, expected, actual)
}
|