github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/evs/extensions/volumeactions/initialize_connection.go (about) 1 package volumeactions 2 3 import ( 4 "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" 6 ) 7 8 type InitializeConnectionOpts struct { 9 IP string `json:"ip,omitempty"` 10 Host string `json:"host,omitempty"` 11 Initiator string `json:"initiator,omitempty"` 12 Wwpns []string `json:"wwpns,omitempty"` 13 Wwnns string `json:"wwnns,omitempty"` 14 Multipath *bool `json:"multipath,omitempty"` 15 Platform string `json:"platform,omitempty"` 16 OSType string `json:"os_type,omitempty"` 17 } 18 19 func InitializeConnection(client *golangsdk.ServiceClient, id string, opts InitializeConnectionOpts) (map[string]interface{}, error) { 20 b, err := golangsdk.BuildRequestBody(opts, "connector") 21 b = map[string]interface{}{"os-initialize_connection": b} 22 if err != nil { 23 return nil, err 24 } 25 26 raw, err := client.Post(client.ServiceURL("volumes", id, "action"), b, nil, &golangsdk.RequestOpts{ 27 OkCodes: []int{200, 201, 202}, 28 }) 29 if err != nil { 30 return nil, err 31 } 32 33 var res struct { 34 ConnectionInfo map[string]interface{} `json:"connection_info"` 35 } 36 err = extract.Into(raw.Body, &res) 37 return res.ConnectionInfo, err 38 }