大佬教程收集整理的这篇文章主要介绍了openstack golang sdk使用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
1. go get github.com/gophercloud/gophercloud
import ( "github.com/gophercloud/gophercloud" "github.com/gophercloud/gophercloud/openstack" "fmt" "crypto/rand" "github.com/gophercloud/gophercloud/pagination" "golang.org/x/crypto/ssh" "time" "net" "github.com/golang/glog" "os" "github.com/gophercloud/gophercloud/openstack/identity/v3/projects" "encoding/json" "github.com/gophercloud/gophercloud/openstack/identity/v3/domains" "github.com/gophercloud/gophercloud/openstack/imageservice/v2/images" "github.com/gophercloud/gophercloud/openstack/networking/v2/networks" "github.com/gophercloud/gophercloud/openstack/compute/v2/flavors" "github.com/gophercloud/gophercloud/openstack/compute/v2/servers" "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/availabilityzones" )
//认证 scop := gophercloud.AuthScope{ ProjectName:"xx",DomainName: "xx",} opts := gophercloud.AuthOptions{ IdentityEndpoint: "http://xx:5000/v3",Username: "xx",password: "xxxxxxx",DomainName: "default",Scope:&scop,} provider,err := openstack.AuthenticatedClient(opts) if err != nil { fmt.Printf("AuthenticatedClient : %v",err) return } func ListZones(provider *gophercloud.ProviderClient) (result []availabilityzones.AvailabilityZonE) { method := "ListZones" client,err := openstack.NewComputeV2(provider,gophercloud.endpointOpts{ Region: "RegionOne",}) fmt.Println(client) if err != nil { fmt.Printf("%s : %v",method,err) return result } pager,_ := availabilityzones.List(client).AllPages() result,err = availabilityzones.ExtractAvailabilityZones(pager) return result } func ListProject(provider *gophercloud.ProviderClient) (result []projects.Project) { method := "ListProject" client,err := openstack.NewIdentityV3(provider,err) return result } pager := projects.List(client,projects.ListOpts{}) fmt.Println(pager) err = pager.EachPage(func(page pagination.PagE) (bool,error) { extract,_ := projects.ExtractProjects(pagE) result = extract return true,nil }) return result } func ListDomain(provider *gophercloud.ProviderClient) (result []domains.Domain) { method := "ListProject" client,err) return result } pager := domains.List(client,domains.ListOpts{}) fmt.Println(pager) err = pager.EachPage(func(page pagination.PagE) (bool,_ := domains.ExtractDomains(pagE) result = extract return true,nil }) return result } func ListImage(provider *gophercloud.ProviderClient) (result []images.ImagE) { method := "ListProject" client,err := openstack.NewImageserviceV2(provider,err) return result } pager := images.List(client,images.ListOpts{}) fmt.Println(pager) err = pager.EachPage(func(page pagination.PagE) (bool,_ := images.Extractimages(pagE) result = extract return true,nil }) return result } func ListNetwork(provider *gophercloud.ProviderClient) (result []networks.Network) { method := "ListNetwork" client,err := openstack.NewNetworkV2(provider,err) return result } pager := networks.List(client,networks.ListOpts{}) fmt.Println(pager) err = pager.EachPage(func(page pagination.PagE) (bool,_ := networks.ExtractNetworks(pagE) result = extract return true,nil }) return result } func ListFlavor(provider *gophercloud.ProviderClient) (result []flavors.Flavor) { method := "ListNetwork" client,err) return result } pager := flavors.ListDetail(client,flavors.ListOpts{}) fmt.Println(pager) err = pager.EachPage(func(page pagination.PagE) (bool,_ := flavors.ExtractFlavors(pagE) result = extract return true,nil }) return result } func CreateInstance(provider *gophercloud.ProviderClient,name String) { fmt.Println("create instance..........") client,}) ss,err := servers.Create(client,servers.CreateOpts{ Name: name,FlavorRef: "64",ImageRef: "aba55c25-60b5-4097-882d-9625fbc8fc11",AvailabilityZone:"nova",Networks: []servers.Network{ servers.Network{UUID:"79e9b0c2-7e49-49f9-a7e2-0e03dd2055b3"},},AdminPass:"root",}).Extract() if err != nil { fmt.Printf("Create : %v",err) return } fmt.Println(ss) }
以上是大佬教程为你收集整理的openstack golang sdk使用全部内容,希望文章能够帮你解决openstack golang sdk使用所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。