CTT - Escalation

From PlcWiki

(Difference between revisions)
Jump to: navigation, search
 
(4 intermediate revisions not shown)
Line 85: Line 85:
     cttRecUrl,
     cttRecUrl,
     pathCtt
     pathCtt
 +
=====ctt.clea.rule.=====
 +
    owner,
 +
    rule_name,
 +
    id,
 +
    level,
 +
    msg_subject,
 +
    msg_body,
 +
    delay_min,
 +
    user_name_id,
 +
    login_name,
 +
    mail,
 +
    mobile_phone
===Staré žolíky===
===Staré žolíky===
Line 115: Line 127:
     $kernelHostname
     $kernelHostname
-
     $cttClick (odkaz na přebírání a ukončování požadavků - asi jen v Ivecu)
+
     $cttClick (odkaz na přebírání a ukončování požadavků - natvrdo nasměrován na ctt šablonu pojmenovanou escalation)
 +
    $cttClickBasic (odkaz na přebírání a ukončování požadavků - lze nastavovat název šablony např. &v=escalation_two)
===Příklad===  
===Příklad===  
Line 128: Line 141:
       Logout:\t\t<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> (<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> CET)
       Logout:\t\t<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> (<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> CET)
       Please, complete the reason on a form here:  <%= ctt.config.server.publicAppUrl %>out.html?v=user_logout&id=<%= ctt.interval.uuid %>
       Please, complete the reason on a form here:  <%= ctt.config.server.publicAppUrl %>out.html?v=user_logout&id=<%= ctt.interval.uuid %>
 +
 +
==== Tělo zprávy s odkazy na přebírací stránku BEZPEČNĚJŠÍ způsob přes UUID ====
 +
    (...)
 +
    Obsloužení požadavku (bez vyžadované autorizace): <%= ctt.config.server.publicAppUrl %>out.html?uuid=<%= ctt.interval.uuid %>&login_name=<%= ctt.clea.rule.login_name %>&v=escalation
 +
    Obsloužení požadavku (s vyžadovanou autorizací): <%= ctt.config.server.publicAppUrl %>out.html?uuid=<%= ctt.interval.uuid %>&v=escalation
 +
 +
==== Tělo zprávy s odkazy na přebírací stránku PŮVODNÍ způsob přes ID ====
 +
    (...)
 +
    První způsob konfigurace obsloužení požadavku (pevně daná šablona): $cttClick
 +
    Druhý způsob konfigurace obsloužení požadavku (nastavitelná šablona): $cttClickBasic&v=escalation
 +
    Třetí způsob konfigurace obsloužení požadavku (nastavitelné vše): <%= ctt.config.server.publicAppUrl %>out.html?id=<%= ctt.interval.id %>&login_name=<%= ctt.clea.rule.login_name %>&v=escalation
====Formátování data a času====
====Formátování data a času====

Current revision as of 16:00, 22 April 2022

Contents

Eskalátor

Eskalátor voláme na adrese server/ctt/escalation

možné url parametry: /escalation/?

   hash=<string>	=> hash pouze pro jednoho konkrétního ownera, povinný u instalací, kde není autentifikace přes UserManagement 2
   recordid=<string>	=> ID konkrétního intervalu, který bude eskalátor kontrolovat (nebude projíždět všechny otevřené intervaly)
   again=<1|0>		=> eskalátor se bude znovu ptát CLEy na pravidla, pokud nebyla vrácena správná (např. error), správně se musí vrátit objekt (i kdyby prázdný) - defaultně again=1

CRON

Cesta ke cronu, pokud chceme nastavit např. minutový tikač:

   /etc/cron.d/ctt-escalation (nebo jiný název)
soubor ctt-escalation

Vzor tikače nastaveného na jednu minutu pro konkrétního ownera:

   # Nastaveni intervalu, kdy budeme tahat za escalator - vystup se nikam neuklada
   */1 * * * * root wget -O - 'https://server:8080/ctt/escalation?hash=8849d073-1eee-11eb-b7d0-05ed861d1beb' > /dev/null 2>&1
   

Vzor tikače nastaveného na jednu minutu, kdy owner je zjišťován automaticky ze startovacích recordů:

   # Nastaveni intervalu, kdy budeme tahat za escalator - vystup se nikam neuklada
   */1 * * * * root wget -O - 'https://server:8080/ctt/escalation' > /dev/null 2>&1
   

Pozor, na konci scriptu musí být jeden odENTERovaný řádek


Žolíky

Zadáváme přímo do textu v této formě: User login on server <%= ctt.record.data.server %> was detected.

