问题标签 [vcloud-director-rest-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vcloud-director-rest-api - vCD API 请求 URI '/edgeGateway/{id}/action/manageExternalIpAddresses' 返回 RESOURCE_NOT_FOUND... 为什么?
按照此文档分配 IP 地址到边缘网关,请求总是返回 404 资源未找到错误,这意味着没有这样的 URI。我们的 vCD API 支持 9.0 版本,它应该包含从 5.7 版本开始添加的 URI。
为什么找不到那个URI?
提前致谢。
vcloud-director-rest-api - 如何使用 vCloud API 更改磁盘存储配置文件
我正在尝试更改vCloud
. 我找到了这个链接。我使用以下 xml 文档作为我的REST
请求的正文
由于某种原因,重新配置任务完成后,我看不到存储配置文件部分的任何更改
有趣的是重新配置磁盘大小成功运行。看起来重新配置任务会跳过存储配置文件更改。有人可以就这件事给我建议吗?
我在我的组织 vDC 中仔细检查了快速配置,但它已关闭。
c# - 具有多个 StorageProfile 的 VM
我正在使用 VMware 的 vCloud SDK 的 .NET 版本。我有一个带有两个存储的虚拟机,一个是“x”类型,另一个是“y”类型。
但是,当调用 vm.Resource.StorageProfile.name 我只得到第一个磁盘的名称 (x)
有没有其他方法可以同时获得“x”和“y”存储?
vmware - 在 vCloud 环境中导出 VM/vAPP
我们有一个定制的 vCloud 环境。我们正在尝试将 vAPP 映像下载为 ovf 文件,以便将其迁移到其他环境。我正在遵循这个程序
- 停止虚拟机。
- 点击下载按钮设置
- 它要求下载位置和图像类型(ova/ovf)。
- 它启动下载。
现在我的问题在于第四步。当我单击下载时,它会启动下载,当它发生时我可以看到“启用下载”。在某个未知时间后(无法预测时间可能是 2 小时、3 小时、4 小时、1 小时),该过程会失败。我必须多次重复该过程(至少 3 到 5 次)才能开始实际的下载过程,在该过程中它实际上将 VM 映像复制到磁盘上。
我无法预测虚拟机下载的实际时间以及为什么该过程在开始实际导出过程之前多次失败。
有人可以告诉我以下问题的答案吗
- vCloud 是否在允许我们下载 VM 之前启用下载功能?如果它确实启用此功能需要多长时间。
- 我们是否可以预先启用此功能,以便在我关闭机器并启动 VM 导出过程后,vCloud 应该立即启动 VM 下载过程?
- 您是否认为使用 ovftool 之类的 CLI 工具会加快进程并防止失败,以便我了解实际的 VM 下载时间并制定迁移计划?
xml - Powershell中的多页xml Rest调用
所以我很快就会面临一个问题,我在 Vcloud director Rest API 中的当前查询,我留下来自动化,不会得到所有结果,因为它会超过 100 个项目的页面大小限制。
我可以硬编码来搜索第 2 页,但我实际上希望能够检查它是否有多个页面,如果有的话,有多少页面,并获得所有页面的调用并输出所有页面。我不想每次需要扩展到另一个页面时都必须进行硬编码。
与以下
注意第 1 页
我通过解析$adminvm.QueryResultRecords
现在,当$adminvm.QueryResultRecords.pagesize小于$adminvm.QueryResultRecords.total 时:
$adminvm.QueryResultRecords.link来自
至
对于那些不熟悉 Vcloud Rest 组织的人,所有内容往往都在$Restcall.QueryRecords.SomethingRecord中,并且将包含一页数据......所以在这种情况下,它将是$adminvm.QueryResultRecords.AdminVMRecord
现在我应该如何解决这个问题......即使作为一个函数......我被卡住了
我应该如何处理这个?
目标是让它自动检查是否有多个页面,并为每个额外的页面获取数据,并将所有数据一起输出。
我想我应该从 if pagesize is less than total 开始......但不确定方法......我的意思是我知道我必须在每个页面上进行 REST 调用......但是如何公式化地做到这一点?
file-upload - 通过 VMware API 上传媒体会导致传输大小大于文件大小
我们正在利用 V Cloud API 与虚拟机交互(创建机器、执行操作、切换媒体等)。一个请求的功能是能够将媒体(特别是 ISO)上传到特定的目录。API 指南(第67 页)相当简单,我们对上传开始时提供的 URL 的多部分请求顺利进行。
注意:我们必须在开始上传之前声明文件大小
在上传过程中唯一看起来不对劲的是“传输的大小”最终大于过程结束时的“文件大小”。这有点奇怪,因为我们的内容范围永远不会超过预期的文件大小(我们假设元数据被包含在我们没有发言权的情况下)。一旦此传输的大小超过文件大小,文件上传的状态将更改为“错误”,但仍返回一个200 OK
甚至不确定从哪里开始调试,因为所有 API 调用都返回.ISO 文件200 OK
似乎很好,我们的内容范围标头永远不会超出既定文件大小,元数据似乎超出了我们的范围在编辑或测量方面进行控制。
希望有些人以前经历过这个问题,并可以提供一些洞察力来寻求解决方案
vmware - VMware VCloud REST API 不适用于从边缘网关网络解除分配公共 IP
我们正在尝试调用以下 REST API 从边缘网关网络解除分配公共 IP。
PUT:https : //myvcloud.com/api/admin/edgeGateway/ {边缘网关的 ID}/action/manageExternalIpAddresses
请求标头:
授权:基本 YWRtaW5pc3RyYXRvckBTeXN0AA06SW5kYXBlbmRlbnQxMiM= Accept: application/*+xml;version=5.7 x-vcloud-authorization: 38fe9e559ad04ecf88d81f00954ce805
请求正文:
当我们执行上述 API 时,它显示错误代码 404(未找到资源)。
根据以下文档,我发现此 API 是从 5.7 版重新发送的。 https://pubs.vmware.com/vca/index.jsp#com.vmware.vcloud.api.reference.doc_90/doc/operations/PUT-GetVdcTemplates.html
团队,你能帮我解决这个问题吗?为什么我会出现这种行为?是否有任何替代方法可以实现目标。
问候, Sougata Halder
c# - 将 vCloud API 版本 27.0 与 .NET 一起使用
我正在使用 vCloud API 创建组织、组织用户、虚拟数据中心、边缘网关和组织网络。
在 vCloud Director 8.2 中,现在有全局角色和组织角色。我通过 API 调用返回的角色是全局角色。当我创建用户时,我想要组织角色。
我和我的同事已经确定,除非您使用 API 27.0 版,否则无法撤回组织角色。我正在使用最新版本的 SDK,它是 9.0,可与 vCloud Director 8.1 一起使用。
如何指定我想使用 API 的 27.0 版本?如果这是不可能的,有没有不同的方法来完成我需要的?谢谢!
php - 使用 PHP 登录到 vCloud Director API
我第一次尝试使用 PHP 来使用 vCloud Director API。这是文档中的前两个步骤 - https://pubs.vmware.com/vca/index.jsp#com.vmware.vcloud.api.doc_56/GUID-6DC15CF5-3BCF-4426-9988-C71E7A71CBD6.html
向 vCloud Director 发出 API 版本请求以获取 REST API 的登录 URL。
使用登录 URL 创建登录会话。向此 URL 发布一个请求,其中包括您的用户名、密码和组织名称,采用 MIME Base64 编码。
但是,我无法使用登录 vCloud GUI 时使用的登录信息创建登录会话。
下面是我的代码:
$result2 只返回 false。
任何输入将不胜感激。
谢谢。
vmware - 如何在云服务器上挂载 ISO、将文件复制到访客并调用脚本
我正在尝试移植/调整以前与 vSphere 一起使用的一些 PowerCLI 脚本,以便与云服务器一起使用。
vCenter 使用的许多 cmdlet 似乎都有相应的云版本(Connect-CIServer、Get-CIVapp、Start-CIVM 等)
但是,我需要做的一些事情似乎没有匹配的 cmdlet...
具体来说,我试图弄清楚如何安装 ISO(目录中已经存在)。我还需要将 zip 存档复制到来宾,然后调用 PowerShell 脚本来扩展存档,最后执行包含在扩展存档中的脚本。在 vCenter 中,这一切都是微不足道的......
这是我尝试与 Cloud Server 一起使用的 cmdlet 列表,但不能,因为他们期望的类型与 Cloud 类型不兼容:
- 获取 CDDrive
- 设置-CDDrive
- 复制-VMGuestFile
- 调用-VMScript
我是否需要以某种方式直接调用 API?这是我可以利用 Get-CIView cmdlet 来协助的吗?
非常感激任何的帮助!