模块

mesos模块提供了扩展mesos的方法,使用模块可避免重新编译mesos,模块是可加载的共享库。

模块机制

激活模块

有两种方法定义需要加载的模块列表:

  • --modules=filepath定义了文件路径,文件中包含了JSON格式定义的模块列表
  • --modules="{...}"直接使用JSON格式定义模块列表

--modules_dir=dirpath定义了在哪里找到模块

ModuleManager::initialize()

  • 68-81:将模块名与版本对应关系记录在kindToVersion映射表中

ModuleManager::load

  • 358-365:加载模块目录,将目录下的文件排序
  • 366:对模块目录下的每个文件:
    • 367-375:得到文件内容
    • 377-382:解析模块?调用了flags::parse,解析JSON格式
    • 384-388:调用loadManifest加载模块

ModuleManager::loadManifest

ModuleManager::create

定义在src/module/manager.hpp,主要动作是调用模块中定义的create函数

results matching ""

    No results matching ""