|
|
2 dienas atpakaļ | |
|---|---|---|
| .. | ||
| auth | 2 dienas atpakaļ | |
| cloudpods | 2 dienas atpakaļ | |
| example | 2 dienas atpakaļ | |
| informer | 2 dienas atpakaļ | |
| models | 2 dienas atpakaļ | |
| modulebase | 2 dienas atpakaļ | |
| modules | 2 dienas atpakaļ | |
| options | 2 dienas atpakaļ | |
| utils | 2 dienas atpakaļ | |
| LICENSE | 2 dienas atpakaļ | |
| README.md | 2 dienas atpakaļ | |
| aksk.go | 2 dienas atpakaļ | |
| assume.go | 2 dienas atpakaļ | |
| cas.go | 2 dienas atpakaļ | |
| catalog.go | 2 dienas atpakaļ | |
| doc.go | 2 dienas atpakaļ | |
| input.go | 2 dienas atpakaļ | |
| mcclient.go | 2 dienas atpakaļ | |
| oauth2.go | 2 dienas atpakaļ | |
| oidc.go | 2 dienas atpakaļ | |
| rand.go | 2 dienas atpakaļ | |
| saml.go | 2 dienas atpakaļ | |
| session.go | 2 dienas atpakaļ | |
| token.go | 2 dienas atpakaļ | |
| token2.go | 2 dienas atpakaļ | |
| token3.go | 2 dienas atpakaļ | |
| tokenman.go | 2 dienas atpakaļ | |
| tokensimple.go | 2 dienas atpakaļ | |
| verify.go | 2 dienas atpakaļ | |
Login to first controlplane node of your cluster and execute ocadm cluster rcadmin to get auth info.
For example:
$ ocadm cluster rcadmin
export OS_AUTH_URL=https://10.127.100.2:30500/v3
export OS_USERNAME=sysadmin
export OS_PASSWORD=7AQMP9H2umQvbxxx
export OS_PROJECT_DOMAIN=default
export OS_PROJECT_NAME=system
export YUNION_INSECURE=true
export OS_REGION_NAME=region0
export OS_ENDPOINT_TYPE=publicURL
Sample code
package main
import (
"context"
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
)
func main() {
client := mcclient.NewClient("https://10.127.100.2:30500/v3",
60,
true,
true,
"",
"")
token, err := client.Authenticate("sysadmin", "7AQMP9H2umQvbxxx", "Default", "system", "Default")
if err != nil {
panic(err)
}
s := client.NewSession(context.Background(),
"region0",
"",
"publicURL",
token,
)
params := jsonutils.NewDict()
params.Set("scope", jsonutils.NewString("system"))
result, err := modules.Servers.List(s, params)
if err != nil {
panic(err)
}
fmt.Printf("%s", jsonutils.Marshal(result).PrettyString())
}
使用统一API入口调用
package main
import (
"context"
"fmt"
"yunion.io/x/jsonutils"
"yunion.io/x/onecloud/pkg/mcclient"
modules "yunion.io/x/onecloud/pkg/mcclient/modules/compute"
)
// 文档说明: https://www.cloudpods.org/docs/development/apisdk/apigateway/
func main() {
client := mcclient.NewClient("https://10.127.100.2/api/s/identity/v3", // 注意此地址不带端口
60,
true,
true,
"",
"")
token, err := client.Authenticate("sysadmin", "7AQMP9H2umQvbxxx", "Default", "system", "Default")
if err != nil {
panic(err)
}
s := client.NewSession(context.Background(),
"region0",
"",
"apigateway", // 注意此endpoint类型
token,
)
params := jsonutils.NewDict()
params.Set("scope", jsonutils.NewString("system"))
result, err := modules.Servers.List(s, params)
if err != nil {
panic(err)
}
fmt.Printf("%s", jsonutils.Marshal(result).PrettyString())
}