追踪openstack创建虚拟机入口

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。