import ( "github.com/rackspace/gophercloud" "github.com/rackspace/gophercloud/openstack" "github.com/rackspace/gophercloud/openstack/compute/v2/servers" ) func main() { // create an authOptions object authOpts, err := openstack.AuthOptionsFromEnv() if err != nil { panic(err) } // create a compute service client provider, err := openstack.AuthenticatedClient(authOpts) if err != nil { panic(err) } client, err := openstack.NewComputeV2(provider, gophercloud.EndpointOpts{}) if err != nil { panic(err) } // get a list of servers serverList, err := servers.List(client, servers.ListOpts{}) if err != nil { panic(err) } // print the server names for _, server := range serverList { fmt.Println(server.Name) } }In this example, we use the `openstack.AuthOptionsFromEnv` function to create an authentication options object. Then we use the `openstack.AuthenticatedClient` function to create an authenticated provider. The provider is used to create a compute service client with `openstack.NewComputeV2`. Finally, we use the `servers.List` function to retrieve a list of servers, and we print out their names. This example demonstrates how to use the `Get` method to retrieve a list of resources. It also shows the package library's flexibility and wide range of supported services.