问题标签 [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.

0 投票
2 回答
1642 浏览

chef-infra - 使用 Chef 的 Knife-vcloud 插件在 VCloud DIrector 中更改 VM 的主机名

我正在使用厨师的刀 vcloud 插件。https://github.com/astratto/knife-vcloud 我能够创建一个新的虚拟机,使用带有给定文档的现有目录,knife vc vapp create MyorgVDC-Tier1 chefnode2 "Just Created node2" WhAtEvEr-Id-tO -可见

当我启动 vm 时,它默认采用目录中的主机名。我尝试通过knife vc vm set info --name ChefNewNode WhAtEvEr-Id-tO-bE-SeEn --vapp MyvApp_Chef centos 修改它我想根据机器的角色更改主机名。目前我看到这个输出。如何更改机器的主机名?

[root@chefworkstation ~]#knife vc vm show WhAtEvEr-Id-tO-bE-SeEn 注意:--vapp 和--vdc 未指定,假设 VM 是 ID VM 名称:ChefNewNode 操作系统名称:CentOS 4/5/6 (64 位)状态:运行中

Cpu
虚拟 CPU 数量 1 个虚拟 CPU

内存
内存大小 512 MB 内存

磁盘
硬盘 1 16384 MB
硬盘 2 16384 MB

网络
MyorgNet-Router

Index 0
Ip 192.168.0.117
External ip
is connected true
Mac address 10:20:30:40:50:0f
ip分配方式MANUAL

来宾自定义
已启用 true
管理员密码已启用 true
管理员密码 auto false
管理员密码
需要重置密码 false

计算机名称 centos

0 投票
1 回答
133 浏览

ajax - 需要 RestApi 认证

使用 Java/Spring MVC 开发 Rest API

  1. 我们可以为 RestAPI 提供身份验证吗?如果是,如何?
  2. 现在我正在努力为 RestApi 进行身份验证。任何人都可以发送一些关于相同的例子。
  3. 通过 AJAX 请求访问 REST API。
0 投票
2 回答
6074 浏览

xml - Powershell:使用命名空间向 XML 文档添加元素

我正在尝试编写一个使用 VMWare 的 vcloud REST API 添加 NIC 的 powershell cmdlet(VMWare 自己的 powerCLI 似乎不允许这样做)。为了做到这一点,我需要使用这个 XML:

并在最后一个 vcloud:Link 下方添加以下元素。

现在,我将原始 XML 作为 $xmlDoc 放入 PS 中,并且我尝试了以下代码:

这是创建的 XML 的相关位:

如您所见,它大部分都有效,但不幸的是,它似乎正在删除 XML 命名空间前缀。它可能仍然有效,但我真的很想匹配格式。我对 XML 和 Powershell 交互还很陌生,所以我的问题是:

  1. 如何让它输出命名空间?
  2. 有没有一种更简单的方法可以手动创建我只是愚蠢地忽略的每个元素?
0 投票
1 回答
693 浏览

cloud - jclouds 支持较新的 vCloud API

我们必须为我们的迁移服务(从 AWS 到 Openstack 到 vCloud 等等)支持许多不同的目标云,所以我想我至少会在我们检索帐户属性的部分(例如区域、组织、目录、 ETC。)

然而,jclouds 对“通用”vCloud API 的支持似乎停留在 1.0 - 当我们在内部运行 1.5(和 5.1)时,这使得 jcloud 非常无用,至少就 vcloud 而言(我认为 1.5 已被“弃用”) ”VMWare 去年 9 月发布的?)。

有谁知道我是否在这里遗漏了一些明显的东西,或者是否有升级支持的计划?

显然,我们将使用 vmware 的 SDK,但最好通过 jclouds 抽象所有云。

这是我收到的错误:

我正在使用的代码几乎直接来自(非常稀疏的)“用户指南”:

任何帮助、建议、指向更好文档的指针将不胜感激:谢谢!

0 投票
1 回答
311 浏览

python-3.x - 用于使用 vCloud Director 启动虚拟机的 CLI 命令

