Požadavek shell
<request>
<shell
id="{number}"
command="{string}"
call="sync|async|detach"
join-output="{boolean}"
no-output="{boolean}"
survive="{boolean}"
timeout="{number}"
retrieve-timeout="{number}"
out-buffer-size="{number}"
err-buffer-size="{number}"
input-encoding="hex|utf8|utf16|acp|base64|cislo kodove stranky"
encode="hex|url|base64|xml|json|raw"
codepage="utf8|utf16|acp|cislo kodove stranky"
exit-code="{number}"
/>
</request>
Atributy
-
id- id dříve odeslaného požadavku o jehož výsledek si žádáte(typ: number) TYP HODNOTY:number; -
command- volaný příkaz, pokud se nejedná o standardní příkaz jehož cesta je uvedena v env PATH, musí obsahovat úplnou cestu ke spustitelnému souboru, může obsahovat parametry předávané spustitelnému programu(typ: string) TYP HODNOTY:string; -
call- určuje způsob volání programu, bližší popis naleznete dále v tomto dokumentu, výchozí hodnotou je sync(typ: string) TYP HODNOTY:string; Možnosti obsahu: »sync~ program je volán synchronně »async~ program bude volán asynchronně »detach~ způsobí, že server program spustí a dále se o jeho běh nestará, není možné vrátit výstupy a nelze aplikovat timeouty -
join-output- určuje zda má dojít ke sloučení standardního a chybového výstupu do jednoho (standardního), výchozí hodnotou je false(typ: boolean) TYP HODNOTY:boolean; -
no-output- určuje zda se má standardní výstup ignorovat (nevracet), pokud jsou výstupy sloučeny atributem join-output, nevrací se žádný výstup, výchozí hodnotou je false(typ: boolean) TYP HODNOTY:boolean; -
survive- určuje zda má spuštěný program 'přežít'ukončení serveru, pokud true, program zůstane běžet i po zastavení serveru, pokud false, program je pri ukončování serveru násilně ukončen, atribut survive se uplatní pouze v případě, že je spustitelný soubor volán v asynchronním režimu (atribut async='true'), výchozí hodnota je false(typ: boolean) TYP HODNOTY:boolean; -
timeout- maximální doba [s] běhu spuštěného programu, pak je program serverem násilně ukončen, výchozí hodnota 0 - nekonečno(typ: number) TYP HODNOTY:number; -
retrieve-timeout- maximální doba [s] čekání na vyzvednutí odpovědi v async='true' režimu, po uplynutí je odpověď zapomenuta, výchozí hodnota 0 - nekonečno(typ: number) TYP HODNOTY:number; -
out-buffer-size- velikost bufferu [B] na standardní výstup, neomezuje velikost celkového přijatého výstupu, spíše v jakém počtu kroků se bude přijímat a tím i rychlost, výchozí hodnotou je výchozí hodnota OS(typ: number) TYP HODNOTY:number; -
err-buffer-size- velikost bufferu [B] na chybový výstup, neomezuje velikost celkového přijatého výstupu, spíše v jakém počtu kroků se bude přijímat a tím i rychlost, výchozí hodnotou je výchozí hodnota OS(typ: number) TYP HODNOTY:number; -
input-encoding- určuje způsob jakým jsou vstupní data zakódována poslána na standardní vstup volaného programu, výchozí hodnota utf8(typ: number) TYP HODNOTY:number; Možnosti obsahu: »hex~ vstup je programu předaný jako zakódovaný hexadecimálně »utf8~ s programem se komunikuje v UTF-8 »utf16~ s programem se komunikuje v UTF-16 »acp~ s programem se komunikuje v aktuální kódové stránce »base64~ vstup je programu předaný jako zakódovaný base64 »cislo kodove stranky~ s programem se komunikuje v číselně zadané kódové stránce -
encode- určuje způsob jakým jsou kódována výstupní data (normání i chybová), výchozí hodnotou je raw (nejsou kódována vůbec)(typ: string) TYP HODNOTY:string; Možnosti obsahu: »hex~ výstup je vracen zakódovaný hexadecimálně »url~ výstup je vracen zakódovaný URL encoding »base64~ výstup je vracen zakódovaný do base64 »xml~ výstup je zakódován tak, aby byly nahrazeny takové znaky, aby vzniklo platné XML »json~ výstup je převeden z našeho JSON XML do JSON »raw~ výstup je vracen bez jakékoli úpravy -
codepage- určuje, jakou kódovou stránku používat při komunikaci s programem, používá se pro vstup i výstup, výchozí hodnotou je OEM(typ: string) TYP HODNOTY:string; Možnosti obsahu: »utf8~ s programem se komunikuje v UTF-8 »utf16~ s programem se komunikuje v UTF-16 »acp~ s programem se komunikuje v aktuální kódové stránce »cislo kodove stranky~ s programem se komunikuje v číselně zadané kódové stránce -
exit-code- exit code programu, který je považován za úspěch(typ: number) TYP HODNOTY:number;
Potomci
Požadavek shell neobsahuje žádné další elementy, ani žádné jiné číselné či řetězcové hodnoty.
Odpověď
Struktura odpovědi na požadavek shell vrácená v obálce response:
<response>
<shell
status="ok|fail|running|detached|killed|not-found|error"
id="{string}"
command="{string}"
result="{number}"
start="{dateTime}"
stop="{dateTime}"
duration="{number}"
>
<output ... /> ?
<error ... /> ?
</shell>
</response>
Atributy
-
status- popis neuveden(typ: string) TYP HODNOTY:string; Možnosti obsahu: »ok~ příkaz byl proveden a dokončen, výstupy jsou přítomny v odpovědi »fail~ příkaz byl proveden a dokončen, výstupy jsou přítomny v odpovědi, exit code progarmu se ale neshoduje s tím uvedeným v atributu exit-code »running~ program je spuštěn v asynchronním režimu a běží, tato odpověď je vracena při spuštění programu v async režimu a také při požadavku na získání výsledků dříve spuštěného programu, pokud stále běží »detached~ program byl spuštěn jako detašovaný a server o něm již nemá žádné informace »killed~ program byl násilně ukončen pravděpodobně z důvodu timeout, výstupy přítomné v odpovědi nemusí být kompletní »not-found~ požadované id se nepodařilo najít, není ani mezi běžícími ani mezi dokončenými úlohami »error~ došlo k nějaké chybě, podrobnosti jsou obsaženy v dalším atributu, viz chybová odpověď -
id- je v odpovědi přítomen pouze pokud se jedná o asynchronní požadavek, označuje pak ID použitelné k vyzvednutí odpovědi(typ: string) TYP HODNOTY:string; -
command- obsahuje původně volaný příkaz(typ: string) TYP HODNOTY:string; -
result- obsahuje stavový kód dokončeného programu(typ: number) TYP HODNOTY:number; -
start- obsahuje datum a čas zahájení(typ: dateTime) TYP HODNOTY:dateTime; -
stop- obsahuje datum a čas dokončení(typ: dateTime) TYP HODNOTY:dateTime; -
duration- obsahuje dobu trvání v [ns](typ: number) TYP HODNOTY:number;
Potomci
Výraz pro identifikaci chyb v odpovědi serveru: shell[@status='error'] (odkaz na popis detailu: @detail).
Uzel output
<output>
<{element} ... > ... </{element}>*
</output>
Atributy
Uzel output neobsahuje žádné atributy.
Potomci
Uzel output umožňuje uvést nepovinný, ale opakovatelný element - Standardní výstup programu
Uzel error
<error/>
Atributy
Uzel error neobsahuje žádné atributy.
Potomci
Uzel error neobsahuje žádné další elementy, ani žádné jiné číselné či řetězcové hodnoty.