github.com/gophercloud/gophercloud@v1.11.0/openstack/baremetalintrospection/noauth/requests.go (about) 1 package noauth 2 3 import ( 4 "fmt" 5 6 "github.com/gophercloud/gophercloud" 7 ) 8 9 // EndpointOpts specifies a "noauth" Ironic Inspector Endpoint. 10 type EndpointOpts struct { 11 // IronicInspectorEndpoint [required] is currently only used with "noauth" Ironic introspection. 12 // An Ironic inspector endpoint with "auth_strategy=noauth" is necessary, for example: 13 // http://ironic.example.com:5050/v1. 14 IronicInspectorEndpoint string 15 } 16 17 func initClientOpts(client *gophercloud.ProviderClient, eo EndpointOpts) (*gophercloud.ServiceClient, error) { 18 sc := new(gophercloud.ServiceClient) 19 if eo.IronicInspectorEndpoint == "" { 20 return nil, fmt.Errorf("IronicInspectorEndpoint is required") 21 } 22 23 sc.Endpoint = gophercloud.NormalizeURL(eo.IronicInspectorEndpoint) 24 sc.ProviderClient = client 25 return sc, nil 26 } 27 28 // NewBareMetalIntrospectionNoAuth creates a ServiceClient that may be used to access a 29 // "noauth" bare metal introspection service. 30 func NewBareMetalIntrospectionNoAuth(eo EndpointOpts) (*gophercloud.ServiceClient, error) { 31 sc, err := initClientOpts(&gophercloud.ProviderClient{}, eo) 32 if err != nil { 33 return nil, err 34 } 35 36 sc.Type = "baremetal-introspection" 37 38 return sc, nil 39 }