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_adminnebor_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-limain, zahrnuje se hlavní služba; obsahuje-limail, mailová služba; obsahuje-lisms, 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
nameuveden vůbec, server se chová, jako by byly vybrány všechny tři služby (main, mail, sms) – atributnameproto není fakticky nutný k tomu, aby akce/stav zahrnovaly všechny služby. - Je-li
nameuveden, ale neodpovídá žádnému z klíčových slovmain/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
actionnebo 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"/>– atributnamebyl uveden, ale neobsahuje žádné z klíčových slovmain/mail/sms.<service status="error" detail="Nemate patricna opravneni"/>– volající nemár_adminanir_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ístotypeatributstatus; 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.