ctt.interval.
   id
   uuid
   interval_definition_name
   start_event_id
   id_id
   value
ctt.sensor.
   sender_id
   sensor_id
   sensor_type
   group_name
   group_order
   start_value
   sensor_name
   color
   machine
   workplace
   workplace_name
   line
   project
   place
   data
ctt.record.
   id
   chart_time
   chart_value
   unit
   value_type
   sender_id
   sensor_id
   delivered_time
   subject_id
   subject_class_id
   subject_class_name
   author
   data

Klíč data obsahuje strukturu json dalších údajů, které nese event, který vyvolal změnu intervalu. Pro různé eventy se tento obsah liší. Pak použijeme například takto <%= ctt.record.data.server %>

ctt.definition.
   timeout_days,
   timeout_sensor
ctt.config.server.
    appUrl,
    publicAppUrl,
    sentEmailURI,
    sentSmsURI,
    cleaUrl,
    cttRecUrl,
    pathCtt
ctt.clea.rule.
    owner,
    rule_name,
    id,
    level,
    msg_subject,
    msg_body,
    delay_min,
    user_name_id,
    login_name,
    mail,
    mobile_phone

Staré žolíky

Používáme ve starších verzích CTT (zatím zachována jejich funkčnost i v nových verzích)

Info z CTT recordu a intervalu
    $lineName
    $workplaceName
    $subjectId
    $eventTime
Info z CLEA eventu
    $note
    $xType
    $xName
    $revision
    $diff
    $publishedBy
    $created
    $workplaces
    
    $click (odkaz na schvalování v CLEE)
Info z CTT eventů - podle obsahu datových pytlíků (k dispozici dosud)
    $message
    $stackSizeAlarm
    $stackSizeWarning
    $stackSize
    $kernelPort
    $kernelHostname
    $cttClick (odkaz na přebírání a ukončování požadavků - natvrdo nasměrován na ctt šablonu pojmenovanou escalation)
    $cttClickBasic (odkaz na přebírání a ukončování požadavků - lze nastavovat název šablony např. &v=escalation_two)

Příklad

Předmět zprávy:

     User login (<%= ctt.record.data.loginName %> from <%= ctt.record.data.hostIp %>) on server <%= ctt.record.data.server %> - request for reason

Tělo zprávy:

      User login on server <%= ctt.record.data.server %> was detected.
      User:\t\t<%= ctt.record.data.loginName %>
      Source IP:\t<%= ctt.record.data.hostIp %>
      Login:\t\t<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> (<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> CET)
      Logout:\t\t<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> (<%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.serverEventTime).format('yyyy-MM-dd HH:mm:ss') %> CET)
      Please, complete the reason on a form here:  <%= ctt.config.server.publicAppUrl %>out.html?v=user_logout&id=<%= ctt.interval.uuid %>

Tělo zprávy s odkazy na přebírací stránku BEZPEČNĚJŠÍ způsob přes UUID

    (...)
    Obsloužení požadavku (bez vyžadované autorizace): <%= ctt.config.server.publicAppUrl %>out.html?uuid=<%= ctt.interval.uuid %>&login_name=<%= ctt.clea.rule.login_name %>&v=escalation
    Obsloužení požadavku (s vyžadovanou autorizací): <%= ctt.config.server.publicAppUrl %>out.html?uuid=<%= ctt.interval.uuid %>&v=escalation

Tělo zprávy s odkazy na přebírací stránku PŮVODNÍ způsob přes ID

    (...)
    První způsob konfigurace obsloužení požadavku (pevně daná šablona): $cttClick
    Druhý způsob konfigurace obsloužení požadavku (nastavitelná šablona): $cttClickBasic&v=escalation
    Třetí způsob konfigurace obsloužení požadavku (nastavitelné vše): <%= ctt.config.server.publicAppUrl %>out.html?id=<%= ctt.interval.id %>&login_name=<%= ctt.clea.rule.login_name %>&v=escalation

Formátování data a času

např. ctt.record.data.firstSessionLoginTime = "2020-11-05T12:12:03.000+01:00"

      <%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSS",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %>
      <%= Date.parse("yyyy-MM-dd'T'HH:mm:ss.SSSXXX",ctt.record.data.firstSessionLoginTime).format('yyyy-MM-dd HH:mm:ss') %> CET

např. ctt.record.data.create = 1.619013617E12

      <%= new Date(ctt.record.data.created.toLong()).format("yyyy-MM-dd HH:mm:ss") %>
Personal tools