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

扩展openstack nova api,如何添加新资源,openstack,devstack,Openstack,Devstack,我们正在尝试用一个新的资源扩展来扩展nova计算API。 与此示例代码中的执行方式类似: 正如在示例中所做的,我们添加了自己的控制器类,还添加了一个新的“资源类”,该类继承自extensions.ExtensionDescriptor,并具有一个get_resources方法。因为我们的资源只需要一个show方法,所以我们的资源类只包含以下内容: name = "Foo" alias = "os-foo" namespace = "http://docs.openstack.org/compu

我们正在尝试用一个新的资源扩展来扩展nova计算API。 与此示例代码中的执行方式类似:

正如在示例中所做的,我们添加了自己的控制器类,还添加了一个新的“资源类”,该类继承自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:

" 但是请求没有成功,当我们查看nova api的日志时,我们得到以下消息:

没有与GET匹配的路线 /B36AC919AC34253AA1FB13044DBF82/os foo/ubuntu from(pid=51315) 调用/usr/local/lib/python2.7/dist-packages/routes/middleware.py:103

感谢您提供我们如何解决此问题的任何提示

我们怀疑必须以某种方式向路由器添加扩展,但我们找不到在何处执行此操作。
但是我们可以看到,当我们执行nova list extensions时,os foo被列在其他扩展中。您可能希望在上执行此任务。您可能希望在上执行此任务。