Skip to content

artifacts插件管理所有部署物料包相关内容,移除CMDB模型依赖 #270

@royl88

Description

@royl88

描述您的需求
artifacts插件管理所有部署物料包相关内容,包括如下内容:

  • 物料提供以下模型

      部署包   - id, name, ...
      应用差异化变量
      数据库差异化变量
    
  • 单元设计关联 - id, cmdb_unit_design_id, artifacts_path, ...

  • 差异化变量计算(Expression V2待定版)

    Expression V2 相对V1主要改动为:

    1. 新增 @ CONNECTOR 语法
    2. 支持filter value嵌套expression
// EBNF语法如下
single_expr: PACKAGE ":" CI filter* ("." ATTR)?
backref_expr: "(" BACKREF_ATTR ")" PACKAGE ":" CI filter* ("." ATTR)?
expression: single_expr
        | expression FORWARD_REF single_expr
        | expression BACKWARD_REF backref_expr
expression_group: expression // no connector
        | expression_group "@" expression
        | expression_group "@" CONNECTOR // ends with connector
        | (expression_group "@")? CONNECTOR "@" expression_group // group[optional] connect with group

filter: "{" FILTER_NAME OP filter_value "}"
string_list.2: "[" (STRING_VALUE ("," STRING_VALUE)*)? "]"
number_list: "[" (NUMBER_VALUE ("," NUMBER_VALUE)*)? "]"
filter_value : STRING_VALUE
             | NUMBER_VALUE
             | NULL
             | TRUE
             | FALSE
             | string_list
             | number_list
             | expression_group

PACKAGE: NAME
CI: NAME
ATTR: NAME
BACKREF_ATTR: NAME
FORWARD_REF: /->|>/
BACKWARD_REF: /~|<-/
OP: NAME
FILTER_NAME: NAME ("." NAME)*
_INNER_STRING: /.*?/ /(?<!\\)(\\\\)*?/
STRING_VALUE.2: "'" _INNER_STRING "'"
CONNECTOR: STRING_VALUE
_INT: /\d+/
_FLOAT: _INT "." _INT? | "." _INT
NUMBER_VALUE:  _FLOAT | _INT
NAME: /[a-zA-Z][-_0-9a-zA-Z]*/
NULL: "NULL"
TRUE: "TRUE"
FALSE: "FALSE"
  • 部署包变量替换 & 上传

本次修改主要目的是让CMDB做更适合CMDB应当做的事,由artifacts插件管理所有部署物料相关功能。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions