0

我是 OpenStack 的新手,只有几个小时的经验。我想使用 OpenStack.NET 创建一台新机器,这是我想出的代码。

var identityUrl = "http://server:5000/v2.0";
var imageUrl = "http://server:9292";
var username = "username";
var password = "password";

var cloudId = new CloudIdentity() { Username = username, Password = password };
var cloudIdProvider = new CloudIdentityProvider(new Uri(identityUrl));

cloudIdProvider.Authenticate(cloudId);

var cloudServersProvider = new CloudServersProvider(cloudId, cloudIdProvider);

var newServer = cloudServersProvider.CreateServer("cloudServerName", "Windows Server 2012", "m1.medium");

identityUrl是身份服务 imageUrl的 url 是图像服务的 url

我可以cloudIdProvider.Authenticate(cloudId);在线进行身份验证,所以我认为身份服务和用户名/密码是正确的。

当我调试时cloudServersProvider.CreateServer("cloudServerName", "Windows Server 2012", "m1.medium");,它会抛出No region was provided, the service does not provide a region-independent endpoint, and there is no default region set for the user's account.我不知道如何修复它的异常。

4

1 回答 1

0

身份服务可能无法包含有关计算服务端点的信息,因为您在身份验证期间未指定租户名称和/或租户 ID。SDK 的下一个版本将支持指定这些,如OpenStack 身份验证文档的预览版本中所述。但是,由于所描述的类在 1.3.1.0 版本中不存在,您需要在项目中包含它们的副本,直到 1.3.2.0 版本发布。

于 2014-02-20T13:36:29.020 回答