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  }