Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package profiles provides information and interaction with profiles through the OpenStack Clustering service.
Example to Create a Profile
networks := []map[string]interface{} {
	{"network": "test-network"},
}
props := map[string]interface{}{
	"name":            "test_gophercloud_profile",
	"flavor":          "t2.micro",
	"image":           "centos7.3-latest",
	"networks":        networks,
	"security_groups": "",
}
createOpts := profiles.CreateOpts {
	Name: "test_profile",
	Spec: profiles.Spec{
		Type:       "os.nova.server",
		Version:    "1.0",
		Properties: props,
	},
}
profile, err := profiles.Create(serviceClient, createOpts).Extract()
if err != nil {
	panic(err)
}
fmt.Println("Profile", profile)
Example to Get a Profile
profile, err := profiles.Get(serviceClient, "profile-name").Extract()
if err != nil {
	panic(err)
}
fmt.Print("profile", profile)
Example to List Profiles
listOpts := profiles.ListOpts{
	Limit: 2,
}
profiles.List(serviceClient, listOpts).EachPage(func(page pagination.Page) (bool, error) {
	allProfiles, err := profiles.ExtractProfiles(page)
	if err != nil {
		panic(err)
	}
	for _, profile := range allProfiles {
		fmt.Printf("%+v\n", profile)
	}
	return true, nil
})
Example to Update a Profile
updateOpts := profiles.UpdateOpts{
	Name: "new-name",
}
profile, err := profiles.Update(serviceClient, profileName, updateOpts).Extract()
if err != nil {
	panic(err)
}
fmt.Print("profile", profile)
Example to Delete a Profile
profileID := "6dc6d336e3fc4c0a951b5698cd1236ee"
err := profiles.Delete(serviceClient, profileID).ExtractErr()
if err != nil {
	panic(err)
}
Example to Validate a profile
serviceClient.Microversion = "1.2"
validateOpts := profiles.ValidateOpts{
	Spec: profiles.Spec{
		Properties: map[string]interface{}{
			"flavor":   "t2.micro",
			"image":    "cirros-0.3.4-x86_64-uec",
			"key_name": "oskey",
			"name":     "cirros_server",
			"networks": []interface{}{
				map[string]interface{}{"network": "private"},
			},
		},
		Type:    "os.nova.server",
		Version: "1.0",
	},
}
profile, err := profiles.Validate(serviceClient, validateOpts).Extract()
if err != nil {
	panic(err)
}
Index ¶
- func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
 - type CreateOpts
 - type CreateOptsBuilder
 - type CreateResult
 - type DeleteResult
 - type GetResult
 - type ListOpts
 - type ListOptsBuilder
 - type Profile
 - type ProfilePage
 - type Spec
 - type UpdateOpts
 - type UpdateOptsBuilder
 - type UpdateResult
 - type ValidateOpts
 - type ValidateOptsBuilder
 - type ValidateResult
 
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func List ¶
func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
List instructs OpenStack to provide a list of profiles.
Types ¶
type CreateOpts ¶
type CreateOpts struct {
	Name     string                 `json:"name" required:"true"`
	Metadata map[string]interface{} `json:"metadata,omitempty"`
	Spec     Spec                   `json:"spec" required:"true"`
}
    CreateOpts represents options used for creating a profile.
func (CreateOpts) ToProfileCreateMap ¶
func (opts CreateOpts) ToProfileCreateMap() (map[string]interface{}, error)
ToProfileCreateMap constructs a request body from CreateOpts.
type CreateOptsBuilder ¶
CreateOptsBuilder allows extensions to add additional parameters to the Create request.
type CreateResult ¶
type CreateResult struct {
	// contains filtered or unexported fields
}
    CreateResult is the result of a Create operation. Call its Extract method to interpret it as a Profile.
func Create ¶
func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult)
Create requests the creation of a new profile on the server.
type DeleteResult ¶
type DeleteResult struct {
	gophercloud.ErrResult
}
    DeleteResult is the result from a Delete operation. Call its ExtractErr method to determine if the call succeeded or failed.