我正在尝试使用 vCloud Director 中的 python 自动启动 VM 的过程。搜索后我能找到的是用于此目的的 REST API。谁能告诉我是否有一些 CLI 命令可用于此目的?

谢谢您的帮助。

0 投票
0 回答
235 浏览

java - vcloud sdk API VApp.undeploy((UndeployPowerActionType.DEFAULT) 给出间歇性异常

我们正在调用 API 以在非工作时间期间取消部署 vApp,然后再重新启动它们。

尝试取消部署 VApp 时出现间歇性错误。(稍后我将给出完整的堆栈跟踪)。

只是为了让您知道我在做什么,是我首先调用 VApp.shutdown() ,这似乎总是返回成功。在调用 Vapp.undeploy(UndeployPowerActionType.DEFAULT) 之前,我有时会等待长达 10 分钟。它仍然经常不起作用。然后当我再次运行它时,它通常可以工作(当我检查结果时,Vapp 确实未部署),或者如果它仍然不起作用,那么当我再次调用它时,它确实有效。

堆栈跟踪如下所示..(有时数组索引超出范围,具有不同的数字,例如 -5 或 -12 等。但堆栈跟踪始终如下所示......)

2014-07-17 13:10:33 错误 [main] ControlModule:75 - 取消部署导致错误 java.lang.ArrayIndexOutOfBoundsException:数组索引超出范围:com.sun.xml.bind.v2.util 处的 -2。 CollisionCheckStack.findDuplicate(CollisionCheckStack.java:133) at com.sun.xml.bind.v2.util.CollisionCheckStack.push(CollisionCheckStack.java:71) at com.sun.xml.bind.v2.runtime.XMLSerializer.pushObject( XMLSerializer.java:494) 在 com.sun.xml.bind.v2.runtime.XMLSerializer.childAsXsiType(XMLSerializer.java:609) 在 com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.serializeBody(SingleElementNodeProperty. java:113) 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:120) 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl$1.serializeBody(ElementBeanInfoImpl.java:149) 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:276) 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:276) 在 com.sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeBody(ElementBeanInfoImpl.java:269) .sun.xml.bind.v2.runtime.ElementBeanInfoImpl.serializeRoot(ElementBeanInfoImpl.java:35) 在 com.sun.xml.bind.v2.runtime.XMLSerializer.childAsRoot(XMLSerializer.java:472) 在 com.sun.xml .bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:301) 在 com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:230) 在 javax.xml.bind.helpers.AbstractMarshallerImpl .marshal(AbstractMarshallerImpl.java:106) 在 com.vmware.vcloud.sdk.JAXBUtil.marshal(JAXBUtil.java:199) 在 com.vmware.vcloud.sdk.AbstractVapp.createVappUnDeployParamBody(AbstractVapp.java:299) 在 com。 vmware。vcloud.sdk.AbstractVapp.undeploy(AbstractVapp.java:318) 在 com.ipt.ebsa.skyscape.client.module.ControlModule.controlVApp(ControlModule.java:70) 在 com.ipt.ebsa.skyscape.client.manager。 VMManager.controlVApp(VMManager.java:294) 在 com.ipt.ebsa.skyscape.client.CloudManager.UndeployVApp(CloudManager.java:197) 在 com.ipt.ebsa.skyscape.client.RajVAppTest.stopAndUndeployVApp(RajVAppTest.java: 178) 在 com.ipt.ebsa.skyscape.client.RajVAppTest.testUndeployVApp0(RajVAppTest.java:121) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94)在 org.junit 的 java.lang.reflect.Method.invoke(Method.java:619) 的 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)。runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod .java:44) 在 org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 在 org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 在 org. junit.runners.ParentRunner.runLeaf(ParentRunner.java:271) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org .junit.runners.ParentRunner$3.run(ParentRunner.java:238) 在 org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63) 在 org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236) 在 org.junit.runners.ParentRunner.access$000(ParentRunner.java:53) 在 org.junit.runners.ParentRunner$2.evaluate(ParentRunner .java:229) 在 org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) 在 org.eclipse.jdt.ParentRunner.run(ParentRunner.java:309)。 jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) 在 org.eclipse.jdt.internal。 junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) 在 org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) 在 org.eclipse.jdt.internal.junit.runner。RemoteTestRunner.main(RemoteTestRunner.java:197) 2014-07-17 13:10:33 调试 [main] ControlModule:77 - 取消部署 vapp 'TEST_RAJ2' 完成 2014-07-17 13:10:33 调试 [main] VMManager :296 - controlVApp 退出

