首页 云网管 变更中心 变更方案编写说明

变更方案编写说明

本文具体介绍变更方案中步骤与连线。

变更步骤说明

基础步骤

  • 开始步骤

    • 开始步骤整个方案唯一。

    • 开始步骤的下一步会是变更工单的起始步骤。

    • 开始步骤下一步有且只能有一个。

  • 结束步骤

    • 结束步骤整个方案唯一。

    • 变更工单到结束步骤时整个工单结束。

  • 执行确认

    • 变更工单到执行确认步骤时,工单状态变为待处理/waiting,需要人工选择下一步。

    • 可以添加多个,添加方式:将左侧流程节点中的⾃动步骤拖⼊右侧画布中,然后模板选择manual_approve。

  • 结单完成

    • 变更工单到该步骤时,工单状态变为已完成/completed,下一步强制是结束步骤。

    • 可以添加多个,添加方式:将左侧流程节点中的⾃动步骤拖⼊右侧画布中,然后模板选择close_complete。

  • 结单拒绝

    • 变更工单到该步骤时,工单状态变为已拒绝/rejected,下一步强制是结束步骤。

    • 可以添加多个,添加方式:将左侧流程节点中的⾃动步骤拖⼊右侧画布中,然后模板选择close_reject。

自动化模板

  • 添加方式:将左侧流程节点中的⾃动步骤拖⼊右侧画布中,然后可以在框中输入模板名,可以选择网络自动化中的设备模板和用户模板,不可以为空。

  • 步骤标题:用户自定义,每个步骤不要重复,以免难以区分。

  • 入参配置:

    • "(步骤输出)xxxx"即标题为"xxxx"步骤的整体返回, xxxx.yyy即为步骤返回里键"yyy"的对应值。

    • "(全局输⼊)global.input"即⽅案的整体入参dict,global.input.xxxx即为⽅案⼊参⾥键"xxxx"的对应值。

    • "(全局变量)global.variable.xxx",当有其他步骤输出参数设置为"xxx"的全局变量时,可以选择。

  • 设置全局变量:

    • "."代表步骤的整体返回。

    • 若模板设置了出参列表,则可以从步骤的整体返回里取对应键名的值。

    • 当自动化任务执行成功,并且取到的值非None时,工单全局变量才会更新。

  • 工单展示

    • 普通自动化任务步骤执行结束,工单中展示如下,会展示任务执行成功/失败,点击设备回显,可以查看任务的设备回显,点击返回结果,可以查看步骤的返回,点击标题超链接,可以跳转到自动化任务,查看任务详情。

    • 当自动化任务执行成功,并且返回满足特定的格式,工单会有特殊的展示。

      • 格式1示例

        {
          "content": [
            {
              "hostname": "name-A",
              "command": [
                "cmd1",
                "cmd2"
              ]
            },
            {
              "hostname": "name-B",
              "command": [
                "cmd1",
                "cmd2",
                "cmd3"
              ]
            }
          ],
          "status": "success",
          "message": "标签xxx"
        }

        展示效果如下:

        格式说明:

        • 返回为dict类型。

        • 返回中message对应的值为string类型。

        • 返回中status对应的值为string类型,当值为success|ok时,展示为成功状态。

        • 返回中content对应的值为list类型,长度不超过1000。

        • content中每个元素为dict类型,dict中hostname对应的值为string类型,command对应的值为list类型,长度不超过1000,并且每个元素都为string。

      • 格式2示例:

        [
          {
            "data": [
              {
                "hostname": "name-A",
                "command": [
                  "cmd1",
                  "cmd2"
                ],
                "label": "说明1"
              },
              {
                "hostname": "name-B",
                "command": [
                  "cmd1",
                  "cmd2",
                  "cmd3"
                ],
                "label": "说明2"
              }
            ],
            "result": "success",
            "label": "label1"
          },
          {
            "data_role": "report-fail",
            "label": "label2",
            "result": "failure",
            "extra": [
              [
                "A",
                "xxx"
              ],
              [
                "B",
                "yyy"
              ]
            ]
          }
        ]

        或者

        {
          "task_report": [
            {
              "data": [
                {
                  "hostname": "name-A",
                  "command": [
                    "cmd1",
                    "cmd2"
                  ],
                  "label": "说明1"
                },
                {
                  "hostname": "name-B",
                  "command": [
                    "cmd1",
                    "cmd2",
                    "cmd3"
                  ],
                  "label": "说明2"
                }
              ],
              "result": "success",
              "label": "label1"
            },
            {
              "data_role": "report-fail",
              "label": "label2",
              "result": "failure",
              "extra": [
                [
                  "A",
                  "xxx"
                ],
                [
                  "B",
                  "yyy"
                ]
              ]
            }
          ]
        }

        展示效果如下:

        格式说明:

        • 返回为list类型或者返回为dict类型,task_report对应的值为list类型,长度大于0,且不超过1000。

        • list中每个元素为dict类型,并且满足下面两种格式之一。

          • dict中不含data_role, lable对应值为string类型,result对应值为string类型,当值为success|ok时,展示为成功状态,data对应值为list类型,长度不超过1000,每个元素为dict,hostname和lable对应值为string类型,command对应值为list类型,长度不超过1000,每个元素为string类型。

          • dict中data_role对应值为report-fail,lable对应值为string类型,result对应值为string类型,当值为success|ok时,展示为成功状态,extra对应值为list类型,长度不超过1000,每个元素为长度为2的list,list中每个元素为string类型。

      • 格式3示例:

        {
          "conn_table": [
            {
              "col_B": "val_b1",
              "col_A": "val_a1"
            },
            {
              "col_B": "val_b2",
              "col_A": "val_a2"
            }
          ]
        }

        展示示例如下:点击导出可以下载表格格式说明:

        • 返回为dict类型。

        • 返回中conn_table对应的值为string类型,长度大于0,且不超过1000。

        • conn_table中每个元素都为dict类型,conn_table[0]的大小不超过50,所有dict的键值需要为string类型。

