Áú»¢¶Ä²©

§¥§à§á§à§Ý§ß§Ú§ä§Ö§Ý§î§ß§í§Ö Javascript §à§Ò§ì§Ö§Ü§ä§í

§°§Ò§Ù§à§â

§¿§ä§à§ä §â§Ñ§Ù§Õ§Ö§Ý §à§á§Ú§ã§í§Ó§Ñ§Ö§ä Áú»¢¶Ä²© §Õ§à§á§à§Ý§ß§Ö§ß§Ú§ñ §Ó Javascript §ñ§Ù§í§Ü, §Ü§à§ä§à§â§í§Û §â§Ö§Ñ§Ý§Ú§Ù§à§Ó§Ñ§ß §á§â§Ú §á§à§Þ§à§ë§Ú Duktape.

§£§ã§ä§â§à§Ö§ß§ß§í§Ö §à§Ò§ì§Ö§Ü§ä§í

Áú»¢¶Ä²©

Áú»¢¶Ä²© §à§Ò§ì§Ö§Ü§ä §Õ§Ñ§×§ä §Ó§à§Ù§Þ§à§Ø§ß§à§ã§ä§î §Ó§Ù§Ñ§Ú§Þ§à§Õ§Ö§Û§ã§ä§Ó§Ú§ñ §ã §Ó§ß§å§ä§â§Ö§ß§ß§Ö§Û §æ§å§ß§Ü§è§Ú§à§ß§Ñ§Ý§î§ß§à§ã§ä§î§ð Áú»¢¶Ä²©.

§®§Ö§ä§à§Õ §°§á§Ú§ã§Ñ§ß§Ú§Ö
Log(§å§â§à§Ó§Ö§ß§î_§Ø§å§â§ß§Ñ§Ý§Ñ, §ã§à§à§Ò§ë§Ö§ß§Ú§Ö) §©§Ñ§á§Ú§ã§í§Ó§Ñ§Ö§ä <§ã§à§à§Ò§ë§Ö§ß§Ú§Ö> §Ó §Ø§å§â§ß§Ñ§Ý Áú»¢¶Ä²© §ã §Ú§ã§á§à§Ý§î§Ù§à§Ó§Ñ§ß§Ú§Ö§Þ <§å§â§à§Ó§Ö§ß§î_§Ø§å§â§ß§Ñ§Ý§Ñ> §å§â§à§Ó§ß§ñ §Ø§å§â§ß§Ñ§Ý§Ñ (§ã§Þ§à§ä§â§Ú§ä§Ö DebugLevel §á§Ñ§â§Ñ§Þ§Ö§ä§â §Ó §æ§Ñ§Û§Ý§Ö §Ü§à§ß§æ§Ú§Ô§å§â§Ñ§è§Ú§Ú).

§±§â§Ú§Þ§Ö§â:

Áú»¢¶Ä²©.Log(3, "this is a log entry written with 'Warning' log level")

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);