github.com/gophercloud/gophercloud@v1.11.0/openstack/networking/v2/extensions/provider/requests.go (about)

     1  package provider
     2  
     3  import (
     4  	"github.com/gophercloud/gophercloud/openstack/networking/v2/networks"
     5  )
     6  
     7  // CreateOptsExt adds a Segments option to the base Network CreateOpts.
     8  type CreateOptsExt struct {
     9  	networks.CreateOptsBuilder
    10  	Segments []Segment `json:"segments,omitempty"`
    11  }
    12  
    13  // ToNetworkCreateMap adds segments to the base network creation options.
    14  func (opts CreateOptsExt) ToNetworkCreateMap() (map[string]interface{}, error) {
    15  	base, err := opts.CreateOptsBuilder.ToNetworkCreateMap()
    16  	if err != nil {
    17  		return nil, err
    18  	}
    19  
    20  	if opts.Segments == nil {
    21  		return base, nil
    22  	}
    23  
    24  	providerMap := base["network"].(map[string]interface{})
    25  	providerMap["segments"] = opts.Segments
    26  
    27  	return base, nil
    28  }
    29  
    30  // UpdateOptsExt adds a Segments option to the base Network UpdateOpts.
    31  type UpdateOptsExt struct {
    32  	networks.UpdateOptsBuilder
    33  	Segments *[]Segment `json:"segments,omitempty"`
    34  }
    35  
    36  // ToNetworkUpdateMap adds segments to the base network update options.
    37  func (opts UpdateOptsExt) ToNetworkUpdateMap() (map[string]interface{}, error) {
    38  	base, err := opts.UpdateOptsBuilder.ToNetworkUpdateMap()
    39  	if err != nil {
    40  		return nil, err
    41  	}
    42  
    43  	if opts.Segments == nil {
    44  		return base, nil
    45  	}
    46  
    47  	providerMap := base["network"].(map[string]interface{})
    48  	providerMap["segments"] = opts.Segments
    49  
    50  	return base, nil
    51  }