美文网首页Ovirt程序员虚拟化技术
【Ovirt 笔记】工具包分析与整理

【Ovirt 笔记】工具包分析与整理

作者: 58bc06151329 | 来源:发表于2018-07-11 13:07 被阅读6次

    文前说明

    作为码农中的一员,需要不断的学习,我工作之余将一些分析总结和学习笔记写成博客与大家一起交流,也希望采用这种方式记录自己的学习之旅。

    本文仅供学习交流使用,侵权必删。
    不用于商业目的,转载请注明出处。

    分析整理的版本为 Ovirt 4.2.3 版本。

    • utils 工具包,主要封装了 engine 代码中常用的公共工具类(与业务不相关)。
    • uutils 工具包,主要封装了通用的公共工具类(与业务不相关)。
    • tools 工具包,主要封装了 engine 代码中的工具类(与业务相关)。

    1. 工程引用

    • utils 工具包,被以下工程引用。
    工程名 说明
    aaa.jar 用于认证与权限
    benchmarks.jar 用于基准测试
    bll.ejb 主要负责业务逻辑处理
    branding.jar 用于品牌化定制处理
    dal.jar 数据库层相关
    docs.war 文档处理相关
    frontend.jar 前端 GWTP 代码
    gwt-extension.jar 前端扩展
    interface-common-jaxrs.jar RestApi 常用类
    logger.jar 日志相关
    restapi-jaxrs.jar RestApi 相关
    restapi-types.jar RestApi 模型相关(Mapper)
    root-war.war 根目录工程
    scheduler.jar 调度相关
    searchbackend.jar 内部搜索相关
    services.war 服务相关
    tools.jar 工具类相关
    • uutils 工具包,被以下工程引用。
    工程名 说明
    extensions-tool.jar 扩展工具类相关
    restapi-jaxrs.jar RestApi 相关
    services.war 服务相关
    sso-client-registration-tool.jar SSO 客户端注册工具类相关
    utils.jar 公共工具类相关

    2. 功能整理

    2.1 org.ovirt.engine.core.utils

    2.1.1 CertificateSubjectHelper 证书处理

    方法名 参数 参数说明 方法说明
    getCertificateSubject String hostName 主机名称 获取证书主题,O 和 CN。

    2.1.2 CollectionUtils 集合工具

    方法名 参数 参数说明 方法说明
    pairsToMap List<Pair<U, V>> pairList 成对列表 成对列表转 Map。
    nullToEmptyList List<T> list 列表 如果列表为 NULL,返回空列表;否则返回本身。

    2.1.3 CorrelationIdTracker 线程 ID 日志跟踪

    • 使用了 MDC
    方法名 参数 参数说明 方法说明
    setCorrelationId correlation 线程 ID 在 MDC 中设置关键字为 ovirtCorrelationId 的线程 ID。
    getCorrelationId - - 从 MDC 中获取关键字为 ovirtCorrelationId 的线程 ID。
    clean - - 清除所有关键字为 ovirtCorrelationId 的 MDC。

    2.1.4 DisjointRanges 不交叉范围处理

    • 给出一个范围起始值和范围结束值的列表,遍历该列表,如果发现范围有交叉,则合并两范围。
    方法名 参数 参数说明 方法说明
    addRanges List<LongRange> ranges 范围对象列表 增加到不交叉范围列表中。
    addRange long from, long to 范围初始值;范围结束值 增加到不交叉范围列表中。
    getRanges - - 返回不交叉范围集合。

    2.1.5 EngineLocalConfig 配置文件加载类

    • 配置文件路径 /usr/share/ovirt-engine/services/ovirt-engine/ovirt-engine.conf
    • 主要用于获取配置文件中的配置信息。

    2.1.6 ErrorTranslatorImpl 错误提示信息资源文件解析

    • 解析 AppErrors.propertiesVdsmErrors.properties 错误提示信息资源文件,进行国际化处理。

    2.1.7 JsonHelper 用于 JSON 处理

    方法名 参数 参数说明 方法说明
    objectToJson Object input, boolean prettyPrint 转换对象 对象转 JSON 格式字符串。
    mapToJson Map<String, Object> input, boolean prettyPrint Map 对象 Map 对象转 JSON 格式字符串。
    jsonToMap String jsonString JSON 格式字符串 JSON 格式字符串转 Map 对象。
    jsonToList String jsonString JSON 格式字符串 JSON 格式字符串转列表。

    2.1.8 NameForVmInPoolGenerator 池中虚拟机名称生成

    方法名 参数 参数说明 方法说明
    generateVmName - - 根据虚拟机池名称,生成池中虚拟机名称。

    2.1.9 OvfUtils 用于 Ovf 的处理

    • 用于 OVF 文件解析。

    2.1.10 PKIResources 用于 engine 和 CA 证书的创建。

    方法名 参数 参数说明 方法说明
    getCaCertificate - - 获得 CA 证书
    getEngineCertificate - - 获得 engine 证书

    2.1.11 ReflectionUtils 用于反射工具

    方法名 参数 参数说明 方法说明
    findConstructor Class<T> type,Class<?>... expectedParams 反射的 class;参数 class 列表 根据 class 类型常找参数一致的构造函数。
    getGetterMethodNames Object o 对象实例 获取对象实例所有 get 方法名称列表。
    getLoggableMethodWithNoArgs Object o, String name 对象实例;方法名称 跟方法名称获取对象实例的无参方法对象 Method。
    invokeMethodWithNoArgs Object o, String name 对象实例;方法名称 执行实例对象的无参方法 name。
    getClassFor String className class 名称 根据 class 名称得到 Class。

    2.1.12 ResourceUtils 资源文件工具

    • 使用 getClassLoader().getResourceAsStream 方法加载。
    方法名 参数 参数说明 方法说明
    loadProperties Class<?> cls, String name 资源文件所在 Class 路径;资源文件名称 资源文件与某 Class 类,放在工程下同一目录,通过 Class 类名和资源文件名称,加载资源文件。

    2.1.13 StringMapUtils 字符串转 Map

    方法名 参数 参数说明 方法说明
    string2Map String str 字符串 固定格式字符串转 Map
    • 字符串格式要求
    {key1=value1,key2=value2,key3}
    

    2.1.14 ThreadUtils 线程工具类

    方法名 参数 参数说明 方法说明
    sleep long milliseconds 睡眠时间(单位毫秒) 设置线程睡眠

    2.1.15 Ticketing 动态口令生成类

    方法名 参数 参数说明 方法说明
    generateOTP - - 动态口令生成
    • 该方法用于控制台连接 SetVmTicket 命令,传递的动态口令参数生成。

    2.1.16 VmInitUtils 虚拟机网络初始工具类

    方法名 参数 参数说明 方法说明
    jsonNetworksToList String jsonNetworks 虚拟机网络 JSON 格式字符串 将虚拟机网络 JSON 格式字符串转为 VmInitNetwork 对象列表。
    networkListToJson List<VmInitNetwork> networkList VmInitNetwork 对象列表 VmInitNetwork 对象列表转为 JSON 格式字符串。

    2.1.17 XmlUtils XML 工具类

    方法名 参数 参数说明 方法说明
    loadXmlDoc String xmlString XML 字符串 将 XML 字符串转为 Document 对象。
    getIntValue Element element, String tagName 节点对象;标签名称 根据标签名称和节点对象得到值,再将值强转为整型。
    getTextValue Element element, String tagName 节点对象;标签名称 根据标签名称和节点对象得到值。

    2.2 org.ovirt.engine.core.utils.archivers.tar

    2.2.1 Tar 打包工具类

    方法名 参数 参数说明 方法说明
    doTar OutputStream os,File base Tar 包输出流;需要打包的目录文件 对目标文件/目录打包。

    2.3 org.ovirt.engine.core.utils.collections

    2.3.1 DefaultValueMap 扩展支持默认值的 Map

    方法名 参数 参数说明 方法说明
    put String key, Object value, String def Key;值;默认值 当值为空时,添加默认值。
    putIfNotEmpty String key, Object value Key;值 当值为空或者空字符串时,不进行添加。

    2.4 org.ovirt.engine.core.utils.crypt

    2.4.1 EngineEncryptionUtils engine 密钥密钥工具类

    方法名 参数 参数说明 方法说明
    encrypt String source 未加密字符串 加密传递的字符串(用 RSA 加密算法,使用 engine 证书)
    decrypt String source 加密字符串 解密传递的字符串

    2.5 org.ovirt.engine.core.utils.log

    2.5.1 LoggedUtils 日志工具类

    方法名 参数 参数说明 方法说明
    logError Logger log, String id, Object obj, Throwable t 日志对象;错误对象ID;错误对象;异常信息 打印错误日志。
    logReturn Logger log, String id, Object obj, Object returnValue 日志对象;执行对象ID;执行对象;返回对象 输出执行对象返回日志,如 vdc 调用等。

    2.6 org.ovirt.engine.core.utils.pm

    2.6.1 FenceConfigHelper 电源管理配置参数相关

    方法名 参数 参数说明 方法说明
    getFenceConfigurationValue String key, String version Key;版本 获取电源管理某个设置的所有配置参数的值。

    2.7 org.ovirt.engine.core.utils.threadpool

    2.7.1 ThreadPoolUtil 线程池工具类

    方法名 参数 参数说明 方法说明
    execute Runnable command 线程对象 运行线程
    execute FutureTask<V> command 线程任务 执行线程任务
    invokeAll Collection<? extends Callable<T>> tasks 给定任务 执行给定的任务,返回结果列表

    2.8 org.ovirt.engine.core.uutils.crypto

    2.8.1 CryptMD5 MD5 加密工具类

    方法名 参数 参数说明 方法说明
    crypt String password 需要加密字符串 加密
    crypt String password, String salt 需要加密字符串;加密密钥(最长 8 位) 加密

    2.8.2 EnvelopeEncryptDecrypt 内容传输(信封)加密工具类

    方法名 参数 参数说明 方法说明
    encrypt String algo,int bits,Certificate cert,int blockSize,byte[] content 使用的密码算法;密钥的位数;加密证书(使用公钥包装密钥);将内容大小转为块大小(块大小);需要加密的内容 加密
    decrypt KeyStore.PrivateKeyEntry pkeyEntry,String blob 用于解密的私钥对象(证书与密钥);需要解密的内容 解密

    2.8.3 EnvelopePBE 基于口令加密算法工具类

    • PBE 算法(Password Based Encryption,基于口令加密)是一种基于口令的加密算法,其特点是使用口令代替了密钥,而口令由用户自己掌管,采用随机数杂凑多重加密等方法保证数据的安全性。
    方法名 参数 参数说明 方法说明
    encode String algorithm, int keySize, int iterations, String randomProvider, String password 采用的算法;加密密钥的大小;迭代次数;随机数算法(默认为 NativePRNG);需要加密的字符串 加密
    check String blob, String password 已加密的内容;未加密字符串 比对是否一致

    2.9 org.ovirt.engine.core.uutils.ssh

    2.9.1 OpenSSHUtils SSH 工具类

    方法名 参数 参数说明 方法说明
    decodeKeyString final String key 公钥字符串 将公钥字符串转为实际的公钥
    getKeyBytes final PublicKey key 公钥 将公钥转为 SSH 格式
    getKeyString final PublicKey key, String alias 公钥;别名 将公钥转为授权密钥(使用 SSH 格式)
    isPublicKeyValid String publicKey 公钥 检查公钥是否正确
    arePublicKeysValid String publicKeys 公钥 检查公钥是否正确

    2.10 org.ovirt.engine.core.config

    2.10.1 EngineConfigUtils engine 配置文件工具类

    方法名 参数 参数说明 方法说明
    locateFileInPaths String... paths 配置文件路径集合 根据给出的配置文件路径集合,返回第一个查找到的配置文件对象

    相关文章

      网友评论

        本文标题:【Ovirt 笔记】工具包分析与整理

        本文链接:https://www.haomeiwen.com/subject/jdzqsftx.html