#根据变更中配置的影响值分配 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))