有人可以告诉我我做错了什么吗?为了取消部署我的 Vapp,只需要重试并最终它会起作用是正常的做法吗?

如果是这种情况,我必须不断重试,我可以检测到这个异常,如果我得到它,在最终失败并放弃之前重试一定次数?

还是有其他方法可以检测 Vapp 是否未部署?

调用 'shutdown() 而不是 undeploy() 会更好吗?我认为,根据我的经验,这似乎更一致。但是,控制台中生成的 vApp 被命名为“部分运行”而不是“关闭”。这可能是可以接受的,因为归根结底,我们只是希望我们的云托管合作伙伴在我们不需要 vAPP 的时候停止向我们收费。我认为关闭vAPP实际上可能达到这个目的?我将不得不检查云托管合作伙伴。

任何帮助深表感谢。

谢谢,

0 投票
1 回答
295 浏览

python - python libcloud在vAPP中创建VM

我可以使用 libcloud 在云中创建节点(vAPP),但是 API 没有提到在现有 vAPP 中创建 VM 的方法。有没有人试过这个?

http://libcloud.readthedocs.org/en/latest/compute/drivers/vcloud.html

0 投票
2 回答
2549 浏览

vcloud-director-rest-api - vCloud:在 vApp 中创建和配置 vm

我正在尝试使用 vCloud rest API 将虚拟机从模板部署到 vApp。我觉得应该有一种方法来配置一个虚拟机,因为我正在生成它(因为 UI 似乎这样做)但还没有找到方法。

我一直专注于重组 vApp 以向其添加 vm。下面的示例将添加一个 vm,但直到它被创建后我才想出配置它。具体来说,我想设置 vm 的 VM 名称、主机名和 IP 设置。

创建虚拟机后,我可以重新配置它,但网络设置或主机名实际上都没有改变。vCloud Director UI 告诉我它们已更改,但查看来宾操作系统显示设置未更改。

更改主机名示例(不起作用):

是否有人能够在您部署 VM 时对其进行配置。否则,有人知道如何在部署 VM 后有效地配置它的设置。工作 XML 示例将是惊人的,但我仍然会感谢其他形式的帮助。

0 投票
0 回答
82 浏览

java - 按需启动 vmware(vCloud) 实例

我们有几个私有 vCloud vmware 实例,在这些实例上部署了一些 java webap。这些实例彼此不相关。

我正在监视应用程序的使用情况,并且有一些实例几天甚至几个月都没有使用。

有没有一种方法可能已经内置在 vmware 中,可以在几天不使用时停止实例,并在收到新请求时快速重新启动它。

这样做的动机只是为了优化 wmware 许可证成本。

我已经在监视对某个实例的请求,并且我知道我可以通过 vCloud Java api 来完成,但我不知道它是否足够快以在新请求到来时启动实例。

Ahy 提示我应该往哪个方向走?

0 投票
0 回答
111 浏览

c# - 日期时间的 vCloud SDK 过滤器

我的任务:

我正在查询我的 vCloud 实例中的所有任务,这按预期正常工作。我想我会创建过滤器来只获取今天的任务。

根据文档,它应该能够使用日期时间字段。

我的问题

当我运行我的代码时,它返回“minorErrorCode="BAD_REQUEST" message="Bad request: Cannot parse '2014-10-29T00:00:00' as date." 我尝试了多种日期时间格式,一切都返回相同。

有什么想法吗?

更新:

解决方案

我找到了解决方案->反复试验...格式需要是ISO 8601->“O”格式,其中包括时区-我的看起来像这样2014-10-29T00:00:00.0000000+01:00 但显然vmware并没有指望格林威治以东的任何人,所以我需要将 + 转换为 -

现在它可以工作了