Přejít na obsah
Skip to main content

Požadavek service

Účel a dopady​

Řídí (spouští, pozastavuje, obnovuje, ukládá stav nebo vyvolává servisní smyčku) vybrané interní služby aplikačního serveru flexideo – hlavní službu, mailovou službu a SMS službu – nebo jen zjišťuje jejich aktuální stav bez provedení akce. Vedlejší efekt: úspěšné provedení zapisuje audit záznam do logu serveru.

Dostupnost, kontext, oprávnění apod.​

  • Smí použít jen uživatel s r_admin nebo r_manage; jinak je požadavek zamítnut.
  • Podléhá standardnímu transakčnímu zpracování obálky <request> (transactional/přeskočení při odvolané transakci) – viz obálka požadavku.

XML požadavek (syntax + popis)​

<request>
<service
name="{string}"
action="{string}"
dont-initialize="{bool}"
/>
</request>

Parametry a pravidla (atributy, potomci)​

  • name - Cílové služby - Řetězec se hledá (case-insensitive, po převodu na malá písmena) jako podřetězec proti třem pevným klíčovým slovům: obsahuje-li main, zahrnuje se hlavní služba; obsahuje-li mail, mailová služba; obsahuje-li sms, SMS služba. Lze zahrnout víc služeb najednou (např. hodnotou obsahující více klíčových slov). (typ: string; nepovinný)
  • action - Požadovaná akce - Hodnota se porovnává case-insensitively (server ji převede na malá písmena). (typ: enum; nepovinný; povolené hodnoty: stop, start, pause, continue, save, loop; chybí-li nebo je-li neznámá, neprovede se žádná akce a požadavek jen vrátí aktuální stav vybraných služeb)
  • dont-initialize - Bez inicializace - Atribut se čte (case-sensitive porovnání s "true"), ale v aktuálně zpracovávané větvi tohoto požadavku nemá žádný zjistitelný vliv na výsledek – otevřený bod, jehož chování se nepodařilo dále objasnit. (typ: bool; nepovinný; výchozí: false)

Závislosti​

  • Není-li name uveden vůbec, server se chová, jako by byly vybrány všechny tři služby (main, mail, sms) – atribut name proto není fakticky nutný k tomu, aby akce/stav zahrnovaly všechny služby.
  • Je-li name uveden, ale neodpovídá žádnému z klíčových slov main/mail/sms, požadavek skončí chybou (viz „Chyby a reakce“) a žádná akce se neprovede.

Příklady požadavku​

(Zatím bez ověřeného příkladu.)

Zpracování a vedlejší účinky​

  • Pro action="stop" server volá zastavení vybraných služeb; "start" spustí mailovou/SMS službu, pokud ještě neběží (u konzolového běhu ve vlákně procesu, jinak jako samostatné vlákno instance); "pause"/"continue" pozastaví/obnoví vybrané služby; "save" vyvolá uložení stavu; "loop" vyvolá servisní smyčku. Hlavní službu (main) lze zastavit/pozastavit/obnovit/uložit/loop, ale ne přes tento požadavek znovu „nastartovat“ ("start" ovlivňuje jen mail a sms, ne main).
  • Chybí-li action nebo je jeho hodnota neznámá, žádná z výše uvedených akcí se neprovede, ale odpověď je přesto úspěšná a obsahuje aktuální stav vybraných služeb – lze tak požadavek použít i jako čistý dotaz na stav (opakovaně se stejným obsahem).
  • Selže-li rozpoznání name (žádné z klíčových slov nenalezeno), server nevykoná žádnou akci a nevrátí žádný stav služeb – jen samostatnou chybovou značku (viz níže).

XML odpověď (syntax + popis)​

<response>
<service
type="ok"
>
<service
name="main|mail|sms"
status="{string}"
/> *
</service>
</response>

Chybové tvary (viz „Chyby a reakce“) mají jinou strukturu – samostatnou sebeuzavírající značku bez vnořených uzlů.

Příklady odpovědi​

(Zatím bez ověřeného příkladu.)

Chyby a reakce​

  • <service type="error" detail="Jmeno sluzby nebylo rozpoznano"/> – atribut name byl uveden, ale neobsahuje žádné z klíčových slov main/mail/sms.
  • <service status="error" detail="Nemate patricna opravneni"/> – volající nemá r_admin ani r_manage.
  • <service status="error" detail="Transakce byla odvolana"/> / <service status="skip" detail="Transakce byla preskocena"/> – požadavek byl vyřazen standardním transakčním zpracováním obálky.
  • Úspěšná odpověď má u kořenového uzlu atribut type="ok", zatímco výše uvedené chyby používají místo type atribut status; jen validační chyba neznámého jména služby používá type="error". Výraz pro identifikaci chyb v odpovědi serveru: service[@type='error'] | service[@status='error'].

Související požadavky​

  • do-manage – další administrátorský požadavek pracující s opakovaným spouštěním operací na serveru.