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  }