【问题标题】:How do I get a VM's "full name" using the vCloud SDK?如何使用 vCloud SDK 获取 VM 的“全名”?
【发布时间】:2012-07-19 09:48:41
【问题描述】:

我正在使用来自 VMWare 的 vCloud SDK 的 .NET 版本。在我的应用程序中,我想显示当前正在运行的虚拟机列表。为此,我跳过了几个环节来获取 Vapp 对象,然后枚举其子 VM。

但遗憾的是,除了通过 IP 地址之外,似乎没有其他方法可以识别每个 VM。

有没有办法提取“全名”和描述?

vCloudClient cli = new vCloudClient(url, com.vmware.vcloud.sdk.constants.Version.V1_5);
cli.Login(userName,pass);
Organization organisation = Organization.GetOrganizationByReference(cli, cli.GetOrgRefsByName()[orgName]);
Vdc vdc = Vdc.GetVdcByReference(cli,organisation.GetVdcRefByName(vdcName));
ReferenceType vappref = vdc.GetVappRefByName("myVappName");
Vapp vapp = Vapp.GetVappByReference(cli,vappref);
List<VM> vms = vapp.GetChildrenVms();
foreach(VM vm in vms)
{

}

【问题讨论】:

    标签: .net vcloud-director-rest-api


    【解决方案1】:

    在 SDK 的术语中,每个VM 也是一个VcloudEntity&lt;&gt;,它有一个Reference 类型为ReferenceType 的属性。

    所以要获得VM 的名称(或任何vCD 对象的名称),您可以使用vm.Reference.name

    我想它没有想象中那么直观......当时我花了很长时间才找到它。

    【讨论】:

    • 谢谢! :)我以为我使用智能感知遍历了整个对象,但显然我忽略了“参考”,之前仅将其用作各种句柄。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多