簡體   English   中英

通過openstacknetsdk找不到我的Rackspace雲服務器

[英]Can't find my Rackspace cloud server via openstacknetsdk

我正在嘗試編寫一個簡單的概念驗證,以通過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的行為就像我沒有任何服務器?

您創建的服務器是否在默認區域中?

為了安全起見,請嘗試在.ListServers()方法調用中指定區域。

也; 您可以通過NuGet下載樣本數據; 搜索“ openstack示例”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM