可以';我无法通过openstacknetsdk找到我的Rackspace云服务器

本文关键字:openstacknetsdk 我的 Rackspace 服务器 可以 | 更新日期: 2023-09-27 17:57:56

我正试图通过C#openstacknetsdk库v1.3.0.0编写一个简单的概念验证,用于在我的Rackspace cloud帐户中操作云服务器。

我遇到的问题是,尽管我似乎可以使用Rackspace用户名和API密钥成功进行身份验证,但API的行为就像我没有任何服务器一样。我的代码:

using net.openstack.Providers.Rackspace;
using net.openstack.Core.Providers;
using net.openstack.Core.Exceptions.Response;
using net.openstack.Providers.Rackspace.Objects;
using net.openstack.Core.Domain;
...
const string USERNAME = "[my rackspace username]";
const string API_KEY = "[my rackspace API key]";
static void Main(string[] args)
{
    CloudIdentity cloudIdentity = new CloudIdentity() { APIKey = API_KEY, Username = USERNAME };
    CloudServersProvider provider = new CloudServersProvider(cloudIdentity);
    IEnumerable<SimpleServer> servers = provider.ListServers();
    foreach (SimpleServer server in servers)
    {
        Console.Out.WriteLine(server.Id);
    }
}

当我在调试器中遍历这些代码时,我可以看到servers最终的大小为0,并且没有任何内容被写出。

这是出乎意料的,因为我确实创建了一个服务器,我可以在Rackspace云控制面板网站上看到。服务器处于活动状态。

如果我试图使用Rackspace云控制面板网站上的"云服务器">"服务器详细信息"页面中的服务器ID获取特定服务器的信息:

Server server = provider.GetDetails("[my cloud server ID]");
Console.Out.WriteLine(server.Image.Name);

我得到一个net.openstack.Core.Exceptions.Response.ItemNotFoundException.

身份验证似乎有效,因为如果我有意将API_KEY值更改为不正确的值(如"test"),我会得到UserNotAuthorizedException。

我在这里错过了什么?为什么openstacknetsdk表现得好像我没有任何服务器?

可以';我无法通过openstacknetsdk找到我的Rackspace云服务器

您在默认区域中创建的服务器吗?

为了安全起见,请尝试在中指定区域。ListServers()方法调用。

此外;您可以通过NuGet下载样本数据;搜索"openstack sample"。