问题标签 [openstacknetsdk]

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 回答
742 浏览

openstack - OpenStack Rackspace 云文件 .net SDK

我正在尝试将 XML 文件保存到来自悉尼的非 CDN 容器:

对于一个 1MB 的文件,上传大约需要 50 秒(很长)。

并且,尝试重新下载文件,返回一个空结果:

我做错了什么?

0 投票
1 回答
300 浏览

c# - 通过 openstacknetsdk 找不到我的 Rackspace 云服务器

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

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

当我在调试器中单步执行此代码时,我可以看到它servers的大小最终为 0,并且没有任何内容最终被写出。

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

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

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

身份验证似乎正在工作,因为如果我故意将我的API_KEY值更改为不正确的值(如"test"),我会得到一个 UserNotAuthorizedException 。

我在这里想念什么?为什么 openstacknetsdk 的行为就像我没有任何服务器一样?

0 投票
1 回答
113 浏览

rackspace-cloud - 无法使用带有 openstack.net 的 Rackspace Cloud DNS 创建域

我目前正在尝试使用 openstack.net sdk 在 Rackspace Cloud DNS 服务上创建一个域,但没有任何反应。

我得到了我的 rackspace 帐户,它被激活了,我也得到了我的 API 密钥。

我编写了一个控制台应用程序来测试我的代码,但结果总是“WaitingForActivation”,我找不到任何使用 openstack.net sdk 的 cloudDNS 文档。

谁能看看我的代码并告诉我我做错了什么。

私有静态字符串 RackSpaceUserName { get { return "username"; } }

result.Status 的值始终返回“WaitingForActivation”,当我检查我的 rackspace 云 dns 仪表板时,没有创建域。

任何帮助将不胜感激。

0 投票
1 回答
973 浏览

c# - Openstack.Net SDK 无法访问服务

我们已经在我们自己的硬件上设置了一个 OpenStack 系统,安装了所有组件,一切看起来都很好,因为我们已经通过 Web 界面创建了网络和虚拟机。

我正在尝试使用 openstack.net SDK 以编程方式执行操作。我似乎可以使用用户名和密码进行身份验证,但是在访问已安装的其他服务时,我们收到错误提示 API 端点对用户不可用。

我们正在使用的代码在下面,它可以正常工作,直到 CreateServer 行出现错误

“无法验证用户身份并检索授权服务端点。”

在仪表板中以同一用户身份登录时,我可以在 Access and Security >> API Endpoints 部分看到所有服务 url,但 UserAccess.ServiceCatalog 似乎没有填充任何内容。

非常感谢任何帮助或指示。

0 投票
1 回答
723 浏览

c# - Openstack.Net SDK 无法访问具有区域的服务

使用我们自己的硬件,我们已经安装了带有所有组件的 vanilla openstack,但是由于区域问题,我在访问身份以外的服务时遇到了问题。使用的代码如下调用我们创建的管理员帐户和管理员租户...

代码在调用 ListContainers(region: region) 时失败,出现错误...“用户无权访问请求的服务或区域”,好像我没有指定区域,错误只是“没有区域”已提供,服务不提供独立于区域的端点,并且没有为用户帐户设置默认区域'

我们目前只访问我们的内部网络,因此区域对我们来说并不重要......

另外值得注意的是,当拨打...

我可以看到的网络返回错误“该项目未找到或不存在。”

非常感谢帮助和建议。

0 投票
1 回答
424 浏览

openstack - Openstack中全局角色和租户角色的区别

我注意到 API 文档引用了全局角色和租户角色。例如

链接http://developer.openstack.org/api-ref-identity-v2.html#identity-v2-ext有一个 Get 操作

上面写着“列出指定用户的全局角色。当我使用 Openstack.net SDK (GetRolesByUser) 为管理员用户调用此命令时,排除租户角色,我可以看到它正确地进行了调用,但我得到的响应是......

那么租户角色和全局角色有什么区别。这个 api 调用是否已从 openstack 中弃用?

0 投票
0 回答
130 浏览

c# - OpenStack.NET:更改服务端点 URL

我开始为一个项目研究 OpenStack 对象存储。为此,我使用 OpenStack.NET 库和 C#。这个库是由 RackSpace 创建的,但我使用的是不同的 OpenStack Provider。

在实例化新的 CloudIdentityProvider 时,我可以通过指定身份验证服务 URL 来很好地进行身份验证:

