§¿§ä§à§ä §â§Ñ§Ù§Õ§Ö§Ý §à§á§Ú§ã§í§Ó§Ñ§Ö§ä Áú»¢¶Ä²© §Õ§à§á§à§Ý§ß§Ö§ß§Ú§ñ §Ó Javascript §ñ§Ù§í§Ü, §Ü§à§ä§à§â§í§Û §â§Ö§Ñ§Ý§Ú§Ù§à§Ó§Ñ§ß §á§â§Ú §á§à§Þ§à§ë§Ú Duktape.
Áú»¢¶Ä²©
Áú»¢¶Ä²© §à§Ò§ì§Ö§Ü§ä §Õ§Ñ§×§ä §Ó§à§Ù§Þ§à§Ø§ß§à§ã§ä§î §Ó§Ù§Ñ§Ú§Þ§à§Õ§Ö§Û§ã§ä§Ó§Ú§ñ §ã §Ó§ß§å§ä§â§Ö§ß§ß§Ö§Û §æ§å§ß§Ü§è§Ú§à§ß§Ñ§Ý§î§ß§à§ã§ä§î§ð Áú»¢¶Ä²©.
§®§Ö§ä§à§Õ | §°§á§Ú§ã§Ñ§ß§Ú§Ö |
---|---|
Log(§å§â§à§Ó§Ö§ß§î_§Ø§å§â§ß§Ñ§Ý§Ñ, §ã§à§à§Ò§ë§Ö§ß§Ú§Ö) |
§©§Ñ§á§Ú§ã§í§Ó§Ñ§Ö§ä <§ã§à§à§Ò§ë§Ö§ß§Ú§Ö> §Ó §Ø§å§â§ß§Ñ§Ý Áú»¢¶Ä²© §ã §Ú§ã§á§à§Ý§î§Ù§à§Ó§Ñ§ß§Ú§Ö§Þ <§å§â§à§Ó§Ö§ß§î_§Ø§å§â§ß§Ñ§Ý§Ñ> §å§â§à§Ó§ß§ñ §Ø§å§â§ß§Ñ§Ý§Ñ (§ã§Þ§à§ä§â§Ú§ä§Ö DebugLevel §á§Ñ§â§Ñ§Þ§Ö§ä§â §Ó §æ§Ñ§Û§Ý§Ö §Ü§à§ß§æ§Ú§Ô§å§â§Ñ§è§Ú§Ú). |
§±§â§Ú§Þ§Ö§â:
CurlHttpRequest
§¿§ä§à§ä §à§Ò§ì§Ö§Ü§ä §Ú§ß§Ü§Ñ§ã§á§å§Ý§Ú§â§å§Ö§ä cURL §Õ§Ö§ã§Ü§â§Ú§á§ä§à§â, §Ü§à§ä§à§â§í§Û §á§à§Ù§Ó§à§Ý§ñ§Ö§ä §Ó§í§á§à§Ý§ß§ñ§ä§î §á§â§à§ã§ä§í§Ö HTTP §Ù§Ñ§á§â§à§ã§í. §°§ê§Ú§Ò§Ü§Ú §ã§à§à§Ò§ë§Ñ§ð§ä§ã§ñ §Ó §Ó§í§Ù§à§Ó§Ö §Ú§ã§Ü§Ý§ð§é§Ö§ß§Ú§Û.
§®§Ö§ä§à§Õ | §°§á§Ú§ã§Ñ§ß§Ú§Ö |
---|---|
AddHeader(§Ú§Þ§ñ, §Ù§ß§Ñ§é§Ö§ß§Ú§Ö) |
§¥§à§Ò§Ñ§Ó§Ý§Ö§ß§Ú§Ö §á§à§Ý§ñ HTTP §Ù§Ñ§Ô§à§Ý§à§Ó§Ü§Ñ. §¿§ä§à §á§à§Ý§Ö §Ú§ã§á§à§Ý§î§Ù§å§Ö§ä§ã§ñ §Õ§Ý§ñ §Ó§ã§Ö§ç §á§à§ã§Ý§Ö§Õ§å§ð§ë§Ú§ç §Ó§í§Ù§à§Ó§à§Ó, §Õ§à §Þ§à§Þ§Ö§ß§ä§Ñ §à§é§Ú§ã§ä§Ü§Ú §á§â§Ú §á§à§Þ§à§ë§Ú ClearHeader() §Þ§Ö§ä§à§Õ§Ñ. |
ClearHeader() |
§°§é§Ú§ã§ä§Ü§Ñ HTTP §Ù§Ñ§Ô§à§Ý§à§Ó§Ü§Ñ. §Ö§ã§Ý§Ú §Ù§Ñ§Õ§Ñ§ß§ß§í§Ö §á§à§Ý§ñ §Ù§Ñ§Ô§à§Ý§à§Ó§Ü§à§Ó §à§ä§ã§å§ä§ã§ä§Ó§å§ð§ä, CurlHttpRequest §Ù§Ñ§Õ§Ñ§ã§ä Content-Type §Ù§ß§Ñ§é§Ö§ß§Ú§Ö§Þ application/json, §Ö§ã§Ý§Ú §á§å§Ò§Ý§Ú§Ü§å§Ö§Þ§í§Ö §Õ§Ñ§ß§ß§í§Ö §à§ä§æ§à§â§Þ§Ñ§ä§Ú§â§à§Ó§Ñ§ß§í §Ó §Ó§Ú§Õ§Ö json §Ú text/plain §Ó §á§â§à§ä§Ú§Ó§ß§à§Þ §ã§Ý§å§é§Ñ§Ö. |
Get(url, §Õ§Ñ§ß§ß§í§Ö) |
§°§ä§á§â§Ñ§Ó§Ü§Ñ HTTP GET §Ù§Ñ§á§â§à§ã§Ñ §ß§Ñ URL §ã §ß§Ö§à§Ò§ñ§Ù§Ñ§ä§Ö§Ý§î§ß§í§Þ §Ú§ß§æ§à§â§Þ§Ñ§è§Ú§à§ß§ß§í§Þ §Õ§à§á§à§Ý§ß§Ö§ß§Ú§Ö§Þ data §Ú §á§à§Ý§å§é§Ö§ß§Ú§Ö §à§ä§Ó§Ö§ä§Ñ. |
Put(url, §Õ§Ñ§ß§ß§í§Ö) |
§°§ä§á§â§Ñ§Ó§Ü§Ñ HTTP PUT §Ù§Ñ§á§â§à§ã§Ñ §ß§Ñ URL §ã §ß§Ö§à§Ò§ñ§Ù§Ñ§ä§Ö§Ý§î§ß§í§Þ §Ú§ß§æ§à§â§Þ§Ñ§è§Ú§à§ß§ß§í§Þ §Õ§à§á§à§Ý§ß§Ö§ß§Ú§Ö§Þ data §Ú §á§à§Ý§å§é§Ö§ß§Ú§Ö §à§ä§Ó§Ö§ä§Ñ. |
Post(url, §Õ§Ñ§ß§ß§í§Ö) |
§°§ä§á§â§Ñ§Ó§Ü§Ñ HTTP POST §Ù§Ñ§á§â§à§ã§Ñ §ß§Ñ URL §ã §ß§Ö§à§Ò§ñ§Ù§Ñ§ä§Ö§Ý§î§ß§í§Þ §Ú§ß§æ§à§â§Þ§Ñ§è§Ú§à§ß§ß§í§Þ §Õ§à§á§à§Ý§ß§Ö§ß§Ú§Ö§Þ data §Ú §á§à§Ý§å§é§Ö§ß§Ú§Ö §à§ä§Ó§Ö§ä§Ñ. |
Delete(url, §Õ§Ñ§ß§ß§í§Ö) |
§°§ä§á§â§Ñ§Ó§Ü§Ñ HTTP DELETE §Ù§Ñ§á§â§à§ã§Ñ §ß§Ñ URL §ã §ß§Ö§à§Ò§ñ§Ù§Ñ§ä§Ö§Ý§î§ß§í§Þ §Ú§ß§æ§à§â§Þ§Ñ§è§Ú§à§ß§ß§í§Þ §Õ§à§á§à§Ý§ß§Ö§ß§Ú§Ö§Þ data §Ú §á§à§Ý§å§é§Ö§ß§Ú§Ö §à§ä§Ó§Ö§ä§Ñ. |
Status() |
§£§à§Ù§Ó§â§Ñ§ä §Ü§à§Õ§Ñ §ã§à§ã§ä§à§ñ§ß§Ú§ñ §á§à§ã§Ý§Ö§Õ§ß§Ö§Ô§à HTTP §Ù§Ñ§á§â§à§ã§Ñ. |
§±§â§Ú§Þ§Ö§â:
try {
Áú»¢¶Ä²©.Log(4, 'jira webhook script value='+value);
var result = {
'tags': {
'endpoint': 'jira'
}
},
params = JSON.parse(value),
req = new CurlHttpRequest(),
fields = {},
resp;
req.AddHeader('Content-Type: application/json');
req.AddHeader('Authorization: Basic '+params.authentication);
fields.summary = params.summary;
fields.description = params.description;
fields.project = {"key": params.project_key};
fields.issuetype = {"id": params.issue_id};
resp = req.Post('https://tsupport.zabbix.lan/rest/api/2/issue/',
JSON.stringify({"fields": fields})
);
if (req.Status() != 201) {
throw 'Response code: '+req.Status();
}
resp = JSON.parse(resp);
result.tags.issue_id = resp.id;
result.tags.issue_key = resp.key;
} catch (error) {
Áú»¢¶Ä²©.Log(4, 'jira issue creation failed json : '+JSON.stringify({"fields": fields}));
Áú»¢¶Ä²©.Log(4, 'jira issue creation failed : '+error);
result = {};
}
return JSON.stringify(result);