扩展openstack nova api,如何添加新资源

时间:2015-08-11 11:23:56

标签: openstack devstack

我们正在尝试使用新的Resource扩展来扩展nova计算API。 与此示例代码中的方式类似:

https://github.com/accelazh/example-nova-exensions/blob/master/nova/nova/api/openstack/compute/contrib/example_resource.py

如示例所示,我们添加了自己的Controller类,并添加了一个新的" Resource类"继承自extensions.ExtensionDescriptor并具有get_resources方法。由于我们的资源只需要一个show方法,我们的资源类只包含这个:

name = "Foo"
alias = "os-foo"
namespace = "http://docs.openstack.org/compute/ext/foo/api/v1.1"
updated = "2015-08-11T00:00:00+00:00"
def get_resources(self):
resources = [extensions.ResourceExtension('os-foo',
             FooController())]
return resources

能够拨打我们的新资源"从命令行我们在客户端建立了一个匹配的资源类。 我们可以看到从这个类发送的请求似乎是正确的,并且它被发送到这个URL:

http://192.168.255.194:8774/v2/16c4a399b6ad4c31b683984bd9188817/os-foo/id' 但是请求没有成功,当我们查看nova api的日志时,我们得到了这样的信息:

  

GET没有匹配的路由   / b36ac919aca34253aa1fb133044dbf82 / os-foo / ubuntu from(pid = 51315)   致电 /usr/local/lib/python2.7/dist-packages/routes/middleware.py:103

感谢我们如何解决这个问题。

我们怀疑我们必须将我们的扩展添加到路由器的一些方法,但我们无法找到这样做的地方。 但是当我们进行nova list-extensions

时,我们可以看到os-foo被列在其他扩展中

0 个答案:

没有答案