这很好用。但是,当我尝试从指定区域检索对象容器时,出现错误:

上面的第二行抛出了这个错误:

用户无权访问请求的服务或区域。

现在我不认为这就是实际的错误,因为这个用户是从提供者的 Web 界面创建对象容器的人。我在想,也许我需要明确指定服务端点 URL(就像我为身份验证所做的那样),但对于我的生活,我似乎找不到任何方法来做到这一点。

OpenStack.NET 文档非常有限,并且倾向于坚持使用 RackSpace,并没有真正进入通用示例。

0 投票
2 回答
898 浏览

openstack-swift - 连接到 OpenStack Swift 仅使用 Rackspace OpenStack.net 安装

我已经能够安装并运行 OpenStack Swift。我的安装是严格的 Swift,不包括 Keystone 或其他 OpenStack 组件。

当我使用该curl命令时,我可以创建用户并进行 Swift 测试,以确保一切正常。我遇到问题的地方是当我使用github上的 Rackspace 维护的 OpenStack.NET API 时。

使用以下命令,我能够创建一个 swift 用户。

一切都按预期工作,并创建了用户/帐户。然后,在我的 Windows 开发机器上,我从 Rackspace GitHub 下载了 OpenStack.NET API,并创建了一个运行以下代码的应用程序;

当它运行时,我收到以下错误。

“找不到支持给定 OpenStack 实例所请求服务的客户端。”

我在这里做错了什么?

0 投票
0 回答
748 浏览

.net - 为什么在使用 ExtractArchiveFromFile 时出现 SocketException

当我尝试使用 openstacknetsdk 将档案上传到 Rackspace Cloudfiles 时,我得到了一个System.Net.Sockets.SocketException,上传相同的文件CreateObjectFromFile可以完美地工作。

示例代码:

异常详情:

bz2 文件为 +-170MB。

在查看代码时,我没有看到任何显着差异......

  • 牛顿软件.Json 5.0.8
  • openstack.net 1.3.3.0
  • 简单REST服务 1.3.0.1
0 投票
0 回答
334 浏览

openstack-swift - 是否可以将 OpenStack.NET SDK 与 SoftLayer 对象存储一起使用?

SoftLayer 对象存储基于OpenStack Swift对象存储。

SoftLayer 在 Python、Ruby、Java 和 PHP 中为他们的对象存储提供 SDK,但不在 .NET 中。在为 OpenStack 搜索 .NET SDK 时,我遇到了OpenStack.NET

基于这个问题,OpenStack.NET 默认设计为与 Rackspace 一起使用,但可以使用CloudIdentityWithProject和与其他 OpenStack 提供程序一起使用OpenStackIdentityProvider

SoftLayer 提供以下信息以连接到其对象存储:

这将如何映射到 的字段并不明显CloudIdentityWithProjectOpenStackIdentityProvider但我尝试了以下和项目名称/用户名/uri的其他一些组合:

但是,在所有情况下,我都收到以下错误:

根据查看 SoftLayer 的其他语言库和 OpenStack.NET 的源代码,看起来 SoftLayer 的对象存储使用 V1 auth,而 OpenStack.NET 使用 V2 auth。

根据SoftLayer这篇文章和 SwiftStack的这篇文章,V1 auth 使用了一个/auth/v1.0/路径(就像 SoftLayer 提供的路径),带有X-Auth-UserX-Auth-Key标头作为参数,并且响应包含在标头中,如下所示:

而 V2 auth ( identity API V2.0 ) 使用/v2.0/tokens路径,请求和响应在消息正文中的 JSON 对象中。

基于OpenStackIdentityProviderOpenStack.NET 中的类,我将自己的类组合在一起,SoftLayerOpenStackIdentityProvider如下所示:

UserAccess因为(like IdentityTokenand )的一些成员Endpoint无法设置它们的字段(对象只有一个默认构造函数并且只有只读成员),所以我必须UserAccess通过反序列化一些与返回的格式类似的临时 JSON 来创建对象通过 V2 API。

这有效,即我现在可以这样连接:

然后像这样访问文件等:

但是,有没有比这更好的方法来使用 .NET 中的 SoftLayer 对象存储?

我还简要地查看了OpenStack SDK for .NET(与 OpenStack.NET 不同的库),但它似乎也基于 V2 auth。