| /* |
| Package extensions provides information and interaction with the different |
| extensions available for an OpenStack service. |
| |
| The purpose of OpenStack API extensions is to: |
| |
| - Introduce new features in the API without requiring a version change. |
| - Introduce vendor-specific niche functionality. |
| - Act as a proving ground for experimental functionalities that might be |
| included in a future version of the API. |
| |
| Extensions usually have tags that prevent conflicts with other extensions that |
| define attributes or resources with the same names, and with core resources and |
| attributes. Because an extension might not be supported by all plug-ins, its |
| availability varies with deployments and the specific plug-in. |
| |
| The results of this package vary depending on the type of Service Client used. |
| In the following examples, note how the only difference is the creation of the |
| Service Client. |
| |
| Example of Retrieving Compute Extensions |
| |
| ao, err := openstack.AuthOptionsFromEnv() |
| provider, err := openstack.AuthenticatedClient(ao) |
| computeClient, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{ |
| Region: os.Getenv("OS_REGION_NAME"), |
| }) |
| |
| allPages, err := extensions.List(computeClient).Allpages() |
| allExtensions, err := extensions.ExtractExtensions(allPages) |
| |
| for _, extension := range allExtensions{ |
| fmt.Println("%+v\n", extension) |
| } |
| |
| |
| Example of Retrieving Network Extensions |
| |
| ao, err := openstack.AuthOptionsFromEnv() |
| provider, err := openstack.AuthenticatedClient(ao) |
| networkClient, err := openstack.NewNetworkV2(provider, gophercloud.EndpointOpts{ |
| Region: os.Getenv("OS_REGION_NAME"), |
| }) |
| |
| allPages, err := extensions.List(networkClient).Allpages() |
| allExtensions, err := extensions.ExtractExtensions(allPages) |
| |
| for _, extension := range allExtensions{ |
| fmt.Println("%+v\n", extension) |
| } |
| */ |
| package extensions |