其他步骤

  • 定时步骤

    • 步骤说明:可以在指定时间执行结束的步骤。

    • 添加方式:将左侧流程节点中的自动步骤拖⼊右侧画布中,然后模板选择Timing。

    • 参数说明:

      • delay_seconds:延迟执行几秒,优先生效,*表示忽略。

      • week:星期几,支持逗号隔开多个,*表示任意。

      • hour:几点,支持多个逗号隔开,*表示任意。

      • minute:几分,支持多个逗号隔开,*表示随机。

    • 示例:

      • delay_seconds为"3600"时,表示一个小时后执行结束,假如当前时间为2022-05-20 11:20:03开始执行该步骤,那么会在2022-05-20 12:20:03之后自动执行成功到下一步。

      • delay_seconds, week, hour, miniue值分别为"*", "6,7", "20", "0"时,表示下一个周六或者周日的20:00,假如当前时间为2022-05-20 11:20:03开始执行该步骤,那么会在2022-05-21 20:00:00之后自动执行成功到下一步。

      • 选择立即执行/失败终止可以终止倒计时,将步骤置为成功/失败,进入下一步。

      • 当传入参数有问题,导致计划执行时间生成失败时,执行时间会变为XXXX-XX-XX XX:XX:XX,此时步骤不会自动结束倒计时。

  • 表格步骤

    • 步骤说明:表格操作:展示、调整和导出。

    • 添加方式:将左侧流程节点中的自动步骤拖⼊右侧画布中,然后模板选择TableStep。

    • 参数说明:

      • conn_table: 表格数据,示例:[{"col_A": "val_a1", "col_B": "val_b1"},{"col_A": "val_a2", "col_B": "val_b2"}]。

      • options:表格展示调整的附加属性,包括:可调整列名adaptable_cols、展示列名display_cols, 示例:{"adaptable_cols": ["col_b"], "display_cols": ["col_A", "col_B"]}。

      • 工单展示示例:可以修改可调整列的值,更新数据。

      重要

      • 会对传入的数据进行调整,conn_table中不符合格式的数据会被剔除。

      • 当options中不存在adaptable_cols时,表格只做展示,跳过用户确认步骤,当display_cols为空时,取conn_table[0]元素的键值。

      • adaptable_cols不超过25,display_cols不超过25,conn_table长度不超过1000。

  • 更新步骤

    • 步骤说明:实现人工修改参数的步骤。

    • 添加方式:将左侧流程节点中的自动步骤拖⼊右侧画布中,然后模板选择UpdateStep。

    • 参数说明:

      • input:方案内想要修改的任意入参和变量,格式随意。

    • 返回说明:

      • output:人工修改后的变更值。

    • 示例:当input传入的参数值为{"key": "val"}时,展示如下

      用户可以对值进行更新,需要是JSON格式,例如输入true点确定,可以得到如下的任务返回

  • 人工步骤

    • 步骤说明:可以人工设置执行成功/失败的步骤。

    • 添加方式:将左侧流程节点中的自动步骤拖⼊右侧画布中,然后模板选择ManualStep。

    • 参数说明:

      • description: 类型string,人工步骤说明。

    • 示例:当description传入的参数值为"人工步骤说明\n1. aaa\n2. bbb\n3. ccc"时,展示如下

用户需要选择成功或者失败,方框中可以填入备注,如上图点击确认后,步骤返回如下:

    • 当description传入的参数不是string类型的时候,会自动将对象进行JSON序列化,转换成string类型。

变更连线说明

  • 直接跳转:跳转条件。

  • 任务成功:步骤执行成功时满足跳转条件。

  • 任务失败:步骤执行失败时满足跳转条件。

  • 据任务返回值判断:根据步骤执行返回值判断是否满足跳转条件。

    • 运算符支持&&, ||, ==, !=, >=, <=, >, <, !=, !。

    • &&和||不能同时使用。

    • 执行==与!=判断时,会强制转换为string类型,去除前后空格后,进行判断。

    • 执行>=,<=,>和<判断时,会强制转换为int类型,进行判断。

    • 当表达式计算结果失败时,按false处理。

    • 示例:

      • 当条件是$.self.job_return_value > 0时, 任务返回为1,或者"1"时,条件满足。

      • 当条件是$.self.job_return_value.status == ok,任务返回为{"status": "ok"}时,条件满足。

  • 强制选择:需要人工确认下一步。

说明

  • 当没有符合条件的下一步时,会提供方案所有步骤进行选择。

  • 当符合条件的下一步超过1时,需要人工确认下一步。

阿里云首页 云网管 相关技术圈