首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Govmomi /Vapi API不支持ESX()模拟器来创建Rest客户端?

Govmomi /Vapi API不支持ESX()模拟器来创建Rest客户端?
EN

Stack Overflow用户
提问于 2022-06-30 11:51:51
回答 1查看 96关注 0票数 0

我正在使用用于与vSphere交互的vSphere Govmomi/vapi客户端进行一些单元测试。

代码语言:javascript
复制
var insecure bool = true
type RestClient struct {
 url *url.URL
 restClient *rest.Client
}

func (c *RestClient) GetRestClient(ctx context.Context) (*rest.Client, error){
 soapClient := soap.NewClient(c.url, insecure)
 vim25Client, err := vim25.NewClient(ctx, soapClient)
 if err != nil {
  return nil, err
 }
 c.restClient = rest.NewClient(vim25Client)
 err = c.restClient.Login(ctx, c.url.User)
 if err != nil {
  return nil, err
 }
 return c.restClient, nil
}

我使用simulator.ESX()来模拟模型。

代码语言:javascript
复制
func TestGetRestClient(t *testing.T){
 ctx := context.Background()
 model := simulator.ESX()
 defer model.Remove()
 err := model.Create()
 if err != nil {
  t.Fatal(err)
 }
 server := model.Service.NewServer()
 defer server.Close()
 url := server.URL
 var client RestClient = RestClient{url: url,}
 _, err := client.GetRestClient(ctx)
 if err != nil {
  t.Errorf("err = %v", err)
  return
 }
}

但是,在创建了rest客户机并尝试登录()之后,我得到了

代码语言:javascript
复制
error= POST http://127.0.0.1:36655/rest/com/vmware/cis/session: 404 Not Found

我做错了什么吗?我应该在vmware的govmomi中为vapi/rest客户端使用不同的模拟器吗?任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-11 07:41:53

我自己也面临着这个问题。通过vapi/rest模拟器的源代码,发现它们内部只支持VPX模拟器。使用

代码语言:javascript
复制
model := simulator.VPX()

而不是

代码语言:javascript
复制
model := simulator.ESX()

在单元测试中,不要试图直接调用API,而是有身份验证issues.The vapi/rest提供了用于测试的功能。

代码语言:javascript
复制
simulator.Test(func(ctx context.Context, vc *vim25.Client)

这个函数自动生成一个*vim25.Client对象,它还可以提供一个VPX模拟器instance.For更多信息,查看文档。

在官方源代码中检查它的这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72815309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档