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.