用于变更模块中自定义触发器的示例脚本文件

#根据变更中配置的影响值分配 CAB 成员的示例。

 #如果影响为 High,则分配紧急 CAB 成员。否则,将普通 CAB 成员分配给该变更。

import sys

import json

import urllib

 

file_Path = sys.argv[1]

with open(file_Path) as data_file:

    data = json.load(data_file)

 

#从变更 JSON 中获取影响值。

#变更中的 JSON 格式将为 {'INPUT_DATA':{"entity": "change","login_name": "menders","entity_data": {..},"entity_diff_data": {...}}

inputData = data['INPUT_DATA']

changeData = inputData['entity_data']

impact = changeData['impact']

impactValue = impact['name']

 

#为影响值“High”配置紧急 CAB。

if impactValue == 'High':

    returnJSON = {

    #message:显示在变更历史中的值

        'message': '通过自定义触发器添加紧急 CAB 成员',

        'operations': [{

            #operation_name 表示要通过触发器执行的操作,目前仅支持 UPDATE_ROLES。

            'operation_name': 'UPDATE_ROLES',

            'input_data': {

                'change': {

                    'roles': [{

                        #替换为要更新的角色 ID

                        'id': 5, 

                        #替换为要更新的角色名称。

                        'name': 'CAB'

                        #可以使用 emailid 或用户 id 向变更角色添加/更新用户。

                        'users': [{

                            #要配置的用户的 emailid

                           'email': 'heather@xyz.com', 

                           #与该电子邮件 ID 对应的用户名

                           'name': 'Heather Graham' 

                        }, {

                            #要配置的用户 ID

                            'id': 3,

                            #与该 ID 对应的用户名

                            'name': 'Shawn Adams'

                        }]

                    }]

                }

            }

        }]

    }

    #为其他影响值配置普通 CAB

     else :

    returnJSON = {

     #message - 显示在变更历史中的值

        'message': '通过自定义触发器添加普通 CAB 成员',

         #operation_name 表示要通过触发器执行的操作,目前仅支持 UPDATE_ROLES。

        'operations': [{

            'operation_name': 'UPDATE_ROLES',

            'input_data': {

                'change': {

                     'roles': [{

                        #替换为要更新的角色 ID

                        'id': 5, 

                        #替换为要更新的角色名称。

                        'name': 'CAB'

                        #可以使用 emailid 或用户 id 向变更角色添加/更新用户。

                        'users': [{

                            #要配置的用户的 emailid

                           'email': 'john@xyz.com', 

                           #与该电子邮件 ID 对应的用户名

                           'name': 'John' 

                        }, {

                            #要配置的用户 ID

                            'id': 4,

                            #与该 ID 对应的用户名

                            'name': 'Howard stern'

                        }]

                    }]

                }

            }

        }]

    }

print(json.dumps(returnJSON))