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