追踪openstack创建虚拟机入口

2018-11-30  本文已影响10人  我是王串串的崔先生

wsgi 暂不分析

直接进入nova restful api 分析
每个API对应的Controller都在nova/api/openstack/compute/目录下的各个API对应的模 块中。这些模块注册就是setup.cfg中所描述的。
例如

servers = nova.api.openstack.compute.servers:Servers

则\nova\api\openstack\compute\servers.py

class Servers(extensions.V21APIExtensionBase):
    """Servers."""

    name = "Servers"
    alias = ALIAS
    version = 1

    def get_resources(self):
        member_actions = {'action': 'POST'}
        collection_actions = {'detail': 'GET',
                              'count': 'GET',
                              'import_server': 'POST'}
        resources = [
            extensions.ResourceExtension(
                ALIAS,
                ServersController(extension_info=self.extension_info),
                member_name='server', collection_actions=collection_actions,
                member_actions=member_actions)]

        return resources

    def get_controller_extensions(self):
        return []

get_resources方法用来返回所要 注册的资源,这里注册了一个资源,名字为ALIAS所指定。
ALIAS = 'servers'
所以在API中所对应的URL为“/v2.1/servers”。这个资源所对应的Controller是 ServersController。除了添加新资源,还可以扩展现有资源,则通过
get_controller_extensions方法来注册,这里没扩展servers资源。

ServersController中,公共方法有 index/create/get/update/delete/count

创建流程走的是create

参考了:https://www.cnblogs.com/goldsunshine/p/7747521.html

上一篇下一篇

猜你喜欢

热点阅读