func Delete ¶
func Delete(client *gophercloud.ServiceClient, id string) (r DeleteResult)
Delete deletes the specified profile via profile id.
type GetResult ¶
type GetResult struct {
	// contains filtered or unexported fields
}
    GetResult is the result of a Get operations. Call its Extract method to interpret it as a Profile.
func Get ¶
func Get(client *gophercloud.ServiceClient, id string) (r GetResult)
Get retrieves detail of a single profile.
type ListOpts ¶
type ListOpts struct {
	GlobalProject *bool  `q:"global_project"`
	Limit         int    `q:"limit"`
	Marker        string `q:"marker"`
	Name          string `q:"name"`
	Sort          string `q:"sort"`
	Type          string `q:"type"`
}
    ListOpts represents options used to list profiles.
func (ListOpts) ToProfileListQuery ¶
ToProfileListQuery formats a ListOpts into a query string.
type ListOptsBuilder ¶
ListOptsBuilder allows extensions to add additional parameters to the List request.
type Profile ¶
type Profile struct {
	CreatedAt time.Time              `json:"-"`
	Domain    string                 `json:"domain"`
	ID        string                 `json:"id"`
	Metadata  map[string]interface{} `json:"metadata"`
	Name      string                 `json:"name"`
	Project   string                 `json:"project"`
	Spec      Spec                   `json:"spec"`
	Type      string                 `json:"type"`
	UpdatedAt time.Time              `json:"-"`
	User      string                 `json:"user"`
}
    Profile represent a detailed profile.
func ExtractProfiles ¶
func ExtractProfiles(r pagination.Page) ([]Profile, error)
ExtractProfiles returns a slice of Profiles from the List operation.
func (*Profile) UnmarshalJSON ¶
type ProfilePage ¶
type ProfilePage struct {
	pagination.LinkedPageBase
}
    ProfilePage contains a single page of all profiles from a List operation.
func (ProfilePage) IsEmpty ¶
func (page ProfilePage) IsEmpty() (bool, error)
IsEmpty determines if a ProfilePage contains any results.
type Spec ¶
type Spec struct {
	Type       string                 `json:"type"`
	Version    string                 `json:"-"`
	Properties map[string]interface{} `json:"properties"`
}
    Spec represents a profile spec.
func (Spec) MarshalJSON ¶
func (*Spec) UnmarshalJSON ¶
type UpdateOpts ¶
type UpdateOpts struct {
	Metadata map[string]interface{} `json:"metadata,omitempty"`
	Name     string                 `json:"name,omitempty"`
}
    UpdateOpts represents options used to update a profile.
func (UpdateOpts) ToProfileUpdateMap ¶
func (opts UpdateOpts) ToProfileUpdateMap() (map[string]interface{}, error)
ToProfileUpdateMap constructs a request body from UpdateOpts.
type UpdateOptsBuilder ¶
UpdateOptsBuilder allows extensions to add additional parameters to the Update request.
type UpdateResult ¶
type UpdateResult struct {
	// contains filtered or unexported fields
}
    UpdateResult is the result of a Update operations. Call its Extract method to interpret it as a Profile.
func Update ¶
func Update(client *gophercloud.ServiceClient, id string, opts UpdateOptsBuilder) (r UpdateResult)
Update updates a profile.
type ValidateOpts ¶
type ValidateOpts struct {
	Spec Spec `json:"spec" required:"true"`
}
    ValidateOpts params
func (ValidateOpts) ToProfileValidateMap ¶
func (opts ValidateOpts) ToProfileValidateMap() (map[string]interface{}, error)
ToProfileValidateMap formats a CreateOpts into a body map.
type ValidateOptsBuilder ¶
ValidateOptsBuilder allows extensions to add additional parameters to the Validate request.
type ValidateResult ¶
type ValidateResult struct {
	// contains filtered or unexported fields
}
    ValidateResult is the response of a Validate operations.
func Validate ¶
func Validate(client *gophercloud.ServiceClient, opts ValidateOpts) (r ValidateResult)
Validate profile.